@malloydata/render 0.0.263 → 0.0.264-dev250414221049

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.
@@ -127518,10 +127518,10 @@ class xs extends Sk {
127518
127518
  type: "result"
127519
127519
  }), this.addDependancies(e, o), rce(o) && this.firstSegment.type === "project")
127520
127520
  throw new Error(`Aggregate Fields cannot be used in select - '${o.fieldDef.name}'`);
127521
- } else o instanceof ts && e.addField(s, o, {
127521
+ } else o instanceof ts && (o.isAtomic() && this.addDependancies(e, o), e.addField(s, o, {
127522
127522
  resultIndex: r,
127523
127523
  type: "result"
127524
- });
127524
+ }));
127525
127525
  r++;
127526
127526
  }
127527
127527
  this.expandFilters(e);
@@ -153178,7 +153178,7 @@ Kp.malloyToQuery = Rpt;
153178
153178
  var Ie = {}, ID = {};
153179
153179
  Object.defineProperty(ID, "__esModule", { value: !0 });
153180
153180
  ID.MALLOY_VERSION = void 0;
153181
- ID.MALLOY_VERSION = "0.0.263";
153181
+ ID.MALLOY_VERSION = "0.0.264";
153182
153182
  Object.defineProperty(Ie, "__esModule", { value: !0 });
153183
153183
  Ie.InMemoryModelCache = Ie.CacheManager = Ie.CSVWriter = Ie.JSONWriter = Ie.DataWriter = Ie.DataRecord = Ie.DataArray = Ie.Result = Ie.ExploreMaterializer = Ie.PreparedResultMaterializer = Ie.QueryMaterializer = Ie.ModelMaterializer = Ie.SingleConnectionRuntime = Ie.ConnectionRuntime = Ie.Runtime = Ie.ExploreField = Ie.JoinRelationship = Ie.QueryField = Ie.Query = Ie.StringField = Ie.UnsupportedField = Ie.JSONField = Ie.BooleanField = Ie.NumberField = Ie.TimestampField = Ie.DateField = Ie.TimestampTimeframe = Ie.DateTimeframe = Ie.AtomicField = Ie.AtomicFieldType = Ie.Explore = Ie.SourceRelationship = Ie.FixedConnectionMap = Ie.InMemoryURLReader = Ie.EmptyURLReader = Ie.PreparedResult = Ie.DocumentCompletion = Ie.DocumentSymbol = Ie.DocumentPosition = Ie.DocumentRange = Ie.DocumentTablePath = Ie.Parse = Ie.PreparedQuery = Ie.Model = Ie.MalloyError = Ie.Malloy = void 0;
153184
153184
  const wY = PT, si = Yi, NY = Wr, J7 = z2, Dpt = ID, Opt = W2, Mn = pi, Fpt = t0, LY = "internal://internal.malloy";
@@ -1453,7 +1453,7 @@ ${(0,Fn.indent)(u)})
1453
1453
  ))
1454
1454
  -
1455
1455
  SUM(DISTINCT ${s})
1456
- )`}/(${o}*1.0))`;return a=`CAST(${a} AS ${t.defaultNumberType})`,a}class Vi{constructor(e,r,i){this.f=e,this.fieldUsage=r,this.parent=i,this.type="field",this.additionalGroupSets=[]}root(){return this.parent.root()}getSQL(){let e=this.f.generateExpression(this.parent);return To(this.f)&&(e=this.f.caseGroup(this.parent.groupSet>0?this.parent.childGroups.concat(this.additionalGroupSets):[],e)),e}getAnalyticalSQL(e){return this.analyticalSQL===void 0?this.getSQL():e&&this.partitionSQL?this.partitionSQL:this.analyticalSQL}}class Pa{constructor(e,r){this.turtleDef=e,this.parent=r,this.type="query",this.allFields=new Map,this.groupSet=0,this.depth=0,this.childGroups=[],this.hasHaving=!1,this.ungroupedSets=new Map,this.resultUsesUngrouped=!1,this.firstSegment=e.pipeline[0]}getQueryInfo(){if(!(0,Me.isIndexSegment)(this.firstSegment)&&!(0,Me.isRawSegment)(this.firstSegment)){const{queryTimezone:e}=this.firstSegment;if(e)return{queryTimezone:e}}return{}}addField(e,r,i){const s=this.allFields.get(e);if(s){if(s.type==="query")throw new Error(`Redefinition of field ${r.fieldDef.name} as struct`);if(s.fieldUsage.type==="result"){if(i.type!=="result")return;throw new Error(`Ambiguous output field name '${r.fieldDef.name}'.`)}}this.add(e,new Vi(r,i,this))}parentGroupSet(){return this.parent?this.parent.groupSet:0}add(e,r){this.allFields.set(e,r)}hasField(e){const r=this.allFields.get(e);return r!==void 0&&r instanceof Vi}getField(e){const r=this.allFields.get(e);if(r===void 0)throw new Error(`Internal Error, field Not defined ${e}`);if(r instanceof Vi)return r;throw new Error(`can't use a query here ${e}`)}getFieldByNumber(e){for(const[r,i]of this.allFields)if(i instanceof Vi&&i.fieldUsage.type==="result"&&i.fieldUsage.resultIndex===e)return{name:r,fif:i};throw new Error(`Invalid Order By index '${e}`)}computeGroups(e,r){e===0&&this.resultUsesUngrouped&&this.root().computeOnlyGroups.push(e++);for(const[u,a]of this.ungroupedSets){const l=e++;a.groupSet=l,this.root().computeOnlyGroups.push(l)}this.groupSet=e++,this.depth=r;let i=r,s=!1,o=[this.groupSet];for(const[u,a]of this.allFields)if(a.type==="query"){const l=a;if(s=!0,l.firstSegment.type==="reduce"){const c=l.computeGroups(e,r+1);o=o.concat(c.children),e=c.nextGroupSetNumber,c.maxDepth>i&&(i=c.maxDepth)}}return this.childGroups=o,{nextGroupSetNumber:e,maxDepth:i,children:o,isComplex:s}}fields(e=void 0){const r=[];for(const i of this.allFields.values())i instanceof Vi&&(e===void 0||e(i))&&r.push(i);return r}fieldNames(e){const r=[];for(const[i,s]of this.allFields)s instanceof Vi&&(e===void 0||e(s))&&r.push(i);return r}getRepeatedResultType(){let e="inline_all_numbers";for(const r of this.fields())if(r.fieldUsage.type==="result"){if(S2(r.f))return"nested";r.f instanceof gs&&(e="inline")}return e}structs(){const e=[];for(const r of this.allFields.values())r instanceof Pa&&e.push(r);return e}selectStructs(e,r){r(this)&&e.push(this);for(const i of this.structs())i.selectStructs(e,r);return e}calculateDefaultOrderBy(){let e;for(const[r,i]of this.allFields)if(i instanceof Vi&&i.fieldUsage.type==="result"){if(i.f.fieldDef.type==="turtle"||(0,Me.isJoined)(i.f.fieldDef)||(0,Me.expressionIsAnalytic)(i.f.fieldDef.expressionType))continue;if(e||(e=i.fieldUsage.resultIndex),["date","timestamp"].indexOf(i.f.fieldDef.type)>-1)return[{dir:"desc",field:i.fieldUsage.resultIndex}];if(_le(i.f))return[{dir:"desc",field:i.fieldUsage.resultIndex}]}return e?[{dir:"asc",field:e}]:[]}addStructToJoin(e,r,i,s){var o;const u=e.getIdentifier();if(s.indexOf(u)!==-1)return;let a;if(a=this.root().joins.get(u)){a.uniqueKeyPossibleUses.add_use(i);return}let l;const c=(o=e.parent)===null||o===void 0?void 0:o.getJoinableParent();c&&(this.addStructToJoin(c,r,void 0,s),l=this.root().joins.get(c.getIdentifier()));const f=e.structDef;(0,Me.isJoinedSource)(f)&&e.parent&&f.onExpression&&s.indexOf(u)===-1&&r.addDependantExpr(this,e.parent,f.onExpression,[...s,u]),(a=this.root().joins.get(u))||(a=new mtt(e,u,l),this.root().joins.set(u,a)),a.uniqueKeyPossibleUses.add_use(i)}findJoins(e){for(const r of this.fields())r.f instanceof gs||this.addStructToJoin(r.f.getJoinableParent(),e,r.f.uniqueKeyPossibleUse(),[]);for(const r of this.structs())r.findJoins(e)}root(){if(this.parent)return this.parent.root();throw new Error("Internal Error, Null parent FieldInstanceResult")}getUngroupPartitions(e){let r=[],i=this,s=[],o=[];if(e===void 0||e.type==="all"){const a=(e==null?void 0:e.fields)||[];s=this.fields(l=>S2(l.f)&&l.fieldUsage.type==="result"&&a.indexOf(l.f.getIdentifier())===-1).map(l=>l.f.getIdentifier())}else s=e.fields;let u=!0;for(;i!==void 0;)(u||(e==null?void 0:e.type)==="exclude")&&(o=o.concat(i.fields(a=>To(a.f)&&a.fieldUsage.type==="result").map(a=>a.f.getIdentifier()))),r=r.concat(i.fields(a=>To(a.f)&&a.fieldUsage.type==="result"&&s.indexOf(a.f.getIdentifier())===-1)),i=i.parent,u=!1;for(const a of(e==null?void 0:e.fields)||[])if(o.indexOf(a)===-1)throw new Error(`${e==null?void 0:e.type}(): unknown field name "${a}" or name not in scope.`);return r}assignFieldsToGroups(){for(const[e,r]of this.ungroupedSets)for(const i of this.getUngroupPartitions(r))i.additionalGroupSets.push(r.groupSet);for(const e of this.structs())e.assignFieldsToGroups()}}class ptt extends Pa{constructor(e){super(e,void 0),this.joins=new Map,this.havings=new Fn.AndChain,this.isComplexQuery=!1,this.queryUsesPartitioning=!1,this.computeOnlyGroups=[],this.elimatedComputeGroups=!1}root(){return this}eliminateComputeGroupsSQL(){return this.elimatedComputeGroups||this.computeOnlyGroups.length===0?"":(this.elimatedComputeGroups=!0,`group_set NOT IN (${this.computeOnlyGroups.join(",")})`)}calculateSymmetricAggregates(){let e;for(const[r,i]of this.joins)if(i.parentRelationship()==="many_to_many"||i.forceAllSymmetricCalculations())e="0never";else if(e===void 0)e=r;else if(i.parentRelationship()==="one_to_many"){const o=i.queryStruct;o.parent&&o.parent.getIdentifier()===e?e=r:e="0never"}for(const[r,i]of this.joins)i.leafiest=r===e;for(const[r,i]of this.joins)if(i.leafiest&&i.parent!==void 0&&i.uniqueKeyPossibleUses.has("count")||!i.leafiest&&i.uniqueKeyPossibleUses.hasAsymetricFunctions()){let s=i;for(;s;)s.queryStruct.primaryKey()||(s.makeUniqueKey=!0),s.queryStruct.structDef.type==="array"?s=s.parent:s=void 0}}}class mtt{constructor(e,r,i){this.queryStruct=e,this.alias=r,this.parent=i,this.uniqueKeyPossibleUses=new ott,this.makeUniqueKey=!1,this.leafiest=!1,this.children=[],i&&i.children.push(this);const s=this.queryStruct.structDef;(0,Me.isSourceDef)(s)&&s.filterList&&(this.joinFilterConditions=s.filterList.map(o=>new TB({type:"boolean",name:"ignoreme",e:o.e},this.queryStruct)))}parentRelationship(){if(this.queryStruct.parent===void 0)return"root";const e=this.queryStruct.structDef;if((0,Me.isJoined)(e))switch(e.join){case"one":return"many_to_one";case"cross":return"many_to_many";case"many":return"one_to_many"}throw new Error(`Internal error unknown relationship type to parent for ${this.queryStruct.structDef.name}`)}forceAllSymmetricCalculations(){if(this.queryStruct.parent===void 0)return!1;const e=this.queryStruct.structDef;return(0,Me.isJoined)(e)?e.matrixOperation==="right"||e.matrixOperation==="full":!1}getDialectFieldList(){return v2(this.queryStruct.structDef)}}class gtt{static nextStructDef(e,r){const i=new p0(e,void 0,{model:new M4(void 0)},{}),s={type:"turtle",name:"ignoreme",pipeline:[r]};return ms.makeQuery(s,i,new C2(!0,void 0),!1).getResultStructDef()}}js.Segment=gtt;function ytt(t,e){const r=new p0(t,void 0,{model:new M4(void 0)},{});return ms.makeQuery(e,r,new C2(!0,void 0),!1).getResultStructDef()}js.getResultStructDefForView=ytt;function Ett(t,e){const i=new M4(t).compileQuery(e);return i.structs[i.structs.length-1]}js.getResultStructDefForQuery=Ett;class ms extends bB{constructor(e,r,i,s){super(e,r),this.prepared=!1,this.maxDepth=0,this.maxGroupSet=0,this.fieldDef=e,this.rootResult=new ptt(e),this.stageWriter=i,this.firstSegment=e.pipeline[0],this.isJoinedSubquery=s}static makeQuery(e,r,i=void 0,s){let o=r,u=r.applyStructFiltersToTurtleDef(e);const a=u.pipeline[0],l=r.structDef;switch(i!==void 0&&(0,Me.isQuerySegment)(a)&&a.extendSource!==void 0&&(o=new p0({...l,fields:[...l.fields,...a.extendSource]},r.sourceArguments,o.parent?{struct:o}:{model:o.model},o.prepareResultOptions),u={...u,pipeline:[{...a,extendSource:void 0},...u.pipeline.slice(1)]}),(0,Me.isSourceDef)(l)&&l.queryTimezone&&(0,Me.isQuerySegment)(a)&&a.queryTimezone===void 0&&(a.queryTimezone=l.queryTimezone),a.type){case"reduce":return new Att(u,o,i,s);case"project":return new _tt(u,o,i,s);case"index":return new Stt(u,o,i,s);case"raw":return new Ctt(u,o,i,s);case"partial":throw new Error("Attempt to make query out of partial stage")}}inNestedPipeline(){return this.parent.structDef.type==="nest_source"}expandField(e){const r=e.type==="fieldref"?this.parent.getQueryFieldReference(e.path,e.annotation):this.parent.makeQueryField(e);return{as:r.getIdentifier(),field:r}}addDependantPath(e,r,i,s,o){if(i.length===0)return;const u=r.getFieldByName(i),a=u instanceof gs?u.queryStruct.getJoinableParent():u.parent.getJoinableParent();e.root().addStructToJoin(a,this,s,o)}findRecordAliases(e,r){for(const i of r){const s=e.getFieldByName([i]);if(s instanceof gs){const o=s.queryStruct;o.structDef.type==="record"&&(0,Me.hasExpression)(o.structDef)&&o.parent&&o.informOfAliasValue(this.exprToSQL(this.rootResult,o.parent,o.structDef.e)),e=o}}}addDependantExpr(e,r,i,s){var o;for(const u of(0,Fn.exprWalk)(i)){if(u.node==="function_call"){(0,Me.expressionIsAnalytic)(u.overload.returnType.expressionType)&&this.parent.dialect.cantPartitionWindowFunctionsOnExpressions&&(e.root().isComplexQuery=!0,e.root().queryUsesPartitioning=!0);const a=(o=u.overload.isSymmetric)!==null&&o!==void 0?o:!1,c=(0,Me.expressionIsAggregate)(u.overload.returnType.expressionType)&&!a,f=c?"generic_asymmetric_aggregate":void 0;u.structPath?this.addDependantPath(e,r,u.structPath,f,s):c&&e.addStructToJoin(r,this,f,s),(0,Me.expressionIsAnalytic)(u.overload.returnType.expressionType)&&(e.root().queryUsesPartitioning=!0)}else if((u.node==="all"||u.node==="exclude")&&(e.resultUsesUngrouped=!0,e.root().isComplexQuery=!0,e.root().queryUsesPartitioning=!0,u.fields&&u.fields.length>0)){const a=u.fields.sort().join("|")+u.node;e.ungroupedSets.get(a)===void 0&&e.ungroupedSets.set(a,{type:u.node,fields:u.fields,groupSet:-1})}if(u.node==="field"){this.findRecordAliases(r,u.path);const a=r.getDimensionOrMeasureByName(u.path);(0,Me.hasExpression)(a.fieldDef)?this.addDependantExpr(e,a.parent,a.fieldDef.e,s):e.root().addStructToJoin(a.parent.getJoinableParent(),this,void 0,s)}else u.node==="aggregate"&&(0,Me.isAsymmetricExpr)(u)&&(u.structPath?(this.findRecordAliases(r,u.structPath),this.addDependantPath(e,r,u.structPath,u.function,s)):e.addStructToJoin(r,this,u.function,s))}}addDependancies(e,r){(0,Me.hasExpression)(r.fieldDef)&&this.addDependantExpr(e,r.parent,r.fieldDef.e,[])}getSegmentFields(e){const r=e.firstSegment;return r.type==="index"?r.indexFields:(0,Me.isQuerySegment)(r)?r.queryFields:[]}expandFields(e){let r=1;for(const i of this.getSegmentFields(e)){const{as:s,field:o}=this.expandField(i);if(o instanceof ms){if(this.firstSegment.type==="project")throw new Error(`Nested views cannot be used in select - '${o.fieldDef.name}'`);const u=new Pa(o.fieldDef,e);this.expandFields(u),e.add(s,u)}else if(o instanceof qs){if(e.addField(s,o,{resultIndex:r,type:"result"}),this.addDependancies(e,o),_le(o)&&this.firstSegment.type==="project")throw new Error(`Aggregate Fields cannot be used in select - '${o.fieldDef.name}'`)}else o instanceof gs&&e.addField(s,o,{resultIndex:r,type:"result"});r++}this.expandFilters(e)}expandFilters(e){if(e.firstSegment.filterList!==void 0){for(const r of e.firstSegment.filterList||[]){const i=this.parent;this.addDependantExpr(e,i,r.e,[])}for(const r of e.root().joins.values()||[])for(const i of r.joinFilterConditions||[])i.fieldDef.type==="boolean"&&i.fieldDef.e&&this.addDependantExpr(e,i.parent,i.fieldDef.e,[])}}generateSQLFilters(e,r){const i=new Fn.AndChain,s=e.firstSegment.filterList;if(s===void 0)return i;for(const o of s||[]){const u=this.parent;if(r==="having"&&(0,Me.expressionIsCalculation)(o.expressionType)||r==="where"&&(0,Me.expressionIsScalar)(o.expressionType)){const a=this.exprToSQL(e,u,o.e,void 0);i.add(a)}}return i}prepare(e){this.prepared||(this.expandFields(this.rootResult),this.rootResult.addStructToJoin(this.parent,this,void 0,[]),this.rootResult.findJoins(this),this.addAlwaysJoins(this.rootResult),this.rootResult.calculateSymmetricAggregates(),this.prepared=!0)}addAlwaysJoins(e){var r;const i=this.fieldDef.pipeline[0];if(i.type!=="raw"){const s=(r=i.alwaysJoins)!==null&&r!==void 0?r:[];for(const o of s){const u=this.parent.getChildByName(o);u instanceof gs&&e.addStructToJoin(u.queryStruct,this,void 0,[])}}}getResultMetadata(e){if(e instanceof Vi){if(e.fieldUsage.type==="result"){const r=e.f.fieldDef;let i;const s=e.f.parent.getFullOutputName()+(r.name||r.as||"undefined"),o=(0,Me.hasExpression)(r)?r.code:void 0,u=[s],a=e.f.referenceId,l={sourceField:s,sourceExpression:o,sourceClasses:u,referenceId:a};return k4(e.f)?(i=e.f.getFilterList(),{...l,filterList:i,fieldKind:"measure"}):S2(e.f)?{...l,filterList:i,fieldKind:"dimension"}:void 0}return}else if(e instanceof Pa){const r=e.turtleDef.name||e.turtleDef.as,i=r?[r]:[],s=e.firstSegment.filterList,o=e.turtleDef.pipeline[e.turtleDef.pipeline.length-1],u=(0,Me.isRawSegment)(o)?void 0:o.limit;let a;if((0,Me.isQuerySegment)(o)&&(a=o.orderBy),r)return{sourceField:r,filterList:s,sourceClasses:i,fieldKind:"struct",limit:u,orderBy:a}}}getResultStructDef(e=this.rootResult,r=!0){const i=[];let s;this.prepare(void 0);let o=0;for(const[a,l]of e.allFields){const c=this.getResultMetadata(l);if(l instanceof Pa){const{structDef:f,repeatedResultType:x}=this.generateTurtlePipelineSQL(l,new C2(!0,void 0),"<nosource>");if(x==="nested"){const h={...f,type:"array",elementTypeDef:{type:"record_element"},join:"many",name:a,resultMetadata:c};i.push(h)}else{const h={...f,type:"record",join:"one",name:a,resultMetadata:c};i.push(h)}}else if(l instanceof Vi&&l.fieldUsage.type==="result"){S2(l.f)&&(o===0&&r?s=a:s=void 0,o++);let f=l.f.fieldDef;(0,Me.hasExpression)(f)&&(f={...f},delete f.e,delete f.code,delete f.expressionType);const x=f.location,h=f.annotation;switch(f.type){case"boolean":case"json":case"string":i.push({name:a,type:f.type,resultMetadata:c,location:x,annotation:h});break;case"date":case"timestamp":{const p=f.timeframe,m={type:f.type};p&&(m.timeframe=p),i.push({name:a,...m,resultMetadata:c,location:x,annotation:h});break}case"number":i.push({name:a,numberType:f.numberType,type:"number",resultMetadata:c,location:x,annotation:h});break;case"sql native":case"record":case"array":{i.push({...f,resultMetadata:c});break}default:throw new Error(`unknown Field Type in query ${JSON.stringify(f)}`)}}}const u={type:"query_result",name:this.resultStage||"result",fields:i,dialect:this.parent.dialect.name,primaryKey:s,connection:this.parent.connectionName,resultMetadata:this.getResultMetadata(this.rootResult),queryTimezone:e.getQueryInfo().queryTimezone};return this.parent.structDef.modelAnnotation&&(u.modelAnnotation=this.parent.structDef.modelAnnotation),u}generateSQLJoinBlock(e,r,i){var s;let o="";const u=r.queryStruct,a=u.structDef;if((s=u.eventStream)===null||s===void 0||s.emit("join-used",{name:(0,Me.getIdentifier)(a)}),u.maybeEmitParameterizedSourceUsage(),(0,Me.isJoinedSource)(a)){let l=u.structSourceSQL(e);const c=(a.matrixOperation||"left").toUpperCase();if(!this.parent.dialect.supportsFullJoin&&c==="FULL")throw new Error("FULL JOIN not supported");if(r.makeUniqueKey){const p=this.generateSQLPassthroughKeys(u);l=`(SELECT ${u.dialect.sqlGenerateUUID()} as ${u.dialect.sqlMaybeQuoteIdentifier("__distinct_key")}, x.* ${p} FROM ${l} as x)`}let f="";if(u.parent===void 0)throw new Error("Expected joined struct to have a parent.");a.onExpression?f=new TB({type:"boolean",name:"ignoreme",e:a.onExpression},u.parent).generateExpression(this.rootResult):f="1=1";let x="",h;if(r.joinFilterConditions&&(h=r.joinFilterConditions.map(p=>p.generateExpression(this.rootResult))),r.children.length===0||h===void 0||!this.parent.dialect.supportsComplexFilteredSources)h!==void 0&&h.length>=1&&(x=` AND (${h.join(" AND ")})`),o+=` ${c} JOIN ${l} AS ${r.alias}
1456
+ )`}/(${o}*1.0))`;return a=`CAST(${a} AS ${t.defaultNumberType})`,a}class Vi{constructor(e,r,i){this.f=e,this.fieldUsage=r,this.parent=i,this.type="field",this.additionalGroupSets=[]}root(){return this.parent.root()}getSQL(){let e=this.f.generateExpression(this.parent);return To(this.f)&&(e=this.f.caseGroup(this.parent.groupSet>0?this.parent.childGroups.concat(this.additionalGroupSets):[],e)),e}getAnalyticalSQL(e){return this.analyticalSQL===void 0?this.getSQL():e&&this.partitionSQL?this.partitionSQL:this.analyticalSQL}}class Pa{constructor(e,r){this.turtleDef=e,this.parent=r,this.type="query",this.allFields=new Map,this.groupSet=0,this.depth=0,this.childGroups=[],this.hasHaving=!1,this.ungroupedSets=new Map,this.resultUsesUngrouped=!1,this.firstSegment=e.pipeline[0]}getQueryInfo(){if(!(0,Me.isIndexSegment)(this.firstSegment)&&!(0,Me.isRawSegment)(this.firstSegment)){const{queryTimezone:e}=this.firstSegment;if(e)return{queryTimezone:e}}return{}}addField(e,r,i){const s=this.allFields.get(e);if(s){if(s.type==="query")throw new Error(`Redefinition of field ${r.fieldDef.name} as struct`);if(s.fieldUsage.type==="result"){if(i.type!=="result")return;throw new Error(`Ambiguous output field name '${r.fieldDef.name}'.`)}}this.add(e,new Vi(r,i,this))}parentGroupSet(){return this.parent?this.parent.groupSet:0}add(e,r){this.allFields.set(e,r)}hasField(e){const r=this.allFields.get(e);return r!==void 0&&r instanceof Vi}getField(e){const r=this.allFields.get(e);if(r===void 0)throw new Error(`Internal Error, field Not defined ${e}`);if(r instanceof Vi)return r;throw new Error(`can't use a query here ${e}`)}getFieldByNumber(e){for(const[r,i]of this.allFields)if(i instanceof Vi&&i.fieldUsage.type==="result"&&i.fieldUsage.resultIndex===e)return{name:r,fif:i};throw new Error(`Invalid Order By index '${e}`)}computeGroups(e,r){e===0&&this.resultUsesUngrouped&&this.root().computeOnlyGroups.push(e++);for(const[u,a]of this.ungroupedSets){const l=e++;a.groupSet=l,this.root().computeOnlyGroups.push(l)}this.groupSet=e++,this.depth=r;let i=r,s=!1,o=[this.groupSet];for(const[u,a]of this.allFields)if(a.type==="query"){const l=a;if(s=!0,l.firstSegment.type==="reduce"){const c=l.computeGroups(e,r+1);o=o.concat(c.children),e=c.nextGroupSetNumber,c.maxDepth>i&&(i=c.maxDepth)}}return this.childGroups=o,{nextGroupSetNumber:e,maxDepth:i,children:o,isComplex:s}}fields(e=void 0){const r=[];for(const i of this.allFields.values())i instanceof Vi&&(e===void 0||e(i))&&r.push(i);return r}fieldNames(e){const r=[];for(const[i,s]of this.allFields)s instanceof Vi&&(e===void 0||e(s))&&r.push(i);return r}getRepeatedResultType(){let e="inline_all_numbers";for(const r of this.fields())if(r.fieldUsage.type==="result"){if(S2(r.f))return"nested";r.f instanceof gs&&(e="inline")}return e}structs(){const e=[];for(const r of this.allFields.values())r instanceof Pa&&e.push(r);return e}selectStructs(e,r){r(this)&&e.push(this);for(const i of this.structs())i.selectStructs(e,r);return e}calculateDefaultOrderBy(){let e;for(const[r,i]of this.allFields)if(i instanceof Vi&&i.fieldUsage.type==="result"){if(i.f.fieldDef.type==="turtle"||(0,Me.isJoined)(i.f.fieldDef)||(0,Me.expressionIsAnalytic)(i.f.fieldDef.expressionType))continue;if(e||(e=i.fieldUsage.resultIndex),["date","timestamp"].indexOf(i.f.fieldDef.type)>-1)return[{dir:"desc",field:i.fieldUsage.resultIndex}];if(_le(i.f))return[{dir:"desc",field:i.fieldUsage.resultIndex}]}return e?[{dir:"asc",field:e}]:[]}addStructToJoin(e,r,i,s){var o;const u=e.getIdentifier();if(s.indexOf(u)!==-1)return;let a;if(a=this.root().joins.get(u)){a.uniqueKeyPossibleUses.add_use(i);return}let l;const c=(o=e.parent)===null||o===void 0?void 0:o.getJoinableParent();c&&(this.addStructToJoin(c,r,void 0,s),l=this.root().joins.get(c.getIdentifier()));const f=e.structDef;(0,Me.isJoinedSource)(f)&&e.parent&&f.onExpression&&s.indexOf(u)===-1&&r.addDependantExpr(this,e.parent,f.onExpression,[...s,u]),(a=this.root().joins.get(u))||(a=new mtt(e,u,l),this.root().joins.set(u,a)),a.uniqueKeyPossibleUses.add_use(i)}findJoins(e){for(const r of this.fields())r.f instanceof gs||this.addStructToJoin(r.f.getJoinableParent(),e,r.f.uniqueKeyPossibleUse(),[]);for(const r of this.structs())r.findJoins(e)}root(){if(this.parent)return this.parent.root();throw new Error("Internal Error, Null parent FieldInstanceResult")}getUngroupPartitions(e){let r=[],i=this,s=[],o=[];if(e===void 0||e.type==="all"){const a=(e==null?void 0:e.fields)||[];s=this.fields(l=>S2(l.f)&&l.fieldUsage.type==="result"&&a.indexOf(l.f.getIdentifier())===-1).map(l=>l.f.getIdentifier())}else s=e.fields;let u=!0;for(;i!==void 0;)(u||(e==null?void 0:e.type)==="exclude")&&(o=o.concat(i.fields(a=>To(a.f)&&a.fieldUsage.type==="result").map(a=>a.f.getIdentifier()))),r=r.concat(i.fields(a=>To(a.f)&&a.fieldUsage.type==="result"&&s.indexOf(a.f.getIdentifier())===-1)),i=i.parent,u=!1;for(const a of(e==null?void 0:e.fields)||[])if(o.indexOf(a)===-1)throw new Error(`${e==null?void 0:e.type}(): unknown field name "${a}" or name not in scope.`);return r}assignFieldsToGroups(){for(const[e,r]of this.ungroupedSets)for(const i of this.getUngroupPartitions(r))i.additionalGroupSets.push(r.groupSet);for(const e of this.structs())e.assignFieldsToGroups()}}class ptt extends Pa{constructor(e){super(e,void 0),this.joins=new Map,this.havings=new Fn.AndChain,this.isComplexQuery=!1,this.queryUsesPartitioning=!1,this.computeOnlyGroups=[],this.elimatedComputeGroups=!1}root(){return this}eliminateComputeGroupsSQL(){return this.elimatedComputeGroups||this.computeOnlyGroups.length===0?"":(this.elimatedComputeGroups=!0,`group_set NOT IN (${this.computeOnlyGroups.join(",")})`)}calculateSymmetricAggregates(){let e;for(const[r,i]of this.joins)if(i.parentRelationship()==="many_to_many"||i.forceAllSymmetricCalculations())e="0never";else if(e===void 0)e=r;else if(i.parentRelationship()==="one_to_many"){const o=i.queryStruct;o.parent&&o.parent.getIdentifier()===e?e=r:e="0never"}for(const[r,i]of this.joins)i.leafiest=r===e;for(const[r,i]of this.joins)if(i.leafiest&&i.parent!==void 0&&i.uniqueKeyPossibleUses.has("count")||!i.leafiest&&i.uniqueKeyPossibleUses.hasAsymetricFunctions()){let s=i;for(;s;)s.queryStruct.primaryKey()||(s.makeUniqueKey=!0),s.queryStruct.structDef.type==="array"?s=s.parent:s=void 0}}}class mtt{constructor(e,r,i){this.queryStruct=e,this.alias=r,this.parent=i,this.uniqueKeyPossibleUses=new ott,this.makeUniqueKey=!1,this.leafiest=!1,this.children=[],i&&i.children.push(this);const s=this.queryStruct.structDef;(0,Me.isSourceDef)(s)&&s.filterList&&(this.joinFilterConditions=s.filterList.map(o=>new TB({type:"boolean",name:"ignoreme",e:o.e},this.queryStruct)))}parentRelationship(){if(this.queryStruct.parent===void 0)return"root";const e=this.queryStruct.structDef;if((0,Me.isJoined)(e))switch(e.join){case"one":return"many_to_one";case"cross":return"many_to_many";case"many":return"one_to_many"}throw new Error(`Internal error unknown relationship type to parent for ${this.queryStruct.structDef.name}`)}forceAllSymmetricCalculations(){if(this.queryStruct.parent===void 0)return!1;const e=this.queryStruct.structDef;return(0,Me.isJoined)(e)?e.matrixOperation==="right"||e.matrixOperation==="full":!1}getDialectFieldList(){return v2(this.queryStruct.structDef)}}class gtt{static nextStructDef(e,r){const i=new p0(e,void 0,{model:new M4(void 0)},{}),s={type:"turtle",name:"ignoreme",pipeline:[r]};return ms.makeQuery(s,i,new C2(!0,void 0),!1).getResultStructDef()}}js.Segment=gtt;function ytt(t,e){const r=new p0(t,void 0,{model:new M4(void 0)},{});return ms.makeQuery(e,r,new C2(!0,void 0),!1).getResultStructDef()}js.getResultStructDefForView=ytt;function Ett(t,e){const i=new M4(t).compileQuery(e);return i.structs[i.structs.length-1]}js.getResultStructDefForQuery=Ett;class ms extends bB{constructor(e,r,i,s){super(e,r),this.prepared=!1,this.maxDepth=0,this.maxGroupSet=0,this.fieldDef=e,this.rootResult=new ptt(e),this.stageWriter=i,this.firstSegment=e.pipeline[0],this.isJoinedSubquery=s}static makeQuery(e,r,i=void 0,s){let o=r,u=r.applyStructFiltersToTurtleDef(e);const a=u.pipeline[0],l=r.structDef;switch(i!==void 0&&(0,Me.isQuerySegment)(a)&&a.extendSource!==void 0&&(o=new p0({...l,fields:[...l.fields,...a.extendSource]},r.sourceArguments,o.parent?{struct:o}:{model:o.model},o.prepareResultOptions),u={...u,pipeline:[{...a,extendSource:void 0},...u.pipeline.slice(1)]}),(0,Me.isSourceDef)(l)&&l.queryTimezone&&(0,Me.isQuerySegment)(a)&&a.queryTimezone===void 0&&(a.queryTimezone=l.queryTimezone),a.type){case"reduce":return new Att(u,o,i,s);case"project":return new _tt(u,o,i,s);case"index":return new Stt(u,o,i,s);case"raw":return new Ctt(u,o,i,s);case"partial":throw new Error("Attempt to make query out of partial stage")}}inNestedPipeline(){return this.parent.structDef.type==="nest_source"}expandField(e){const r=e.type==="fieldref"?this.parent.getQueryFieldReference(e.path,e.annotation):this.parent.makeQueryField(e);return{as:r.getIdentifier(),field:r}}addDependantPath(e,r,i,s,o){if(i.length===0)return;const u=r.getFieldByName(i),a=u instanceof gs?u.queryStruct.getJoinableParent():u.parent.getJoinableParent();e.root().addStructToJoin(a,this,s,o)}findRecordAliases(e,r){for(const i of r){const s=e.getFieldByName([i]);if(s instanceof gs){const o=s.queryStruct;o.structDef.type==="record"&&(0,Me.hasExpression)(o.structDef)&&o.parent&&o.informOfAliasValue(this.exprToSQL(this.rootResult,o.parent,o.structDef.e)),e=o}}}addDependantExpr(e,r,i,s){var o;for(const u of(0,Fn.exprWalk)(i)){if(u.node==="function_call"){(0,Me.expressionIsAnalytic)(u.overload.returnType.expressionType)&&this.parent.dialect.cantPartitionWindowFunctionsOnExpressions&&(e.root().isComplexQuery=!0,e.root().queryUsesPartitioning=!0);const a=(o=u.overload.isSymmetric)!==null&&o!==void 0?o:!1,c=(0,Me.expressionIsAggregate)(u.overload.returnType.expressionType)&&!a,f=c?"generic_asymmetric_aggregate":void 0;u.structPath?this.addDependantPath(e,r,u.structPath,f,s):c&&e.addStructToJoin(r,this,f,s),(0,Me.expressionIsAnalytic)(u.overload.returnType.expressionType)&&(e.root().queryUsesPartitioning=!0)}else if((u.node==="all"||u.node==="exclude")&&(e.resultUsesUngrouped=!0,e.root().isComplexQuery=!0,e.root().queryUsesPartitioning=!0,u.fields&&u.fields.length>0)){const a=u.fields.sort().join("|")+u.node;e.ungroupedSets.get(a)===void 0&&e.ungroupedSets.set(a,{type:u.node,fields:u.fields,groupSet:-1})}if(u.node==="field"){this.findRecordAliases(r,u.path);const a=r.getDimensionOrMeasureByName(u.path);(0,Me.hasExpression)(a.fieldDef)?this.addDependantExpr(e,a.parent,a.fieldDef.e,s):e.root().addStructToJoin(a.parent.getJoinableParent(),this,void 0,s)}else u.node==="aggregate"&&(0,Me.isAsymmetricExpr)(u)&&(u.structPath?(this.findRecordAliases(r,u.structPath),this.addDependantPath(e,r,u.structPath,u.function,s)):e.addStructToJoin(r,this,u.function,s))}}addDependancies(e,r){(0,Me.hasExpression)(r.fieldDef)&&this.addDependantExpr(e,r.parent,r.fieldDef.e,[])}getSegmentFields(e){const r=e.firstSegment;return r.type==="index"?r.indexFields:(0,Me.isQuerySegment)(r)?r.queryFields:[]}expandFields(e){let r=1;for(const i of this.getSegmentFields(e)){const{as:s,field:o}=this.expandField(i);if(o instanceof ms){if(this.firstSegment.type==="project")throw new Error(`Nested views cannot be used in select - '${o.fieldDef.name}'`);const u=new Pa(o.fieldDef,e);this.expandFields(u),e.add(s,u)}else if(o instanceof qs){if(e.addField(s,o,{resultIndex:r,type:"result"}),this.addDependancies(e,o),_le(o)&&this.firstSegment.type==="project")throw new Error(`Aggregate Fields cannot be used in select - '${o.fieldDef.name}'`)}else o instanceof gs&&(o.isAtomic()&&this.addDependancies(e,o),e.addField(s,o,{resultIndex:r,type:"result"}));r++}this.expandFilters(e)}expandFilters(e){if(e.firstSegment.filterList!==void 0){for(const r of e.firstSegment.filterList||[]){const i=this.parent;this.addDependantExpr(e,i,r.e,[])}for(const r of e.root().joins.values()||[])for(const i of r.joinFilterConditions||[])i.fieldDef.type==="boolean"&&i.fieldDef.e&&this.addDependantExpr(e,i.parent,i.fieldDef.e,[])}}generateSQLFilters(e,r){const i=new Fn.AndChain,s=e.firstSegment.filterList;if(s===void 0)return i;for(const o of s||[]){const u=this.parent;if(r==="having"&&(0,Me.expressionIsCalculation)(o.expressionType)||r==="where"&&(0,Me.expressionIsScalar)(o.expressionType)){const a=this.exprToSQL(e,u,o.e,void 0);i.add(a)}}return i}prepare(e){this.prepared||(this.expandFields(this.rootResult),this.rootResult.addStructToJoin(this.parent,this,void 0,[]),this.rootResult.findJoins(this),this.addAlwaysJoins(this.rootResult),this.rootResult.calculateSymmetricAggregates(),this.prepared=!0)}addAlwaysJoins(e){var r;const i=this.fieldDef.pipeline[0];if(i.type!=="raw"){const s=(r=i.alwaysJoins)!==null&&r!==void 0?r:[];for(const o of s){const u=this.parent.getChildByName(o);u instanceof gs&&e.addStructToJoin(u.queryStruct,this,void 0,[])}}}getResultMetadata(e){if(e instanceof Vi){if(e.fieldUsage.type==="result"){const r=e.f.fieldDef;let i;const s=e.f.parent.getFullOutputName()+(r.name||r.as||"undefined"),o=(0,Me.hasExpression)(r)?r.code:void 0,u=[s],a=e.f.referenceId,l={sourceField:s,sourceExpression:o,sourceClasses:u,referenceId:a};return k4(e.f)?(i=e.f.getFilterList(),{...l,filterList:i,fieldKind:"measure"}):S2(e.f)?{...l,filterList:i,fieldKind:"dimension"}:void 0}return}else if(e instanceof Pa){const r=e.turtleDef.name||e.turtleDef.as,i=r?[r]:[],s=e.firstSegment.filterList,o=e.turtleDef.pipeline[e.turtleDef.pipeline.length-1],u=(0,Me.isRawSegment)(o)?void 0:o.limit;let a;if((0,Me.isQuerySegment)(o)&&(a=o.orderBy),r)return{sourceField:r,filterList:s,sourceClasses:i,fieldKind:"struct",limit:u,orderBy:a}}}getResultStructDef(e=this.rootResult,r=!0){const i=[];let s;this.prepare(void 0);let o=0;for(const[a,l]of e.allFields){const c=this.getResultMetadata(l);if(l instanceof Pa){const{structDef:f,repeatedResultType:x}=this.generateTurtlePipelineSQL(l,new C2(!0,void 0),"<nosource>");if(x==="nested"){const h={...f,type:"array",elementTypeDef:{type:"record_element"},join:"many",name:a,resultMetadata:c};i.push(h)}else{const h={...f,type:"record",join:"one",name:a,resultMetadata:c};i.push(h)}}else if(l instanceof Vi&&l.fieldUsage.type==="result"){S2(l.f)&&(o===0&&r?s=a:s=void 0,o++);let f=l.f.fieldDef;(0,Me.hasExpression)(f)&&(f={...f},delete f.e,delete f.code,delete f.expressionType);const x=f.location,h=f.annotation;switch(f.type){case"boolean":case"json":case"string":i.push({name:a,type:f.type,resultMetadata:c,location:x,annotation:h});break;case"date":case"timestamp":{const p=f.timeframe,m={type:f.type};p&&(m.timeframe=p),i.push({name:a,...m,resultMetadata:c,location:x,annotation:h});break}case"number":i.push({name:a,numberType:f.numberType,type:"number",resultMetadata:c,location:x,annotation:h});break;case"sql native":case"record":case"array":{i.push({...f,resultMetadata:c});break}default:throw new Error(`unknown Field Type in query ${JSON.stringify(f)}`)}}}const u={type:"query_result",name:this.resultStage||"result",fields:i,dialect:this.parent.dialect.name,primaryKey:s,connection:this.parent.connectionName,resultMetadata:this.getResultMetadata(this.rootResult),queryTimezone:e.getQueryInfo().queryTimezone};return this.parent.structDef.modelAnnotation&&(u.modelAnnotation=this.parent.structDef.modelAnnotation),u}generateSQLJoinBlock(e,r,i){var s;let o="";const u=r.queryStruct,a=u.structDef;if((s=u.eventStream)===null||s===void 0||s.emit("join-used",{name:(0,Me.getIdentifier)(a)}),u.maybeEmitParameterizedSourceUsage(),(0,Me.isJoinedSource)(a)){let l=u.structSourceSQL(e);const c=(a.matrixOperation||"left").toUpperCase();if(!this.parent.dialect.supportsFullJoin&&c==="FULL")throw new Error("FULL JOIN not supported");if(r.makeUniqueKey){const p=this.generateSQLPassthroughKeys(u);l=`(SELECT ${u.dialect.sqlGenerateUUID()} as ${u.dialect.sqlMaybeQuoteIdentifier("__distinct_key")}, x.* ${p} FROM ${l} as x)`}let f="";if(u.parent===void 0)throw new Error("Expected joined struct to have a parent.");a.onExpression?f=new TB({type:"boolean",name:"ignoreme",e:a.onExpression},u.parent).generateExpression(this.rootResult):f="1=1";let x="",h;if(r.joinFilterConditions&&(h=r.joinFilterConditions.map(p=>p.generateExpression(this.rootResult))),r.children.length===0||h===void 0||!this.parent.dialect.supportsComplexFilteredSources)h!==void 0&&h.length>=1&&(x=` AND (${h.join(" AND ")})`),o+=` ${c} JOIN ${l} AS ${r.alias}
1457
1457
  ON ${f}${x}
1458
1458
  `;else{let p=`SELECT ${r.alias}.*`,m="";for(const g of r.children)m+=this.generateSQLJoinBlock(e,g,i+1),p+=`, ${this.parent.dialect.sqlSelectAliasAsStruct(g.alias,v2(g.queryStruct.structDef))} AS ${g.alias}`;return p+=`
1459
1459
  FROM ${l} AS ${r.alias}
@@ -1858,7 +1858,7 @@ xyyzz{{||}}~~~Ҳ
1858
1858
  | ${c}`,a>0&&(s=s+`
1859
1859
  | ${" ".repeat(a)}^`)}else s=`line ${u+1}: char ${a}: ${i.message}`}r!==o&&(s=`FILE: ${o}
1860
1860
  `+s,r=o),e!==""?e=`${e}
1861
- ${s}`:e=s}return e}childRequest(e){var r;const i=decodeURI(new URL(e,this.sourceURL).toString()),s=(r=this.childTranslators.get(i))===null||r===void 0?void 0:r.translate();if(s!=null&&s.compileSQL)return{compileSQL:s.compileSQL}}getChildExports(e){const r={},i=decodeURI(new URL(e,this.sourceURL).toString()),s=this.childTranslators.get(i);if(s&&s.translate().modelDef)for(const u of s.modelDef.exports){const a=s.modelDef.contents[u];((0,mht.isSourceDef)(a)||a.type==="query")&&(r[u]=a)}return r}translate(e){if(this.finalAnswer)return this.finalAnswer;const r=this.translateStep.step(this,e);return r.final&&(this.finalAnswer=r),r}translatorForDependency(e){return this.childTranslators.get(e)}importAt(e){for(let r=0;r<this.imports.length;r++){const i=this.imports[r];if((0,rP.locationContainsPosition)(i.location,e))return i}}metadata(){return this.metadataStep.step(this)}modelAnnotation(e){return this.modelAnnotationStep.step(this,e)}tablePathInfo(){return this.tablePathInfoStep.step(this)}completions(e){return this.completionsStep.step(this,e)}helpContext(e){return this.helpContextStep.step(this,e)}defaultLocation(){return{url:this.sourceURL,range:{start:{line:0,character:0},end:{line:0,character:0}}}}rangeFromContext(e){return(0,rP.rangeFromContext)(this.parseStep.sourceInfo,e)}firstReferenceToDialect(e){return this.dialectAlreadyChecked[e]?!1:(this.dialectAlreadyChecked[e]=!0,!0)}experimentalDialectEnabled(e){if(this.allDialectsEnabled)return!0;const r=this.compilerFlags.tag("experimental");return r!==void 0&&(r.bare()||r.has("dialect",e))}}Wc.MalloyTranslation=iP;class zxe extends iP{constructor(e,r){super(e),this.root=r}}Wc.MalloyChildTranslator=zxe;class kht extends iP{constructor(e,r=null,i=null,s=null){super(e,r),this.eventStream=s,this.schemaZone=new nP.Zone,this.importZone=new nP.Zone,this.pretranslatedModels=new Map,this.sqlQueryZone=new nP.Zone,this.root=this,this.logger=new Qxe.BaseMessageLogger(s),i&&this.update(i)}update(e){var r,i,s;this.schemaZone.updateFrom(e.tables,(r=e.errors)===null||r===void 0?void 0:r.tables),this.importZone.updateFrom(e.urls,(i=e.errors)===null||i===void 0?void 0:i.urls),this.sqlQueryZone.updateFrom(e.compileSQL,(s=e.errors)===null||s===void 0?void 0:s.compileSQL);for(const o in e.translations)this.pretranslatedModels.set(o,e.translations[o])}logError(e,r,i){return this.logger.log((0,Qxe.makeLogMessage)(e,r,{severity:"error",...i})),e}}Wc.MalloyTranslator=kht;function Wxe(t){return[...Object.keys(t),...Object.keys(t).map(e=>Wxe(t[e])).flat()]}var r1={};Object.defineProperty(r1,"__esModule",{value:!0}),r1.exploreQueryWalkerBuilder=r1.ExploreQueryWalker=void 0;const Mht=T0;class Gxe{constructor(e){this.inDocument=!1,this.exploreClauseRefs=[],this.tokens=e}exploreQueryAtOffset(e){return this.exploreClauseRefs.find(r=>r.range[0]===void 0||r.range[1]===void 0?!1:r.range[0]<=e&&r.range[1]>=e)}filterAtOffset(e){const r=this.exploreQueryAtOffset(e);if(r)return r.filterRefs.find(i=>i.range[0]===void 0||i.range[1]===void 0?!1:i.range[0]<=e&&i.range[1]>=e)}hasFilterListAtOffset(e){const r=this.exploreQueryAtOffset(e);return r?!!r.filterLists.find(i=>i.range[0]===void 0||i.range[1]===void 0?!1:i.range[0]<=e&&i.range[1]>=e):!1}enterMalloyDocument(){this.inDocument=!0}}r1.ExploreQueryWalker=Gxe;function Pht(t,e){const r=new Gxe(t),i=r;return Mht.ParseTreeWalker.DEFAULT.walk(i,e),r}r1.exploreQueryWalkerBuilder=Pht;var i1={},KE={},Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.getResultStructMetadataAnnotation=Va.convertFieldInfos=Va.modelDefToModelInfo=void 0;const Ya=Gi,sP=js,oP=mi,Vxe=$o;function Uht(t){const e={entries:[],anonymous_queries:[]};for(const[r,i]of Object.entries(t.contents))if(t.exports.includes(r)){if((0,Ya.isSourceDef)(i)){const s=i.parameters&&Object.entries(i.parameters).length>0?Object.entries(i.parameters).map(([u,a])=>(0,Ya.isAtomic)(a)?{name:u,type:ED(a),default_value:Yxe(a.value)}:{name:u,type:{kind:"filter_expression_type"},default_value:Yxe(a.value)}):void 0,o={kind:"source",name:r,schema:{fields:s1(i,i.fields)},parameters:s,annotations:uP(i)};e.entries.push(o)}else if(i.type==="query"){const s=(0,sP.getResultStructDefForQuery)(t,i),o=uP(i),u=s.resultMetadata?yD(s,s.resultMetadata):void 0,a=[...o??[],...u?[u]:[]],l={kind:"source",name:r,schema:{fields:s1(s,s.fields)},annotations:a.length>0?a:void 0};e.entries.push(l)}}for(const r of t.queryList){const i=(0,sP.getResultStructDefForQuery)(t,r),s=uP(r),o=i.resultMetadata?yD(i,i.resultMetadata):void 0,u=[...s??[],...o?[o]:[]],a={schema:{fields:s1(i,i.fields)},annotations:u.length>0?u:void 0};e.anonymous_queries.push(a)}return e}Va.modelDefToModelInfo=Uht;function Yxe(t){if(t!==null)switch(t.node){case"numberLiteral":return{kind:"number_literal",number_value:parseFloat(t.literal)};case"stringLiteral":return{kind:"string_literal",string_value:t.literal};case"filterLiteral":return{kind:"filter_expression_literal",filter_expression_value:t.filterSrc};case"timeLiteral":return{kind:"timestamp_literal",timestamp_value:t.literal};case"true":return{kind:"boolean_literal",boolean_value:!0};case"false":return{kind:"boolean_literal",boolean_value:!1};case"null":return{kind:"null_literal"};default:throw new Error("Invalid parameter default value")}}function uP(t){return(0,oP.annotationToTaglines)(t.annotation).map(r=>({value:r}))}function s1(t,e){var r,i,s;const o=[];for(const u of e){if(!(u.accessModifier===void 0))continue;const c=(0,oP.annotationToTaglines)(u.annotation).map(x=>({value:x})),f=c.length>0?c:void 0;if((0,Ya.isTurtle)(u)){const x=(0,sP.getResultStructDefForView)(t,u),h=x.resultMetadata?yD(x,x.resultMetadata):void 0,p=[...f??[],...h?[h]:[]],m={kind:"view",name:(r=u.as)!==null&&r!==void 0?r:u.name,annotations:p.length>0?p:void 0,schema:{fields:s1(x,x.fields)}};o.push(m)}else if((0,Ya.isAtomic)(u)){const x=(0,Ya.expressionIsAggregate)(u.expressionType),h=(0,Ya.expressionIsScalar)(u.expressionType);if(!x&&!h||u.type==="error")continue;const p=u.resultMetadata?Kxe(u,u.resultMetadata):void 0,m=[...f??[],...p?[p]:[]],g={kind:x?"measure":"dimension",name:(i=u.as)!==null&&i!==void 0?i:u.name,type:ED(u),annotations:m.length>0?m:void 0};o.push(g)}else if((0,Ya.isJoinedSource)(u)){const x={kind:"join",name:(s=u.as)!==null&&s!==void 0?s:u.name,annotations:f,schema:{fields:s1(u,u.fields)},relationship:u.join};o.push(x)}}return o}Va.convertFieldInfos=s1;function Kxe(t,e){const r=Vxe.Tag.withPrefix("#(malloy) ");let i=!1;if(e.referenceId!==void 0&&(r.set(["reference_id"],e.referenceId),i=!0),e.fieldKind==="measure"&&(r.set(["calculation"]),i=!0),e.filterList){const s=e.filterList.filter(o=>o.expressionType==="scalar").map(o=>o.code);r.set(["drill_filters"],s),i=!0}if(e.fieldKind==="dimension"){const o=(e==null?void 0:e.sourceExpression)||(e!=null&&e.sourceField.includes(".")?e==null?void 0:e.sourceField:qht(t.name));r.set(["drill_expression"],o),i=!0}return i?{value:r.toString()}:void 0}function jht(t){return t.replace(/\\/g,"\\\\").replace(/`/g,"\\`")}function qht(t){return t.match(/^[A-Za-z_][0-9A-Za-z_]*$/)?t:`\`${jht(t)}\``}function yD(t,e){var r,i;const s=Vxe.Tag.withPrefix("#(malloy) ");let o=!1;if(e.limit!==void 0&&(s.set(["limit"],e.limit),o=!0),e.filterList){const u=e.filterList.filter(a=>a.expressionType==="scalar").map(a=>a.code);u.length>0&&(s.set(["drill_filters"],u),o=!0)}if(e.orderBy){for(let u=0;u<e.orderBy.length;u++){const a=e.orderBy[u],l=typeof a.field=="number"?(r=t.fields[a.field-1].as)!==null&&r!==void 0?r:t.fields[a.field-1].name:a.field,c=(i=a.dir)!==null&&i!==void 0?i:null;s.set(["ordered_by",u,l],c)}o=!0}return o?{value:s.toString()}:void 0}Va.getResultStructMetadataAnnotation=yD;function ED(t){if((0,Ya.isBasicAtomic)(t))switch(t.type){case"string":return{kind:"string_type"};case"number":return{kind:"number_type",subtype:t.numberType==="float"?"decimal":t.numberType==="integer"?"integer":void 0};case"boolean":return{kind:"boolean_type"};case"date":{const e=t.timeframe;return e&&!Hht(e)?{kind:"timestamp_type",timeframe:t.timeframe}:{kind:"date_type",timeframe:Qht(t.timeframe)}}case"timestamp":return{kind:"timestamp_type",timeframe:t.timeframe};case"json":return{kind:"json_type"};case"sql native":return{kind:"sql_native_type",sql_type:t.rawType};case"error":throw new Error("Error type is not supported in stable interface")}else{if((0,Ya.isRepeatedRecord)(t))return{kind:"array_type",element_type:Jxe(t)};if(t.type==="record")return Jxe(t);if(t.type==="array")return{kind:"array_type",element_type:ED(t.elementTypeDef)}}throw new Error("Unexpected field type")}function Jxe(t){return{kind:"record_type",fields:t.fields.map(e=>{const r=[];if("resultMetadata"in e&&e.resultMetadata){const i=Kxe(e,e.resultMetadata);i&&r.push(i)}if(e.annotation){const i=(0,oP.annotationToTaglines)(e.annotation);r.push(...i.map(s=>({value:s})))}if((0,Ya.isAtomic)(e))return{name:e.name,annotations:r.length>0?r:void 0,type:ED(e)};throw new Error("Expected record type to not have a table as its child")})}}function Hht(t){switch(t){case"day":case"week":case"month":case"year":case"quarter":return!0;default:return!1}}function Qht(t){switch(t){case void 0:return;case"day":case"week":case"month":case"year":case"quarter":return t;default:throw new Error(`Invalid date timeframe ${t}`)}}function u1t(t){return t}function a1t(t){return t}(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.mapLogs=t.DEFAULT_LOG_RANGE=t.wrapResult=t.mapData=t.wrapLegacyConnection=t.wrapLegacyInfoConnection=void 0;const e=$o,r=mi,i=Va,s=qr;function o(x){return{get dialectName(){return x.dialectName},async fetchSchemaForSQLQuery(h){const p=await x.fetchSchemaForSQLStruct({connection:x.name,selectStr:h},{}),m=p.structDef;if(m===void 0)throw new Error(p.error);return{fields:(0,i.convertFieldInfos)(m,m.fields)}},async fetchSchemaForTable(h){const p=`${x.name}:${h}`,m=await x.fetchSchemaForTables({[p]:h},{}),g=m.schemas[p];if(g===void 0)throw new Error(m.errors[p]);return{fields:(0,i.convertFieldInfos)(g,g.fields)}}}}t.wrapLegacyInfoConnection=o;function u(x){return{...o(x),runSQL:async(h,p)=>{const m=await x.runSQL(h);return l(m.rows,p)}}}t.wrapLegacyConnection=u;function a(x){if(x instanceof Date)return x;if(x.constructor.name==="Date")return new Date(x);if(typeof x=="number")return new Date(x);if(typeof x!="string")return new Date(x.value);{let p=s.DateTime.fromISO(x,{zone:"UTC"});return p.isValid||(p=s.DateTime.fromSQL(x,{zone:"UTC"})),p.toJSDate()}}function l(x,h){function p(y,E){if(y===null)return{kind:"null_cell"};if(E.type.kind==="date_type"||E.type.kind==="timestamp_type"){const A=a(y).toISOString();return E.type.kind==="date_type"?{kind:"date_cell",date_value:A}:{kind:"timestamp_cell",timestamp_value:A}}else if(E.type.kind==="boolean_type"){if(typeof y=="number")return{kind:"boolean_cell",boolean_value:y!==0};if(typeof y!="boolean")throw new Error(`Invalid boolean ${y}`);return{kind:"boolean_cell",boolean_value:y}}else if(E.type.kind==="number_type"){if(typeof y!="number")throw new Error(`Invalid number ${y}`);return{kind:"number_cell",number_value:y}}else if(E.type.kind==="string_type"){if(typeof y!="string")throw new Error(`Invalid string ${y}`);return{kind:"string_cell",string_value:y}}else if(E.type.kind==="array_type"){if(!Array.isArray(y))throw new Error(`Invalid array ${y}`);return{kind:"array_cell",array_value:y.map(A=>p(A,{name:"array_element",type:E.type.element_type}))}}else{if(E.type.kind==="json_type")return{kind:"json_cell",json_value:JSON.stringify(y)};if(E.type.kind==="sql_native_type")return{kind:"sql_native_cell",sql_native_value:JSON.stringify(y)};{const A=E.type;if(A.kind!=="record_type")throw new Error(`Invalid record in result ${JSON.stringify(E)}, ${JSON.stringify(y)}`);return m(y,{kind:"join",relationship:"many",name:"array_element",schema:{fields:A.fields.map(_=>({kind:"dimension",..._}))}})}}}function m(y,E){const A=[];for(const _ of E.schema.fields){const v=y[_.name];if(_.kind!=="dimension")throw new Error("Invalid result -- expected all fields to be dimensions");const C=p(v,_);A.push(C)}return{kind:"record_cell",record_value:A}}const g={kind:"join",schema:h,name:"root",relationship:"one"};return{kind:"array_cell",array_value:x.map(y=>m(y,g))}}t.mapData=l;function c(x){const h=x._queryResult.structs,p=h[h.length-1],m={fields:(0,i.convertFieldInfos)(p,p.fields)},g=(0,r.annotationToTaglines)(x.annotation).map(E=>({value:E})),y=p.resultMetadata?(0,i.getResultStructMetadataAnnotation)(p,p.resultMetadata):void 0;return y&&g.push(y),g.push(...p.resultMetadata?[]:[]),x.sourceExplore&&g.push({value:e.Tag.withPrefix("#(malloy) ").set(["source_name"],x.sourceExplore.name).toString()}),g.push({value:e.Tag.withPrefix("#(malloy) ").set(["query_name"],x.resultExplore.name).toString()}),{schema:m,data:l(x.data.toObject(),m),connection_name:x.connectionName,annotations:g.length>0?g:void 0,query_timezone:x.data.field.queryTimezone}}t.wrapResult=c,t.DEFAULT_LOG_RANGE={start:{line:0,character:0},end:{line:0,character:0}};function f(x,h){return x.map(p=>{var m,g,y,E;return{severity:p.severity,message:p.message,range:(g=(m=p.at)===null||m===void 0?void 0:m.range)!==null&&g!==void 0?g:t.DEFAULT_LOG_RANGE,url:(E=(y=p.at)===null||y===void 0?void 0:y.url)!==null&&E!==void 0?E:h}})}t.mapLogs=f})(KE);var zht=T&&T.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Wht=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ght=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&zht(e,t,r);return Wht(e,t),e};Object.defineProperty(i1,"__esModule",{value:!0}),i1.malloyToQuery=i1.MalloyToQuery=void 0;const Vht=qd,Ln=Ght(I),Xxe=T2,JE=Pn,Yht=et,Kht=qE,Zxe=Jn,Jht=KE,aP="Malloy query documents";class ede extends Vht.AbstractParseTreeVisitor{constructor(e,r){super(),this.parseInfo=e,this.msgLog=r}internalError(e,r){return this.contextError(e,"internal-translator-error",{message:r}),new Error(`Internal Translator Error: ${r}`)}getLocation(e){return{url:this.parseInfo.sourceURL,range:(0,Zxe.rangeFromContext)(this.parseInfo.sourceInfo,e)}}contextError(e,r,i,s){this.msgLog.log((0,Xxe.makeLogMessage)(r,i,{at:this.getLocation(e),...s}))}getNumber(e){return Number.parseInt(e.text)}defaultResult(){return null}getAnnotations(e){const r=e.ANNOTATION().map(i=>({value:i.text}));return r.length>0?r:void 0}getIsAnnotations(e){var r,i;if(e===void 0)return;const o=((r=this.getAnnotations(e._beforeIs))!==null&&r!==void 0?r:[]).concat((i=this.getAnnotations(e._afterIs))!==null&&i!==void 0?i:[]);return o.length>0?o:void 0}notAllowed(e,r){this.illegal(e,`${r} are not allowed in ${aP}`)}illegal(e,r){this.contextError(e,"invalid-malloy-query-document",r)}visitMalloyDocument(e){const r=e.malloyStatement();let i;for(const s of r)s.defineSourceStatement()?this.notAllowed(s,"Source definitions"):s.defineQuery()?this.notAllowed(s,"Query definitions"):s.importStatement()?this.notAllowed(s,"Import statements"):s.docAnnotations()?this.notAllowed(s,"Model annotations"):s.ignoredObjectAnnotations()?this.notAllowed(s,"Detatched object annotations"):s.experimentalStatementForTesting()?this.notAllowed(s,"Experimental testing statements"):i===void 0?i=s.runStatement():this.illegal(s,`${aP} may only have one run statement`);return i===void 0?(this.illegal(e,`${aP} must have a run statement`),null):this.visitRunStatement(i)}visitRunStatement(e){const r=e.topLevelAnonQueryDef(),i=this.getQueryDefinition(r.sqExpr()),s=this.getAnnotations(e.topLevelAnonQueryDef().tags());return i!==null?{annotations:s,definition:i}:null}getQueryReference(e){if(e.sourceArguments())this.illegal(e,"Queries do not support parameters");else return{name:(0,JE.getId)(e)};return null}getQueryDefinition(e){if(e instanceof Ln.SQIDContext){const r=this.getQueryReference(e);if(r!==null)return{kind:"query_reference",...r}}else{if(e instanceof Ln.SQParensContext)return this.getQueryDefinition(e.sqExpr());if(e instanceof Ln.SQComposeContext)this.notAllowed(e,"Source compositions");else if(e instanceof Ln.SQRefinedQueryContext){const r=e.sqExpr(),i=this.getQueryDefinition(r),s=this.getRefinementSegment(e.segExpr());return s===null||i===null?null:(s.kind==="arrow"&&this.notAllowed(e,"Queries against refined queries"),{kind:"refinement",base:i,refinement:s})}else if(e instanceof Ln.SQExtendedSourceContext)this.notAllowed(e,"Source extensions");else if(e instanceof Ln.SQIncludeContext)this.notAllowed(e,"Source inclusions");else if(e instanceof Ln.SQTableContext)this.notAllowed(e,"Table statements");else if(e instanceof Ln.SQSQLContext)this.notAllowed(e,"SQL statements");else if(e instanceof Ln.SQArrowContext){const r=e.sqExpr(),i=this.getQueryDefinition(r),s=this.getRefinementSegment(e.segExpr());return s===null||i===null?null:i.kind==="query_reference"?{kind:"arrow",source:{...i,kind:"source_reference"},view:s}:i.kind==="arrow"?{kind:"arrow",source:i.source,view:{kind:"arrow",source:i.view,view:s}}:{kind:"arrow",source:i,view:s}}}return null}getRefinementSegment(e){if(e instanceof Ln.SegOpsContext){const r=e.queryProperties().queryStatement().flatMap(i=>this.getSegmentOperation(i));return r.some(i=>i===null)?null:{kind:"segment",operations:r}}else if(e instanceof Ln.SegFieldContext){const{name:r,path:i}=this.getFieldPath(e.fieldPath());return{kind:"view_reference",name:r,path:i}}else{if(e instanceof Ln.SegParenContext)return this.getViewExpression(e.vExpr());if(e instanceof Ln.SegRefineContext){const r=this.getRefinementSegment(e._lhs),i=this.getRefinementSegment(e._rhs);return r===null||i===null?null:{kind:"refinement",base:r,refinement:i}}}return null}getGroupByStatement(e){const r=this.getAnnotations(e.tags()),s=e.queryFieldList().queryFieldEntry().map(o=>this.getQueryField(o));return s.some(o=>o===null)||s===null?null:s.map(o=>{var u;const a=[...r??[],...(u=o.field.annotations)!==null&&u!==void 0?u:[]];return{kind:"group_by",name:o.name,field:{...o.field,annotations:a.length>0?a:void 0}}})}getAggregateStatement(e){const r=this.getAnnotations(e.tags()),s=e.queryFieldList().queryFieldEntry().map(o=>this.getQueryField(o));return s.some(o=>o===null)||s===null?null:s.map(o=>{var u;const a=[...r??[],...(u=o.field.annotations)!==null&&u!==void 0?u:[]];return{kind:"aggregate",name:o.name,field:{...o.field,annotations:a.length>0?a:void 0}}})}getOrderByStatement(e){const r=e.ordering().orderBySpec(),i=[];for(const s of r)if(s.INTEGER_LITERAL())this.notAllowed(s,"Indexed order by statements");else if(s.fieldName()){const o=(0,JE.getId)(s.fieldName()),u=s.ASC()?"asc":s.DESC()?"desc":void 0;i.push({kind:"order_by",direction:u,field_reference:{name:o}})}else return null;return i}getNestStatement(e){const r=this.getAnnotations(e.tags()),i=e.nestedQueryList().nestEntry(),s=[];for(const o of i){if(!(o instanceof Ln.NestDefContext))return this.internalError(o,"Expected nestDef"),null;const u=this.getAnnotations(o.tags()),a=this.getIsAnnotations(o.isDefine()),l=o.queryName(),c=l?(0,JE.getId)(l):void 0,f=this.getViewExpression(o.vExpr());if(f===null)return null;s.push({kind:"nest",name:c,view:{definition:f,annotations:this.combineAnnotations(r,u,a)}})}return s}getViewExpression(e){if(e instanceof Ln.VSegContext)return this.getRefinementSegment(e.segExpr());if(e instanceof Ln.VArrowContext){const r=this.getRefinementSegment(e),i=this.getViewExpression(e._rhs);return r===null||i===null?null:{kind:"arrow",source:r,view:i}}else return this.internalError(e,"Unexpected VExpr node"),null}getLimitStatement(e){return{kind:"limit",limit:this.getNumber(e.INTEGER_LITERAL())}}getSegmentOperation(e){if(e.groupByStatement()){const r=e.groupByStatement();return this.getGroupByStatement(r)}else if(e.aggregateStatement()){const r=e.aggregateStatement();return this.getAggregateStatement(r)}else if(e.limitStatement()){const r=e.limitStatement(),i=this.getLimitStatement(r);return i===null?null:[i]}else if(e.declareStatement())this.notAllowed(e,"Declare statements");else if(e.queryJoinStatement())this.notAllowed(e,"Query join statements");else if(e.queryExtend())this.notAllowed(e,"Query extend statements");else if(e.projectStatement())this.notAllowed(e,"Select statements");else if(e.indexStatement())this.notAllowed(e,"Index statements");else if(e.calculateStatement())this.notAllowed(e,"Calculate statements");else if(e.topStatement())this.notAllowed(e,"Top statements");else if(e.orderByStatement()){const r=e.orderByStatement();return this.getOrderByStatement(r)}else if(e.whereStatement()){const r=e.whereStatement(),i=this.getWhere(r);return i===null?null:i.map(s=>({kind:"where",...s}))}else if(e.havingStatement()){const r=e.havingStatement(),i=this.getHaving(r);return i===null?null:i.map(s=>({kind:"having",...s}))}else if(e.nestStatement()){const r=e.nestStatement();return this.getNestStatement(r)}else e.sampleStatement()?this.notAllowed(e,"Sample statements"):e.timezoneStatement()?this.notAllowed(e,"Timezone statements"):(e.queryAnnotation()||e.ignoredModelAnnotations())&&this.notAllowed(e,"Detached annotation statements");return null}getFieldPath(e){const r=e.fieldName().map(o=>(0,JE.getId)(o)),i=r[0],s=r.slice(1);return{name:i,path:s.length>0?s:void 0}}getTimeframe(e){const r=e.text;return(0,Yht.isTimestampUnit)(r)?r:(this.illegal(e,`Invalid timeframe ${r}`),null)}getQueryField(e){if(e.taggedRef()){const r=e.taggedRef(),i=this.getAnnotations(r.tags()),{name:s,path:o}=this.getFieldPath(r.fieldPath());if(r.refExpr()){const u=r.refExpr();if(u.timeframe()){const a=this.getTimeframe(u.timeframe());return a===null?null:{name:void 0,field:{annotations:i,expression:{kind:"time_truncation",field_reference:{name:s,path:o},truncation:a}}}}else u.aggregate()&&this.notAllowed(u,"Aggregate expressions")}else return{name:void 0,field:{annotations:i,expression:{kind:"field_reference",name:s,path:o}}}}else if(e.fieldDef()){const r=e.fieldDef(),i=this.getAnnotations(r.tags()),s=this.getIsAnnotations(r.isDefine()),o=(0,JE.getId)(r.fieldNameDef()),u=this.getFieldExpression(r.fieldExpr());return u===null?null:{name:o,field:{expression:u,annotations:this.combineAnnotations(i,s)}}}return null}getFieldExpression(e){if(e instanceof Ln.ExprFieldPathContext){const{name:r,path:i}=this.getFieldPath(e.fieldPath());return{kind:"field_reference",name:r,path:i}}else if(e instanceof Ln.ExprTimeTruncContext){const r=this.getTimeframe(e.timeframe()),i=e.fieldExpr(),s=this.getFieldExpression(i);return s===null||r===null?null:s.kind!=="field_reference"?(this.illegal(i,"Left hand side of time truncation must be a field reference"),null):{kind:"time_truncation",truncation:r,field_reference:{name:s.name,path:s.path,parameters:s.parameters}}}else if(e instanceof Ln.ExprFieldPropsContext){const r=e.fieldExpr(),i=this.getFieldExpression(r);if(i===null)return null;if(i.kind!=="field_reference")return this.illegal(r,"Left hand side of filtered field must be a field reference"),null;const s=e.fieldProperties().fieldPropertyStatement(),o=[];for(const u of s){const a=u.whereStatement();if(a){const l=this.getWhere(a);if(l===null)return null;o.push(...l)}}return{kind:"filtered_field",field_reference:{name:i.name,path:i.path,parameters:i.parameters},where:o}}return null}stripQuote(e,r){return e.slice(e.indexOf(r)+r.length,e.lastIndexOf(r))}getFilterString(e){const r=e.tripFilterString(),i=e.tickFilterString();if(r){const s=r.BQ3_FILTER(),o=r.DQ3_FILTER(),u=r.SQ3_FILTER();if(s)return this.stripQuote(s.text,"```");if(o)return this.stripQuote(o.text,'"""');if(u)return this.stripQuote(u.text,"'''")}else if(i){const s=i.BQ_FILTER(),o=i.DQ_FILTER(),u=i.SQ_FILTER();if(s)return this.stripQuote(s.text,"`");if(o)return this.stripQuote(o.text,'"');if(u)return this.stripQuote(u.text,"'")}return null}getFilterExpr(e){if(e instanceof Ln.ExprCompareContext&&e.compareOp().MATCH()){const r=e.fieldExpr()[0],i=e.fieldExpr()[1];if(r instanceof Ln.ExprFieldPathContext&&i instanceof Ln.ExprLiteralContext){const{path:s,name:o}=this.getFieldPath(r.fieldPath()),u=i.literal();if(u instanceof Ln.FilterString_stubContext){const a=this.getFilterString(u.filterString());return a===null?null:{filter:{kind:"filter_string",field_reference:{name:o,path:s},filter:a}}}}}return this.notAllowed(e,"Filters other than comparisons with filter strings"),null}getWhere(e){const i=e.filterClauseList().fieldExpr().map(s=>this.getFilterExpr(s));return i.some(s=>s===null)?null:i}getHaving(e){const i=e.filterClauseList().fieldExpr().map(s=>this.getFilterExpr(s));return i.some(s=>s===null)?null:i}combineAnnotations(...e){const r=e.flatMap(i=>i??[]);return r.length>0?r:void 0}}i1.MalloyToQuery=ede;function Xht(t){const e=(0,Zxe.getSourceInfo)(t),r=new Xxe.BaseMessageLogger(null),i="internal://query.malloy",s=(0,Kht.runMalloyParser)(t,i,e,r),u=new ede(s,r).visit(s.root),a=(0,Jht.mapLogs)(r.getLog(),i);if(u===null)return{logs:a};if(!("definition"in u))throw new Error("Expected a query");return{query:u,logs:a}}i1.malloyToQuery=Xht,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.malloyToQuery=t.exploreQueryWalkerBuilder=t.MalloyTranslation=t.MalloyTranslator=void 0;var e=Wc;Object.defineProperty(t,"MalloyTranslator",{enumerable:!0,get:function(){return e.MalloyTranslator}}),Object.defineProperty(t,"MalloyTranslation",{enumerable:!0,get:function(){return e.MalloyTranslation}});var r=r1;Object.defineProperty(t,"exploreQueryWalkerBuilder",{enumerable:!0,get:function(){return r.exploreQueryWalkerBuilder}});var i=i1;Object.defineProperty(t,"malloyToQuery",{enumerable:!0,get:function(){return i.malloyToQuery}})}(P4);var Ie={},AD={};Object.defineProperty(AD,"__esModule",{value:!0}),AD.MALLOY_VERSION=void 0,AD.MALLOY_VERSION="0.0.263",Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.InMemoryModelCache=Ie.CacheManager=Ie.CSVWriter=Ie.JSONWriter=Ie.DataWriter=Ie.DataRecord=Ie.DataArray=Ie.Result=Ie.ExploreMaterializer=Ie.PreparedResultMaterializer=Ie.QueryMaterializer=Ie.ModelMaterializer=Ie.SingleConnectionRuntime=Ie.ConnectionRuntime=Ie.Runtime=Ie.ExploreField=Ie.JoinRelationship=Ie.QueryField=Ie.Query=Ie.StringField=Ie.UnsupportedField=Ie.JSONField=Ie.BooleanField=Ie.NumberField=Ie.TimestampField=Ie.DateField=Ie.TimestampTimeframe=Ie.DateTimeframe=Ie.AtomicField=Ie.AtomicFieldType=Ie.Explore=Ie.SourceRelationship=Ie.FixedConnectionMap=Ie.InMemoryURLReader=Ie.EmptyURLReader=Ie.PreparedResult=Ie.DocumentCompletion=Ie.DocumentSymbol=Ie.DocumentPosition=Ie.DocumentRange=Ie.DocumentTablePath=Ie.Parse=Ie.PreparedQuery=Ie.Model=Ie.MalloyError=Ie.Malloy=void 0;const tde=P4,yi=Gi,nde=qr,lP=h2,Zht=AD,ept=m2,Un=mi,tpt=g0,rde="internal://internal.malloy";let S0=class GD{static get version(){return Zht.MALLOY_VERSION}static _parse(e,r,i,s,o){r===void 0&&(r=new URL(rde));let u=r;s!=null&&s.importBaseURL&&(u=s==null?void 0:s.importBaseURL);const a=new tde.MalloyTranslator(r.toString(),u.toString(),{urls:{[r.toString()]:e}},i);return s!=null&&s.testEnvironment&&(a.allDialectsEnabled=!0),new sde(a,o)}static parse({url:e,urlReader:r,source:i,eventStream:s,options:o}){if(i!==void 0)return GD._parse(i,e,s,o);if(r===void 0)throw new Error("Internal Error: urlReader is required.");if(e===void 0)throw new Error("Internal Error: url is required if source not present.");return DD(r,e).then(({contents:u,invalidationKey:a})=>GD._parse(u,e,s,o,a))}static async compile({url:e,source:r,parse:i,urlReader:s,connections:o,model:u,refreshSchemaCache:a,noThrowOnError:l,eventStream:c,importBaseURL:f,cacheManager:x}){var h,p,m,g,y;let E;if(a&&(E=typeof a=="number"?a:Date.now()),e===void 0&&r===void 0&&i===void 0)throw new Error("Internal Error: url, source, or parse required.");e===void 0&&(i!==void 0?e=new URL(i._translator.sourceURL):e=new URL(rde));const A={};if(r===void 0&&x!==void 0){const C=await x.getCachedModelDef(s,e.toString());if(C)return new o1(C.modelDef,[],[e.toString(),...RD(C.modelDef.dependencies)])}f??(f=e);let _;const v=e.toString();if(i!==void 0){_=i._translator;const C=(h=i._invalidationKey)!==null&&h!==void 0?h:await vP(s,e);A[v]=C}else{if(r===void 0){const{contents:C,invalidationKey:S}=await DD(s,e);A[v]=S,r=C}else{const C=await vP(s,e);A[v]=C}_=new tde.MalloyTranslator(v,f.toString(),{urls:{[v]:r}},c)}for(;;){const C=_.translate(u==null?void 0:u._modelDef);if(C.final)if(C.modelDef){await(x==null?void 0:x.setCachedModelDef(e.toString(),{modelDef:C.modelDef,invalidationKeys:A}));for(const S of _.newlyTranslatedDependencies())await(x==null?void 0:x.setCachedModelDef(S.url,{modelDef:S.modelDef,invalidationKeys:A}));return new o1(C.modelDef,C.problems||[],[...(p=u==null?void 0:u.fromSources)!==null&&p!==void 0?p:[],...(m=C.fromSources)!==null&&m!==void 0?m:[]],S=>_.referenceAt(S),S=>_.importAt(S))}else if(l){const S={name:"modelDidNotCompile",exports:[],contents:{},dependencies:{},queryList:[]},b=(u==null?void 0:u._modelDef)||S;return new o1(b,C.problems||[],[...(g=u==null?void 0:u.fromSources)!==null&&g!==void 0?g:[],...(y=C.fromSources)!==null&&y!==void 0?y:[]],R=>_.referenceAt(R),R=>_.importAt(R))}else{const S=C.problems||[],b=_.prettyErrors();throw new ide(`Error(s) compiling model:
1861
+ ${s}`:e=s}return e}childRequest(e){var r;const i=decodeURI(new URL(e,this.sourceURL).toString()),s=(r=this.childTranslators.get(i))===null||r===void 0?void 0:r.translate();if(s!=null&&s.compileSQL)return{compileSQL:s.compileSQL}}getChildExports(e){const r={},i=decodeURI(new URL(e,this.sourceURL).toString()),s=this.childTranslators.get(i);if(s&&s.translate().modelDef)for(const u of s.modelDef.exports){const a=s.modelDef.contents[u];((0,mht.isSourceDef)(a)||a.type==="query")&&(r[u]=a)}return r}translate(e){if(this.finalAnswer)return this.finalAnswer;const r=this.translateStep.step(this,e);return r.final&&(this.finalAnswer=r),r}translatorForDependency(e){return this.childTranslators.get(e)}importAt(e){for(let r=0;r<this.imports.length;r++){const i=this.imports[r];if((0,rP.locationContainsPosition)(i.location,e))return i}}metadata(){return this.metadataStep.step(this)}modelAnnotation(e){return this.modelAnnotationStep.step(this,e)}tablePathInfo(){return this.tablePathInfoStep.step(this)}completions(e){return this.completionsStep.step(this,e)}helpContext(e){return this.helpContextStep.step(this,e)}defaultLocation(){return{url:this.sourceURL,range:{start:{line:0,character:0},end:{line:0,character:0}}}}rangeFromContext(e){return(0,rP.rangeFromContext)(this.parseStep.sourceInfo,e)}firstReferenceToDialect(e){return this.dialectAlreadyChecked[e]?!1:(this.dialectAlreadyChecked[e]=!0,!0)}experimentalDialectEnabled(e){if(this.allDialectsEnabled)return!0;const r=this.compilerFlags.tag("experimental");return r!==void 0&&(r.bare()||r.has("dialect",e))}}Wc.MalloyTranslation=iP;class zxe extends iP{constructor(e,r){super(e),this.root=r}}Wc.MalloyChildTranslator=zxe;class kht extends iP{constructor(e,r=null,i=null,s=null){super(e,r),this.eventStream=s,this.schemaZone=new nP.Zone,this.importZone=new nP.Zone,this.pretranslatedModels=new Map,this.sqlQueryZone=new nP.Zone,this.root=this,this.logger=new Qxe.BaseMessageLogger(s),i&&this.update(i)}update(e){var r,i,s;this.schemaZone.updateFrom(e.tables,(r=e.errors)===null||r===void 0?void 0:r.tables),this.importZone.updateFrom(e.urls,(i=e.errors)===null||i===void 0?void 0:i.urls),this.sqlQueryZone.updateFrom(e.compileSQL,(s=e.errors)===null||s===void 0?void 0:s.compileSQL);for(const o in e.translations)this.pretranslatedModels.set(o,e.translations[o])}logError(e,r,i){return this.logger.log((0,Qxe.makeLogMessage)(e,r,{severity:"error",...i})),e}}Wc.MalloyTranslator=kht;function Wxe(t){return[...Object.keys(t),...Object.keys(t).map(e=>Wxe(t[e])).flat()]}var r1={};Object.defineProperty(r1,"__esModule",{value:!0}),r1.exploreQueryWalkerBuilder=r1.ExploreQueryWalker=void 0;const Mht=T0;class Gxe{constructor(e){this.inDocument=!1,this.exploreClauseRefs=[],this.tokens=e}exploreQueryAtOffset(e){return this.exploreClauseRefs.find(r=>r.range[0]===void 0||r.range[1]===void 0?!1:r.range[0]<=e&&r.range[1]>=e)}filterAtOffset(e){const r=this.exploreQueryAtOffset(e);if(r)return r.filterRefs.find(i=>i.range[0]===void 0||i.range[1]===void 0?!1:i.range[0]<=e&&i.range[1]>=e)}hasFilterListAtOffset(e){const r=this.exploreQueryAtOffset(e);return r?!!r.filterLists.find(i=>i.range[0]===void 0||i.range[1]===void 0?!1:i.range[0]<=e&&i.range[1]>=e):!1}enterMalloyDocument(){this.inDocument=!0}}r1.ExploreQueryWalker=Gxe;function Pht(t,e){const r=new Gxe(t),i=r;return Mht.ParseTreeWalker.DEFAULT.walk(i,e),r}r1.exploreQueryWalkerBuilder=Pht;var i1={},KE={},Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.getResultStructMetadataAnnotation=Va.convertFieldInfos=Va.modelDefToModelInfo=void 0;const Ya=Gi,sP=js,oP=mi,Vxe=$o;function Uht(t){const e={entries:[],anonymous_queries:[]};for(const[r,i]of Object.entries(t.contents))if(t.exports.includes(r)){if((0,Ya.isSourceDef)(i)){const s=i.parameters&&Object.entries(i.parameters).length>0?Object.entries(i.parameters).map(([u,a])=>(0,Ya.isAtomic)(a)?{name:u,type:ED(a),default_value:Yxe(a.value)}:{name:u,type:{kind:"filter_expression_type"},default_value:Yxe(a.value)}):void 0,o={kind:"source",name:r,schema:{fields:s1(i,i.fields)},parameters:s,annotations:uP(i)};e.entries.push(o)}else if(i.type==="query"){const s=(0,sP.getResultStructDefForQuery)(t,i),o=uP(i),u=s.resultMetadata?yD(s,s.resultMetadata):void 0,a=[...o??[],...u?[u]:[]],l={kind:"source",name:r,schema:{fields:s1(s,s.fields)},annotations:a.length>0?a:void 0};e.entries.push(l)}}for(const r of t.queryList){const i=(0,sP.getResultStructDefForQuery)(t,r),s=uP(r),o=i.resultMetadata?yD(i,i.resultMetadata):void 0,u=[...s??[],...o?[o]:[]],a={schema:{fields:s1(i,i.fields)},annotations:u.length>0?u:void 0};e.anonymous_queries.push(a)}return e}Va.modelDefToModelInfo=Uht;function Yxe(t){if(t!==null)switch(t.node){case"numberLiteral":return{kind:"number_literal",number_value:parseFloat(t.literal)};case"stringLiteral":return{kind:"string_literal",string_value:t.literal};case"filterLiteral":return{kind:"filter_expression_literal",filter_expression_value:t.filterSrc};case"timeLiteral":return{kind:"timestamp_literal",timestamp_value:t.literal};case"true":return{kind:"boolean_literal",boolean_value:!0};case"false":return{kind:"boolean_literal",boolean_value:!1};case"null":return{kind:"null_literal"};default:throw new Error("Invalid parameter default value")}}function uP(t){return(0,oP.annotationToTaglines)(t.annotation).map(r=>({value:r}))}function s1(t,e){var r,i,s;const o=[];for(const u of e){if(!(u.accessModifier===void 0))continue;const c=(0,oP.annotationToTaglines)(u.annotation).map(x=>({value:x})),f=c.length>0?c:void 0;if((0,Ya.isTurtle)(u)){const x=(0,sP.getResultStructDefForView)(t,u),h=x.resultMetadata?yD(x,x.resultMetadata):void 0,p=[...f??[],...h?[h]:[]],m={kind:"view",name:(r=u.as)!==null&&r!==void 0?r:u.name,annotations:p.length>0?p:void 0,schema:{fields:s1(x,x.fields)}};o.push(m)}else if((0,Ya.isAtomic)(u)){const x=(0,Ya.expressionIsAggregate)(u.expressionType),h=(0,Ya.expressionIsScalar)(u.expressionType);if(!x&&!h||u.type==="error")continue;const p=u.resultMetadata?Kxe(u,u.resultMetadata):void 0,m=[...f??[],...p?[p]:[]],g={kind:x?"measure":"dimension",name:(i=u.as)!==null&&i!==void 0?i:u.name,type:ED(u),annotations:m.length>0?m:void 0};o.push(g)}else if((0,Ya.isJoinedSource)(u)){const x={kind:"join",name:(s=u.as)!==null&&s!==void 0?s:u.name,annotations:f,schema:{fields:s1(u,u.fields)},relationship:u.join};o.push(x)}}return o}Va.convertFieldInfos=s1;function Kxe(t,e){const r=Vxe.Tag.withPrefix("#(malloy) ");let i=!1;if(e.referenceId!==void 0&&(r.set(["reference_id"],e.referenceId),i=!0),e.fieldKind==="measure"&&(r.set(["calculation"]),i=!0),e.filterList){const s=e.filterList.filter(o=>o.expressionType==="scalar").map(o=>o.code);r.set(["drill_filters"],s),i=!0}if(e.fieldKind==="dimension"){const o=(e==null?void 0:e.sourceExpression)||(e!=null&&e.sourceField.includes(".")?e==null?void 0:e.sourceField:qht(t.name));r.set(["drill_expression"],o),i=!0}return i?{value:r.toString()}:void 0}function jht(t){return t.replace(/\\/g,"\\\\").replace(/`/g,"\\`")}function qht(t){return t.match(/^[A-Za-z_][0-9A-Za-z_]*$/)?t:`\`${jht(t)}\``}function yD(t,e){var r,i;const s=Vxe.Tag.withPrefix("#(malloy) ");let o=!1;if(e.limit!==void 0&&(s.set(["limit"],e.limit),o=!0),e.filterList){const u=e.filterList.filter(a=>a.expressionType==="scalar").map(a=>a.code);u.length>0&&(s.set(["drill_filters"],u),o=!0)}if(e.orderBy){for(let u=0;u<e.orderBy.length;u++){const a=e.orderBy[u],l=typeof a.field=="number"?(r=t.fields[a.field-1].as)!==null&&r!==void 0?r:t.fields[a.field-1].name:a.field,c=(i=a.dir)!==null&&i!==void 0?i:null;s.set(["ordered_by",u,l],c)}o=!0}return o?{value:s.toString()}:void 0}Va.getResultStructMetadataAnnotation=yD;function ED(t){if((0,Ya.isBasicAtomic)(t))switch(t.type){case"string":return{kind:"string_type"};case"number":return{kind:"number_type",subtype:t.numberType==="float"?"decimal":t.numberType==="integer"?"integer":void 0};case"boolean":return{kind:"boolean_type"};case"date":{const e=t.timeframe;return e&&!Hht(e)?{kind:"timestamp_type",timeframe:t.timeframe}:{kind:"date_type",timeframe:Qht(t.timeframe)}}case"timestamp":return{kind:"timestamp_type",timeframe:t.timeframe};case"json":return{kind:"json_type"};case"sql native":return{kind:"sql_native_type",sql_type:t.rawType};case"error":throw new Error("Error type is not supported in stable interface")}else{if((0,Ya.isRepeatedRecord)(t))return{kind:"array_type",element_type:Jxe(t)};if(t.type==="record")return Jxe(t);if(t.type==="array")return{kind:"array_type",element_type:ED(t.elementTypeDef)}}throw new Error("Unexpected field type")}function Jxe(t){return{kind:"record_type",fields:t.fields.map(e=>{const r=[];if("resultMetadata"in e&&e.resultMetadata){const i=Kxe(e,e.resultMetadata);i&&r.push(i)}if(e.annotation){const i=(0,oP.annotationToTaglines)(e.annotation);r.push(...i.map(s=>({value:s})))}if((0,Ya.isAtomic)(e))return{name:e.name,annotations:r.length>0?r:void 0,type:ED(e)};throw new Error("Expected record type to not have a table as its child")})}}function Hht(t){switch(t){case"day":case"week":case"month":case"year":case"quarter":return!0;default:return!1}}function Qht(t){switch(t){case void 0:return;case"day":case"week":case"month":case"year":case"quarter":return t;default:throw new Error(`Invalid date timeframe ${t}`)}}function u1t(t){return t}function a1t(t){return t}(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.mapLogs=t.DEFAULT_LOG_RANGE=t.wrapResult=t.mapData=t.wrapLegacyConnection=t.wrapLegacyInfoConnection=void 0;const e=$o,r=mi,i=Va,s=qr;function o(x){return{get dialectName(){return x.dialectName},async fetchSchemaForSQLQuery(h){const p=await x.fetchSchemaForSQLStruct({connection:x.name,selectStr:h},{}),m=p.structDef;if(m===void 0)throw new Error(p.error);return{fields:(0,i.convertFieldInfos)(m,m.fields)}},async fetchSchemaForTable(h){const p=`${x.name}:${h}`,m=await x.fetchSchemaForTables({[p]:h},{}),g=m.schemas[p];if(g===void 0)throw new Error(m.errors[p]);return{fields:(0,i.convertFieldInfos)(g,g.fields)}}}}t.wrapLegacyInfoConnection=o;function u(x){return{...o(x),runSQL:async(h,p)=>{const m=await x.runSQL(h);return l(m.rows,p)}}}t.wrapLegacyConnection=u;function a(x){if(x instanceof Date)return x;if(x.constructor.name==="Date")return new Date(x);if(typeof x=="number")return new Date(x);if(typeof x!="string")return new Date(x.value);{let p=s.DateTime.fromISO(x,{zone:"UTC"});return p.isValid||(p=s.DateTime.fromSQL(x,{zone:"UTC"})),p.toJSDate()}}function l(x,h){function p(y,E){if(y===null)return{kind:"null_cell"};if(E.type.kind==="date_type"||E.type.kind==="timestamp_type"){const A=a(y).toISOString();return E.type.kind==="date_type"?{kind:"date_cell",date_value:A}:{kind:"timestamp_cell",timestamp_value:A}}else if(E.type.kind==="boolean_type"){if(typeof y=="number")return{kind:"boolean_cell",boolean_value:y!==0};if(typeof y!="boolean")throw new Error(`Invalid boolean ${y}`);return{kind:"boolean_cell",boolean_value:y}}else if(E.type.kind==="number_type"){if(typeof y!="number")throw new Error(`Invalid number ${y}`);return{kind:"number_cell",number_value:y}}else if(E.type.kind==="string_type"){if(typeof y!="string")throw new Error(`Invalid string ${y}`);return{kind:"string_cell",string_value:y}}else if(E.type.kind==="array_type"){if(!Array.isArray(y))throw new Error(`Invalid array ${y}`);return{kind:"array_cell",array_value:y.map(A=>p(A,{name:"array_element",type:E.type.element_type}))}}else{if(E.type.kind==="json_type")return{kind:"json_cell",json_value:JSON.stringify(y)};if(E.type.kind==="sql_native_type")return{kind:"sql_native_cell",sql_native_value:JSON.stringify(y)};{const A=E.type;if(A.kind!=="record_type")throw new Error(`Invalid record in result ${JSON.stringify(E)}, ${JSON.stringify(y)}`);return m(y,{kind:"join",relationship:"many",name:"array_element",schema:{fields:A.fields.map(_=>({kind:"dimension",..._}))}})}}}function m(y,E){const A=[];for(const _ of E.schema.fields){const v=y[_.name];if(_.kind!=="dimension")throw new Error("Invalid result -- expected all fields to be dimensions");const C=p(v,_);A.push(C)}return{kind:"record_cell",record_value:A}}const g={kind:"join",schema:h,name:"root",relationship:"one"};return{kind:"array_cell",array_value:x.map(y=>m(y,g))}}t.mapData=l;function c(x){const h=x._queryResult.structs,p=h[h.length-1],m={fields:(0,i.convertFieldInfos)(p,p.fields)},g=(0,r.annotationToTaglines)(x.annotation).map(E=>({value:E})),y=p.resultMetadata?(0,i.getResultStructMetadataAnnotation)(p,p.resultMetadata):void 0;return y&&g.push(y),g.push(...p.resultMetadata?[]:[]),x.sourceExplore&&g.push({value:e.Tag.withPrefix("#(malloy) ").set(["source_name"],x.sourceExplore.name).toString()}),g.push({value:e.Tag.withPrefix("#(malloy) ").set(["query_name"],x.resultExplore.name).toString()}),{schema:m,data:l(x.data.toObject(),m),connection_name:x.connectionName,annotations:g.length>0?g:void 0,query_timezone:x.data.field.queryTimezone}}t.wrapResult=c,t.DEFAULT_LOG_RANGE={start:{line:0,character:0},end:{line:0,character:0}};function f(x,h){return x.map(p=>{var m,g,y,E;return{severity:p.severity,message:p.message,range:(g=(m=p.at)===null||m===void 0?void 0:m.range)!==null&&g!==void 0?g:t.DEFAULT_LOG_RANGE,url:(E=(y=p.at)===null||y===void 0?void 0:y.url)!==null&&E!==void 0?E:h}})}t.mapLogs=f})(KE);var zht=T&&T.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Wht=T&&T.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ght=T&&T.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&zht(e,t,r);return Wht(e,t),e};Object.defineProperty(i1,"__esModule",{value:!0}),i1.malloyToQuery=i1.MalloyToQuery=void 0;const Vht=qd,Ln=Ght(I),Xxe=T2,JE=Pn,Yht=et,Kht=qE,Zxe=Jn,Jht=KE,aP="Malloy query documents";class ede extends Vht.AbstractParseTreeVisitor{constructor(e,r){super(),this.parseInfo=e,this.msgLog=r}internalError(e,r){return this.contextError(e,"internal-translator-error",{message:r}),new Error(`Internal Translator Error: ${r}`)}getLocation(e){return{url:this.parseInfo.sourceURL,range:(0,Zxe.rangeFromContext)(this.parseInfo.sourceInfo,e)}}contextError(e,r,i,s){this.msgLog.log((0,Xxe.makeLogMessage)(r,i,{at:this.getLocation(e),...s}))}getNumber(e){return Number.parseInt(e.text)}defaultResult(){return null}getAnnotations(e){const r=e.ANNOTATION().map(i=>({value:i.text}));return r.length>0?r:void 0}getIsAnnotations(e){var r,i;if(e===void 0)return;const o=((r=this.getAnnotations(e._beforeIs))!==null&&r!==void 0?r:[]).concat((i=this.getAnnotations(e._afterIs))!==null&&i!==void 0?i:[]);return o.length>0?o:void 0}notAllowed(e,r){this.illegal(e,`${r} are not allowed in ${aP}`)}illegal(e,r){this.contextError(e,"invalid-malloy-query-document",r)}visitMalloyDocument(e){const r=e.malloyStatement();let i;for(const s of r)s.defineSourceStatement()?this.notAllowed(s,"Source definitions"):s.defineQuery()?this.notAllowed(s,"Query definitions"):s.importStatement()?this.notAllowed(s,"Import statements"):s.docAnnotations()?this.notAllowed(s,"Model annotations"):s.ignoredObjectAnnotations()?this.notAllowed(s,"Detatched object annotations"):s.experimentalStatementForTesting()?this.notAllowed(s,"Experimental testing statements"):i===void 0?i=s.runStatement():this.illegal(s,`${aP} may only have one run statement`);return i===void 0?(this.illegal(e,`${aP} must have a run statement`),null):this.visitRunStatement(i)}visitRunStatement(e){const r=e.topLevelAnonQueryDef(),i=this.getQueryDefinition(r.sqExpr()),s=this.getAnnotations(e.topLevelAnonQueryDef().tags());return i!==null?{annotations:s,definition:i}:null}getQueryReference(e){if(e.sourceArguments())this.illegal(e,"Queries do not support parameters");else return{name:(0,JE.getId)(e)};return null}getQueryDefinition(e){if(e instanceof Ln.SQIDContext){const r=this.getQueryReference(e);if(r!==null)return{kind:"query_reference",...r}}else{if(e instanceof Ln.SQParensContext)return this.getQueryDefinition(e.sqExpr());if(e instanceof Ln.SQComposeContext)this.notAllowed(e,"Source compositions");else if(e instanceof Ln.SQRefinedQueryContext){const r=e.sqExpr(),i=this.getQueryDefinition(r),s=this.getRefinementSegment(e.segExpr());return s===null||i===null?null:(s.kind==="arrow"&&this.notAllowed(e,"Queries against refined queries"),{kind:"refinement",base:i,refinement:s})}else if(e instanceof Ln.SQExtendedSourceContext)this.notAllowed(e,"Source extensions");else if(e instanceof Ln.SQIncludeContext)this.notAllowed(e,"Source inclusions");else if(e instanceof Ln.SQTableContext)this.notAllowed(e,"Table statements");else if(e instanceof Ln.SQSQLContext)this.notAllowed(e,"SQL statements");else if(e instanceof Ln.SQArrowContext){const r=e.sqExpr(),i=this.getQueryDefinition(r),s=this.getRefinementSegment(e.segExpr());return s===null||i===null?null:i.kind==="query_reference"?{kind:"arrow",source:{...i,kind:"source_reference"},view:s}:i.kind==="arrow"?{kind:"arrow",source:i.source,view:{kind:"arrow",source:i.view,view:s}}:{kind:"arrow",source:i,view:s}}}return null}getRefinementSegment(e){if(e instanceof Ln.SegOpsContext){const r=e.queryProperties().queryStatement().flatMap(i=>this.getSegmentOperation(i));return r.some(i=>i===null)?null:{kind:"segment",operations:r}}else if(e instanceof Ln.SegFieldContext){const{name:r,path:i}=this.getFieldPath(e.fieldPath());return{kind:"view_reference",name:r,path:i}}else{if(e instanceof Ln.SegParenContext)return this.getViewExpression(e.vExpr());if(e instanceof Ln.SegRefineContext){const r=this.getRefinementSegment(e._lhs),i=this.getRefinementSegment(e._rhs);return r===null||i===null?null:{kind:"refinement",base:r,refinement:i}}}return null}getGroupByStatement(e){const r=this.getAnnotations(e.tags()),s=e.queryFieldList().queryFieldEntry().map(o=>this.getQueryField(o));return s.some(o=>o===null)||s===null?null:s.map(o=>{var u;const a=[...r??[],...(u=o.field.annotations)!==null&&u!==void 0?u:[]];return{kind:"group_by",name:o.name,field:{...o.field,annotations:a.length>0?a:void 0}}})}getAggregateStatement(e){const r=this.getAnnotations(e.tags()),s=e.queryFieldList().queryFieldEntry().map(o=>this.getQueryField(o));return s.some(o=>o===null)||s===null?null:s.map(o=>{var u;const a=[...r??[],...(u=o.field.annotations)!==null&&u!==void 0?u:[]];return{kind:"aggregate",name:o.name,field:{...o.field,annotations:a.length>0?a:void 0}}})}getOrderByStatement(e){const r=e.ordering().orderBySpec(),i=[];for(const s of r)if(s.INTEGER_LITERAL())this.notAllowed(s,"Indexed order by statements");else if(s.fieldName()){const o=(0,JE.getId)(s.fieldName()),u=s.ASC()?"asc":s.DESC()?"desc":void 0;i.push({kind:"order_by",direction:u,field_reference:{name:o}})}else return null;return i}getNestStatement(e){const r=this.getAnnotations(e.tags()),i=e.nestedQueryList().nestEntry(),s=[];for(const o of i){if(!(o instanceof Ln.NestDefContext))return this.internalError(o,"Expected nestDef"),null;const u=this.getAnnotations(o.tags()),a=this.getIsAnnotations(o.isDefine()),l=o.queryName(),c=l?(0,JE.getId)(l):void 0,f=this.getViewExpression(o.vExpr());if(f===null)return null;s.push({kind:"nest",name:c,view:{definition:f,annotations:this.combineAnnotations(r,u,a)}})}return s}getViewExpression(e){if(e instanceof Ln.VSegContext)return this.getRefinementSegment(e.segExpr());if(e instanceof Ln.VArrowContext){const r=this.getRefinementSegment(e),i=this.getViewExpression(e._rhs);return r===null||i===null?null:{kind:"arrow",source:r,view:i}}else return this.internalError(e,"Unexpected VExpr node"),null}getLimitStatement(e){return{kind:"limit",limit:this.getNumber(e.INTEGER_LITERAL())}}getSegmentOperation(e){if(e.groupByStatement()){const r=e.groupByStatement();return this.getGroupByStatement(r)}else if(e.aggregateStatement()){const r=e.aggregateStatement();return this.getAggregateStatement(r)}else if(e.limitStatement()){const r=e.limitStatement(),i=this.getLimitStatement(r);return i===null?null:[i]}else if(e.declareStatement())this.notAllowed(e,"Declare statements");else if(e.queryJoinStatement())this.notAllowed(e,"Query join statements");else if(e.queryExtend())this.notAllowed(e,"Query extend statements");else if(e.projectStatement())this.notAllowed(e,"Select statements");else if(e.indexStatement())this.notAllowed(e,"Index statements");else if(e.calculateStatement())this.notAllowed(e,"Calculate statements");else if(e.topStatement())this.notAllowed(e,"Top statements");else if(e.orderByStatement()){const r=e.orderByStatement();return this.getOrderByStatement(r)}else if(e.whereStatement()){const r=e.whereStatement(),i=this.getWhere(r);return i===null?null:i.map(s=>({kind:"where",...s}))}else if(e.havingStatement()){const r=e.havingStatement(),i=this.getHaving(r);return i===null?null:i.map(s=>({kind:"having",...s}))}else if(e.nestStatement()){const r=e.nestStatement();return this.getNestStatement(r)}else e.sampleStatement()?this.notAllowed(e,"Sample statements"):e.timezoneStatement()?this.notAllowed(e,"Timezone statements"):(e.queryAnnotation()||e.ignoredModelAnnotations())&&this.notAllowed(e,"Detached annotation statements");return null}getFieldPath(e){const r=e.fieldName().map(o=>(0,JE.getId)(o)),i=r[0],s=r.slice(1);return{name:i,path:s.length>0?s:void 0}}getTimeframe(e){const r=e.text;return(0,Yht.isTimestampUnit)(r)?r:(this.illegal(e,`Invalid timeframe ${r}`),null)}getQueryField(e){if(e.taggedRef()){const r=e.taggedRef(),i=this.getAnnotations(r.tags()),{name:s,path:o}=this.getFieldPath(r.fieldPath());if(r.refExpr()){const u=r.refExpr();if(u.timeframe()){const a=this.getTimeframe(u.timeframe());return a===null?null:{name:void 0,field:{annotations:i,expression:{kind:"time_truncation",field_reference:{name:s,path:o},truncation:a}}}}else u.aggregate()&&this.notAllowed(u,"Aggregate expressions")}else return{name:void 0,field:{annotations:i,expression:{kind:"field_reference",name:s,path:o}}}}else if(e.fieldDef()){const r=e.fieldDef(),i=this.getAnnotations(r.tags()),s=this.getIsAnnotations(r.isDefine()),o=(0,JE.getId)(r.fieldNameDef()),u=this.getFieldExpression(r.fieldExpr());return u===null?null:{name:o,field:{expression:u,annotations:this.combineAnnotations(i,s)}}}return null}getFieldExpression(e){if(e instanceof Ln.ExprFieldPathContext){const{name:r,path:i}=this.getFieldPath(e.fieldPath());return{kind:"field_reference",name:r,path:i}}else if(e instanceof Ln.ExprTimeTruncContext){const r=this.getTimeframe(e.timeframe()),i=e.fieldExpr(),s=this.getFieldExpression(i);return s===null||r===null?null:s.kind!=="field_reference"?(this.illegal(i,"Left hand side of time truncation must be a field reference"),null):{kind:"time_truncation",truncation:r,field_reference:{name:s.name,path:s.path,parameters:s.parameters}}}else if(e instanceof Ln.ExprFieldPropsContext){const r=e.fieldExpr(),i=this.getFieldExpression(r);if(i===null)return null;if(i.kind!=="field_reference")return this.illegal(r,"Left hand side of filtered field must be a field reference"),null;const s=e.fieldProperties().fieldPropertyStatement(),o=[];for(const u of s){const a=u.whereStatement();if(a){const l=this.getWhere(a);if(l===null)return null;o.push(...l)}}return{kind:"filtered_field",field_reference:{name:i.name,path:i.path,parameters:i.parameters},where:o}}return null}stripQuote(e,r){return e.slice(e.indexOf(r)+r.length,e.lastIndexOf(r))}getFilterString(e){const r=e.tripFilterString(),i=e.tickFilterString();if(r){const s=r.BQ3_FILTER(),o=r.DQ3_FILTER(),u=r.SQ3_FILTER();if(s)return this.stripQuote(s.text,"```");if(o)return this.stripQuote(o.text,'"""');if(u)return this.stripQuote(u.text,"'''")}else if(i){const s=i.BQ_FILTER(),o=i.DQ_FILTER(),u=i.SQ_FILTER();if(s)return this.stripQuote(s.text,"`");if(o)return this.stripQuote(o.text,'"');if(u)return this.stripQuote(u.text,"'")}return null}getFilterExpr(e){if(e instanceof Ln.ExprCompareContext&&e.compareOp().MATCH()){const r=e.fieldExpr()[0],i=e.fieldExpr()[1];if(r instanceof Ln.ExprFieldPathContext&&i instanceof Ln.ExprLiteralContext){const{path:s,name:o}=this.getFieldPath(r.fieldPath()),u=i.literal();if(u instanceof Ln.FilterString_stubContext){const a=this.getFilterString(u.filterString());return a===null?null:{filter:{kind:"filter_string",field_reference:{name:o,path:s},filter:a}}}}}return this.notAllowed(e,"Filters other than comparisons with filter strings"),null}getWhere(e){const i=e.filterClauseList().fieldExpr().map(s=>this.getFilterExpr(s));return i.some(s=>s===null)?null:i}getHaving(e){const i=e.filterClauseList().fieldExpr().map(s=>this.getFilterExpr(s));return i.some(s=>s===null)?null:i}combineAnnotations(...e){const r=e.flatMap(i=>i??[]);return r.length>0?r:void 0}}i1.MalloyToQuery=ede;function Xht(t){const e=(0,Zxe.getSourceInfo)(t),r=new Xxe.BaseMessageLogger(null),i="internal://query.malloy",s=(0,Kht.runMalloyParser)(t,i,e,r),u=new ede(s,r).visit(s.root),a=(0,Jht.mapLogs)(r.getLog(),i);if(u===null)return{logs:a};if(!("definition"in u))throw new Error("Expected a query");return{query:u,logs:a}}i1.malloyToQuery=Xht,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.malloyToQuery=t.exploreQueryWalkerBuilder=t.MalloyTranslation=t.MalloyTranslator=void 0;var e=Wc;Object.defineProperty(t,"MalloyTranslator",{enumerable:!0,get:function(){return e.MalloyTranslator}}),Object.defineProperty(t,"MalloyTranslation",{enumerable:!0,get:function(){return e.MalloyTranslation}});var r=r1;Object.defineProperty(t,"exploreQueryWalkerBuilder",{enumerable:!0,get:function(){return r.exploreQueryWalkerBuilder}});var i=i1;Object.defineProperty(t,"malloyToQuery",{enumerable:!0,get:function(){return i.malloyToQuery}})}(P4);var Ie={},AD={};Object.defineProperty(AD,"__esModule",{value:!0}),AD.MALLOY_VERSION=void 0,AD.MALLOY_VERSION="0.0.264",Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.InMemoryModelCache=Ie.CacheManager=Ie.CSVWriter=Ie.JSONWriter=Ie.DataWriter=Ie.DataRecord=Ie.DataArray=Ie.Result=Ie.ExploreMaterializer=Ie.PreparedResultMaterializer=Ie.QueryMaterializer=Ie.ModelMaterializer=Ie.SingleConnectionRuntime=Ie.ConnectionRuntime=Ie.Runtime=Ie.ExploreField=Ie.JoinRelationship=Ie.QueryField=Ie.Query=Ie.StringField=Ie.UnsupportedField=Ie.JSONField=Ie.BooleanField=Ie.NumberField=Ie.TimestampField=Ie.DateField=Ie.TimestampTimeframe=Ie.DateTimeframe=Ie.AtomicField=Ie.AtomicFieldType=Ie.Explore=Ie.SourceRelationship=Ie.FixedConnectionMap=Ie.InMemoryURLReader=Ie.EmptyURLReader=Ie.PreparedResult=Ie.DocumentCompletion=Ie.DocumentSymbol=Ie.DocumentPosition=Ie.DocumentRange=Ie.DocumentTablePath=Ie.Parse=Ie.PreparedQuery=Ie.Model=Ie.MalloyError=Ie.Malloy=void 0;const tde=P4,yi=Gi,nde=qr,lP=h2,Zht=AD,ept=m2,Un=mi,tpt=g0,rde="internal://internal.malloy";let S0=class GD{static get version(){return Zht.MALLOY_VERSION}static _parse(e,r,i,s,o){r===void 0&&(r=new URL(rde));let u=r;s!=null&&s.importBaseURL&&(u=s==null?void 0:s.importBaseURL);const a=new tde.MalloyTranslator(r.toString(),u.toString(),{urls:{[r.toString()]:e}},i);return s!=null&&s.testEnvironment&&(a.allDialectsEnabled=!0),new sde(a,o)}static parse({url:e,urlReader:r,source:i,eventStream:s,options:o}){if(i!==void 0)return GD._parse(i,e,s,o);if(r===void 0)throw new Error("Internal Error: urlReader is required.");if(e===void 0)throw new Error("Internal Error: url is required if source not present.");return DD(r,e).then(({contents:u,invalidationKey:a})=>GD._parse(u,e,s,o,a))}static async compile({url:e,source:r,parse:i,urlReader:s,connections:o,model:u,refreshSchemaCache:a,noThrowOnError:l,eventStream:c,importBaseURL:f,cacheManager:x}){var h,p,m,g,y;let E;if(a&&(E=typeof a=="number"?a:Date.now()),e===void 0&&r===void 0&&i===void 0)throw new Error("Internal Error: url, source, or parse required.");e===void 0&&(i!==void 0?e=new URL(i._translator.sourceURL):e=new URL(rde));const A={};if(r===void 0&&x!==void 0){const C=await x.getCachedModelDef(s,e.toString());if(C)return new o1(C.modelDef,[],[e.toString(),...RD(C.modelDef.dependencies)])}f??(f=e);let _;const v=e.toString();if(i!==void 0){_=i._translator;const C=(h=i._invalidationKey)!==null&&h!==void 0?h:await vP(s,e);A[v]=C}else{if(r===void 0){const{contents:C,invalidationKey:S}=await DD(s,e);A[v]=S,r=C}else{const C=await vP(s,e);A[v]=C}_=new tde.MalloyTranslator(v,f.toString(),{urls:{[v]:r}},c)}for(;;){const C=_.translate(u==null?void 0:u._modelDef);if(C.final)if(C.modelDef){await(x==null?void 0:x.setCachedModelDef(e.toString(),{modelDef:C.modelDef,invalidationKeys:A}));for(const S of _.newlyTranslatedDependencies())await(x==null?void 0:x.setCachedModelDef(S.url,{modelDef:S.modelDef,invalidationKeys:A}));return new o1(C.modelDef,C.problems||[],[...(p=u==null?void 0:u.fromSources)!==null&&p!==void 0?p:[],...(m=C.fromSources)!==null&&m!==void 0?m:[]],S=>_.referenceAt(S),S=>_.importAt(S))}else if(l){const S={name:"modelDidNotCompile",exports:[],contents:{},dependencies:{},queryList:[]},b=(u==null?void 0:u._modelDef)||S;return new o1(b,C.problems||[],[...(g=u==null?void 0:u.fromSources)!==null&&g!==void 0?g:[],...(y=C.fromSources)!==null&&y!==void 0?y:[]],R=>_.referenceAt(R),R=>_.importAt(R))}else{const S=C.problems||[],b=_.prettyErrors();throw new ide(`Error(s) compiling model:
1862
1862
  ${b}`,S)}else{if(C.urls)for(const b of C.urls)try{if(OD(b))throw new Error("In order to use relative imports, you must compile a file via a URL.");if(x!==void 0){const D=await x.getCachedModelDef(s,b);if(D){for(const $ in D.invalidationKeys)A[$]=D.invalidationKeys[$];_.update({translations:{[b]:D.modelDef}});continue}}const{contents:R,invalidationKey:O}=await DD(s,new URL(b)),B={[b]:R};A[b]=O,_.update({urls:B})}catch(R){_.update({errors:{urls:{[b]:R.message}}})}const{modelAnnotation:S}=_.modelAnnotation(u==null?void 0:u._modelDef);if(C.tables){const b=new Map;for(const R in C.tables){const{connectionName:O,tablePath:B}=C.tables[R],D=b.get(O);D===void 0?b.set(O,{[R]:B}):D[R]=B}for(const[R,O]of b)try{const B=await o.lookupConnection(R),{schemas:D,errors:$}=await GD.safelyFetchTableSchema(B,O,{refreshTimestamp:E,modelAnnotation:S});_.update({tables:D,errors:{tables:$}})}catch(B){const D={},$={};for(const U in O)$[U]=B.toString();_.update({tables:D,errors:{tables:$}})}}if(C.compileSQL){const b=C.compileSQL,R=b.connection,O=(0,tpt.sqlKey)(b.connection,b.selectStr);try{const D=await(await o.lookupConnection(R)).fetchSchemaForSQLStruct(b,{refreshTimestamp:E,modelAnnotation:S});D.error&&_.update({errors:{compileSQL:{[O]:D.error}}}),D.structDef&&_.update({compileSQL:{[O]:D.structDef}})}catch(B){const D={};D[O]=B.toString(),_.update({errors:{compileSQL:D}})}}}}}static async safelyFetchTableSchema(e,r,i){const s=await e.fetchSchemaForTables(r,i);for(const o of Object.keys(r))if(s.schemas[o]===void 0&&s.errors[o]===void 0)throw new Error(`Schema fetch error for ${e.name}, no response for ${o} from ${e.dialectName}`);return s}static async run({connections:e,preparedResult:r,sqlStruct:i,connection:s,options:o}){if(!s){if(!e)throw new Error("Internal Error: Connection or LookupConnection<Connection> must be provided.");const u=(i==null?void 0:i.connection)||(r==null?void 0:r.connectionName);s=await e.lookupConnection(u)}if(i){const u=await s.runSQL(i.selectStr);return new eA({structs:[i],sql:i.selectStr,result:u.rows,totalRows:u.totalRows,runStats:u.runStats,lastStageName:i.name,malloy:"",connectionName:i.connection,sourceExplore:"",sourceFilters:[],profilingUrl:u.profilingUrl},{name:"empty_model",exports:[],contents:{},queryList:[],dependencies:{}})}else if(r){const u=await s.runSQL(r.sql,o);return new eA({...r._rawQuery,result:u.rows,totalRows:u.totalRows,runStats:u.runStats,profilingUrl:u.profilingUrl},r._modelDef)}else throw new Error("Internal error: sqlStruct or preparedResult must be provided.")}static async*runStream({connections:e,preparedResult:r,sqlStruct:i,connection:s,options:o}){if(i===void 0&&r===void 0)throw new Error("Internal error: sqlBlock or preparedResult must be provided.");const u=(i==null?void 0:i.connection)||(r==null?void 0:r.connectionName);if(s===void 0){if(e===void 0)throw new Error("Internal Error: Connection or LookupConnection<Connection> must be provided.");s=await e.lookupConnection(u)}if(!s.canStream())throw new Error(`Connection '${u}' cannot stream results.`);let a,l;if(i)l=new Gs(i),a=i.selectStr;else if(r!==void 0)l=r.resultExplore,a=r.sql;else throw new Error("Internal error: sqlStruct or preparedResult must be provided.");let c=0;for await(const f of s.runSQLStream(a,o))yield new Bd(f,c,l,void 0,void 0),c+=1}static async estimateQueryCost({connections:e,preparedResult:r,sqlStruct:i}){if(!e)throw new Error("Internal Error: Connection or LookupConnection<Connection> must be provided.");const s=(i==null?void 0:i.connection)||(r==null?void 0:r.connectionName),o=await e.lookupConnection(s);if(i)return await o.estimateQueryCost(i.selectStr);if(r)return await o.estimateQueryCost(r.sql);throw new Error("Internal error: sqlStruct or preparedResult must be provided.")}};Ie.Malloy=S0;class ide extends Error{constructor(e,r=[]){super(e),this.problems=r}}Ie.MalloyError=ide;class o1{constructor(e,r,i,s=()=>{},o=()=>{}){this.modelDef=e,this.problems=r,this.fromSources=i,this._referenceAt=s,this._importAt=o}tagParse(e){return(0,Un.annotationToTag)(this.modelDef.annotation,e)}getTaglines(e){return(0,Un.annotationToTaglines)(this.modelDef.annotation,e)}getReference(e){return this._referenceAt(e)}getImport(e){return this._importAt(e)}getPreparedQueryByName(e){const r=this.modelDef.contents[e];if((r==null?void 0:r.type)==="query")return new u1(r,this.modelDef,this.problems,e);throw new Error("Given query name does not refer to a named query.")}getPreparedQueryByIndex(e){if(e<0)throw new Error(`Invalid index ${e}.`);if(e>=this.modelDef.queryList.length)throw new Error(`Query index ${e} is out of bounds.`);return new u1(this.modelDef.queryList[e],this.modelDef,this.problems)}get preparedQuery(){return this.getPreparedQuery()}getPreparedQuery(){if(this.modelDef.queryList.length===0)throw new Error("Model has no queries.");return new u1(this.modelDef.queryList[this.modelDef.queryList.length-1],this.modelDef,this.problems)}getExploreByName(e){const r=this.modelDef.contents[e];if((0,yi.isSourceDef)(r))return new Gs(r);throw new Error("'name' is not an explore")}get explores(){return Object.values(this.modelDef.contents).filter(yi.isSourceDef).map(e=>new Gs(e))}get namedQueries(){const e=r=>r.type==="query";return Object.values(this.modelDef.contents).filter(e)}get exportedExplores(){return this.explores.filter(e=>this.modelDef.exports.includes(e.name))}get _modelDef(){return this.modelDef}}Ie.Model=o1;class u1{constructor(e,r,i,s){this.problems=i,this.name=s,this._query=e,this._modelDef=r}tagParse(e){const r=(0,Un.annotationToTag)(this._modelDef.annotation).tag;return e=(0,Un.addModelScope)(e,r),(0,Un.annotationToTag)(this._query.annotation,e)}getTaglines(e){return(0,Un.annotationToTaglines)(this._query.annotation,e)}get preparedResult(){return this.getPreparedResult()}getPreparedResult(e){const i=new yi.QueryModel(this._modelDef,e==null?void 0:e.eventStream).compileQuery(this._query,e);return new XE({...i,queryName:this.name||i.queryName},this._modelDef)}get dialect(){const e=this._query.structRef,r=typeof e=="string"?this._modelDef.contents[e]:e;if(!(0,yi.isSourceDef)(r))throw new Error("Invalid source for query");return r.dialect}getFlattenedQuery(e){return this}}Ie.PreparedQuery=u1;class sde{constructor(e,r){this.translator=e,this.invalidationKey=r}get symbols(){return(this.translator.metadata().symbols||[]).map(e=>new _D(e))}get tablePathInfo(){var e;return((e=this.translator.tablePathInfo().pathInfo)!==null&&e!==void 0?e:[]).map(i=>new ode(i))}get _translator(){return this.translator}get _invalidationKey(){return this.invalidationKey}completions(e){return(this.translator.completions(e).completions||[]).map(r=>new ude(r))}helpContext(e){return this.translator.helpContext(e).helpContext}}Ie.Parse=sde;class ode{constructor(e){this._range=a1.fromJSON(e.range),this._connectionId=e.connectionId,this._tablePath=e.tablePath}get range(){return this._range}get connectionId(){return this._connectionId}get tablePath(){return this._tablePath}}Ie.DocumentTablePath=ode;class a1{constructor(e,r){this._start=e,this._end=r}get start(){return this._start}get end(){return this._end}toJSON(){return{start:this.start.toJSON(),end:this.end.toJSON()}}static fromJSON(e){return new a1(new cP(e.start.line,e.start.character),new cP(e.end.line,e.end.character))}}Ie.DocumentRange=a1;class cP{constructor(e,r){this._line=e,this._character=r}get line(){return this._line}get character(){return this._character}toJSON(){return{line:this.line,character:this.character}}}Ie.DocumentPosition=cP;class _D{constructor(e){this._range=a1.fromJSON(e.range),this._lensRange=e.lensRange?a1.fromJSON(e.lensRange):void 0,this._type=e.type,this._name=e.name,this._children=e.children.map(r=>new _D(r))}get range(){return this._range}get lensRange(){var e;return(e=this._lensRange)!==null&&e!==void 0?e:this._range}get type(){return this._type}get name(){return this._name}get children(){return this._children}}Ie.DocumentSymbol=_D;class ude{constructor(e){this.type=e.type,this.text=e.text}}Ie.DocumentCompletion=ude;class XE{constructor(e,r){this.modelDef=r,this.inner=e}static fromJson({query:e,modelDef:r}){if(!e||!r)throw new Error("Missing required properties in JSON data");return new XE(e,r)}tagParse(e){const r=(0,Un.annotationToTag)(this.modelDef.annotation).tag;return e=(0,Un.addModelScope)(e,r),(0,Un.annotationToTag)(this.inner.annotation,e)}getTaglines(e){return(0,Un.annotationToTaglines)(this.inner.annotation,e)}get annotation(){return this.inner.annotation}get modelAnnotation(){return this.modelDef.annotation}get modelTag(){return(0,Un.annotationToTag)(this.modelDef.annotation).tag}get connectionName(){return this.inner.connectionName}get _rawQuery(){return this.inner}get _modelDef(){return this.modelDef}get sql(){return this.inner.sql}get dependenciesToMaterialize(){return this.inner.dependenciesToMaterialize}get materialization(){return this.inner.materialization}get resultExplore(){if(this.inner.structs.length===0)throw new Error("Malformed query result.");const e=this.inner.structs[this.inner.structs.length-1],r={...e,annotation:this.inner.annotation,name:this.inner.queryName||e.name};try{return new Gs(r,this.sourceExplore)}catch{return new Gs(r)}}get sourceExplore(){const e=this.inner.sourceExplore,r=this.modelDef.contents[e];if(r&&(0,yi.isSourceDef)(r))return new Gs(r)}get _sourceExploreName(){return this.inner.sourceExplore}get _sourceFilters(){return this.inner.sourceFilters||[]}}Ie.PreparedResult=XE;class ade{async readURL(e){throw new Error("No files.")}async getInvalidationKey(e){throw new Error("No files.")}}Ie.EmptyURLReader=ade;class npt{constructor(e){this.files=e}async readURL(e){const r=this.files.get(e.toString());if(r!==void 0)return Promise.resolve({contents:r,invalidationKey:this.invalidationKey(e,r)});throw new Error(`File not found '${e}'`)}async getInvalidationKey(e){const r=this.files.get(e.toString());if(r!==void 0)return Promise.resolve(this.invalidationKey(e,r));throw new Error(`File not found '${e}'`)}invalidationKey(e,r){return OD(e.toString())?null:Cde(r)}}Ie.InMemoryURLReader=npt;class vD{constructor(e,r){this.connections=e,this.defaultConnectionName=r}async getConnection(e){if(e===void 0)if(this.defaultConnectionName!==void 0)e=this.defaultConnectionName;else throw new Error("No default connection.");const r=this.connections.get(e);if(r!==void 0)return Promise.resolve(r);throw new Error(`No connection found with name ${e}.`)}listConnections(){return Array.from(this.connections.values())}async lookupConnection(e){return this.getConnection(e)}static fromArray(e){return new vD(new Map(e.map(r=>[r.name,r])))}}Ie.FixedConnectionMap=vD;var lde;(function(t){t.Nested="nested",t.BaseTable="base_table",t.Cross="cross",t.One="one",t.Many="many",t.Inline="inline"})(lde||(Ie.SourceRelationship=lde={}));class fP{constructor(e,r,i){this._name=e,this._parent=r,this._source=i}get source(){return this.source}get name(){return this._name}get sourceClasses(){const e=[];return this.source&&e.push(this.source.name),e.push(this.name),e}get fieldPath(){const e=[this.name];let r=this._parent;for(;r;)e.unshift(r.name),r=r._parent;return e}hasParentExplore(){return this._parent!==void 0}isExplore(){return this instanceof Gs}isQuery(){return this instanceof yP}}class Gs extends fP{constructor(e,r,i){super(e.as||e.name,r,i),this._structDef=e,this._parentExplore=r,this.sourceExplore=i}get source(){return this.sourceExplore}isIntrinsic(){return(0,yi.isAtomicFieldType)(this._structDef.type)?!("e"in this._structDef):!1}isExploreField(){return!1}tagParse(e){return(0,Un.annotationToTag)(this._structDef.annotation,e)}getTaglines(e){return(0,Un.annotationToTaglines)(this._structDef.annotation,e)}get modelTag(){return this.parsedModelTag||(this.parsedModelTag=(0,Un.annotationToTag)(this._structDef.modelAnnotation).tag),this.parsedModelTag}get name(){return this.structDef.as||this.structDef.name}getQueryByName(e){const r=this.sourceStructDef;if(!r)throw new Error(`Cannot get query by name from a struct of type ${this.structDef.type}`);const i={type:"query",structRef:r,pipeline:[{type:"reduce",queryFields:[{type:"fieldref",path:[e]}]}]};return new u1(i,this.modelDef,[],e)}get modelDef(){if(!(0,yi.isSourceDef)(this.structDef))throw new Error(`Cannot create pseudo model for struct type ${this.structDef.type}`);return{name:"generated_model",exports:[],contents:{[this.structDef.name]:this.structDef},queryList:[],dependencies:{}}}getSingleExploreModel(){return new o1(this.modelDef,[],[])}get fieldMap(){var e;if(this._fieldMap===void 0){const r=((e=this.source)===null||e===void 0?void 0:e.fieldMap)||new Map;this._fieldMap=new Map(this.structDef.fields.map(i=>{const s=i.as||i.name,o=r.get(i.name);if((0,yi.isJoined)(i))return[s,new EP(i,this,o)];if(i.type==="turtle")return[s,new yP(i,this,o)];if(i.type==="string")return[s,new gP(i,this,o)];if(i.type==="number")return[s,new CD(i,this,o)];if(i.type==="date")return i.timeframe&&["day_of_month","day_of_week","day_of_year"].includes(i.timeframe)?[s,new CD({...i,type:"number"},this,o)]:[s,new xP(i,this,o)];if(i.type==="timestamp")return[s,new dP(i,this,o)];if(i.type==="boolean")return[s,new hP(i,this,o)];if(i.type==="json")return[s,new pP(i,this,o)];if(i.type==="sql native")return[s,new mP(i,this,o)]}))}return this._fieldMap}get allFields(){return[...this.fieldMap.values()]}get allFieldsWithOrder(){var e,r,i;if(!this._allFieldsWithOrder){const s=[...((i=(r=(e=this.sourceStructDef)===null||e===void 0?void 0:e.resultMetadata)===null||r===void 0?void 0:r.orderBy)===null||i===void 0?void 0:i.map(u=>{if(typeof u.field=="string")return{field:this.fieldMap.get(u.field),dir:u.dir};throw new Error("Does not support mapping order by from number.")}))||[]],o=new Set(s.map(u=>u.field.name));this._allFieldsWithOrder=[...s,...this.allFields.filter(u=>!o.has(u.name)).map(u=>({field:u,dir:"asc"}))]}return this._allFieldsWithOrder}get intrinsicFields(){return[...this.fieldMap.values()].filter(e=>e.isIntrinsic())}get dimensions(){return[...this.allFieldsWithOrder].filter(e=>e.field.isAtomicField()&&e.field.sourceWasDimension())}getFieldByName(e){const r=this.fieldMap.get(e);if(r===void 0)throw new Error(`No such field ${e}.`);return r}getFieldByNameIfExists(e){return this.fieldMap.get(e)}get primaryKey(){var e;return(e=this.sourceStructDef)===null||e===void 0?void 0:e.primaryKey}get parentExplore(){return this._parentExplore}hasParentExplore(){return this instanceof EP}get filters(){var e;return(0,yi.isSourceDef)(this.structDef)?((e=this.structDef.resultMetadata)===null||e===void 0?void 0:e.filterList)||[]:[]}get limit(){var e,r;return(r=(e=this.sourceStructDef)===null||e===void 0?void 0:e.resultMetadata)===null||r===void 0?void 0:r.limit}get structDef(){return this._structDef}get queryTimezone(){var e;return(e=this.sourceStructDef)===null||e===void 0?void 0:e.queryTimezone}get sourceStructDef(){if((0,yi.isSourceDef)(this.structDef))return this.structDef}toJSON(){var e,r;return{_structDef:this._structDef,sourceExplore:(e=this.sourceExplore)===null||e===void 0?void 0:e.toJSON(),_parentExplore:(r=this._parentExplore)===null||r===void 0?void 0:r.toJSON()}}static fromJSON(e){const r=e._parentExplore!==void 0?Gs.fromJSON(e._parentExplore):void 0,i=e.sourceExplore!==void 0?Gs.fromJSON(e.sourceExplore):void 0;return new Gs(e._structDef,r,i)}get location(){return this.structDef.location}}Ie.Explore=Gs;var Ka;(function(t){t.String="string",t.Number="number",t.Boolean="boolean",t.Date="date",t.Timestamp="timestamp",t.Json="json",t.NativeUnsupported="sql native",t.Error="error"})(Ka||(Ie.AtomicFieldType=Ka={}));class df extends fP{constructor(e,r,i){super(e.as||e.name,r,i),this.fieldTypeDef=e,this.parent=r}get type(){switch(this.fieldTypeDef.type){case"string":return Ka.String;case"boolean":return Ka.Boolean;case"date":return Ka.Date;case"timestamp":return Ka.Timestamp;case"number":return Ka.Number;case"json":return Ka.Json;case"sql native":return Ka.NativeUnsupported;case"error":return Ka.Error;case"record":case"array":throw new Error(`MTOY TODO IMPLEMENT Atomic ${this.fieldTypeDef.type}`);default:{const e=this.fieldTypeDef;throw new Error(`Can't make an atomic field from ${e}`)}}}tagParse(e){return e=(0,Un.addModelScope)(e,this.parent.modelTag),(0,Un.annotationToTag)(this.fieldTypeDef.annotation,e)}getTaglines(e){return(0,Un.annotationToTaglines)(this.fieldTypeDef.annotation,e)}isIntrinsic(){return(0,yi.fieldIsIntrinsic)(this.fieldTypeDef)}isQueryField(){return!1}isExploreField(){return!1}isAtomicField(){return!0}isCalculation(){return(0,yi.expressionIsCalculation)(this.fieldTypeDef.expressionType)}get sourceField(){throw new Error}get sourceClasses(){const e=this.fieldTypeDef.name||this.fieldTypeDef.as;return e?[e]:[]}get referenceId(){var e;return(e=this.fieldTypeDef.resultMetadata)===null||e===void 0?void 0:e.referenceId}sourceWasMeasure(){var e;return((e=this.fieldTypeDef.resultMetadata)===null||e===void 0?void 0:e.fieldKind)==="measure"}sourceWasMeasureLike(){var e,r;return((e=this.fieldTypeDef.resultMetadata)===null||e===void 0?void 0:e.fieldKind)==="measure"||((r=this.fieldTypeDef.resultMetadata)===null||r===void 0?void 0:r.fieldKind)==="struct"}sourceWasDimension(){var e;return((e=this.fieldTypeDef.resultMetadata)===null||e===void 0?void 0:e.fieldKind)==="dimension"}hasParentExplore(){return!0}isString(){return this instanceof gP}isNumber(){return this instanceof CD}isDate(){return this instanceof xP}isBoolean(){return this instanceof hP}isJSON(){return this instanceof pP}isTimestamp(){return this instanceof dP}isUnsupported(){return this instanceof mP}get parentExplore(){return this.parent}get expression(){const e=".",r=this.fieldTypeDef.resultMetadata;return(r==null?void 0:r.sourceExpression)||(r!=null&&r.sourceField.includes(e)?r==null?void 0:r.sourceField:this.name)}get location(){return this.fieldTypeDef.location}}Ie.AtomicField=df;var $d;(function(t){t.Day="day",t.Week="week",t.Month="month",t.Quarter="quarter",t.Year="year"})($d||(Ie.DateTimeframe=$d={}));var Ja;(function(t){t.Day="day",t.Week="week",t.Month="month",t.Quarter="quarter",t.Year="year",t.Second="second",t.Hour="hour",t.Minute="minute"})(Ja||(Ie.TimestampTimeframe=Ja={}));class xP extends df{constructor(e,r,i){super(e,r,i),this.fieldDateDef=e}get timeframe(){if(this.fieldDateDef.timeframe!==void 0)switch(this.fieldDateDef.timeframe){case"day":return $d.Day;case"week":return $d.Week;case"month":return $d.Month;case"quarter":return $d.Quarter;case"year":return $d.Year}}}Ie.DateField=xP;class dP extends df{constructor(e,r,i){super(e,r,i),this.fieldTimestampDef=e}get timeframe(){if(this.fieldTimestampDef.timeframe!==void 0)switch(this.fieldTimestampDef.timeframe){case"day":return Ja.Day;case"week":return Ja.Week;case"month":return Ja.Month;case"quarter":return Ja.Quarter;case"year":return Ja.Year;case"second":return Ja.Second;case"hour":return Ja.Hour;case"minute":return Ja.Minute}}}Ie.TimestampField=dP;class CD extends df{constructor(e,r,i){super(e,r,i),this.fieldNumberDef=e}}Ie.NumberField=CD;class hP extends df{constructor(e,r,i){super(e,r,i),this.fieldBooleanDef=e}}Ie.BooleanField=hP;class pP extends df{constructor(e,r,i){super(e,r,i),this.fieldJSONDef=e}}Ie.JSONField=pP;class mP extends df{constructor(e,r,i){super(e,r,i),this.fieldUnsupportedDef=e}get rawType(){return this.fieldUnsupportedDef.rawType}}Ie.UnsupportedField=mP;class gP extends df{constructor(e,r,i){super(e,r,i),this.fieldStringDef=e}}Ie.StringField=gP;class cde extends fP{constructor(e,r,i){super(e.as||e.name,r,i),this.turtleDef=e}get source(){return this.sourceQuery}isIntrinsic(){return!1}get location(){return this.turtleDef.location}}Ie.Query=cde;class yP extends cde{constructor(e,r,i){super(e,r,i),this.parent=r}tagParse(e){return e=(0,Un.addModelScope)(e,this.parent.modelTag),(0,Un.annotationToTag)(this.turtleDef.annotation,e)}getTaglines(e){return(0,Un.annotationToTaglines)(this.turtleDef.annotation,e)}isQueryField(){return!0}isExploreField(){return!1}isAtomicField(){return!1}get sourceClasses(){const e=this.turtleDef.name||this.turtleDef.as;return e?[e]:[]}hasParentExplore(){return!0}get parentExplore(){return this.parent}get expression(){return this.name}}Ie.QueryField=yP;var l1;(function(t){t.OneToOne="one_to_one",t.OneToMany="one_to_many",t.ManyToOne="many_to_one"})(l1||(Ie.JoinRelationship=l1={}));class EP extends Gs{constructor(e,r,i){super(e,r,i),this._parentExplore=r}get joinRelationship(){if((0,yi.isJoined)(this.structDef))switch(this.structDef.join){case"one":return l1.OneToOne;case"many":case"cross":return l1.ManyToOne}throw new Error("A source field must have a join relationship.")}get isRecord(){return this.joinRelationship===l1.OneToOne}get isArray(){return this.joinRelationship!==l1.OneToOne}tagParse(e){return e=(0,Un.addModelScope)(e,this._parentExplore.modelTag),(0,Un.annotationToTag)(this._structDef.annotation,e)}isQueryField(){return!1}isExploreField(){return!0}isAtomicField(){return!1}get parentExplore(){return this._parentExplore}get sourceClasses(){const e=this.structDef.name||this.structDef.as;return e?[e]:[]}}Ie.ExploreField=EP;class AP{constructor({urlReader:e,connections:r,connection:i,eventStream:s,cacheManager:o}){if(this.isTestRuntime=!1,r===void 0){if(i===void 0)throw new Error("A LookupConnection<Connection> or Connection is required.");r={lookupConnection:()=>Promise.resolve(i)}}e===void 0&&(e=new ade),this._urlReader=e,this._connections=r,this._eventStream=s,this._cacheManager=o}get cacheManager(){return this._cacheManager}get urlReader(){return this._urlReader}get connections(){return this._connections}get eventStream(){return this._eventStream}loadModel(e,r){const{refreshSchemaCache:i,noThrowOnError:s}=r||{};this.isTestRuntime&&(r===void 0?r={testEnvironment:!0}:r={...r,testEnvironment:!0});const o=e instanceof URL?{url:e}:{source:e};return new ZE(this,async()=>S0.compile({...o,urlReader:this.urlReader,connections:this.connections,refreshSchemaCache:i,noThrowOnError:s,eventStream:this.eventStream,replaceMaterializedReferences:r==null?void 0:r.replaceMaterializedReferences,materializedTablePrefix:r==null?void 0:r.materializedTablePrefix,importBaseURL:r==null?void 0:r.importBaseURL,testEnvironment:r==null?void 0:r.testEnvironment,cacheManager:this.cacheManager}),r)}_loadModelFromModelDef(e,r){return new ZE(this,async()=>new o1(e,[],[]),r)}loadQuery(e,r){return this.loadModel(e,r).loadFinalQuery()}loadQueryByIndex(e,r,i){return this.loadModel(e,i).loadQueryByIndex(r,i)}loadQueryByName(e,r,i){return this.loadModel(e,i).loadQueryByName(r,i)}getModel(e,r){return this.loadModel(e,r).getModel()}getQuery(e,r){return this.loadQuery(e,r).getPreparedQuery()}getQueryByIndex(e,r,i){return this.loadQueryByIndex(e,r,i).getPreparedQuery()}getQueryByName(e,r,i){return this.loadQueryByName(e,r,i).getPreparedQuery()}}Ie.Runtime=AP;class rpt extends AP{constructor({urlReader:e,connections:r}){super({connections:vD.fromArray(r),urlReader:e}),this.rawConnections=r}}Ie.ConnectionRuntime=rpt;class ipt extends AP{constructor({urlReader:e,connection:r,eventStream:i,cacheManager:s}){super({urlReader:e,eventStream:i,cacheManager:s,connection:r}),this.connection=r}get supportsNesting(){return(0,lP.getDialect)(this.connection.dialectName).supportsNesting}quote(e){return(0,lP.getDialect)(this.connection.dialectName).sqlMaybeQuoteIdentifier(e)}get dialect(){return(0,lP.getDialect)(this.connection.dialectName)}getQuoter(){return e=>this.quote(e.toString())}}Ie.SingleConnectionRuntime=ipt;class SD{constructor(e,r){this.runtime=e,this._materialize=r}materialize(){return this.materialized===void 0?this.rematerialize():this.materialized}rematerialize(){return this.materialized=this._materialize(),this.materialized}makeQueryMaterializer(e,r){return new fde(this.runtime,e,r)}makeExploreMaterializer(e,r){return new dde(this.runtime,e,r)}makePreparedResultMaterializer(e){return new xde(this.runtime,e)}}class ZE extends SD{constructor(e,r,i){super(e,r),this.runtime=e,this.compileQueryOptions=i}loadFinalQuery(e){return this.makeQueryMaterializer(async()=>(await this.materialize()).getPreparedQuery(),{...this.compileQueryOptions,...e})}loadQueryByIndex(e,r){return this.makeQueryMaterializer(async()=>(await this.materialize()).getPreparedQueryByIndex(e),{...this.compileQueryOptions,...r})}loadQueryByName(e,r){return this.makeQueryMaterializer(async()=>(await this.materialize()).getPreparedQueryByName(e),{...this.compileQueryOptions,...r})}loadQuery(e,r){const{refreshSchemaCache:i,noThrowOnError:s}=r||{};return this.makeQueryMaterializer(async()=>{const o=this.runtime.urlReader,u=this.runtime.connections;this.runtime.isTestRuntime&&(r===void 0?r={testEnvironment:!0}:r={...r,testEnvironment:!0});const a=e instanceof URL?{url:e}:{source:e},l=await this.getModel();return(await S0.compile({...a,urlReader:o,connections:u,model:l,refreshSchemaCache:i,noThrowOnError:s,importBaseURL:r==null?void 0:r.importBaseURL,testEnvironment:r==null?void 0:r.testEnvironment,...this.compileQueryOptions})).preparedQuery})}extendModel(e,r){return this.runtime.isTestRuntime&&(r===void 0?r={testEnvironment:!0}:r={...r,testEnvironment:!0}),new ZE(this.runtime,async()=>{const i=this.runtime.urlReader,s=this.runtime.connections,o=e instanceof URL?{url:e}:{source:e},u=await this.getModel();return await S0.compile({...o,urlReader:i,connections:s,model:u,refreshSchemaCache:r==null?void 0:r.refreshSchemaCache,noThrowOnError:r==null?void 0:r.noThrowOnError,importBaseURL:r==null?void 0:r.importBaseURL,testEnvironment:r==null?void 0:r.testEnvironment,...this.compileQueryOptions})},r)}async search(e,r,i=1e3,s=void 0,o){const u=await this.materialize(),a=new yi.QueryModel(u._modelDef,o),l=u.getExploreByName(e).structDef;if(!(0,yi.isSourceDef)(l))throw new Error("Source to be searched was unexpectedly, not a source");const c=l.connection,f=await this.runtime.connections.lookupConnection(c);return await a.searchIndex(f,e,r,i,s)}async searchValueMap(e,r=10,i){const o=(await this.materialize()).getExploreByName(e);if(!(0,yi.isSourceDef)(o.structDef))throw new Error("Source to be searched was unexpectedly, not a source");let u="{index: *}";o.getFieldByNameIfExists("search_index")&&(u="search_index");const a=`
1863
1863
  run: ${e}
1864
1864
  -> ${u}
@@ -127518,10 +127518,10 @@ class xs extends Sk {
127518
127518
  type: "result"
127519
127519
  }), this.addDependancies(e, o), rce(o) && this.firstSegment.type === "project")
127520
127520
  throw new Error(`Aggregate Fields cannot be used in select - '${o.fieldDef.name}'`);
127521
- } else o instanceof ts && e.addField(s, o, {
127521
+ } else o instanceof ts && (o.isAtomic() && this.addDependancies(e, o), e.addField(s, o, {
127522
127522
  resultIndex: r,
127523
127523
  type: "result"
127524
- });
127524
+ }));
127525
127525
  r++;
127526
127526
  }
127527
127527
  this.expandFilters(e);
@@ -153178,7 +153178,7 @@ Kp.malloyToQuery = Rpt;
153178
153178
  var Ie = {}, ID = {};
153179
153179
  Object.defineProperty(ID, "__esModule", { value: !0 });
153180
153180
  ID.MALLOY_VERSION = void 0;
153181
- ID.MALLOY_VERSION = "0.0.263";
153181
+ ID.MALLOY_VERSION = "0.0.264";
153182
153182
  Object.defineProperty(Ie, "__esModule", { value: !0 });
153183
153183
  Ie.InMemoryModelCache = Ie.CacheManager = Ie.CSVWriter = Ie.JSONWriter = Ie.DataWriter = Ie.DataRecord = Ie.DataArray = Ie.Result = Ie.ExploreMaterializer = Ie.PreparedResultMaterializer = Ie.QueryMaterializer = Ie.ModelMaterializer = Ie.SingleConnectionRuntime = Ie.ConnectionRuntime = Ie.Runtime = Ie.ExploreField = Ie.JoinRelationship = Ie.QueryField = Ie.Query = Ie.StringField = Ie.UnsupportedField = Ie.JSONField = Ie.BooleanField = Ie.NumberField = Ie.TimestampField = Ie.DateField = Ie.TimestampTimeframe = Ie.DateTimeframe = Ie.AtomicField = Ie.AtomicFieldType = Ie.Explore = Ie.SourceRelationship = Ie.FixedConnectionMap = Ie.InMemoryURLReader = Ie.EmptyURLReader = Ie.PreparedResult = Ie.DocumentCompletion = Ie.DocumentSymbol = Ie.DocumentPosition = Ie.DocumentRange = Ie.DocumentTablePath = Ie.Parse = Ie.PreparedQuery = Ie.Model = Ie.MalloyError = Ie.Malloy = void 0;
153184
153184
  const wY = PT, si = Yi, NY = Wr, J7 = z2, Dpt = ID, Opt = W2, Mn = pi, Fpt = t0, LY = "internal://internal.malloy";