@malloydata/malloy 0.0.404 → 0.0.405

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 (287) hide show
  1. package/LICENSE +77 -0
  2. package/dist/api/asynchronous.js +2 -4
  3. package/dist/api/connection.js +2 -4
  4. package/dist/api/core.js +5 -6
  5. package/dist/api/foundation/annotation.js +3 -11
  6. package/dist/api/foundation/compile.js +15 -8
  7. package/dist/api/foundation/core.d.ts +44 -6
  8. package/dist/api/foundation/core.js +106 -31
  9. package/dist/api/foundation/runtime.js +9 -19
  10. package/dist/api/foundation/taggable.d.ts +5 -0
  11. package/dist/api/foundation/types.d.ts +15 -0
  12. package/dist/api/index.js +4 -6
  13. package/dist/api/sessioned.js +2 -4
  14. package/dist/api/stateless.js +2 -4
  15. package/dist/api/util.js +2 -4
  16. package/dist/connection/base_connection.js +2 -4
  17. package/dist/connection/types.d.ts +1 -3
  18. package/dist/connection_utils.js +2 -20
  19. package/dist/dialect/dialect.js +2 -20
  20. package/dist/dialect/dialect_map.js +2 -20
  21. package/dist/dialect/duckdb/dialect_functions.js +2 -4
  22. package/dist/dialect/duckdb/duckdb.js +2 -20
  23. package/dist/dialect/duckdb/function_overrides.js +2 -4
  24. package/dist/dialect/duckdb/index.js +2 -20
  25. package/dist/dialect/duckdb/table-path-parser.js +4 -4
  26. package/dist/dialect/functions/index.js +2 -20
  27. package/dist/dialect/functions/malloy_standard_functions.js +2 -4
  28. package/dist/dialect/functions/util.js +2 -21
  29. package/dist/dialect/index.js +2 -20
  30. package/dist/dialect/mysql/dialect_functions.js +2 -4
  31. package/dist/dialect/mysql/function_overrides.js +2 -4
  32. package/dist/dialect/mysql/index.js +2 -4
  33. package/dist/dialect/mysql/mysql.js +2 -20
  34. package/dist/dialect/pg_impl.js +2 -4
  35. package/dist/dialect/postgres/dialect_functions.js +2 -4
  36. package/dist/dialect/postgres/function_overrides.js +2 -4
  37. package/dist/dialect/postgres/index.js +2 -20
  38. package/dist/dialect/postgres/postgres.js +2 -20
  39. package/dist/dialect/snowflake/dialect_functions.js +2 -4
  40. package/dist/dialect/snowflake/function_overrides.js +2 -4
  41. package/dist/dialect/snowflake/index.js +2 -20
  42. package/dist/dialect/snowflake/snowflake.js +2 -20
  43. package/dist/dialect/standardsql/dialect_functions.js +2 -4
  44. package/dist/dialect/standardsql/function_overrides.js +2 -4
  45. package/dist/dialect/standardsql/index.js +2 -20
  46. package/dist/dialect/standardsql/standardsql.js +2 -20
  47. package/dist/dialect/tiny_parser.js +2 -4
  48. package/dist/dialect/trino/dialect_functions.js +2 -4
  49. package/dist/dialect/trino/function_overrides.js +2 -4
  50. package/dist/dialect/trino/index.js +2 -20
  51. package/dist/dialect/trino/trino.js +2 -20
  52. package/dist/index.js +4 -22
  53. package/dist/lang/ast/ast-utils.js +2 -20
  54. package/dist/lang/ast/error-factory.js +2 -20
  55. package/dist/lang/ast/expressions/apply.js +2 -20
  56. package/dist/lang/ast/expressions/binary-boolean.js +2 -20
  57. package/dist/lang/ast/expressions/binary-numeric.js +2 -20
  58. package/dist/lang/ast/expressions/boolean.js +2 -20
  59. package/dist/lang/ast/expressions/case.js +2 -4
  60. package/dist/lang/ast/expressions/constant-expression.js +2 -20
  61. package/dist/lang/ast/expressions/expr-add-sub.js +2 -20
  62. package/dist/lang/ast/expressions/expr-aggregate-function.js +2 -20
  63. package/dist/lang/ast/expressions/expr-alternation-tree.js +2 -20
  64. package/dist/lang/ast/expressions/expr-array-literal.js +2 -4
  65. package/dist/lang/ast/expressions/expr-asymmetric.js +2 -20
  66. package/dist/lang/ast/expressions/expr-avg.js +2 -20
  67. package/dist/lang/ast/expressions/expr-cast.js +2 -20
  68. package/dist/lang/ast/expressions/expr-coalesce.js +2 -20
  69. package/dist/lang/ast/expressions/expr-compare.js +2 -20
  70. package/dist/lang/ast/expressions/expr-count-distinct.js +2 -20
  71. package/dist/lang/ast/expressions/expr-count.js +2 -20
  72. package/dist/lang/ast/expressions/expr-filter-expr.js +2 -4
  73. package/dist/lang/ast/expressions/expr-func.js +2 -20
  74. package/dist/lang/ast/expressions/expr-granular-time.js +2 -20
  75. package/dist/lang/ast/expressions/expr-id-reference.js +2 -20
  76. package/dist/lang/ast/expressions/expr-logical-op.js +2 -20
  77. package/dist/lang/ast/expressions/expr-max.js +2 -20
  78. package/dist/lang/ast/expressions/expr-min.js +2 -20
  79. package/dist/lang/ast/expressions/expr-minus.js +2 -20
  80. package/dist/lang/ast/expressions/expr-mul-div.js +2 -20
  81. package/dist/lang/ast/expressions/expr-not.js +2 -20
  82. package/dist/lang/ast/expressions/expr-now.js +2 -20
  83. package/dist/lang/ast/expressions/expr-null.js +2 -20
  84. package/dist/lang/ast/expressions/expr-number.js +2 -20
  85. package/dist/lang/ast/expressions/expr-parens.js +2 -20
  86. package/dist/lang/ast/expressions/expr-props.js +2 -20
  87. package/dist/lang/ast/expressions/expr-record-literal.js +2 -4
  88. package/dist/lang/ast/expressions/expr-regex.js +2 -20
  89. package/dist/lang/ast/expressions/expr-string.js +4 -0
  90. package/dist/lang/ast/expressions/expr-sum.js +2 -20
  91. package/dist/lang/ast/expressions/expr-time-extract.js +2 -20
  92. package/dist/lang/ast/expressions/expr-time.js +2 -20
  93. package/dist/lang/ast/expressions/expr-ungroup.js +2 -20
  94. package/dist/lang/ast/expressions/for-range.js +2 -20
  95. package/dist/lang/ast/expressions/function-ordering.js +2 -20
  96. package/dist/lang/ast/expressions/grouped_by.js +2 -4
  97. package/dist/lang/ast/expressions/partial-compare.js +2 -20
  98. package/dist/lang/ast/expressions/partition_by.js +2 -20
  99. package/dist/lang/ast/expressions/pick-when.js +2 -20
  100. package/dist/lang/ast/expressions/range.js +2 -20
  101. package/dist/lang/ast/expressions/time-frame.js +2 -20
  102. package/dist/lang/ast/expressions/time-literal.js +2 -20
  103. package/dist/lang/ast/expressions/unary.js +2 -20
  104. package/dist/lang/ast/field-space/ast-view-field.js +2 -20
  105. package/dist/lang/ast/field-space/column-space-field.js +2 -20
  106. package/dist/lang/ast/field-space/def-space.js +2 -4
  107. package/dist/lang/ast/field-space/dynamic-space.js +2 -20
  108. package/dist/lang/ast/field-space/include-utils.js +2 -4
  109. package/dist/lang/ast/field-space/index-field-space.js +2 -20
  110. package/dist/lang/ast/field-space/ir-view-field.js +2 -20
  111. package/dist/lang/ast/field-space/join-space-field.js +2 -20
  112. package/dist/lang/ast/field-space/parameter-space.js +2 -4
  113. package/dist/lang/ast/field-space/passthrough-space.js +2 -4
  114. package/dist/lang/ast/field-space/permissive-space.js +2 -4
  115. package/dist/lang/ast/field-space/project-field-space.js +2 -20
  116. package/dist/lang/ast/field-space/query-input-space.js +2 -20
  117. package/dist/lang/ast/field-space/query-spaces.js +2 -20
  118. package/dist/lang/ast/field-space/reference-field.js +5 -21
  119. package/dist/lang/ast/field-space/refine-from-space-field.js +2 -4
  120. package/dist/lang/ast/field-space/refined-space.js +2 -20
  121. package/dist/lang/ast/field-space/rename-space-field.js +2 -20
  122. package/dist/lang/ast/field-space/static-space.js +2 -20
  123. package/dist/lang/ast/field-space/struct-space-field-base.js +2 -20
  124. package/dist/lang/ast/field-space/view-field.js +2 -20
  125. package/dist/lang/ast/index.js +2 -20
  126. package/dist/lang/ast/parameters/argument.js +2 -4
  127. package/dist/lang/ast/parameters/has-parameter.js +2 -20
  128. package/dist/lang/ast/query-builders/index-builder.js +2 -20
  129. package/dist/lang/ast/query-builders/partial-builder.js +4 -0
  130. package/dist/lang/ast/query-builders/project-builder.js +2 -20
  131. package/dist/lang/ast/query-builders/reduce-builder.js +2 -20
  132. package/dist/lang/ast/query-elements/anonymous-query.js +3 -21
  133. package/dist/lang/ast/query-elements/query-arrow.js +2 -20
  134. package/dist/lang/ast/query-elements/query-base.js +2 -20
  135. package/dist/lang/ast/query-elements/query-head-struct.js +2 -20
  136. package/dist/lang/ast/query-elements/query-raw.js +2 -20
  137. package/dist/lang/ast/query-elements/query-reference.js +2 -20
  138. package/dist/lang/ast/query-elements/query-refine.js +2 -20
  139. package/dist/lang/ast/query-items/field-declaration.js +3 -21
  140. package/dist/lang/ast/query-items/field-references.js +2 -20
  141. package/dist/lang/ast/query-items/typecheck_utils.js +2 -20
  142. package/dist/lang/ast/query-properties/aggregate.js +2 -20
  143. package/dist/lang/ast/query-properties/calculate.js +2 -20
  144. package/dist/lang/ast/query-properties/declare-fields.js +2 -20
  145. package/dist/lang/ast/query-properties/drill.js +2 -4
  146. package/dist/lang/ast/query-properties/extend.js +2 -20
  147. package/dist/lang/ast/query-properties/filters.js +2 -20
  148. package/dist/lang/ast/query-properties/group-by.js +2 -20
  149. package/dist/lang/ast/query-properties/indexing.js +2 -20
  150. package/dist/lang/ast/query-properties/limit.js +2 -20
  151. package/dist/lang/ast/query-properties/nest.js +6 -21
  152. package/dist/lang/ast/query-properties/nests.js +2 -20
  153. package/dist/lang/ast/query-properties/ordering.js +2 -20
  154. package/dist/lang/ast/query-properties/project-statement.js +2 -20
  155. package/dist/lang/ast/query-properties/qop-desc.js +2 -20
  156. package/dist/lang/ast/query-properties/sampling.js +2 -20
  157. package/dist/lang/ast/query-utils.js +2 -20
  158. package/dist/lang/ast/source-elements/composite-source.js +2 -4
  159. package/dist/lang/ast/source-elements/named-source.js +2 -23
  160. package/dist/lang/ast/source-elements/query-source.js +2 -22
  161. package/dist/lang/ast/source-elements/refined-source.js +2 -22
  162. package/dist/lang/ast/source-elements/source.js +2 -20
  163. package/dist/lang/ast/source-elements/sql-source.js +2 -25
  164. package/dist/lang/ast/source-elements/table-source.js +3 -22
  165. package/dist/lang/ast/source-elements/virtual-source.js +1 -2
  166. package/dist/lang/ast/source-properties/dimensions.js +2 -20
  167. package/dist/lang/ast/source-properties/field-list-edit.js +2 -20
  168. package/dist/lang/ast/source-properties/join.js +4 -26
  169. package/dist/lang/ast/source-properties/measures.js +2 -20
  170. package/dist/lang/ast/source-properties/primary-key.js +2 -20
  171. package/dist/lang/ast/source-properties/renames.js +3 -21
  172. package/dist/lang/ast/source-properties/timezone-statement.js +2 -20
  173. package/dist/lang/ast/source-properties/user-type-shape.js +9 -4
  174. package/dist/lang/ast/source-properties/view-field-declaration.js +6 -21
  175. package/dist/lang/ast/source-properties/views.js +2 -20
  176. package/dist/lang/ast/source-query-elements/include-item.js +2 -4
  177. package/dist/lang/ast/source-query-elements/source-query-element.js +2 -20
  178. package/dist/lang/ast/source-query-elements/sq-arrow.js +2 -20
  179. package/dist/lang/ast/source-query-elements/sq-compose.js +2 -4
  180. package/dist/lang/ast/source-query-elements/sq-extend.js +2 -20
  181. package/dist/lang/ast/source-query-elements/sq-reference.js +2 -20
  182. package/dist/lang/ast/source-query-elements/sq-refine.js +2 -20
  183. package/dist/lang/ast/source-query-elements/sq-source.js +2 -20
  184. package/dist/lang/ast/sql-elements/sql-string.js +2 -20
  185. package/dist/lang/ast/statements/define-given.js +2 -2
  186. package/dist/lang/ast/statements/define-query.js +3 -21
  187. package/dist/lang/ast/statements/define-source.js +7 -22
  188. package/dist/lang/ast/statements/define-user-type.js +1 -1
  189. package/dist/lang/ast/statements/import-statement.js +7 -20
  190. package/dist/lang/ast/time-utils.js +2 -20
  191. package/dist/lang/ast/typedesc-utils.js +2 -20
  192. package/dist/lang/ast/types/annotation-elements.js +2 -20
  193. package/dist/lang/ast/types/binary_operators.js +2 -4
  194. package/dist/lang/ast/types/definition-list.js +2 -20
  195. package/dist/lang/ast/types/dialect-name-space.js +2 -4
  196. package/dist/lang/ast/types/document-compile-result.js +2 -20
  197. package/dist/lang/ast/types/expr-result.js +2 -20
  198. package/dist/lang/ast/types/expr-value.js +2 -20
  199. package/dist/lang/ast/types/expression-def.js +2 -20
  200. package/dist/lang/ast/types/field-collection-member.js +2 -20
  201. package/dist/lang/ast/types/field-prop-statement.js +2 -20
  202. package/dist/lang/ast/types/field-space.js +2 -20
  203. package/dist/lang/ast/types/global-name-space.js +2 -20
  204. package/dist/lang/ast/types/granular-result.js +2 -20
  205. package/dist/lang/ast/types/literal.d.ts +1 -1
  206. package/dist/lang/ast/types/literal.js +2 -4
  207. package/dist/lang/ast/types/lookup-result.js +2 -20
  208. package/dist/lang/ast/types/malloy-element.d.ts +27 -4
  209. package/dist/lang/ast/types/malloy-element.js +54 -70
  210. package/dist/lang/ast/types/model-entry.js +2 -20
  211. package/dist/lang/ast/types/name-space.js +2 -20
  212. package/dist/lang/ast/types/noteable.js +2 -20
  213. package/dist/lang/ast/types/op-desc.js +2 -20
  214. package/dist/lang/ast/types/pipeline-comp.js +2 -20
  215. package/dist/lang/ast/types/query-builder.js +2 -20
  216. package/dist/lang/ast/types/query-comp.js +2 -20
  217. package/dist/lang/ast/types/query-element.js +2 -20
  218. package/dist/lang/ast/types/query-extend-property.js +2 -20
  219. package/dist/lang/ast/types/query-item.js +2 -20
  220. package/dist/lang/ast/types/query-property-interface.js +2 -20
  221. package/dist/lang/ast/types/query-property.js +2 -20
  222. package/dist/lang/ast/types/source-desc.js +2 -20
  223. package/dist/lang/ast/types/source-property.js +2 -20
  224. package/dist/lang/ast/types/space-entry.js +2 -20
  225. package/dist/lang/ast/types/space-field.js +2 -20
  226. package/dist/lang/ast/types/space-param.js +2 -20
  227. package/dist/lang/ast/types/time-result.js +2 -20
  228. package/dist/lang/ast/view-elements/qop-desc-view.js +2 -20
  229. package/dist/lang/ast/view-elements/reference-view.js +2 -20
  230. package/dist/lang/ast/view-elements/refine-utils.js +2 -20
  231. package/dist/lang/ast/view-elements/view-arrow.js +2 -20
  232. package/dist/lang/ast/view-elements/view-refine.js +2 -20
  233. package/dist/lang/ast/view-elements/view.js +2 -20
  234. package/dist/lang/composite-source-utils.js +2 -4
  235. package/dist/lang/field-utils.js +2 -20
  236. package/dist/lang/index.js +2 -20
  237. package/dist/lang/malloy-parse-info.js +2 -20
  238. package/dist/lang/malloy-to-ast.d.ts +1 -1
  239. package/dist/lang/malloy-to-ast.js +2 -21
  240. package/dist/lang/malloy-to-stable-query.js +2 -4
  241. package/dist/lang/parse-log.js +2 -20
  242. package/dist/lang/parse-malloy.d.ts +1 -9
  243. package/dist/lang/parse-malloy.js +8 -50
  244. package/dist/lang/parse-tree-walkers/document-completion-walker.js +2 -20
  245. package/dist/lang/parse-tree-walkers/document-help-context-walker.js +2 -20
  246. package/dist/lang/parse-tree-walkers/document-symbol-walker.js +2 -20
  247. package/dist/lang/parse-tree-walkers/explore-query-walker.js +2 -20
  248. package/dist/lang/parse-tree-walkers/find-external-references.js +2 -20
  249. package/dist/lang/parse-tree-walkers/find-table-path-walker.js +2 -20
  250. package/dist/lang/parse-utils.js +2 -20
  251. package/dist/lang/reference-list.js +2 -20
  252. package/dist/lang/run-malloy-parser.js +2 -4
  253. package/dist/lang/syntax-errors/custom-error-messages.js +2 -4
  254. package/dist/lang/syntax-errors/malloy-error-strategy.js +2 -4
  255. package/dist/lang/syntax-errors/malloy-parser-error-listener.js +2 -4
  256. package/dist/lang/test/expr-to-str.js +2 -4
  257. package/dist/lang/test/parse-expects.js +2 -20
  258. package/dist/lang/test/test-translator.js +4 -25
  259. package/dist/lang/translate-response.d.ts +1 -5
  260. package/dist/lang/translate-response.js +2 -20
  261. package/dist/lang/utils.js +2 -20
  262. package/dist/lang/zone.js +2 -20
  263. package/dist/model/annotation_utils.d.ts +37 -0
  264. package/dist/model/annotation_utils.js +85 -0
  265. package/dist/model/filter_compilers.js +2 -4
  266. package/dist/model/index.d.ts +2 -1
  267. package/dist/model/index.js +6 -21
  268. package/dist/model/malloy_types.d.ts +36 -7
  269. package/dist/model/malloy_types.js +2 -21
  270. package/dist/model/query_node.d.ts +0 -3
  271. package/dist/model/query_node.js +0 -10
  272. package/dist/model/query_query.js +2 -16
  273. package/dist/model/source_def_utils.js +0 -2
  274. package/dist/model/sql_block.js +2 -20
  275. package/dist/model/utils.d.ts +9 -2
  276. package/dist/model/utils.js +15 -21
  277. package/dist/run_sql_options.d.ts +0 -5
  278. package/dist/run_sql_options.js +2 -20
  279. package/dist/runtime_types.js +2 -20
  280. package/dist/test/cellsToObject.js +2 -4
  281. package/dist/timing.js +2 -4
  282. package/dist/to_stable.js +2 -4
  283. package/dist/version.d.ts +1 -1
  284. package/dist/version.js +1 -1
  285. package/package.json +4 -4
  286. package/dist/lang/parse-tree-walkers/model-annotation-walker.d.ts +0 -5
  287. package/dist/lang/parse-tree-walkers/model-annotation-walker.js +0 -50
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.walkForDocumentSymbols = walkForDocumentSymbols;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.ExploreQueryWalker = void 0;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.constructTableKey = constructTableKey;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.walkForTablePath = walkForTablePath;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.getShortString = getShortString;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.ReferenceList = void 0;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
7
5
  */
8
6
  Object.defineProperty(exports, "__esModule", { value: true });
9
7
  exports.makeMalloyParser = makeMalloyParser;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
7
5
  */
8
6
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
7
5
  */
8
6
  Object.defineProperty(exports, "__esModule", { value: true });
9
7
  exports.MalloyErrorStrategy = void 0;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
7
5
  */
8
6
  Object.defineProperty(exports, "__esModule", { value: true });
9
7
  exports.MalloyParserErrorListener = exports.malloyCustomErrorCases = void 0;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
7
5
  */
8
6
  Object.defineProperty(exports, "__esModule", { value: true });
9
7
  exports.exprToStr = exprToStr;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  const model_1 = require("../../model");
@@ -1,26 +1,8 @@
1
1
  "use strict";
2
2
  /* eslint-disable no-console */
3
3
  /*
4
- * Copyright 2023 Google LLC
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining
7
- * a copy of this software and associated documentation files
8
- * (the "Software"), to deal in the Software without restriction,
9
- * including without limitation the rights to use, copy, modify, merge,
10
- * publish, distribute, sublicense, and/or sell copies of the Software,
11
- * and to permit persons to whom the Software is furnished to do so,
12
- * subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be
15
- * included in all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4
+ * Copyright Contributors to the Malloy project
5
+ * SPDX-License-Identifier: MIT
24
6
  */
25
7
  Object.defineProperty(exports, "__esModule", { value: true });
26
8
  exports.BetaExpression = exports.TestTranslator = exports.TestChildTranslator = exports.mockSchema = exports.bqTableDef = exports.aTableDef = exports.TEST_DIALECT = void 0;
@@ -49,6 +31,7 @@ const parse_malloy_1 = require("../parse-malloy");
49
31
  const static_space_1 = require("../ast/field-space/static-space");
50
32
  const global_name_space_1 = require("../ast/types/global-name-space");
51
33
  const sql_block_1 = require("../../model/sql_block");
34
+ const utils_1 = require("../../model/utils");
52
35
  function pretty(thing) {
53
36
  return (0, util_1.inspect)(thing, { breakLength: 100, depth: Infinity });
54
37
  }
@@ -363,11 +346,7 @@ class TestTranslator extends parse_malloy_1.MalloyTranslator {
363
346
  *
364
347
  */
365
348
  this.internalModel = {
366
- name: testURI,
367
- exports: [],
368
- queryList: [],
369
- sourceRegistry: {},
370
- dependencies: {},
349
+ ...(0, utils_1.mkModelDef)(testURI, testURI),
371
350
  contents: {
372
351
  _db_: { type: 'connection', name: '_db_' },
373
352
  _bq_: { type: 'connection', name: '_bq_' },
@@ -1,5 +1,5 @@
1
1
  import type * as Malloy from '@malloydata/malloy-interfaces';
2
- import type { AnnotationsDef, ModelDef } from '../model/malloy_types';
2
+ import type { ModelDef } from '../model/malloy_types';
3
3
  import type { MalloyElement } from './ast';
4
4
  import type { LogMessage } from './parse-log';
5
5
  import type { DocumentSymbol } from './parse-tree-walkers/document-symbol-walker';
@@ -54,10 +54,6 @@ interface Metadata extends ResponseBase, NeededData, ProblemResponse, FinalRespo
54
54
  symbols: DocumentSymbol[];
55
55
  }
56
56
  export type MetadataResponse = Partial<Metadata>;
57
- interface ModelAnnotationData extends ResponseBase, NeededData, ProblemResponse, FinalResponse {
58
- modelAnnotations: AnnotationsDef;
59
- }
60
- export type ModelAnnotationResponse = Partial<ModelAnnotationData>;
61
57
  interface Completions extends ResponseBase, NeededData, ProblemResponse, FinalResponse {
62
58
  completions: DocumentCompletion[];
63
59
  }
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.isNeedResponse = isNeedResponse;
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.locationContainsPosition = locationContainsPosition;
package/dist/lang/zone.js CHANGED
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  Object.defineProperty(exports, "__esModule", { value: true });
25
7
  exports.Zone = void 0;
@@ -0,0 +1,37 @@
1
+ import type { AnnotationsDef, ModelDef, ModelID, Note } from './malloy_types';
2
+ /**
3
+ * Every Note of an annotation bundle, inherited first, in document order
4
+ * (`inherits` → `blockNotes` → `notes`). Later notes win when re-parsed.
5
+ *
6
+ * Internal helper — not part of the public `model` barrel. The public way to
7
+ * read notes is the `Annotations` view (`api/foundation/annotation.ts`), which
8
+ * uses this; the model-annotation fold below uses it too.
9
+ */
10
+ export declare function notesInOrder(annote: AnnotationsDef): Generator<Note>;
11
+ /**
12
+ * The model (`##`) annotations for one model, compiled by walking the
13
+ * annotation-provenance tree: a model's own `##` together with everything it
14
+ * imports/extends, folded down the lineage into a single ordered bundle.
15
+ *
16
+ * `modelID` defaults to `model.modelID` — the common case, "the annotations
17
+ * this model presents." `##` is model-level, so every object resolved in the
18
+ * model reports this same one bundle (resolution takes no object). Pass an
19
+ * explicit `modelID` to compile the bundle for any other model in the closure.
20
+ *
21
+ * Mechanism: a post-order DFS over each model's `inheritsFrom` edges
22
+ * (extend-base is `import₀`, sitting first) emits a model only after its
23
+ * predecessors and only once (its most-ancestral slot); back-edges are skipped,
24
+ * so the walk terminates on a cycle. The result is ordered imports-first /
25
+ * local-last — a consumer that takes "last wins" sees the target model's own
26
+ * `##` win — and is returned as an {@link AnnotationsDef} whose `inherits` chain
27
+ * *is* that order (target at the top, most-ancestral import deepest), so the
28
+ * `Annotations` view / {@link notesInOrder} consume it with no new code.
29
+ *
30
+ * A target with no entry contributes nothing (empty) — the honest answer for a
31
+ * synthetic or detached `ModelDef` (built via `mkModelDef`, a `pseudoModelFor`
32
+ * struct, a model with no `##` anywhere) that never recorded a self-entry. But
33
+ * a recorded `inheritsFrom` *edge* to a model with no entry is corruption —
34
+ * population kept the edge but lost the target — and throws a compiler-bug-class
35
+ * error: the one place that needs the entry is the one place that detects it.
36
+ */
37
+ export declare function getModelAnnotations(model: ModelDef, modelID?: ModelID): AnnotationsDef;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.notesInOrder = notesInOrder;
8
+ exports.getModelAnnotations = getModelAnnotations;
9
+ /**
10
+ * Every Note of an annotation bundle, inherited first, in document order
11
+ * (`inherits` → `blockNotes` → `notes`). Later notes win when re-parsed.
12
+ *
13
+ * Internal helper — not part of the public `model` barrel. The public way to
14
+ * read notes is the `Annotations` view (`api/foundation/annotation.ts`), which
15
+ * uses this; the model-annotation fold below uses it too.
16
+ */
17
+ function* notesInOrder(annote) {
18
+ if (annote.inherits)
19
+ yield* notesInOrder(annote.inherits);
20
+ if (annote.blockNotes)
21
+ yield* annote.blockNotes;
22
+ if (annote.notes)
23
+ yield* annote.notes;
24
+ }
25
+ /**
26
+ * The model (`##`) annotations for one model, compiled by walking the
27
+ * annotation-provenance tree: a model's own `##` together with everything it
28
+ * imports/extends, folded down the lineage into a single ordered bundle.
29
+ *
30
+ * `modelID` defaults to `model.modelID` — the common case, "the annotations
31
+ * this model presents." `##` is model-level, so every object resolved in the
32
+ * model reports this same one bundle (resolution takes no object). Pass an
33
+ * explicit `modelID` to compile the bundle for any other model in the closure.
34
+ *
35
+ * Mechanism: a post-order DFS over each model's `inheritsFrom` edges
36
+ * (extend-base is `import₀`, sitting first) emits a model only after its
37
+ * predecessors and only once (its most-ancestral slot); back-edges are skipped,
38
+ * so the walk terminates on a cycle. The result is ordered imports-first /
39
+ * local-last — a consumer that takes "last wins" sees the target model's own
40
+ * `##` win — and is returned as an {@link AnnotationsDef} whose `inherits` chain
41
+ * *is* that order (target at the top, most-ancestral import deepest), so the
42
+ * `Annotations` view / {@link notesInOrder} consume it with no new code.
43
+ *
44
+ * A target with no entry contributes nothing (empty) — the honest answer for a
45
+ * synthetic or detached `ModelDef` (built via `mkModelDef`, a `pseudoModelFor`
46
+ * struct, a model with no `##` anywhere) that never recorded a self-entry. But
47
+ * a recorded `inheritsFrom` *edge* to a model with no entry is corruption —
48
+ * population kept the edge but lost the target — and throws a compiler-bug-class
49
+ * error: the one place that needs the entry is the one place that detects it.
50
+ */
51
+ function getModelAnnotations(model, modelID = model.modelID) {
52
+ var _a, _b;
53
+ const order = []; // ancestral-first, target last; deduped keep-first
54
+ const entered = new Set(); // guards both re-folding and cycles
55
+ const visit = (id, viaEdge) => {
56
+ if (entered.has(id))
57
+ return; // already folded (diamond) or a back-edge cycle
58
+ const entry = model.modelAnnotations[id];
59
+ if (entry === undefined) {
60
+ if (viaEdge) {
61
+ throw new Error(`Internal error: model '${model.modelID}' has an inheritsFrom edge ` +
62
+ `to '${id}', which has no entry in its closure (likely a compiler bug)`);
63
+ }
64
+ return; // target model has no annotations of its own — contribute nothing
65
+ }
66
+ entered.add(id);
67
+ for (const pred of entry.inheritsFrom)
68
+ visit(pred, true);
69
+ order.push(id);
70
+ };
71
+ visit(modelID, false);
72
+ // Build the output `inherits` chain bottom-up: most-ancestral deepest, target
73
+ // at the top. `notesInOrder` then yields ancestral → local. Models that
74
+ // contribute no notes of their own add no link — the chain carries only the
75
+ // notes that exist, not an empty node per model in the lineage.
76
+ let chain = undefined;
77
+ for (const id of order) {
78
+ const own = model.modelAnnotations[id].ownNotes;
79
+ if (!((_a = own.notes) === null || _a === void 0 ? void 0 : _a.length) && !((_b = own.blockNotes) === null || _b === void 0 ? void 0 : _b.length))
80
+ continue;
81
+ chain = { notes: own.notes, blockNotes: own.blockNotes, inherits: chain };
82
+ }
83
+ return chain !== null && chain !== void 0 ? chain : {};
84
+ }
85
+ //# sourceMappingURL=annotation_utils.js.map
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) Meta Platforms, Inc. and affiliates.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
7
5
  */
8
6
  Object.defineProperty(exports, "__esModule", { value: true });
9
7
  exports.TemporalFilterCompiler = exports.FilterCompilers = void 0;
@@ -4,7 +4,8 @@ import { QueryQuery } from './query_query';
4
4
  import { QueryModelImpl } from './query_model_impl';
5
5
  export { QueryField, QueryStruct, QueryQuery, QueryModelImpl as QueryModel };
6
6
  export { getResultStructDefForQuery, getResultStructDefForView, } from './query_model_impl';
7
- export { indent, composeSQLExpr, makeDigest, mkModelDef, pathToKey, typeDefToString, } from './utils';
7
+ export { indent, composeSQLExpr, makeDigest, mkModelDef, mkModelID, pathToKey, typeDefToString, } from './utils';
8
+ export { getModelAnnotations } from './annotation_utils';
8
9
  export { constantExprToSQL } from './constant_expression_compiler';
9
10
  export { getCompiledSQL } from './sql_compiled';
10
11
  export { MalloyCompileError } from './malloy_compile_error';
@@ -1,25 +1,7 @@
1
1
  "use strict";
2
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.
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
23
5
  */
24
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
25
7
  if (k2 === undefined) k2 = k;
@@ -36,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
18
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
19
  };
38
20
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.hasSourceRegistryEntry = exports.registerSource = exports.resolveSourceID = exports.mkTableSourceDef = exports.mkSQLSourceDef = exports.mkQuerySourceDef = exports.mkBuildID = exports.mkSourceID = exports.MalloyCompileError = exports.getCompiledSQL = exports.constantExprToSQL = exports.typeDefToString = exports.pathToKey = exports.mkModelDef = exports.makeDigest = exports.composeSQLExpr = exports.indent = exports.getResultStructDefForView = exports.getResultStructDefForQuery = exports.QueryModel = exports.QueryQuery = exports.QueryStruct = exports.QueryField = void 0;
21
+ exports.hasSourceRegistryEntry = exports.registerSource = exports.resolveSourceID = exports.mkTableSourceDef = exports.mkSQLSourceDef = exports.mkQuerySourceDef = exports.mkBuildID = exports.mkSourceID = exports.MalloyCompileError = exports.getCompiledSQL = exports.constantExprToSQL = exports.getModelAnnotations = exports.typeDefToString = exports.pathToKey = exports.mkModelID = exports.mkModelDef = exports.makeDigest = exports.composeSQLExpr = exports.indent = exports.getResultStructDefForView = exports.getResultStructDefForQuery = exports.QueryModel = exports.QueryQuery = exports.QueryStruct = exports.QueryField = void 0;
40
22
  __exportStar(require("./malloy_types"), exports);
41
23
  const query_node_1 = require("./query_node");
42
24
  Object.defineProperty(exports, "QueryField", { enumerable: true, get: function () { return query_node_1.QueryField; } });
@@ -60,8 +42,11 @@ Object.defineProperty(exports, "indent", { enumerable: true, get: function () {
60
42
  Object.defineProperty(exports, "composeSQLExpr", { enumerable: true, get: function () { return utils_1.composeSQLExpr; } });
61
43
  Object.defineProperty(exports, "makeDigest", { enumerable: true, get: function () { return utils_1.makeDigest; } });
62
44
  Object.defineProperty(exports, "mkModelDef", { enumerable: true, get: function () { return utils_1.mkModelDef; } });
45
+ Object.defineProperty(exports, "mkModelID", { enumerable: true, get: function () { return utils_1.mkModelID; } });
63
46
  Object.defineProperty(exports, "pathToKey", { enumerable: true, get: function () { return utils_1.pathToKey; } });
64
47
  Object.defineProperty(exports, "typeDefToString", { enumerable: true, get: function () { return utils_1.typeDefToString; } });
48
+ var annotation_utils_1 = require("./annotation_utils");
49
+ Object.defineProperty(exports, "getModelAnnotations", { enumerable: true, get: function () { return annotation_utils_1.getModelAnnotations; } });
65
50
  var constant_expression_compiler_1 = require("./constant_expression_compiler");
66
51
  Object.defineProperty(exports, "constantExprToSQL", { enumerable: true, get: function () { return constant_expression_compiler_1.constantExprToSQL; } });
67
52
  var sql_compiled_1 = require("./sql_compiled");