@malloydata/malloy 0.0.22-dev230207144036 → 0.0.22-dev230207180844

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.
Files changed (359) hide show
  1. package/dist/connection_utils.d.ts +1 -0
  2. package/dist/connection_utils.js +66 -0
  3. package/dist/dialect/dialect.d.ts +66 -0
  4. package/dist/dialect/dialect.js +85 -0
  5. package/dist/dialect/dialect_map.d.ts +3 -0
  6. package/dist/dialect/dialect_map.js +45 -0
  7. package/dist/dialect/duckdb.d.ts +52 -0
  8. package/dist/dialect/duckdb.js +364 -0
  9. package/dist/dialect/index.d.ts +6 -0
  10. package/dist/dialect/index.js +37 -0
  11. package/dist/dialect/postgres.d.ts +52 -0
  12. package/dist/dialect/postgres.js +330 -0
  13. package/dist/dialect/standardsql.d.ts +49 -0
  14. package/dist/dialect/standardsql.js +381 -0
  15. package/dist/index.d.ts +10 -0
  16. package/dist/index.js +59 -0
  17. package/dist/lang/ast/ast-utils.d.ts +10 -0
  18. package/dist/lang/ast/ast-utils.js +42 -0
  19. package/dist/lang/ast/elements/define-query.d.ts +14 -0
  20. package/dist/lang/ast/elements/define-query.js +56 -0
  21. package/dist/lang/ast/elements/define-source.d.ts +17 -0
  22. package/dist/lang/ast/elements/define-source.js +79 -0
  23. package/dist/lang/ast/elements/import-statement.d.ts +9 -0
  24. package/dist/lang/ast/elements/import-statement.js +78 -0
  25. package/dist/lang/ast/elements/pipeline-desc.d.ts +30 -0
  26. package/dist/lang/ast/elements/pipeline-desc.js +102 -0
  27. package/dist/lang/ast/elements/refined-source.d.ts +15 -0
  28. package/dist/lang/ast/elements/refined-source.js +121 -0
  29. package/dist/lang/ast/elements/source.d.ts +12 -0
  30. package/dist/lang/ast/elements/source.js +53 -0
  31. package/dist/lang/ast/error-factory.d.ts +9 -0
  32. package/dist/lang/ast/error-factory.js +61 -0
  33. package/dist/lang/ast/executors/index-executor.d.ts +18 -0
  34. package/dist/lang/ast/executors/index-executor.js +96 -0
  35. package/dist/lang/ast/executors/project-executor.d.ts +10 -0
  36. package/dist/lang/ast/executors/project-executor.js +68 -0
  37. package/dist/lang/ast/executors/reduce-executor.d.ts +21 -0
  38. package/dist/lang/ast/executors/reduce-executor.js +149 -0
  39. package/dist/lang/ast/expressions/apply.d.ts +8 -0
  40. package/dist/lang/ast/expressions/apply.js +37 -0
  41. package/dist/lang/ast/expressions/binary-boolean.d.ts +12 -0
  42. package/dist/lang/ast/expressions/binary-boolean.js +54 -0
  43. package/dist/lang/ast/expressions/binary-numeric.d.ts +11 -0
  44. package/dist/lang/ast/expressions/binary-numeric.js +42 -0
  45. package/dist/lang/ast/expressions/boolean.d.ts +8 -0
  46. package/dist/lang/ast/expressions/boolean.js +39 -0
  47. package/dist/lang/ast/expressions/constant-sub-expression.d.ts +16 -0
  48. package/dist/lang/ast/expressions/constant-sub-expression.js +98 -0
  49. package/dist/lang/ast/expressions/expr-add-sub.d.ts +4 -0
  50. package/dist/lang/ast/expressions/expr-add-sub.js +34 -0
  51. package/dist/lang/ast/expressions/expr-aggregate-function.d.ts +15 -0
  52. package/dist/lang/ast/expressions/expr-aggregate-function.js +99 -0
  53. package/dist/lang/ast/expressions/expr-alternation-tree.d.ts +11 -0
  54. package/dist/lang/ast/expressions/expr-alternation-tree.js +54 -0
  55. package/dist/lang/ast/expressions/expr-asymmetric.d.ts +10 -0
  56. package/dist/lang/ast/expressions/expr-asymmetric.js +27 -0
  57. package/dist/lang/ast/expressions/expr-avg.d.ts +6 -0
  58. package/dist/lang/ast/expressions/expr-avg.js +34 -0
  59. package/dist/lang/ast/expressions/expr-cast.d.ts +13 -0
  60. package/dist/lang/ast/expressions/expr-cast.js +29 -0
  61. package/dist/lang/ast/expressions/expr-compare.d.ts +10 -0
  62. package/dist/lang/ast/expressions/expr-compare.js +58 -0
  63. package/dist/lang/ast/expressions/expr-count-distinct.d.ts +6 -0
  64. package/dist/lang/ast/expressions/expr-count-distinct.js +35 -0
  65. package/dist/lang/ast/expressions/expr-count.d.ts +11 -0
  66. package/dist/lang/ast/expressions/expr-count.js +57 -0
  67. package/dist/lang/ast/expressions/expr-filter.d.ts +12 -0
  68. package/dist/lang/ast/expressions/expr-filter.js +69 -0
  69. package/dist/lang/ast/expressions/expr-func.d.ts +10 -0
  70. package/dist/lang/ast/expressions/expr-func.js +63 -0
  71. package/dist/lang/ast/expressions/expr-granular-time.d.ts +24 -0
  72. package/dist/lang/ast/expressions/expr-granular-time.js +117 -0
  73. package/dist/lang/ast/expressions/expr-id-reference.d.ts +12 -0
  74. package/dist/lang/ast/expressions/expr-id-reference.js +75 -0
  75. package/dist/lang/ast/expressions/expr-logical-op.d.ts +9 -0
  76. package/dist/lang/ast/expressions/expr-logical-op.js +36 -0
  77. package/dist/lang/ast/expressions/expr-max.d.ts +9 -0
  78. package/dist/lang/ast/expressions/expr-max.js +16 -0
  79. package/dist/lang/ast/expressions/expr-min.d.ts +9 -0
  80. package/dist/lang/ast/expressions/expr-min.js +16 -0
  81. package/dist/lang/ast/expressions/expr-minus.d.ts +9 -0
  82. package/dist/lang/ast/expressions/expr-minus.js +48 -0
  83. package/dist/lang/ast/expressions/expr-mul-div.d.ts +4 -0
  84. package/dist/lang/ast/expressions/expr-mul-div.js +34 -0
  85. package/dist/lang/ast/expressions/expr-not.d.ts +10 -0
  86. package/dist/lang/ast/expressions/expr-not.js +49 -0
  87. package/dist/lang/ast/expressions/expr-now.d.ts +7 -0
  88. package/dist/lang/ast/expressions/expr-now.js +46 -0
  89. package/dist/lang/ast/expressions/expr-null.d.ts +6 -0
  90. package/dist/lang/ast/expressions/expr-null.js +41 -0
  91. package/dist/lang/ast/expressions/expr-number.d.ts +10 -0
  92. package/dist/lang/ast/expressions/expr-number.js +42 -0
  93. package/dist/lang/ast/expressions/expr-parens.d.ts +10 -0
  94. package/dist/lang/ast/expressions/expr-parens.js +42 -0
  95. package/dist/lang/ast/expressions/expr-regex.d.ts +8 -0
  96. package/dist/lang/ast/expressions/expr-regex.js +42 -0
  97. package/dist/lang/ast/expressions/expr-string.d.ts +9 -0
  98. package/dist/lang/ast/expressions/expr-string.js +50 -0
  99. package/dist/lang/ast/expressions/expr-sum.d.ts +6 -0
  100. package/dist/lang/ast/expressions/expr-sum.js +12 -0
  101. package/dist/lang/ast/expressions/expr-time-extract.d.ts +13 -0
  102. package/dist/lang/ast/expressions/expr-time-extract.js +117 -0
  103. package/dist/lang/ast/expressions/expr-time.d.ts +11 -0
  104. package/dist/lang/ast/expressions/expr-time.js +62 -0
  105. package/dist/lang/ast/expressions/expr-ungroup.d.ts +14 -0
  106. package/dist/lang/ast/expressions/expr-ungroup.js +83 -0
  107. package/dist/lang/ast/expressions/for-range.d.ts +19 -0
  108. package/dist/lang/ast/expressions/for-range.js +101 -0
  109. package/dist/lang/ast/expressions/granular-literal.d.ts +20 -0
  110. package/dist/lang/ast/expressions/granular-literal.js +148 -0
  111. package/dist/lang/ast/expressions/partial-compare.d.ts +14 -0
  112. package/dist/lang/ast/expressions/partial-compare.js +50 -0
  113. package/dist/lang/ast/expressions/pick-when.d.ts +19 -0
  114. package/dist/lang/ast/expressions/pick-when.js +156 -0
  115. package/dist/lang/ast/expressions/range.d.ts +12 -0
  116. package/dist/lang/ast/expressions/range.js +80 -0
  117. package/dist/lang/ast/expressions/time-frame.d.ts +7 -0
  118. package/dist/lang/ast/expressions/time-frame.js +40 -0
  119. package/dist/lang/ast/expressions/top-by.d.ts +10 -0
  120. package/dist/lang/ast/expressions/top-by.js +51 -0
  121. package/dist/lang/ast/expressions/unary.d.ts +5 -0
  122. package/dist/lang/ast/expressions/unary.js +34 -0
  123. package/dist/lang/ast/expressions/utils.d.ts +12 -0
  124. package/dist/lang/ast/expressions/utils.js +87 -0
  125. package/dist/lang/ast/field-space/column-space-field.d.ts +9 -0
  126. package/dist/lang/ast/field-space/column-space-field.js +40 -0
  127. package/dist/lang/ast/field-space/dynamic-space.d.ts +22 -0
  128. package/dist/lang/ast/field-space/dynamic-space.js +140 -0
  129. package/dist/lang/ast/field-space/field-definition-value.d.ts +16 -0
  130. package/dist/lang/ast/field-space/field-definition-value.js +55 -0
  131. package/dist/lang/ast/field-space/index-field-space.d.ts +10 -0
  132. package/dist/lang/ast/field-space/index-field-space.js +57 -0
  133. package/dist/lang/ast/field-space/join-space-field.d.ts +8 -0
  134. package/dist/lang/ast/field-space/join-space-field.js +35 -0
  135. package/dist/lang/ast/field-space/project-field-space.d.ts +6 -0
  136. package/dist/lang/ast/field-space/project-field-space.js +51 -0
  137. package/dist/lang/ast/field-space/query-field-struct.d.ts +10 -0
  138. package/dist/lang/ast/field-space/query-field-struct.js +46 -0
  139. package/dist/lang/ast/field-space/query-space-field.d.ts +11 -0
  140. package/dist/lang/ast/field-space/query-space-field.js +37 -0
  141. package/dist/lang/ast/field-space/query-spaces.d.ts +50 -0
  142. package/dist/lang/ast/field-space/query-spaces.js +233 -0
  143. package/dist/lang/ast/field-space/reference-field.d.ts +11 -0
  144. package/dist/lang/ast/field-space/reference-field.js +45 -0
  145. package/dist/lang/ast/field-space/refined-space.d.ts +13 -0
  146. package/dist/lang/ast/field-space/refined-space.js +100 -0
  147. package/dist/lang/ast/field-space/rename-space-field.d.ts +11 -0
  148. package/dist/lang/ast/field-space/rename-space-field.js +50 -0
  149. package/dist/lang/ast/field-space/static-space.d.ts +29 -0
  150. package/dist/lang/ast/field-space/static-space.js +156 -0
  151. package/dist/lang/ast/field-space/struct-space-field-base.d.ts +11 -0
  152. package/dist/lang/ast/field-space/struct-space-field-base.js +40 -0
  153. package/dist/lang/ast/field-space/wild-space-field.d.ts +10 -0
  154. package/dist/lang/ast/field-space/wild-space-field.js +40 -0
  155. package/dist/lang/ast/fragtype-utils.d.ts +39 -0
  156. package/dist/lang/ast/fragtype-utils.js +100 -0
  157. package/dist/lang/ast/index.d.ts +90 -0
  158. package/dist/lang/ast/index.js +129 -0
  159. package/dist/lang/ast/parameters/constant-parameter.d.ts +8 -0
  160. package/dist/lang/ast/parameters/constant-parameter.js +54 -0
  161. package/dist/lang/ast/parameters/has-parameter.d.ts +19 -0
  162. package/dist/lang/ast/parameters/has-parameter.js +64 -0
  163. package/dist/lang/ast/query-elements/anonymous-query.d.ts +9 -0
  164. package/dist/lang/ast/query-elements/anonymous-query.js +41 -0
  165. package/dist/lang/ast/query-elements/existing-query.d.ts +11 -0
  166. package/dist/lang/ast/query-elements/existing-query.js +79 -0
  167. package/dist/lang/ast/query-elements/full-query.d.ts +10 -0
  168. package/dist/lang/ast/query-elements/full-query.js +85 -0
  169. package/dist/lang/ast/query-elements/query-head-struct.d.ts +9 -0
  170. package/dist/lang/ast/query-elements/query-head-struct.js +48 -0
  171. package/dist/lang/ast/query-items/field-declaration.d.ts +31 -0
  172. package/dist/lang/ast/query-items/field-declaration.js +137 -0
  173. package/dist/lang/ast/query-items/field-references.d.ts +25 -0
  174. package/dist/lang/ast/query-items/field-references.js +80 -0
  175. package/dist/lang/ast/query-properties/aggregate.d.ts +5 -0
  176. package/dist/lang/ast/query-properties/aggregate.js +39 -0
  177. package/dist/lang/ast/query-properties/declare-fields.d.ts +5 -0
  178. package/dist/lang/ast/query-properties/declare-fields.js +33 -0
  179. package/dist/lang/ast/query-properties/dimmensions.d.ts +5 -0
  180. package/dist/lang/ast/query-properties/dimmensions.js +36 -0
  181. package/dist/lang/ast/query-properties/filters.d.ts +18 -0
  182. package/dist/lang/ast/query-properties/filters.js +89 -0
  183. package/dist/lang/ast/query-properties/group-by.d.ts +5 -0
  184. package/dist/lang/ast/query-properties/group-by.js +39 -0
  185. package/dist/lang/ast/query-properties/indexing.d.ts +10 -0
  186. package/dist/lang/ast/query-properties/indexing.js +39 -0
  187. package/dist/lang/ast/query-properties/joins.d.ts +36 -0
  188. package/dist/lang/ast/query-properties/joins.js +143 -0
  189. package/dist/lang/ast/query-properties/limit.d.ts +6 -0
  190. package/dist/lang/ast/query-properties/limit.js +35 -0
  191. package/dist/lang/ast/query-properties/measures.d.ts +5 -0
  192. package/dist/lang/ast/query-properties/measures.js +36 -0
  193. package/dist/lang/ast/query-properties/nest-reference.d.ts +7 -0
  194. package/dist/lang/ast/query-properties/nest-reference.js +35 -0
  195. package/dist/lang/ast/query-properties/nest.d.ts +31 -0
  196. package/dist/lang/ast/query-properties/nest.js +133 -0
  197. package/dist/lang/ast/query-properties/nests.d.ts +5 -0
  198. package/dist/lang/ast/query-properties/nests.js +33 -0
  199. package/dist/lang/ast/query-properties/ordering.d.ts +15 -0
  200. package/dist/lang/ast/query-properties/ordering.js +66 -0
  201. package/dist/lang/ast/query-properties/project-statement.d.ts +5 -0
  202. package/dist/lang/ast/query-properties/project-statement.js +33 -0
  203. package/dist/lang/ast/query-properties/qop-desc.d.ts +17 -0
  204. package/dist/lang/ast/query-properties/qop-desc.js +124 -0
  205. package/dist/lang/ast/query-properties/sampling.d.ts +8 -0
  206. package/dist/lang/ast/query-properties/sampling.js +38 -0
  207. package/dist/lang/ast/query-properties/top.d.ts +13 -0
  208. package/dist/lang/ast/query-properties/top.js +60 -0
  209. package/dist/lang/ast/source-properties/field-list-edit.d.ts +8 -0
  210. package/dist/lang/ast/source-properties/field-list-edit.js +36 -0
  211. package/dist/lang/ast/source-properties/primary-key.d.ts +7 -0
  212. package/dist/lang/ast/source-properties/primary-key.js +35 -0
  213. package/dist/lang/ast/source-properties/renames.d.ts +11 -0
  214. package/dist/lang/ast/source-properties/renames.js +43 -0
  215. package/dist/lang/ast/source-properties/turtles.d.ts +5 -0
  216. package/dist/lang/ast/source-properties/turtles.js +33 -0
  217. package/dist/lang/ast/sources/named-source.d.ts +19 -0
  218. package/dist/lang/ast/sources/named-source.js +147 -0
  219. package/dist/lang/ast/sources/query-source.d.ts +9 -0
  220. package/dist/lang/ast/sources/query-source.js +41 -0
  221. package/dist/lang/ast/sources/sql-source.d.ts +7 -0
  222. package/dist/lang/ast/sources/sql-source.js +54 -0
  223. package/dist/lang/ast/sources/table-source.d.ts +8 -0
  224. package/dist/lang/ast/sources/table-source.js +60 -0
  225. package/dist/lang/ast/space-seed.d.ts +16 -0
  226. package/dist/lang/ast/space-seed.js +59 -0
  227. package/dist/lang/ast/sql-elements/sql-statement.d.ts +19 -0
  228. package/dist/lang/ast/sql-elements/sql-statement.js +80 -0
  229. package/dist/lang/ast/sql-elements/sql-string.d.ts +12 -0
  230. package/dist/lang/ast/sql-elements/sql-string.js +60 -0
  231. package/dist/lang/ast/struct-utils.d.ts +4 -0
  232. package/dist/lang/ast/struct-utils.js +48 -0
  233. package/dist/lang/ast/time-utils.d.ts +12 -0
  234. package/dist/lang/ast/time-utils.js +140 -0
  235. package/dist/lang/ast/types/comparison.d.ts +11 -0
  236. package/dist/lang/ast/types/comparison.js +41 -0
  237. package/dist/lang/ast/types/document-compile-result.d.ts +8 -0
  238. package/dist/lang/ast/types/document-compile-result.js +25 -0
  239. package/dist/lang/ast/types/equality.d.ts +7 -0
  240. package/dist/lang/ast/types/equality.js +37 -0
  241. package/dist/lang/ast/types/executor.d.ts +9 -0
  242. package/dist/lang/ast/types/executor.js +25 -0
  243. package/dist/lang/ast/types/explore-desc.d.ts +5 -0
  244. package/dist/lang/ast/types/explore-desc.js +33 -0
  245. package/dist/lang/ast/types/explore-field.d.ts +5 -0
  246. package/dist/lang/ast/types/explore-field.js +32 -0
  247. package/dist/lang/ast/types/expr-result.d.ts +5 -0
  248. package/dist/lang/ast/types/expr-result.js +25 -0
  249. package/dist/lang/ast/types/expr-value.d.ts +3 -0
  250. package/dist/lang/ast/types/expr-value.js +25 -0
  251. package/dist/lang/ast/types/expression-def.d.ts +69 -0
  252. package/dist/lang/ast/types/expression-def.js +346 -0
  253. package/dist/lang/ast/types/field-collection-member.d.ts +5 -0
  254. package/dist/lang/ast/types/field-collection-member.js +34 -0
  255. package/dist/lang/ast/types/field-decl.d.ts +7 -0
  256. package/dist/lang/ast/types/field-decl.js +37 -0
  257. package/dist/lang/ast/types/field-space.d.ts +24 -0
  258. package/dist/lang/ast/types/field-space.js +44 -0
  259. package/dist/lang/ast/types/granular-result.d.ts +7 -0
  260. package/dist/lang/ast/types/granular-result.js +11 -0
  261. package/dist/lang/ast/types/lookup-result.d.ts +10 -0
  262. package/dist/lang/ast/types/lookup-result.js +25 -0
  263. package/dist/lang/ast/types/malloy-element.d.ts +106 -0
  264. package/dist/lang/ast/types/malloy-element.js +398 -0
  265. package/dist/lang/ast/types/model-entry.d.ts +6 -0
  266. package/dist/lang/ast/types/model-entry.js +25 -0
  267. package/dist/lang/ast/types/name-space.d.ts +5 -0
  268. package/dist/lang/ast/types/name-space.js +25 -0
  269. package/dist/lang/ast/types/nested-query.d.ts +3 -0
  270. package/dist/lang/ast/types/nested-query.js +25 -0
  271. package/dist/lang/ast/types/op-desc.d.ts +6 -0
  272. package/dist/lang/ast/types/op-desc.js +25 -0
  273. package/dist/lang/ast/types/query-comp.d.ts +5 -0
  274. package/dist/lang/ast/types/query-comp.js +25 -0
  275. package/dist/lang/ast/types/query-element.d.ts +5 -0
  276. package/dist/lang/ast/types/query-element.js +32 -0
  277. package/dist/lang/ast/types/query-item.d.ts +5 -0
  278. package/dist/lang/ast/types/query-item.js +25 -0
  279. package/dist/lang/ast/types/query-property.d.ts +17 -0
  280. package/dist/lang/ast/types/query-property.js +55 -0
  281. package/dist/lang/ast/types/source-property.d.ts +10 -0
  282. package/dist/lang/ast/types/source-property.js +43 -0
  283. package/dist/lang/ast/types/space-entry.d.ts +5 -0
  284. package/dist/lang/ast/types/space-entry.js +29 -0
  285. package/dist/lang/ast/types/space-field.d.ts +10 -0
  286. package/dist/lang/ast/types/space-field.js +48 -0
  287. package/dist/lang/ast/types/space-param.d.ts +20 -0
  288. package/dist/lang/ast/types/space-param.js +61 -0
  289. package/dist/lang/ast/types/time-result.d.ts +6 -0
  290. package/dist/lang/ast/types/time-result.js +25 -0
  291. package/dist/lang/ast/types/turtle-headed-pipe.d.ts +7 -0
  292. package/dist/lang/ast/types/turtle-headed-pipe.js +37 -0
  293. package/dist/lang/ast/types/type-desc.d.ts +7 -0
  294. package/dist/lang/ast/types/type-desc.js +25 -0
  295. package/dist/lang/field-utils.d.ts +5 -0
  296. package/dist/lang/field-utils.js +43 -0
  297. package/dist/lang/index.d.ts +10 -0
  298. package/dist/lang/index.js +32 -0
  299. package/dist/lang/lib/Malloy/MalloyLexer.d.ts +165 -0
  300. package/dist/lang/lib/Malloy/MalloyLexer.js +1232 -0
  301. package/dist/lang/lib/Malloy/MalloyParser.d.ts +1947 -0
  302. package/dist/lang/lib/Malloy/MalloyParser.js +11909 -0
  303. package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +2022 -0
  304. package/dist/lang/lib/Malloy/MalloyParserListener.js +4 -0
  305. package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +1274 -0
  306. package/dist/lang/lib/Malloy/MalloyParserVisitor.js +4 -0
  307. package/dist/lang/malloy-to-ast.d.ts +155 -0
  308. package/dist/lang/malloy-to-ast.js +990 -0
  309. package/dist/lang/parse-error-handler.d.ts +9 -0
  310. package/dist/lang/parse-error-handler.js +44 -0
  311. package/dist/lang/parse-log.d.ts +27 -0
  312. package/dist/lang/parse-log.js +51 -0
  313. package/dist/lang/parse-malloy.d.ts +182 -0
  314. package/dist/lang/parse-malloy.js +728 -0
  315. package/dist/lang/parse-tree-walkers/document-completion-walker.d.ts +10 -0
  316. package/dist/lang/parse-tree-walkers/document-completion-walker.js +148 -0
  317. package/dist/lang/parse-tree-walkers/document-help-context-walker.d.ts +9 -0
  318. package/dist/lang/parse-tree-walkers/document-help-context-walker.js +107 -0
  319. package/dist/lang/parse-tree-walkers/document-highlight-walker.d.ts +83 -0
  320. package/dist/lang/parse-tree-walkers/document-highlight-walker.js +385 -0
  321. package/dist/lang/parse-tree-walkers/document-symbol-walker.d.ts +11 -0
  322. package/dist/lang/parse-tree-walkers/document-symbol-walker.js +182 -0
  323. package/dist/lang/parse-tree-walkers/explore-query-walker.d.ts +34 -0
  324. package/dist/lang/parse-tree-walkers/explore-query-walker.js +74 -0
  325. package/dist/lang/parse-tree-walkers/find-external-references.d.ts +11 -0
  326. package/dist/lang/parse-tree-walkers/find-external-references.js +61 -0
  327. package/dist/lang/reference-list.d.ts +10 -0
  328. package/dist/lang/reference-list.js +90 -0
  329. package/dist/lang/test/document-help-context-walker.spec.d.ts +1 -0
  330. package/dist/lang/test/document-help-context-walker.spec.js +55 -0
  331. package/dist/lang/test/document-symbol-walker.spec.d.ts +1 -0
  332. package/dist/lang/test/document-symbol-walker.spec.js +110 -0
  333. package/dist/lang/test/field-symbols.spec.d.ts +1 -0
  334. package/dist/lang/test/field-symbols.spec.js +184 -0
  335. package/dist/lang/test/parse.spec.d.ts +14 -0
  336. package/dist/lang/test/parse.spec.js +2135 -0
  337. package/dist/lang/test/test-translator.d.ts +41 -0
  338. package/dist/lang/test/test-translator.js +344 -0
  339. package/dist/lang/translate-response.d.ts +59 -0
  340. package/dist/lang/translate-response.js +30 -0
  341. package/dist/lang/zone.d.ts +57 -0
  342. package/dist/lang/zone.js +107 -0
  343. package/dist/malloy.d.ts +1146 -0
  344. package/dist/malloy.js +2413 -0
  345. package/dist/model/index.d.ts +2 -0
  346. package/dist/model/index.js +45 -0
  347. package/dist/model/malloy_query.d.ts +351 -0
  348. package/dist/model/malloy_query.js +3174 -0
  349. package/dist/model/malloy_types.d.ts +551 -0
  350. package/dist/model/malloy_types.js +378 -0
  351. package/dist/model/sql_block.d.ts +7 -0
  352. package/dist/model/sql_block.js +56 -0
  353. package/dist/model/utils.d.ts +22 -0
  354. package/dist/model/utils.js +102 -0
  355. package/dist/run_sql_options.d.ts +3 -0
  356. package/dist/run_sql_options.js +25 -0
  357. package/dist/runtime_types.d.ts +105 -0
  358. package/dist/runtime_types.js +25 -0
  359. package/package.json +2 -2
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.nullsafeNot = exports.compressExpr = exports.compose = void 0;
26
+ const malloy_types_1 = require("../../../model/malloy_types");
27
+ /**
28
+ * If the passed expresion is not a single term, wrap it in parens
29
+ * @param f expression fragment
30
+ */
31
+ function term(f) {
32
+ if (f.length > 1) {
33
+ return ["(", ...f, ")"];
34
+ }
35
+ if (f.length === 0) {
36
+ // Trying to compose a binary expresion with an entity that has no value
37
+ // this should at least cause the generated SQL to error, but likely
38
+ // there has already been a semantic error reported.
39
+ return ["__MISSING_VALUE__"];
40
+ }
41
+ return f;
42
+ }
43
+ /**
44
+ * Compose a binary expression. Tries to write them safely and concisely
45
+ * @param left
46
+ * @param op
47
+ * @param right
48
+ * @returns Fragment list of the composed expression
49
+ */
50
+ function compose(left, op, right) {
51
+ const opAlpha = op.match(/^[A-Za-z]/);
52
+ const leftSpace = left.length === 1 && opAlpha ? " " : "";
53
+ const rightSpace = right.length === 1 && opAlpha ? " " : "";
54
+ const newOp = leftSpace + op + rightSpace;
55
+ return [...term(left), newOp, ...term(right)];
56
+ }
57
+ exports.compose = compose;
58
+ function compressExpr(expr) {
59
+ // compress all adjacent strings
60
+ const compressValue = [];
61
+ let buildString;
62
+ for (const fragment of expr.flat()) {
63
+ if (typeof fragment === "string") {
64
+ buildString = buildString ? buildString + fragment : fragment;
65
+ }
66
+ else {
67
+ if (buildString) {
68
+ compressValue.push(buildString);
69
+ buildString = undefined;
70
+ }
71
+ compressValue.push(fragment);
72
+ }
73
+ }
74
+ if (buildString) {
75
+ compressValue.push(buildString);
76
+ }
77
+ return compressValue;
78
+ }
79
+ exports.compressExpr = compressExpr;
80
+ function nullsafeNot(expr, op) {
81
+ if (op === undefined || op === "!=" || op === "!~") {
82
+ return (0, malloy_types_1.mkExpr) `COALESCE(NOT(${expr}),FALSE)`;
83
+ }
84
+ return expr;
85
+ }
86
+ exports.nullsafeNot = nullsafeNot;
87
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,9 @@
1
+ import { FieldDef, FieldTypeDef } from "../../../model/malloy_types";
2
+ import { SpaceField } from "../types/space-field";
3
+ import { TypeDesc } from "../types/type-desc";
4
+ export declare class ColumnSpaceField extends SpaceField {
5
+ protected def: FieldTypeDef;
6
+ constructor(def: FieldTypeDef);
7
+ fieldDef(): FieldDef;
8
+ typeDesc(): TypeDesc;
9
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ColumnSpaceField = void 0;
26
+ const space_field_1 = require("../types/space-field");
27
+ class ColumnSpaceField extends space_field_1.SpaceField {
28
+ constructor(def) {
29
+ super();
30
+ this.def = def;
31
+ }
32
+ fieldDef() {
33
+ return this.def;
34
+ }
35
+ typeDesc() {
36
+ return this.fieldTypeFromFieldDef(this.def);
37
+ }
38
+ }
39
+ exports.ColumnSpaceField = ColumnSpaceField;
40
+ //# sourceMappingURL=column-space-field.js.map
@@ -0,0 +1,22 @@
1
+ import * as model from "../../../model/malloy_types";
2
+ import { SpaceEntry } from "../types/space-entry";
3
+ import { FieldSpace } from "../types/field-space";
4
+ import { HasParameter } from "../parameters/has-parameter";
5
+ import { MalloyElement } from "../types/malloy-element";
6
+ import { SpaceSeed, SourceSpec } from "../space-seed";
7
+ import { StaticSpace } from "./static-space";
8
+ export declare abstract class DynamicSpace extends StaticSpace {
9
+ protected final: model.StructDef | undefined;
10
+ protected source: SpaceSeed;
11
+ outputFS?: FieldSpace;
12
+ completions: (() => void)[];
13
+ private complete;
14
+ constructor(extending: SourceSpec);
15
+ whenComplete(finalizeStep: () => void): void;
16
+ isComplete(): void;
17
+ protected setEntry(name: string, value: SpaceEntry): void;
18
+ addParameters(params: HasParameter[]): DynamicSpace;
19
+ newEntry(name: string, astEl: MalloyElement, entry: SpaceEntry): void;
20
+ addFieldDef(fd: model.FieldDef): void;
21
+ structDef(): model.StructDef;
22
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.DynamicSpace = void 0;
26
+ const lodash_1 = require("lodash");
27
+ const field_utils_1 = require("../../field-utils");
28
+ const error_factory_1 = require("../error-factory");
29
+ const space_field_1 = require("../types/space-field");
30
+ const join_space_field_1 = require("./join-space-field");
31
+ const query_space_field_1 = require("./query-space-field");
32
+ const space_param_1 = require("../types/space-param");
33
+ const space_seed_1 = require("../space-seed");
34
+ const static_space_1 = require("./static-space");
35
+ const struct_space_field_base_1 = require("./struct-space-field-base");
36
+ class DynamicSpace extends static_space_1.StaticSpace {
37
+ constructor(extending) {
38
+ const source = new space_seed_1.SpaceSeed(extending);
39
+ super((0, lodash_1.cloneDeep)(source.structDef));
40
+ this.completions = [];
41
+ this.complete = false;
42
+ this.final = undefined;
43
+ this.source = source;
44
+ }
45
+ whenComplete(finalizeStep) {
46
+ if (this.complete) {
47
+ finalizeStep();
48
+ }
49
+ else {
50
+ this.completions.push(finalizeStep);
51
+ }
52
+ }
53
+ isComplete() {
54
+ this.complete = true;
55
+ for (const step of this.completions) {
56
+ step();
57
+ }
58
+ this.completions = [];
59
+ }
60
+ setEntry(name, value) {
61
+ if (this.final) {
62
+ throw new Error("Space already final");
63
+ }
64
+ super.setEntry(name, value);
65
+ }
66
+ addParameters(params) {
67
+ for (const oneP of params) {
68
+ this.setEntry(oneP.name, new space_param_1.AbstractParameter(oneP));
69
+ }
70
+ return this;
71
+ }
72
+ newEntry(name, astEl, entry) {
73
+ if (this.entry(name)) {
74
+ astEl.log(`Cannot redefine '${name}'`);
75
+ return;
76
+ }
77
+ this.setEntry(name, entry);
78
+ }
79
+ addFieldDef(fd) {
80
+ this.setEntry((0, field_utils_1.nameOf)(fd), this.defToSpaceField(fd));
81
+ }
82
+ structDef() {
83
+ const parameters = this.fromStruct.parameters || {};
84
+ if (this.final === undefined) {
85
+ this.final = {
86
+ ...this.fromStruct,
87
+ fields: [],
88
+ };
89
+ // Need to process the entities in specific order
90
+ const fields = [];
91
+ const joins = [];
92
+ const turtles = [];
93
+ const fixupJoins = [];
94
+ for (const [name, spaceEntry] of this.entries()) {
95
+ if (spaceEntry instanceof struct_space_field_base_1.StructSpaceFieldBase) {
96
+ joins.push([name, spaceEntry]);
97
+ }
98
+ else if (spaceEntry instanceof query_space_field_1.QueryField) {
99
+ turtles.push([name, spaceEntry]);
100
+ }
101
+ else if (spaceEntry instanceof space_field_1.SpaceField) {
102
+ fields.push([name, spaceEntry]);
103
+ }
104
+ else if (spaceEntry instanceof space_param_1.SpaceParam) {
105
+ parameters[name] = spaceEntry.parameter();
106
+ }
107
+ }
108
+ const reorderFields = [...fields, ...joins, ...turtles];
109
+ for (const [fieldName, field] of reorderFields) {
110
+ if (field instanceof join_space_field_1.JoinSpaceField) {
111
+ const joinStruct = field.join.structDef();
112
+ if (!error_factory_1.ErrorFactory.isErrorStructDef(joinStruct)) {
113
+ this.final.fields.push(joinStruct);
114
+ fixupJoins.push([field.join, joinStruct]);
115
+ }
116
+ }
117
+ else {
118
+ const fieldDef = field.fieldDef();
119
+ if (fieldDef) {
120
+ this.final.fields.push(fieldDef);
121
+ }
122
+ else {
123
+ throw new Error(`'${fieldName}' doesn't have a FieldDef`);
124
+ }
125
+ }
126
+ }
127
+ if (Object.entries(parameters).length > 0) {
128
+ this.final.parameters = parameters;
129
+ }
130
+ // If we have join expressions, we need to now go back and fill them in
131
+ for (const [join, missingOn] of fixupJoins) {
132
+ join.fixupJoinOn(this, missingOn);
133
+ }
134
+ }
135
+ this.isComplete();
136
+ return this.final;
137
+ }
138
+ }
139
+ exports.DynamicSpace = DynamicSpace;
140
+ //# sourceMappingURL=dynamic-space.js.map
@@ -0,0 +1,16 @@
1
+ import * as model from "../../../model/malloy_types";
2
+ import { FieldDeclaration } from "../query-items/field-declaration";
3
+ import { FieldSpace } from "../types/field-space";
4
+ import { SpaceField } from "../types/space-field";
5
+ import { TypeDesc } from "../types/type-desc";
6
+ export declare class FieldDefinitionValue extends SpaceField {
7
+ readonly space: FieldSpace;
8
+ readonly exprDef: FieldDeclaration;
9
+ fieldName: string;
10
+ defType?: TypeDesc;
11
+ constructor(space: FieldSpace, exprDef: FieldDeclaration);
12
+ get name(): string;
13
+ fieldDef(): model.FieldDef;
14
+ getQueryFieldDef(fs: FieldSpace): model.QueryFieldDef;
15
+ typeDesc(): TypeDesc;
16
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.FieldDefinitionValue = void 0;
26
+ const space_field_1 = require("../types/space-field");
27
+ class FieldDefinitionValue extends space_field_1.SpaceField {
28
+ constructor(space, exprDef) {
29
+ super();
30
+ this.space = space;
31
+ this.exprDef = exprDef;
32
+ this.fieldName = exprDef.defineName;
33
+ }
34
+ get name() {
35
+ return this.fieldName;
36
+ }
37
+ fieldDef() {
38
+ const def = this.exprDef.fieldDef(this.space, this.name);
39
+ this.defType = this.fieldTypeFromFieldDef(def);
40
+ return def;
41
+ }
42
+ getQueryFieldDef(fs) {
43
+ const def = this.exprDef.queryFieldDef(fs, this.name);
44
+ this.defType = this.fieldTypeFromFieldDef(def);
45
+ return def;
46
+ }
47
+ typeDesc() {
48
+ if (this.defType) {
49
+ return this.defType;
50
+ }
51
+ return this.fieldTypeFromFieldDef(this.fieldDef());
52
+ }
53
+ }
54
+ exports.FieldDefinitionValue = FieldDefinitionValue;
55
+ //# sourceMappingURL=field-definition-value.js.map
@@ -0,0 +1,10 @@
1
+ import { IndexSegment, PipeSegment } from "../../../model/malloy_types";
2
+ import { FieldReference, WildcardFieldReference } from "../query-items/field-references";
3
+ import { QuerySpace } from "./query-spaces";
4
+ export declare class IndexFieldSpace extends QuerySpace {
5
+ readonly segmentType = "index";
6
+ fieldList: Set<string>;
7
+ addReference(ref: FieldReference): void;
8
+ addWild(wild: WildcardFieldReference): void;
9
+ getPipeSegment(refineIndex?: PipeSegment): IndexSegment;
10
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.IndexFieldSpace = void 0;
26
+ const query_spaces_1 = require("./query-spaces");
27
+ class IndexFieldSpace extends query_spaces_1.QuerySpace {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.segmentType = "index";
31
+ this.fieldList = new Set();
32
+ }
33
+ addReference(ref) {
34
+ if (ref.getField(this.exprSpace).found) {
35
+ this.fieldList.add(ref.refString);
36
+ }
37
+ }
38
+ addWild(wild) {
39
+ this.fieldList.add(wild.refString);
40
+ }
41
+ getPipeSegment(refineIndex) {
42
+ if (refineIndex && refineIndex.fields) {
43
+ for (const exists of refineIndex.fields) {
44
+ if (typeof exists == "string") {
45
+ this.fieldList.add(exists);
46
+ }
47
+ }
48
+ }
49
+ this.isComplete();
50
+ return {
51
+ type: "index",
52
+ fields: Array.from(this.fieldList.values()),
53
+ };
54
+ }
55
+ }
56
+ exports.IndexFieldSpace = IndexFieldSpace;
57
+ //# sourceMappingURL=index-field-space.js.map
@@ -0,0 +1,8 @@
1
+ import { FieldSpace } from "../types/field-space";
2
+ import { Join } from "../query-properties/joins";
3
+ import { StructSpaceField } from "./static-space";
4
+ export declare class JoinSpaceField extends StructSpaceField {
5
+ readonly intoFS: FieldSpace;
6
+ readonly join: Join;
7
+ constructor(intoFS: FieldSpace, join: Join);
8
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.JoinSpaceField = void 0;
26
+ const static_space_1 = require("./static-space");
27
+ class JoinSpaceField extends static_space_1.StructSpaceField {
28
+ constructor(intoFS, join) {
29
+ super(join.structDef());
30
+ this.intoFS = intoFS;
31
+ this.join = join;
32
+ }
33
+ }
34
+ exports.JoinSpaceField = JoinSpaceField;
35
+ //# sourceMappingURL=join-space-field.js.map
@@ -0,0 +1,6 @@
1
+ import { QueryFieldDef } from "../../../model/malloy_types";
2
+ import { QuerySpace } from "./query-spaces";
3
+ export declare class ProjectFieldSpace extends QuerySpace {
4
+ readonly segmentType = "project";
5
+ canContain(qd: QueryFieldDef): boolean;
6
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ProjectFieldSpace = void 0;
26
+ const malloy_types_1 = require("../../../model/malloy_types");
27
+ const query_spaces_1 = require("./query-spaces");
28
+ class ProjectFieldSpace extends query_spaces_1.QuerySpace {
29
+ constructor() {
30
+ super(...arguments);
31
+ this.segmentType = "project";
32
+ }
33
+ canContain(qd) {
34
+ if (typeof qd !== "string") {
35
+ if ((0, malloy_types_1.isFilteredAliasedName)(qd)) {
36
+ return true;
37
+ }
38
+ if (qd.type === "turtle") {
39
+ this.log("Cannot nest queries in project");
40
+ return false;
41
+ }
42
+ if ((0, malloy_types_1.expressionIsAggregate)(qd.expressionType)) {
43
+ this.log("Cannot add aggregate measures to project");
44
+ return false;
45
+ }
46
+ }
47
+ return true;
48
+ }
49
+ }
50
+ exports.ProjectFieldSpace = ProjectFieldSpace;
51
+ //# sourceMappingURL=project-field-space.js.map
@@ -0,0 +1,10 @@
1
+ import { QueryFieldDef, TurtleDef } from "../../../model/malloy_types";
2
+ import { QueryField } from "./query-space-field";
3
+ import { FieldSpace } from "../types/field-space";
4
+ export declare class QueryFieldStruct extends QueryField {
5
+ protected turtleDef: TurtleDef;
6
+ constructor(fs: FieldSpace, turtleDef: TurtleDef);
7
+ rename(name: string): void;
8
+ fieldDef(): TurtleDef;
9
+ getQueryFieldDef(_fs: FieldSpace): QueryFieldDef | undefined;
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.QueryFieldStruct = void 0;
26
+ const query_space_field_1 = require("./query-space-field");
27
+ class QueryFieldStruct extends query_space_field_1.QueryField {
28
+ constructor(fs, turtleDef) {
29
+ super(fs);
30
+ this.turtleDef = turtleDef;
31
+ }
32
+ rename(name) {
33
+ this.turtleDef = {
34
+ ...this.turtleDef,
35
+ as: name,
36
+ };
37
+ }
38
+ fieldDef() {
39
+ return this.turtleDef;
40
+ }
41
+ getQueryFieldDef(_fs) {
42
+ return this.fieldDef();
43
+ }
44
+ }
45
+ exports.QueryFieldStruct = QueryFieldStruct;
46
+ //# sourceMappingURL=query-field-struct.js.map
@@ -0,0 +1,11 @@
1
+ import { FieldDef, QueryFieldDef } from "../../../model/malloy_types";
2
+ import { FieldSpace } from "../types/field-space";
3
+ import { SpaceField } from "../types/space-field";
4
+ import { TypeDesc } from "../types/type-desc";
5
+ export declare abstract class QueryField extends SpaceField {
6
+ protected inSpace: FieldSpace;
7
+ constructor(inSpace: FieldSpace);
8
+ abstract getQueryFieldDef(fs: FieldSpace): QueryFieldDef | undefined;
9
+ abstract fieldDef(): FieldDef;
10
+ typeDesc(): TypeDesc;
11
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.QueryField = void 0;
26
+ const space_field_1 = require("../types/space-field");
27
+ class QueryField extends space_field_1.SpaceField {
28
+ constructor(inSpace) {
29
+ super();
30
+ this.inSpace = inSpace;
31
+ }
32
+ typeDesc() {
33
+ return { dataType: "turtle", expressionType: "scalar" };
34
+ }
35
+ }
36
+ exports.QueryField = QueryField;
37
+ //# sourceMappingURL=query-space-field.js.map