@graphenedata/cli 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/cli.js CHANGED
@@ -175,21 +175,18 @@ var init_config = __esm({
175
175
  });
176
176
 
177
177
  // ../lang/functionDefs.ts
178
- import { DUCKDB_DIALECT_FUNCTIONS, GlobalNameSpace, DialectNameSpace, getDialect } from "@graphenedata/malloy";
178
+ import { DUCKDB_DIALECT_FUNCTIONS, GlobalNameSpace, DialectNameSpace, getDialect, registerDialect, StandardSQLDialect, expandBlueprintMap } from "@graphenedata/malloy";
179
179
  function findOverloads(name, dialect) {
180
180
  if (!dialectNamespaces.has(dialect)) {
181
- let d = getDialect(dialect);
182
- dialectNamespaces.set(dialect, new DialectNameSpace(d));
181
+ dialectNamespaces.set(dialect, new DialectNameSpace(getDialect(dialect)));
183
182
  }
184
183
  let res = dialectNamespaces.get(dialect).getEntry(name) || globalNamespace.getEntry(name);
185
184
  return res?.entry ? res.entry.overloads : [];
186
185
  }
187
- var globalNamespace, dialectNamespaces, BIGQUERY_DIALECT_FUNCTIONS;
186
+ var BIGQUERY_DIALECT_FUNCTIONS, BigQueryDialect, globalNamespace, dialectNamespaces;
188
187
  var init_functionDefs = __esm({
189
188
  "../lang/functionDefs.ts"() {
190
189
  "use strict";
191
- globalNamespace = new GlobalNameSpace();
192
- dialectNamespaces = /* @__PURE__ */ new Map();
193
190
  Object.assign(DUCKDB_DIALECT_FUNCTIONS, {
194
191
  "count_if": {
195
192
  takes: { "value": "boolean" },
@@ -315,6 +312,18 @@ var init_functionDefs = __esm({
315
312
  }
316
313
  }
317
314
  };
315
+ BigQueryDialect = class extends StandardSQLDialect {
316
+ constructor() {
317
+ super();
318
+ this.name = "bigquery";
319
+ }
320
+ getDialectFunctions() {
321
+ return expandBlueprintMap(BIGQUERY_DIALECT_FUNCTIONS);
322
+ }
323
+ };
324
+ registerDialect(new BigQueryDialect());
325
+ globalNamespace = new GlobalNameSpace();
326
+ dialectNamespaces = /* @__PURE__ */ new Map();
318
327
  }
319
328
  });
320
329
 
@@ -939,6 +948,15 @@ function analyzeExpression(expr, scope) {
939
948
  if (!isExtractUnit(units)) return diag(expr, "Not a valid unit to extract", errExpr2);
940
949
  return { node: "extract", type: "number", units, e, isAgg: false };
941
950
  }
951
+ case "CastExpression":
952
+ case "TypeCastExpression": {
953
+ let innerExpr = expr.getChild("Expression") || expr.firstChild;
954
+ let e = analyzeExpression(innerExpr, scope);
955
+ let targetTypeStr = txt(expr.getChild("CastType"));
956
+ let type = convertDataType(targetTypeStr);
957
+ if (!type) return diag(expr.getChild("CastType"), `Unsupported cast type: ${targetTypeStr}`, errExpr2);
958
+ return { node: "cast", safe: false, e, dstSQLType: targetTypeStr.toUpperCase(), type, isAgg: e.isAgg };
959
+ }
942
960
  case "FunctionCall":
943
961
  return analyzeFunctionCall(expr, scope);
944
962
  case "Parenthetical":
@@ -1168,6 +1186,8 @@ function convertDataType(dataType) {
1168
1186
  return "string";
1169
1187
  case "INTEGER":
1170
1188
  return "number";
1189
+ case "NUMERIC":
1190
+ return "number";
1171
1191
  case "FLOAT":
1172
1192
  return "number";
1173
1193
  case "FLOAT64":
@@ -1231,36 +1251,36 @@ var table, primary_key, join, as, on, or, and, like, not, _in, from, inner, left
1231
1251
  var init_parser_terms = __esm({
1232
1252
  "../lang/parser.terms.js"() {
1233
1253
  "use strict";
1234
- table = 6;
1235
- primary_key = 12;
1236
- join = 16;
1237
- as = 22;
1238
- on = 25;
1239
- or = 31;
1240
- and = 34;
1241
- like = 43;
1242
- not = 45;
1243
- _in = 55;
1244
- from = 60;
1245
- inner = 66;
1246
- left = 68;
1247
- right = 70;
1248
- full = 72;
1249
- cross = 74;
1250
- select = 77;
1251
- where = 84;
1252
- group = 87;
1253
- by = 89;
1254
- order = 95;
1255
- asc = 99;
1256
- desc = 101;
1257
- limit = 104;
1258
- offset = 106;
1259
- is = 109;
1260
- _null = 111;
1261
- exists = 129;
1262
- _true = 133;
1263
- _false = 135;
1254
+ table = 5;
1255
+ primary_key = 11;
1256
+ join = 15;
1257
+ as = 21;
1258
+ on = 24;
1259
+ or = 33;
1260
+ and = 37;
1261
+ like = 46;
1262
+ not = 48;
1263
+ _in = 58;
1264
+ from = 63;
1265
+ inner = 69;
1266
+ left = 71;
1267
+ right = 73;
1268
+ full = 75;
1269
+ cross = 77;
1270
+ select = 80;
1271
+ where = 87;
1272
+ group = 90;
1273
+ by = 92;
1274
+ order = 98;
1275
+ asc = 102;
1276
+ desc = 104;
1277
+ limit = 107;
1278
+ offset = 109;
1279
+ is = 112;
1280
+ _null = 114;
1281
+ exists = 132;
1282
+ _true = 136;
1283
+ _false = 138;
1264
1284
  }
1265
1285
  });
1266
1286
 
@@ -1316,24 +1336,24 @@ var init_parser = __esm({
1316
1336
  "../lang/parser.js"() {
1317
1337
  "use strict";
1318
1338
  init_tokens();
1319
- spec_Identifier = { __proto__: null, table: 12, primary_key: 24, join: 32, one: 36, many: 40, as: 44, on: 50, or: 62, and: 68, like: 86, not: 90, in: 110, from: 120, inner: 132, left: 136, right: 140, full: 144, cross: 148, select: 154, distinct: 158, where: 168, group: 174, by: 178, having: 184, order: 190, asc: 198, desc: 202, limit: 208, offset: 212, is: 218, null: 222, case: 232, when: 238, then: 242, else: 248, end: 252, exists: 258, true: 266, false: 270, count: 280, extract: 286, extend: 306 };
1339
+ spec_Identifier = { __proto__: null, table: 10, primary_key: 22, join: 30, one: 34, many: 38, as: 42, on: 48, or: 66, and: 74, like: 92, not: 96, in: 116, from: 126, inner: 138, left: 142, right: 146, full: 150, cross: 154, select: 160, distinct: 164, where: 174, group: 180, by: 184, having: 190, order: 196, asc: 204, desc: 208, limit: 214, offset: 218, is: 224, null: 228, case: 238, when: 244, then: 248, else: 254, end: 258, exists: 264, true: 272, false: 276, count: 286, extract: 292, cast: 300, extend: 318 };
1320
1340
  parser = LRParser.deserialize({
1321
1341
  version: 14,
1322
- states: "G`QYQPOOOOQO'#C`'#C`OOQO'#Di'#DiOwQPO'#DhOOQO'#Dz'#DzO#TQPO'#DyOOQO'#ER'#EROOQO'#EU'#EUO#[QPO'#ETOOQO'#EZ'#EZOOQO'#E^'#E^O#[QPO'#E]OOQO'#Eg'#EgO#aQPO'#EfOOQO'#Fp'#FpO#}QPO'#DgO$[QPO'#C_OOQO'#Fj'#FjO$[QPO'#FiO$aQPO'#FlQYQPOOQ%UQPO'#FlO%ZQPO'#EQO%ZQPO'#EYO(hQPO'#CcO(rQPO'#CcO(wQPO'#DkO#fQPO'#DmO*UQPO'#DlOOQO'#GP'#GPO+wQPO,5:SO,kQPO'#CcO-zQPO'#CcOOQO'#DY'#DYO.SQPO'#DmOOQO'#D|'#D|OOQO'#EP'#EPOOQO'#EO'#EOO.mQPO,5:eO!PQPO,5:eO0oQPO'#EOOOQO'#En'#EnOOQO'#Eq'#EqOOQO'#Es'#EsO1iQPO'#ErOOQO'#FQ'#FQO1pQPO'#FPOOQO'#FU'#FUOOQO'#FW'#FWOOQO'#FT'#FTOOQO'#FY'#FYOOQO'#GT'#GTOOQO'#F]'#F]O1uQPO'#F[OOQO'#GS'#GSOOQO'#F`'#F`OOQO'#GR'#GROOQO'#GU'#GUOOQO'#F}'#F}O%ZQPO'#EpO1zQPO'#F_OOQO'#EW'#EWO!PQPO,5:oO2PQPO,5:wO2XQPO,5;QOOQO-E9n-E9nO2|QPO,58yO3UQPO,5<TOOQO,5<W,5<WOOQO-E9j-E9jO3ZQPO,5:lO3}QPO,5:tOOQO,5<X,5<XO4qQPO,58}OOQO-E9k-E9kOOQO'#Cq'#CqOOQO'#Cs'#CsOOQO,5:V,5:VO8]QPO,5:VO8bQPO,5:XOOQO,5:W,5:WO8]QPO,5:WOOQO'#Ck'#CkOOQO'#Do'#DoOOQO'#Dq'#DqOOQO'#Ds'#DsOOQO'#Du'#DuOOQO'#Dw'#DwOwQPO'#DnO8gQPO'#DnOOQO'#Fq'#FqO8lQPO1G/nO9`QPO,5;uOOQO,5:k,5:kO9gQPO,5<OO9nQPO1G0PO:bQPO1G0PO:bQPO1G0POOQO'#Cz'#CzOOQO'#C}'#C}OOQO'#DW'#DWOOQO'#DP'#DPO;VQPO,59}OOQO'#D['#D[OOQO'#D_'#D_OOQO'#Dd'#DdO;_QPO,59}OOQO'#El'#ElO;dQPO,5;VO%ZQPO,59hO%ZQPO,59hO%ZQPO,59hO%ZQPO,59hO%ZQPO,59hOOQO,5:j,5:jO8]QPO,5:jO;lQPO,5;^OOQO'#Ev'#EvOOQO'#Ft'#FtO;sQPO,5;^O%ZQPO'#EuO#fQPO,5;kO<OQPO,5;vOOQO,5;[,5;[O<]QPO,5;yO<eQPO1G0ZO=YQPO'#E`O>TQPO1G0cOOQO'#Ei'#EiO>xQPO1G0lO>}QPO1G.eO@OQPO1G1nO@TQPO1G1oPAUQPO'#FmOOQO1G/q1G/qOOQO1G/s1G/sOOQO1G/r1G/rOAZQPO,5:YOwQPO,5:YOOQO-E9o-E9oOBbQPO1G1aOOQO1G1a1G1aOOQO1G1j1G1jOOQO,5<^,5<^OBlQPO7+%kOOQO-E9p-E9pOC`QPO7+%kOOQO,59k,59kODTQPO1G/iO.SQPO1G/iOOQO1G0q1G0qO;gQPO1G0qOGhQPO1G/SOGoQPO1G/SOKRQPO1G/SOK]QPO1G/SOOQO1G/S1G/SOOQO1G0U1G0UO;sQPO1G0xOOQO-E9r-E9rOOQO'#E{'#E{OOQO'#E}'#E}OOQO1G0x1G0xO;yQPO1G0xO%ZQPO'#EzOKgQPO,5;aOKnQPO1G1VOKsQPO1G1bOOQO1G1b1G1bOKzQPO1G1bO%ZQPO1G1bOOQO'#Fb'#FbOLPQPO1G1eOLUQPO7+%uOLxQPO7+%uOOQO'#Eb'#EbOOQO'#Ed'#EdOOQO,5:z,5:zON_QPO7+%}ONiQPO7+%}OOQO7+&W7+&WO!!WQPO'#CcO!!_QPO'#CjO$[QPO'#CiO/bQPO'#CxOOQO'#F|'#F|OOQO'#F{'#F{O!!gQPO'#FnO!#nQPO7+$PO!#uQPO'#CxO#fQPO7+'YONpQPO'#CcOOQO'#GW'#GWO!#zQPO'#FuO!%RQPO7+'ZOOQO'#Ct'#CtO%ZQPO1G/tO!%YQPO1G/tO!&aQPO7+&{O!&iQPO7+&{OOQO7+&{7+&{P!PQPO'#FrO!&pQPO<<IVO.SQPO7+%TO!'dQPO'#DfO!'nQPO7+%TOOQO7+&]7+&]OOQO7+&d7+&dO;yQPO7+&dO!'sQPO,5;fOOQO'#Ex'#ExO%ZQPO1G0{OOQO7+&q7+&qOOQO7+&|7+&|O!'zQPO7+&|O%ZQPO7+'PO!(RQPO<<IaOOQO,5<_,5<_O!(uQPO<<IiOOQO-E9q-E9qOOQO'#Ce'#CeO!)mQPO,59OOOQO'#Cm'#CmOOQO'#Co'#CoOOQO,59U,59UO!*wQPO,59TO;VQPO,5<PO!+PQPO,5<PO;dQPO,5<QO%ZQPO,59eO%ZQPO,59eO%ZQPO,59eO%ZQPO,59eO%ZQPO,59eO8]QPO,59dOOQO,5<Y,5<YOOQO-E9l-E9lOOQO<<Gk<<GkO%ZQPO,59dO!+UQPO<<JtOOQO,5<a,5<aOOQO-E9s-E9sOOQO<<Ju<<JuO!+ZQPO7+%`O%ZQPO7+%`OOQO-E9m-E9mO!,aQPO<<JgOOQO<<Jg<<JgO!,hQPO,5<ZO!,rQPO<<HoO!,wQPO,5:QO!-PQPO,5:QOOQO<<Ho<<HoOOQO<<JO<<JOO!-WQPO7+&gOOQO<<Jh<<JhO!-eQPO<<JkP2PQPO'#FsOOQO'#Cg'#CgOOQO'#Cf'#CfOOQO1G.j1G.jO$[QPO1G.oO8]QPO1G.oO!-lQPO1G1kO.SQPO1G1kOOQO1G1l1G1lO;gQPO1G1lO!.{QPO1G/PO!/SQPO1G/PO!0bQPO1G/PO!0lQPO1G/POOQO1G/P1G/POOQO1G/O1G/OO!0vQPO1G/OOOQOAN@`AN@`O!1vQPO<<HzP%ZQPO'#FoOOQOAN@RAN@ROOQOAN>ZAN>ZO!2|QPO1G/lOOQOAN@VAN@VO!3TQPO'#CvOOQO7+$Z7+$ZO!*zQPO7+$ZO.SQPO7+'VO!3YQPO7+'VOOQO7+'W7+'WO$[QPO,59bO$[QPO<<GuO!3_QPO<<JqOOQO<<Jq<<JqOOQO1G.|1G.|OOQOAN=aAN=aOOQOAN@]AN@]",
1323
- stateData: "!3i~O$lOSPOS~OUPO!^QO!oSO!vUO!yVO#OXO#RYO#[[O$_aO~OThO$nkO~OToO}qO!PzO!QzO!StO#T!TO#cyO#h{O#u}O#v!TO#y!PO#{!QO$Q!UO$T!XO$V!YO$nrO~O!qsO~P!PO!{!_O~O#T!bO~O!^QO!oSO!vUO!yVO#OXO#RYO#[[O~O$j!ZX$y!ZX$t!ZX~P#fOThO~O$y!fOU$`X!^$`X!o$`X!v$`X!y$`X#O$`X#R$`X#[$`X$_$`X$j$`X~O$y!fO~OToO}qO!PzO!QzO#T!TO#cyO#h{O#u}O#v!TO#y!PO#{!QO$Q!UO$T!XO$V!YO$nrO~O$m!jOTVX`VXfVX!^VX!dVX!fVX!hVX!jVX!lVX!oVX!vVX!yVX#OVX#RVX#[VX$jVX$yVX$tVXkVX}VX!PVX!QVX#TVX#cVX#hVX#uVX#vVX#yVX#{VX$QVX$TVX$VVX$rVX~O$nVXiVX~P&[OT!kO~OT!nOf!mO`!_X!^!_X!d!_X!f!_X!h!_X!j!_X!l!_X!o!_X!v!_X!y!_X#O!_X#R!_X#[!_X$j!_X$y!_X$t!_Xi!_X~OT!nOf!mO`!`X!^!`X!d!`X!f!`X!h!`X!j!`X!l!`X!o!`X!v!`X!y!`X#O!`X#R!`X#[!`X$j!`X$y!`X$t!`Xi!`X~O`!tO!d!uO!f!vO!h!wO!j!xO!l!yO~O!^![a!o![a!v![a!y![a#O![a#R![a#[![a$j![a$y![a$t![a~P+cO$n#OOoVXrVXtVXuVXvVXwVXxVXyVX{VX!SVX!TVX!UVX!XVX#aVX#kVX#mVX#rVX#pVX~P&[OT!kO!S#PO~O!^QO!oSO!vUO!yVO#OXO#RYO#[[O~P%ZO$r#RO!^!ma!o!ma!v!ma!y!ma#O!ma#R!ma#[!ma$j!ma$y!ma$t!ma~Of!mOk#XOo#UOr#VOt#XOu#XOv#XOw#XOx#XOy#XO{#WO}qO!P#ZO!Q#ZO!S#[O!T#[O!U#[O!X#]O#a#_O~OT!nO!^!rX!o!rX!v!rX!y!rX#O!rX#R!rX#[!rX$j!rX$r!rX$y!rX$t!rX~P/bO#k#iO~P%ZO$n#mO~O$n#nO~O$n#pO~OT#rO#T#rO~O#^#tO!^#Ya!o#Ya!v#Ya!y#Ya#O#Ya#R#Ya#[#Ya$j#Ya$y#Ya$t#Ya~Of!mO$n#vO~O$n#xO~O!^!ta!o!ta!v!ta!y!ta#O!ta#R!ta#[!ta$j!ta$y!ta$t!ta~P/eO!^!|a!o!|a!v!|a!y!|a#O!|a#R!|a#[!|a$j!|a$y!|a$t!|a~P/eO$m!jOTVa`VafVa!^Va!dVa!fVa!hVa!jVa!lVa!oVa!vVa!yVa#OVa#RVa#[Va$jVa$yVakVaoVarVatVauVavVawVaxVayVa{Va}Va!PVa!QVa!SVa!TVa!UVa!XVa#aVa$rVa$nVa$tVa#kVaiVa#mVa#rVa#pVa#TVa#cVa#hVa#uVa#vVa#yVa#{Va$QVa$TVa$VVa~OT!nO~O$t#{O~O`!tO~O!^![i!o![i!v![i!y![i#O![i#R![i#[![i$j![i$y![i$t![i~P+cO$t$RO~P%ZO$t$SO~P/eO!^!mi!o!mi!v!mi!y!mi#O!mi#R!mi#[!mi$j!mi$y!mi$t!mi~P!PO$r$UO!^!mi!o!mi!v!mi!y!mi#O!mi#R!mi#[!mi$j!mi$y!mi$t!mi~O{#WO!X#]O~O$n$ZO~O}qO#cyO~O#k#iO~P/eO#k#iO#p$fO#r$gO~O!S$oO!qsO$t$nO~P%ZOT$qO#v$qO~O$r$sO!^!wi!o!wi!v!wi!y!wi#O!wi#R!wi#[!wi$j!wi$y!wi$t!wi~O#V$uO#X$vO!^#SX!o#SX!v#SX!y#SX#O#SX#R#SX#[#SX$j#SX$r#SX$y#SX$t#SX~O$r$xO!^#Pi!o#Pi!v#Pi!y#Pi#O#Pi#R#Pi#[#Pi$j#Pi$y#Pi$t#Pi~O#T$zO~OT${O`!tO}qO!PzO!QzO#T!TO#cyO#h{O#u}O#v!TO#y!PO#{!QO$Q!UO$T!XO$V!YO~O$n%UO~OT%VO`!tO}qO!PzO!QzO#T!TO#cyO#h{O#u}O#v!TO#y!PO#{!QO$Q!UO$T!XO$V!YO~O$m!jO~Oi%ZO`!ba!^!ba!d!ba!f!ba!h!ba!j!ba!l!ba!o!ba!v!ba!y!ba#O!ba#R!ba#[!ba$j!ba$y!ba$t!ba~O$r%_O$t%`O~P/eO!^!mq!o!mq!v!mq!y!mq#O!mq#R!mq#[!mq$j!mq$y!mq$t!mq~P!PO$r%bO!^!mq!o!mq!v!mq!y!mq#O!mq#R!mq#[!mq$j!mq$y!mq$t!mq~O$n%cO~Ok#XOt#XOu#XOv#XOw#XOx#XOy#XO{#WO}qO!P#ZO!Q#ZO!S#[O!T#[O!U#[O!X#]O#a#_OTpifpiopi!^pi!opi!vpi!ypi#Opi#Rpi#[pi$jpi$rpi$ypi$tpi#kpi#mpi#rpi`pi!dpi!fpi!hpi!jpi!lpi#ppi#Tpi#cpi#hpi#upi#vpi#ypi#{pi$Qpi$Tpi$Vpi~Or#VO~PDYOrpi~PDYO!S#[O!T#[O!U#[OTpifpikpiopirpitpiupivpiwpixpiypi{pi}pi!Xpi!^pi!opi!vpi!ypi#Opi#Rpi#[pi#api$jpi$rpi$ypi$tpi#kpi#mpi#rpi`pi!dpi!fpi!hpi!jpi!lpi#ppi#Tpi#cpi#hpi#upi#vpi#ypi#{pi$Qpi$Tpi$Vpi~O!P#ZO!Q#ZO~PGvO!Ppi!Qpi~PGvO#m%jO~P/eO$t%lO~O$t%mO~P/eO$t%mO~O!^QO~O!^!wq!o!wq!v!wq!y!wq#O!wq#R!wq#[!wq$j!wq$y!wq$t!wq~P!PO$r%pO!^!wq!o!wq!v!wq!y!wq#O!wq#R!wq#[!wq$j!wq$y!wq$t!wq~O!^#Pq!o#Pq!v#Pq!y#Pq#O#Pq#R#Pq#[#Pq$j#Pq$y#Pq$t#Pq~OT#rO#T#rO~PMmO$r%rO~PMmO$m!jO$n#OOfVXkVXoVXrVXtVXuVXvVXwVXxVXyVX{VX}VX!PVX!QVX!SVX!TVX!UVX!XVX#aVX$ZgX~OT%tO~PNpOb%vOd%wO~O$r&TOT$bX`$bX}$bX!P$bX!Q$bX#T$bX#c$bX#h$bX#u$bX#v$bX#y$bX#{$bX$Q$bX$T$bX$V$bX$t$bX~O$t&VO~P>}O$Z&WO~O$r&YOT$iX`$iX}$iX!P$iX!Q$iX#T$iX#c$iX#h$iX#u$iX#v$iX#y$iX#{$iX$Q$iX$T$iX$V$iX$t$iX~O$t&[O~P@TOi%ZO`!bi!^!bi!d!bi!f!bi!h!bi!j!bi!l!bi!o!bi!v!bi!y!bi#O!bi#R!bi#[!bi$j!bi$y!bi$t!bi~O$r&`O$t&aO~O$t&aO~P%ZO!^!my!o!my!v!my!y!my#O!my#R!my#[!my$j!my$y!my$t!my~P!PO$r&eO$t!YX~P/eO$t&fO~O#r#na~P/eO$t&iO~P/eO!^!wy!o!wy!v!wy!y!wy#O!wy#R!wy#[!wy$j!wy$y!wy$t!wy~P!POT#rO#T#rO!^#Py!o#Py!v#Py!y#Py#O#Py#R#Py#[#Py$j#Py$y#Py$t#Py~O[&lOTWa`Wa}Wa!PWa!QWa#TWa#cWa#hWa#uWa#vWa#yWa#{Wa$QWa$TWa$VWa$rWa$tWa~Of!mOi%ZO~O$n&rO~O$t&|O~O`!bq!^!bq!d!bq!f!bq!h!bq!j!bq!l!bq!o!bq!v!bq!y!bq#O!bq#R!bq#[!bq$j!bq$y!bq$t!bq~P/eO$t'PO~P%ZO$r$ca$t$ca~P/eO$t'QO~O$r'RO$t!Ya~O$t!Ya~P%ZO#k#iq#p#iq#r#iq~P/eO$t'SO~P/eO$n'WO~Ok#XOt#XOu#XOv#XOw#XOx#XOy#XO{#WO}qO!P#ZO!Q#ZO!S#[O!T#[O!U#[O!X#]O#a#_Ofmiomi~Or#VO~P!-qOrmi~P!-qO!S#[O!T#[O!U#[Ofmikmiomirmitmiumivmiwmixmiymi{mi}mi!Xmi#ami~O!P#ZO!Q#ZO~P!/ZO!Pmi!Qmi~P!/ZOTli`li#Tli#cli#hli#uli#vli#yli#{li$Qli$Tli$Vli$rli$tli~P/eO`!by!^!by!d!by!f!by!h!by!j!by!l!by!o!by!v!by!y!by#O!by#R!by#[!by$j!by$y!by$t!by~P/eO$t!Yi~P%ZOk'ZO~O$t'^O~O$t'aO~OP!T!S!Q~",
1324
- goto: "H}${PPP$|%QPP%U&n&r&u&xP&{'T'ZP'hP'hP'kP'}(mP(yP&{)P)VP)m*lP+UPPPPPP+pP,^P.RPP.oPPP)m/_P0P0]0w1UP1f1f1k2o2sP2sP2sP2sP2sP0w2wP3UP3[3m0w3xP0w4VP4dP0w4jP0w4wP5UP5^P5^P0w5aP5nP)m5qP6]P7l8o7l9rP:u:{P;RP;U;[P;`P7l;jPP<m=pP=pP<m>s>s?vP7l@yPA|P1p)P)PP$|$|BPPBTBZCmCsC}D^DdDrDxESPPPPPEYE^EdPGkPGt7l>s)mPHyTcOdT`OdUjR!z$O#Q!WTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'WQ!d`Q!ebQ%y$}S'T&o'[R'_'ZT%Q#v%SR%u${R&n%uR&m%uS%Q#v%ST%W#x%YX$}#v#x%S%YS!zn!}Q$O!{X$|#v#x%S%YR%x$|Q!pjQ!slQ#gxQ#w!dQ&S%OR&p%yQ!ojQ!rlQ#fxQ#z!pQ#|!sQ$c#gW%T#v#x%S%YQ&z&SR'V&pQ%[#}Q&^%]Q&o%yR'['VQ'U&oR'`'[X%P#v#x%S%Yr#ax!h!i#Q#h$Q$k$m%d%i%n&]&b&h&j&{&}R%}%O!y![Tfgrw|!]!`#O#R#a#b#c#d#e#l#n$U$Z$j$p$s%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'Wv#bx!h!i#Q#h$Q$^$k$m%d%i%n&]&b&h&j&u&{&}R&O%Oz#cx!h!i#Q#h$Q$^$_$k$m%d%i%n&]&b&h&j&u&v&{&}R&P%O|#Xx!h!i#Q#h$Q$^$_$k$m%O%d%i%n&]&b&h&j&u&v&{&}T$X#Y%z#QzTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'Wz#Yx!h!i#Q#h$Q$^$_$k$m%d%i%n&]&b&h&j&u&v&{&}Q$]#`Q%z%OR&t%|!O#dx!h!i#Q#h$Q$^$_$`$k$m%d%i%n&]&b&h&j&u&v&w&{&}R&Q%O!S#ex!h!i#Q#h$Q$^$_$`$a$k$m%d%i%n&]&b&h&j&u&v&w&x&{&}R&R%Oz#^x!h!i#Q#h$Q$^$_$k$m%d%i%n&]&b&h&j&u&v&{&}Q$Y#YQ%{%OR&q%zQ%e$ZQ&c%cQ'X&rR']'WSeOdS!qkrQ$l#mQ%e$ZQ&X%UQ&c%cQ'X&rR']'Wg^O_dkr#m$Z%U%c&r'WfRO_dkr#m$Z%U%c&r'WR%o$rVmR!z$OUlR!z$O!y!ZTfgrw|!]!`#O#R#a#b#c#d#e#l#n$U$Z$j$p$s%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'WT!|n!}T!{n!}gTO_dkr#m$Z%U%c&r'WQwTR$p#nQvTQ#TwQ#q!`]$T#R$U$s%a%b%pcuTw!`#R$U$s%a%b%pgfO_dkr#m$Z%U%c&r'WgWO_dkr#m$Z%U%c&r'WQ!`WR!aZggO_dkr#m$Z%U%c&r'WgZO_dkr#m$Z%U%c&r'WQ#s!aV%q$x%r&kR$w#rg]O_dkr#m$Z%U%c&r'WR#u!bz#`x!h!i#Q#h$Q$^$_$k$m%d%i%n&]&b&h&j&u&v&{&}R%|%O#Q!STfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'WQ$[#`Q%f$]Q&s%|R'Y&t#R!YTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R!]Tfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R|Tfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'WX#j|#h#k$dX#l|#h#k$dR%k$kQ$i#kR%h$dT$j#k$dQ$h#kS%g$d$iR&g%h#R!OTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R!TTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R!RTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R!WTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R!VTfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'W#R!^Tfgrw|!]!`#O#R#a#b#c#d#e#l#n#v#x$U$Z$j$p$s%S%Y%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'WR$r#pTbOdQdOR!gd#QiR`bfgr|!]!z#O#a#b#c#d#e#l#n#v#x$O$Z$j$p$}%S%Y%[%_%c%k%o%}&O&P&Q&R&W&^&`&e&o&r'O'R'W'Z'[bpTw!`#R$U$s%a%b%pT!lipQ%S#vR&U%SQ%^$QS&_%^&dR&d%dd_Odkr#m$Z%U%c&r'WR!c_Q!}nR$P!}Q#SvU$V#S$W$tQ$W#TR$t#qQ$y#sR%s$yQ#k|Q$d#hT$e#k$dQ%Y#xR&Z%YT%R#v%SX%O#v#x%S%YbxTw!`#R$U$s%a%b%pQ!hfQ!igQ#QrQ#h|Q#o!]Q$Q#OQ$^#aQ$_#bQ$`#cQ$a#dQ$b#eQ$k#lQ$m#nW%d$Z%c&r'WQ%i$jQ%n$pQ&]%[Y&b%_&`&e'O'RQ&h%kQ&j%oQ&u%}Q&v&OQ&w&PQ&x&QQ&y&RQ&{&WR&}&^QnRQ#}!zR%]$O!x![Tfgrw|!]!`#O#R#a#b#c#d#e#l#n$U$Z$j$p$s%[%_%a%b%c%k%o%p%}&O&P&Q&R&W&^&`&e&r'O'R'WX%P#v#x%S%YT%X#x%Y",
1325
- nodeNames: "\u26A0 Comment Program TableStatement Kw Identifier table Ref ColumnDef DataType PrimaryKey Kw primary_key JoinDef JoinType Kw join Kw one Kw many Kw as Alias Kw on BinaryExpression = ComputedDef BinaryExpression Kw or BinaryExpression Kw and ComparisonOp != <> < > <= >= Kw like Kw not AddOp + - MulOp * / % InExpression Kw in InValueList QueryStatement FromClause Kw from TableName Subquery SubqueryExpression JoinClause Kw inner Kw left Kw right Kw full Kw cross SelectClause Kw select Kw distinct SelectItem Wildcard WhereClause Kw where GroupByClause Kw group Kw by HavingClause Kw having OrderByClause Kw order OrderItem Number Kw asc Kw desc LimitClause Kw limit Kw offset NullTestExpression Kw is Kw null UnaryExpression UnaryOperator CaseExpression Kw case WhenClause Kw when Kw then ElseClause Kw else Kw end ExistsExpression Kw exists String Boolean Kw true Kw false Null FunctionCall Count Kw count ExtractExpression Kw extract ExtractUnit Param Parenthetical InExpression NullTestExpression : ViewStatement ExtendStatement Kw extend",
1326
- maxTerm: 180,
1342
+ states: "HzQYQPOOOOQO'#C_'#C_OOQO'#Dl'#DlOwQPO'#DkOOQO'#D}'#D}O#WQPO'#D|OOQO'#EU'#EUOOQO'#EX'#EXO#_QPO'#EWOOQO'#E^'#E^OOQO'#Ea'#EaO#_QPO'#E`OOQO'#Ej'#EjO#dQPO'#EiOOQO'#Fv'#FvO$QQPO'#DjO$_QPO'#C^OOQO'#Fp'#FpO$_QPO'#FoO$dQPO'#FrQYQPOOQ%XQPO'#FrO%^QPO'#ETO%^QPO'#E]O(qQPO'#CbO({QPO'#CbO)QQPO'#DnO#iQPO'#DpO*_QPO'#DoOOQO'#GW'#GWO,QQPO,5:VO,tQPO'#CbO.WQPO'#CbO/pQPO'#EROOQO'#D]'#D]O0jQPO'#DpOOQO'#EP'#EPOOQO'#ES'#ESOOQO'#ER'#ERO1TQPO,5:hO!PQPO,5:hOOQO'#Eq'#EqOOQO'#Et'#EtOOQO'#Ev'#EvO1xQPO'#EuOOQO'#FT'#FTO2PQPO'#FSOOQO'#FX'#FXOOQO'#FZ'#FZOOQO'#FW'#FWOOQO'#F]'#F]OOQO'#G['#G[OOQO'#F`'#F`O2UQPO'#F_OOQO'#GZ'#GZOOQO'#Fc'#FcOOQO'#Fg'#FgOOQO'#GY'#GYOOQO'#G]'#G]OOQO'#GU'#GUO%^QPO'#EsO2ZQPO'#FbO2`QPO'#FfOOQO'#EZ'#EZO!PQPO,5:rO2eQPO,5:zO2mQPO,5;TOOQO-E9t-E9tO3bQPO,58xO3jQPO,5<ZOOQO,5<^,5<^OOQO-E9p-E9pO3oQPO,5:oO4cQPO,5:wOOQO,5<_,5<_O5VQPO,58|OOQO-E9q-E9qOOQO'#Cp'#CpOOQO'#Cr'#CrOOQO,5:Y,5:YO8wQPO,5:YO8|QPO,5:[OOQO,5:Z,5:ZO8wQPO,5:ZOOQO'#Cj'#CjOOQO'#Dr'#DrOOQO'#Dt'#DtOOQO'#Dv'#DvOOQO'#Dx'#DxOOQO'#Dz'#DzOwQPO'#DqO9RQPO'#DqOOQO'#Fw'#FwO9WQPO1G/qO9zQPO,5;xOOQO,5:n,5:nOOQO'#C|'#C|O:RQPO,59jOOQO'#DQ'#DQOOQO'#DZ'#DZOOQO'#DS'#DSO:WQPO,5:QOOQO'#D_'#D_OOQO'#Db'#DbOOQO'#Dg'#DgO:`QPO,5:QOOQO'#Eo'#EoO:eQPO,5;YO%^QPO,59kO%^QPO,59kO%^QPO,59kO%^QPO,59kO%^QPO,59kOOQO,5:m,5:mO8wQPO,5:mO:mQPO,5<UO:tQPO1G0SO;hQPO1G0SO;hQPO1G0SO<]QPO,5;aOOQO'#Ey'#EyOOQO'#Fz'#FzO<dQPO,5;aO%^QPO'#ExO#iQPO,5;nO<oQPO,5;yO<|QPO,5;_O@eQPO,5;|O%^QPO,5<QO@mQPO1G0^OAbQPO'#EcOB]QPO1G0fOOQO'#El'#ElOCQQPO1G0oOCVQPO1G.dODZQPO1G1tOD`QPO1G1uPEdQPO'#FsOOQO1G/t1G/tOOQO1G/v1G/vOOQO1G/u1G/uOEiQPO,5:]OwQPO,5:]OOQO-E9u-E9uOFpQPO1G1dOOQO1G1d1G1dOOQO'#Cz'#CzOOQO1G/U1G/UOOQO,59n,59nOFzQPO1G/lO0jQPO1G/lOOQO1G0t1G0tO:hQPO1G0tOJeQPO1G/VOJlQPO1G/VONUQPO1G/VON`QPO1G/VONjQPO1G/VOOQO1G0X1G0XOOQO1G1p1G1pOOQO,5<d,5<dO!$RQPO7+%nOOQO-E9v-E9vO!$uQPO7+%nO<dQPO1G0{OOQO-E9x-E9xOOQO'#FO'#FOOOQO'#FQ'#FQOOQO1G0{1G0{O<jQPO1G0{O%^QPO'#E}O!%jQPO,5;dO!%qQPO1G1YO!%vQPO1G1eOOQO1G1e1G1eO!%}QPO1G1eO%^QPO1G1eOOQO'#Fe'#FeO!&SQPO1G1hO.`QPO1G1lO!&XQPO7+%xO!&{QPO7+%xOOQO'#Ee'#EeOOQO'#Eg'#EgOOQO,5:},5:}O!(bQPO7+&QO!(lQPO7+&QOOQO7+&Z7+&ZO!*^QPO'#CbO!*eQPO'#CiO$_QPO'#ChO!+wQPO'#CwOOQO'#GT'#GTOOQO'#GS'#GSO!,RQPO'#FtO!-]QPO7+$OO!-dQPO'#CwO#iQPO7+'`O!(sQPO'#CbOOQO'#G_'#G_O!-iQPO'#F{O!.sQPO7+'aOOQO'#Cs'#CsO%^QPO1G/wO!.zQPO1G/wO!0RQPO7+'OO!0ZQPO7+'OOOQO7+'O7+'OO0jQPO7+%WO!0bQPO'#DiO!0lQPO7+%WOOQO7+&`7+&`P!PQPO'#FxO!0qQPO<<IYOOQO7+&g7+&gO<jQPO7+&gO!1eQPO,5;iOOQO'#E{'#E{O%^QPO1G1OOOQO7+&t7+&tOOQO7+'P7+'PO!1lQPO7+'PO%^QPO7+'SO:RQPO7+'WO!1sQPO<<IdOOQO,5<e,5<eO!2gQPO<<IlOOQO-E9w-E9wOOQO'#Cd'#CdO!3_QPO,58}OOQO'#Cl'#ClOOQO'#Cn'#CnOOQO,59T,59TO!4lQPO,59SO:RQPO,59dO:WQPO,5<VO!4tQPO,5<VO:eQPO,5<WO%^QPO,59gO%^QPO,59gO%^QPO,59gO%^QPO,59gO%^QPO,59gO8wQPO,59cOOQO,5<`,5<`OOQO-E9r-E9rOOQO<<Gj<<GjO%^QPO,59cO!4yQPO<<JzOOQO,5<g,5<gOOQO-E9y-E9yOOQO<<J{<<J{O!5OQPO7+%cO%^QPO7+%cOOQO-E9s-E9sO!6UQPO<<JjOOQO<<Jj<<JjO!6]QPO,5<aO!6gQPO<<HrO!6lQPO,5:TO!6tQPO,5:TOOQO<<Hr<<HrOOQO<<JR<<JRO!6{QPO7+&jOOQO<<Jk<<JkO!7YQPO<<JnO!7aQPO<<JrP2eQPO'#FyOOQO'#Cf'#CfOOQO'#Ce'#CeOOQO1G.i1G.iO$_QPO1G.nO8wQPO1G.nOOQO1G/O1G/OO!7fQPO1G1qO0jQPO1G1qOOQO1G1r1G1rO:hQPO1G1rO!8xQPO1G/RO!9PQPO1G/RO!:bQPO1G/RO!:lQPO1G/RO!:vQPO1G/ROOQO1G.}1G.}O!<WQPO1G.}OOQOAN@fAN@fO!=ZQPO<<H}P%^QPO'#FuOOQOAN@UAN@UOOQOAN>^AN>^O!>aQPO1G/oOOQOAN@YAN@YOOQOAN@^AN@^O!>hQPO'#CuOOQO7+$Y7+$YO!4oQPO7+$YO0jQPO7+']O!>mQPO7+']OOQO7+'^7+'^O$_QPO,59aO$_QPO<<GtO!>rQPO<<JwOOQO<<Jw<<JwOOQO1G.{1G.{OOQOAN=`AN=`OOQOAN@cAN@c",
1343
+ stateData: "!?O~O$rOS$sOS~OTPO!aQO!rSO!yUO!|VO#RXO#UYO#_[O$eaO~OShO$ukO~OSoO!QrO!SzO!TzO!VuO#W!TO#fyO#k{O#x}O#y!TO#|!PO$O!QO$T!UO$W!XO$[!YO$]!ZO$usO~O!ttO~P!PO#O!aO~O#W!dO~O!aQO!rSO!yUO!|VO#RXO#UYO#_[O~O$p!^X%Q!^X${!^X~P#iOShO~O%Q!hOT$fX!a$fX!r$fX!y$fX!|$fX#R$fX#U$fX#_$fX$e$fX$p$fX~O%Q!hO~OSoO!QrO!SzO!TzO#W!TO#fyO#k{O#x}O#y!TO#|!PO$O!QO$T!UO$W!XO$[!YO$]!ZO$usO~O$t!lOSUX_UXeUX!aUX!gUX!iUX!kUX!mUX!oUX!rUX!yUX!|UX#RUX#UUX#_UX$pUX%QUX${UXjUX!QUX!SUX!TUX#WUX#fUX#kUX#xUX#yUX#|UX$OUX$TUX$WUX$[UX$]UX$yUX~O$uUXhUX~P&bOS!mO~OS!pOe!oO_!bX!a!bX!g!bX!i!bX!k!bX!m!bX!o!bX!r!bX!y!bX!|!bX#R!bX#U!bX#_!bX$p!bX%Q!bX${!bXh!bX~OS!pOe!oO_!cX!a!cX!g!cX!i!cX!k!cX!m!cX!o!cX!r!cX!y!cX!|!cX#R!cX#U!cX#_!cX$p!cX%Q!cX${!cXh!cX~O_!vO!g!wO!i!xO!k!yO!m!zO!o!{O~O!a!_a!r!_a!y!_a!|!_a#R!_a#U!_a#_!_a$p!_a%Q!_a${!_a~P+lO$u#QOmUXqUXuUXwUXxUXyUXzUX{UX|UX!OUX!VUX!WUX!XUX![UX#dUX#nUX#pUX#uUX#sUX~P&bOS!mO!V#RO~Oe!oOj#WOm#TOq#SOu#UOw#WOx#WOy#WOz#WO{#WO|#WO!O#VO!QrO!S#YO!T#YO!V#ZO!W#ZO!X#ZO![#[O#d#^O~OS!pO!a!uX!r!uX!y!uX!|!uX#R!uX#U!uX#_!uX$p!uX$y!uX%Q!uX${!uX~P.`O!aQO!rSO!yUO!|VO#RXO#UYO#_[O~P%^O$y#hO!a!pa!r!pa!y!pa!|!pa#R!pa#U!pa#_!pa$p!pa%Q!pa${!pa~O#n#lO~P%^O$u#pO~O$u#qO~O$u#sO~O$u#tO~OS#vO#W#vO~O#a#xO!a#]a!r#]a!y#]a!|#]a#R#]a#U#]a#_#]a$p#]a%Q#]a${#]a~Oe!oO$u#zO~O$u#|O~O!a!wa!r!wa!y!wa!|!wa#R!wa#U!wa#_!wa$p!wa%Q!wa${!wa~P.cO!a#Pa!r#Pa!y#Pa!|#Pa#R#Pa#U#Pa#_#Pa$p#Pa%Q#Pa${#Pa~P.cO$t!lOSUa_UaeUa!aUa!gUa!iUa!kUa!mUa!oUa!rUa!yUa!|Ua#RUa#UUa#_Ua$pUa%QUajUamUaqUauUawUaxUayUazUa{Ua|Ua!OUa!QUa!SUa!TUa!VUa!WUa!XUa![Ua#dUa$yUa$uUa${Ua#nUahUa#pUa#uUa#sUa#WUa#fUa#kUa#xUa#yUa#|Ua$OUa$TUa$WUa$[Ua$]Ua~OS!pO~O${$PO~O_!vO~O!a!_i!r!_i!y!_i!|!_i#R!_i#U!_i#_!_i$p!_i%Q!_i${!_i~P+lO${$VO~P%^OS$WO~O!O#VO![#[O~O$u$[O~O!QrO#fyO~O${$eO~P.cO!a!pi!r!pi!y!pi!|!pi#R!pi#U!pi#_!pi$p!pi%Q!pi${!pi~P!PO$y$gO!a!pi!r!pi!y!pi!|!pi#R!pi#U!pi#_!pi$p!pi%Q!pi${!pi~O#n#lO~P.cO#n#lO#s$lO#u$mO~O!V$uO!ttO${$tO~P%^Om#TOS#gae#gaj#gaq#gau#gaw#gax#gay#gaz#ga{#ga|#ga!O#ga!Q#ga!S#ga!T#ga!V#ga!W#ga!X#ga![#ga!a#ga!r#ga!y#ga!|#ga#R#ga#U#ga#_#ga#d#ga$p#ga$y#ga%Q#ga${#ga#n#ga#p#ga#u#ga_#ga!g#ga!i#ga!k#ga!m#ga!o#ga#s#ga#W#ga#f#ga#k#ga#x#ga#y#ga#|#ga$O#ga$T#ga$W#ga$[#ga$]#ga~OS$wO#y$wO~O$y$zO!a!zi!r!zi!y!zi!|!zi#R!zi#U!zi#_!zi$p!zi%Q!zi${!zi~O#Y$|O#[$}O!a#VX!r#VX!y#VX!|#VX#R#VX#U#VX#_#VX$p#VX$y#VX%Q#VX${#VX~O$y%PO!a#Si!r#Si!y#Si!|#Si#R#Si#U#Si#_#Si$p#Si%Q#Si${#Si~O#W%RO~OS%SO_!vO!QrO!SzO!TzO#W!TO#fyO#k{O#x}O#y!TO#|!PO$O!QO$T!UO$W!XO$[!YO$]!ZO~O$u%]O~OS%^O_!vO!QrO!SzO!TzO#W!TO#fyO#k{O#x}O#y!TO#|!PO$O!QO$T!UO$W!XO$[!YO$]!ZO~O$t!lO~Oh%bO_!ea!a!ea!g!ea!i!ea!k!ea!m!ea!o!ea!r!ea!y!ea!|!ea#R!ea#U!ea#_!ea$p!ea%Q!ea${!ea~O$y%fO${%gO~P.cO$u%hO~Oj#WOm#TOw#WOx#WOy#WOz#WO{#WO|#WO!O#VO!QrO!S#YO!T#YO!V#ZO!W#ZO!X#ZO![#[O#d#^OSsiesiqsi!asi!rsi!ysi!|si#Rsi#Usi#_si$psi$ysi%Qsi${si#nsi#psi#usi_si!gsi!isi!ksi!msi!osi#ssi#Wsi#fsi#ksi#xsi#ysi#|si$Osi$Tsi$Wsi$[si$]si~Ou#UO~PGPOusi~PGPOm#TO!V#ZO!W#ZO!X#ZOSsiesijsiqsiusiwsixsiysizsi{si|si!Osi!Qsi![si!asi!rsi!ysi!|si#Rsi#Usi#_si#dsi$psi$ysi%Qsi${si#nsi#psi#usi_si!gsi!isi!ksi!msi!osi#ssi#Wsi#fsi#ksi#xsi#ysi#|si$Osi$Tsi$Wsi$[si$]si~O!S#YO!T#YO~PJsO!Ssi!Tsi~PJsOm#TOSsiesijsiqsiusiwsixsiysizsi{si|si!Osi!Qsi!Ssi!Tsi!Vsi!Wsi!Xsi![si!asi!rsi!ysi!|si#Rsi#Usi#_si#dsi$psi$ysi%Qsi${si#nsi#psi#usi_si!gsi!isi!ksi!msi!osi#ssi#Wsi#fsi#ksi#xsi#ysi#|si$Osi$Tsi$Wsi$[si$]si~O!a!pq!r!pq!y!pq!|!pq#R!pq#U!pq#_!pq$p!pq%Q!pq${!pq~P!PO$y%mO!a!pq!r!pq!y!pq!|!pq#R!pq#U!pq#_!pq$p!pq%Q!pq${!pq~O#p%qO~P.cO${%sO~O${%tO~P.cO${%tO~O!aQO~O!a!zq!r!zq!y!zq!|!zq#R!zq#U!zq#_!zq$p!zq%Q!zq${!zq~P!PO$y%xO!a!zq!r!zq!y!zq!|!zq#R!zq#U!zq#_!zq$p!zq%Q!zq${!zq~O!a#Sq!r#Sq!y#Sq!|#Sq#R#Sq#U#Sq#_#Sq$p#Sq%Q#Sq${#Sq~OS#vO#W#vO~P!'pO$y%zO~P!'pO$t!lO$u#QOeUXjUXmUXqUXuUXwUXxUXyUXzUX{UX|UX!OUX!QUX!SUX!TUX!VUX!WUX!XUX![UX#dUX$afX~OS%|O~P!(sOa&OOc&PO~Oj#WOq#SOu#UOw#WOx#WOy#WOz#WO{#WO|#WO!O#VO!QrO!S#YO!T#YO!V#ZO!W#ZO!X#ZO![#[O#d#^O~Oe!oOm&SO~P!*mO$y&^OS$hX_$hX!Q$hX!S$hX!T$hX#W$hX#f$hX#k$hX#x$hX#y$hX#|$hX$O$hX$T$hX$W$hX$[$hX$]$hX${$hX~O${&`O~PCVO$a&aO~O$y&cOS$oX_$oX!Q$oX!S$oX!T$oX#W$oX#f$oX#k$oX#x$oX#y$oX#|$oX$O$oX$T$oX$W$oX$[$oX$]$oX${$oX~O${&eO~PD`Oh%bO_!ei!a!ei!g!ei!i!ei!k!ei!m!ei!o!ei!r!ei!y!ei!|!ei#R!ei#U!ei#_!ei$p!ei%Q!ei${!ei~O$y&iO${&jO~O${&jO~P%^O$y&nO${!]X~P.cO${&oO~O!a!py!r!py!y!py!|!py#R!py#U!py#_!py$p!py%Q!py${!py~P!PO#u#qa~P.cO${&rO~P.cO!a!zy!r!zy!y!zy!|!zy#R!zy#U!zy#_!zy$p!zy%Q!zy${!zy~P!POS#vO#W#vO!a#Sy!r#Sy!y#Sy!|#Sy#R#Sy#U#Sy#_#Sy$p#Sy%Q#Sy${#Sy~OZ&vOSVa_Va!QVa!SVa!TVa#WVa#fVa#kVa#xVa#yVa#|Va$OVa$TVa$WVa$[Va$]Va$yVa${Va~Oe!oOh%bO~O$u&}O~O${'XO~O_!eq!a!eq!g!eq!i!eq!k!eq!m!eq!o!eq!r!eq!y!eq!|!eq#R!eq#U!eq#_!eq$p!eq%Q!eq${!eq~P.cO${'[O~P%^O$y$ia${$ia~P.cO${']O~O$y'^O${!]a~O${!]a~P%^O#n#lq#s#lq#u#lq~P.cO${'_O~P.cO${'`O~O$u'dO~Oj#WOm#TOw#WOx#WOy#WOz#WO{#WO|#WO!O#VO!QrO!S#YO!T#YO!V#ZO!W#ZO!X#ZO![#[O#d#^Oeoiqoi~Ou#UO~P!7kOuoi~P!7kOm#TO!V#ZO!W#ZO!X#ZOeoijoiqoiuoiwoixoiyoizoi{oi|oi!Ooi!Qoi![oi#doi~O!S#YO!T#YO~P!9WO!Soi!Toi~P!9WOm#TOeoijoiqoiuoiwoixoiyoizoi{oi|oi!Ooi!Qoi!Soi!Toi!Voi!Woi!Xoi![oi#doi~OSki_ki#Wki#fki#kki#xki#yki#|ki$Oki$Tki$Wki$[ki$]ki$yki${ki~P.cO_!ey!a!ey!g!ey!i!ey!k!ey!m!ey!o!ey!r!ey!y!ey!|!ey#R!ey#U!ey#_!ey$p!ey%Q!ey${!ey~P.cO${!]i~P%^Oj'gO~O${'jO~O${'mO~O$s!Tm$a!V!W~",
1344
+ goto: "KS%SPP%T%XPP%]&v&z&}'QP'T']'cP'pP'pP'sP(Y(xP)UP'T)[P)b)[)kP*S*S+SP+mPPPPPP,YP,wP.nPP/]PPP*S/|P0o0{1g1tP2U2U2Z3`3dP3dP3dP3dP3dP1g3hP3uP3{4^1g4iP1g4vP5TP1g5ZP1g5hP5uP5}P5}P1g6QP6_P*S6bP6}P8_9c8_:gP;k;qP;wP;z<QP<UP8_<`PP=d>hP>hP=d?l?l@pP8_AtPBx8_B{PP2`)[)[P%T%TDPPDTDZEnEtFOF_FeFsFyGTPPPPPPGZG_GePIoPIx8_?l*SPKOTcOdT`OdUjR!|$S#S!WTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dQ!f`Q!gbQ&R%US'a&y'hR'k'gT%X#z%ZR%}%SR&x%}R&w%}S%X#z%ZT%_#|%aX%U#z#|%Z%aS!|n#PQ$S!}X%T#z#|%Z%aR&Q%TQ!rjQ!ulQ#fqQ#{!fQ%w$yQ&]%VR&z&RQ!qjQ!tlQ#eqQ$O!rQ$Q!uQ$d#fW%[#z#|%Z%aQ'V&]R'c&zQ%c$RQ&g%dQ&y&RR'h'cQ'b&yR'l'hX%W#z#|%Z%aQ$X#TQ&t%wR&{&St#`q!j!k#g#k$U$q$s$y%i%p%u&f&k&q&s'W'YR&W%V!{!]Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t$[$g$p$v$z%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dx#aq!j!k#g#k$U$_$q$s$y%i%p%u&f&k&q&s'Q'W'YR&X%V|#bq!j!k#g#k$U$_$`$q$s$y%i%p%u&f&k&q&s'Q'R'W'YR&Y%V!O#Wq!j!k#g#k$U$_$`$q$s$y%V%i%p%u&f&k&q&s'Q'R'W'YT$Y#X&T#SzTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d|#Xq!j!k#g#k$U$_$`$q$s$y%i%p%u&f&k&q&s'Q'R'W'YQ$^#_Q&T%VR'P&V!Q#cq!j!k#g#k$U$_$`$a$q$s$y%i%p%u&f&k&q&s'Q'R'S'W'YR&Z%V!U#dq!j!k#g#k$U$_$`$a$b$q$s$y%i%p%u&f&k&q&s'Q'R'S'T'W'YR&[%V|#]q!j!k#g#k$U$_$`$q$s$y%i%p%u&f&k&q&s'Q'R'W'YQ$Z#XQ&U%VR&|&TQ%j$[Q&l%hQ'e&}R'i'dSeOdS!sksQ$r#pQ%j$[Q&b%]Q&l%hQ'e&}R'i'dg^O_dks#p$[%]%h&}'dfRO_dks#p$[%]%h&}'dR%v$xVmR!|$SUlR!|$S!{![Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t$[$g$p$v$z%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dT#On#PT!}n#PgTO_dks#p$[%]%h&}'dQxTR$v#qQwTQ#jxQ#u!b]$f#h$g$z%l%m%xcvTx!b#h$g$z%l%m%xgfO_dks#p$[%]%h&}'dgWO_dks#p$[%]%h&}'dQ!bWR!cZggO_dks#p$[%]%h&}'dgZO_dks#p$[%]%h&}'dQ#w!cV%y%P%z&uR%O#vg]O_dks#p$[%]%h&}'dR#y!d|#_q!j!k#g#k$U$_$`$q$s$y%i%p%u&f&k&q&s'Q'R'W'YR&V%V#S!STfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dQ$]#_Q%k$^Q'O&VR'f'P#T!ZTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T!^Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T|Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dX#m|#k#n$jX#o|#k#n$jR%r$qQ$o#nR%o$jT$p#n$jQ$n#nS%n$j$oR&p%o#T!OTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T!TTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T!RTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T!WTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T!VTfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'d#T!_Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dR$x#s#T!`Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t#z#|$[$g$p$v$z%Z%a%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dTbOdQdOR!id#SiR`bfgs|!^!|#Q#`#a#b#c#d#o#q#t#z#|$S$[$p$v%U%Z%a%c%f%h%r%v&W&X&Y&Z&[&a&g&i&n&y&}'Z'^'d'g'hbpTx!b#h$g$z%l%m%xT!nipQ%Z#zR&_%ZQ%e$US&h%e&mR&m%id_Odks#p$[%]%h&}'dR!e_Q#PnR$T#PQ#iwU$h#i$i${Q$i#jR${#uQ%Q#wR%{%QQ#n|Q$j#kT$k#n$jQ%a#|R&d%aT%Y#z%ZX%V#z#|%Z%abqTx!b#h$g$z%l%m%xQ!jfQ!kgQ#gsQ#k|Q#r!^Q$U#QQ$_#`Q$`#aQ$a#bQ$b#cQ$c#dQ$q#oQ$s#qQ$y#tW%i$[%h&}'dQ%p$pQ%u$vQ&f%cY&k%f&i&n'Z'^Q&q%rQ&s%vQ'Q&WQ'R&XQ'S&YQ'T&ZQ'U&[Q'W&aR'Y&gQnRQ$R!|R%d$S!z!]Tfgsx|!^!b#Q#`#a#b#c#d#h#o#q#t$[$g$p$v$z%c%f%h%l%m%r%v%x&W&X&Y&Z&[&a&g&i&n&}'Z'^'dX%W#z#|%Z%aT%`#|%a",
1345
+ nodeNames: "\u26A0 Program TableStatement Kw Identifier table Ref ColumnDef DataType PrimaryKey Kw primary_key JoinDef JoinType Kw join Kw one Kw many Kw as Alias Kw on BinaryExpression = ComputedDef TypeCastExpression :: CastType BinaryExpression Kw or TypeCastExpression BinaryExpression Kw and ComparisonOp != <> < > <= >= Kw like Kw not AddOp + - MulOp * / % InExpression Kw in InValueList QueryStatement FromClause Kw from TableName Subquery SubqueryExpression JoinClause Kw inner Kw left Kw right Kw full Kw cross SelectClause Kw select Kw distinct SelectItem Wildcard WhereClause Kw where GroupByClause Kw group Kw by HavingClause Kw having OrderByClause Kw order OrderItem Number Kw asc Kw desc LimitClause Kw limit Kw offset NullTestExpression Kw is Kw null UnaryExpression UnaryOperator CaseExpression Kw case WhenClause Kw when Kw then ElseClause Kw else Kw end ExistsExpression Kw exists String Boolean Kw true Kw false Null FunctionCall Count Kw count ExtractExpression Kw extract ExtractUnit CastExpression Kw cast Param Parenthetical InExpression NullTestExpression : ViewStatement ExtendStatement Kw extend",
1346
+ maxTerm: 187,
1327
1347
  nodeProps: [
1328
- ["group", -12, 7, 97, 112, 114, 127, 130, 131, 136, 137, 138, 141, 145, "Expression Expression", -9, 26, 29, 32, 53, 63, 107, 146, 147, 148, "Expression", -2, 61, 62, "TablePrimary"]
1348
+ ["group", -13, 6, 100, 115, 117, 130, 133, 134, 139, 140, 141, 144, 148, 151, "Expression Expression", -11, 25, 28, 31, 34, 35, 56, 66, 110, 152, 153, 154, "Expression", -2, 64, 65, "TablePrimary"]
1329
1349
  ],
1330
- skippedNodes: [0, 1],
1350
+ skippedNodes: [0],
1331
1351
  repeatNodeCount: 10,
1332
- tokenData: "*o~RoX^#Spq#Sqr#wrs$Stu$quv%cwx%hxy&Qyz&Vz{&[{|&a|}&f}!O&k!O!P'[!P!Q'a!Q![(p![!])Z!]!^)`!^!_)e!_!`)z!`!a*P!c!}*^#T#o*^#y#z#S$f$g#S#BY#BZ#S$IS$I_#S$I|$JO#S$JT$JU#S$KV$KW#S&FU&FV#S~#XY$l~X^#Spq#S#y#z#S$f$g#S#BY#BZ#S$IS$I_#S$I|$JO#S$JT$JU#S$KV$KW#S&FU&FV#S~#zP!_!`#}~$SOt~~$VTOr$Srs$fs;'S$S;'S;=`$k<%lO$S~$kO#v~~$nP;=`<%l$S~$tS!Q![%Q!c!}%Q#R#S%Q#T#o%Q~%VS$V~!Q![%Q!c!}%Q#R#S%Q#T#o%Q~%hO!U~~%kTOw%hwx$fx;'S%h;'S;=`%z<%lO%h~%}P;=`<%l%h~&VO$n~~&[O$t~~&aO!S~~&fO!P~~&kO$r~~&pP!Q~}!O&s~&xSP~OY&sZ;'S&s;'S;=`'U<%lO&s~'XP;=`<%l&s~'aO$m~~'fP!T~z{'i~'lTOz'iz{'{{;'S'i;'S;=`(j<%lO'i~(OVOz'iz{'{{!P'i!P!Q(e!Q;'S'i;'S;=`(j<%lO'i~(jOP~~(mP;=`<%l'i~(uQ#T~!O!P({!Q![(p~)OP!Q![)R~)WP#T~!Q![)R~)`O$Z~~)eO$y~~)jQv~!_!`)p!`!a)u~)uOx~~)zOu~~*POk~~*UPw~!_!`*X~*^Oy~~*cST~!Q![*^!c!}*^#R#S*^#T#o*^",
1352
+ tokenData: "*w~RoX^#Spq#Sqr#wrs$Stu$quv%cwx%hxy&Qyz&Vz{&[{|&a|}&f}!O&k!O!P'[!P!Q'a!Q![(p![!])Z!]!^)h!^!_)m!_!`*S!`!a*X!c!}*f#T#o*f#y#z#S$f$g#S#BY#BZ#S$IS$I_#S$I|$JO#S$JT$JU#S$KV$KW#S&FU&FV#S~#XY$r~X^#Spq#S#y#z#S$f$g#S#BY#BZ#S$IS$I_#S$I|$JO#S$JT$JU#S$KV$KW#S&FU&FV#S~#zP!_!`#}~$SOw~~$VTOr$Srs$fs;'S$S;'S;=`$k<%lO$S~$kO#y~~$nP;=`<%l$S~$tS!Q![%Q!c!}%Q#R#S%Q#T#o%Q~%VS$]~!Q![%Q!c!}%Q#R#S%Q#T#o%Q~%hO!X~~%kTOw%hwx$fx;'S%h;'S;=`%z<%lO%h~%}P;=`<%l%h~&VO$u~~&[O${~~&aO!V~~&fO!S~~&kO$y~~&pP!T~}!O&s~&xS$s~OY&sZ;'S&s;'S;=`'U<%lO&s~'XP;=`<%l&s~'aO$t~~'fP!W~z{'i~'lTOz'iz{'{{;'S'i;'S;=`(j<%lO'i~(OVOz'iz{'{{!P'i!P!Q(e!Q;'S'i;'S;=`(j<%lO'i~(jO$s~~(mP;=`<%l'i~(uQ#W~!O!P({!Q![(p~)OP!Q![)R~)WP#W~!Q![)R~)`P$a~![!])c~)hOm~~)mO%Q~~)rQy~!_!`)x!`!a)}~)}O{~~*SOx~~*XOj~~*^Pz~!_!`*a~*fO|~~*kSS~!Q![*f!c!}*f#R#S*f#T#o*f",
1333
1353
  tokenizers: [0],
1334
- topRules: { "Program": [0, 2] },
1335
- specialized: [{ term: 5, get: (value, stack) => specializeIdentifier(value, stack) << 1, external: specializeIdentifier }, { term: 5, get: (value) => spec_Identifier[value] || -1 }],
1336
- tokenPrec: 2964
1354
+ topRules: { "Program": [0, 1] },
1355
+ specialized: [{ term: 4, get: (value, stack) => specializeIdentifier(value, stack) << 1, external: specializeIdentifier }, { term: 4, get: (value) => spec_Identifier[value] || -1 }],
1356
+ tokenPrec: 3489
1337
1357
  });
1338
1358
  }
1339
1359
  });
@@ -1544,7 +1564,7 @@ var init_snowflake = __esm({
1544
1564
  });
1545
1565
 
1546
1566
  // ../lang/core.ts
1547
- import { registerDialect, StandardSQLDialect, QueryModel, expandBlueprintMap } from "@graphenedata/malloy";
1567
+ import { QueryModel } from "@graphenedata/malloy";
1548
1568
  import { readFile } from "node:fs/promises";
1549
1569
  import { glob } from "glob";
1550
1570
  import path2 from "node:path";
@@ -1624,7 +1644,6 @@ function toSql(query, params = {}) {
1624
1644
  });
1625
1645
  return qm.compileQuery(query).sql;
1626
1646
  }
1627
- var BigQueryDialect;
1628
1647
  var init_core = __esm({
1629
1648
  "../lang/core.ts"() {
1630
1649
  "use strict";
@@ -1632,20 +1651,10 @@ var init_core = __esm({
1632
1651
  init_params();
1633
1652
  init_util();
1634
1653
  init_config();
1635
- init_functionDefs();
1636
1654
  init_parser();
1637
1655
  init_markdown();
1638
1656
  init_snowflake();
1639
- BigQueryDialect = class extends StandardSQLDialect {
1640
- constructor() {
1641
- super();
1642
- this.name = "bigquery";
1643
- }
1644
- getDialectFunctions() {
1645
- return expandBlueprintMap(BIGQUERY_DIALECT_FUNCTIONS);
1646
- }
1647
- };
1648
- registerDialect(new BigQueryDialect());
1657
+ init_functionDefs();
1649
1658
  }
1650
1659
  });
1651
1660
 
@@ -2087,7 +2096,7 @@ async function startLoopback() {
2087
2096
  await new Promise((r) => server.listen(0, "127.0.0.1", () => r()));
2088
2097
  let addr = server.address();
2089
2098
  if (!addr || typeof addr !== "object") throw new Error("Couldnt start oauth callback server");
2090
- let redirectBase = `http://localhost:${addr.port}`;
2099
+ let redirectBase = `http://127.0.0.1:${addr.port}`;
2091
2100
  let waitForCode = new Promise((resolve) => {
2092
2101
  server.on("request", (req, res) => {
2093
2102
  let url = new URL(req.url || "/", redirectBase);
@@ -2183,7 +2192,7 @@ var init_auth = __esm({
2183
2192
  "auth.ts"() {
2184
2193
  "use strict";
2185
2194
  init_config();
2186
- AUTH_CLIENT_ID = "connected-app-test-4685a2a0-1cb9-4a81-a6bf-01a3efe7b981";
2195
+ AUTH_CLIENT_ID = "connected-app-test-75eae3e8-efa1-454d-8ad0-66288c750872";
2187
2196
  AUTH_SCOPES = "offline_access";
2188
2197
  cfgDir = process.env.XDG_CONFIG_HOME || path5.join(os2.homedir(), ".config");
2189
2198
  credsPath = path5.join(cfgDir, "graphene", "credentials.json");
@@ -1,7 +1,7 @@
1
1
  // The query engine gathers query requests and inputs from components, and issues requests to the server.
2
2
  // When inputs change, it takes care of notifying affected components and requesting new data.
3
3
 
4
- import {cacheRead, cacheWrite, getHashes} from './clientCache'
4
+ import {cacheRead, cacheWrite, getHashes} from './clientCache.ts'
5
5
  import {errorProvider} from './telemetry.ts'
6
6
 
7
7
  interface QueryResult {
@@ -36,6 +36,8 @@ function registerQuery (name: string, contents: string) {
36
36
  queries.push({name, contents, loading: false, fields: new Map(), errors: []})
37
37
  }
38
38
 
39
+ const getRoutePath = () => typeof window === 'undefined' ? '/' : (window.location.pathname || '/')
40
+
39
41
  function updateParam (name: string, value: any) {
40
42
  params[name] = value
41
43
  runAll() // for now, do the easy thing and reload it all
@@ -79,7 +81,7 @@ async function runNode (n: QueryNode) {
79
81
  let response = await fetch('/_api/query', {
80
82
  method: 'POST',
81
83
  headers: {'Content-Type': 'application/json'},
82
- body: JSON.stringify({params, gsql, hashes}),
84
+ body: JSON.stringify({params, gsql, hashes, routePath: getRoutePath()}),
83
85
  })
84
86
  let hash = response.headers.get('ETag') || ''
85
87
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "main": "cli.ts",
4
4
  "type": "module",
5
5
  "author": "Graphene Systems Inc",
6
- "version": "0.0.9",
6
+ "version": "0.0.10",
7
7
  "license": "Elastic-2.0",
8
8
  "engines": {
9
9
  "node": ">=16"