@malloydata/malloy 0.0.399 → 0.0.401

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 (91) hide show
  1. package/dist/api/annotation-utils.d.ts +36 -0
  2. package/dist/api/annotation-utils.js +76 -0
  3. package/dist/api/core.js +3 -3
  4. package/dist/api/foundation/annotation.d.ts +115 -0
  5. package/dist/{annotation.js → api/foundation/annotation.js} +87 -42
  6. package/dist/api/foundation/compile.js +3 -3
  7. package/dist/api/foundation/core.d.ts +122 -29
  8. package/dist/api/foundation/core.js +185 -59
  9. package/dist/api/foundation/index.d.ts +1 -1
  10. package/dist/api/foundation/index.js +3 -2
  11. package/dist/api/foundation/runtime.js +2 -2
  12. package/dist/{taggable.d.ts → api/foundation/taggable.d.ts} +4 -4
  13. package/dist/api/foundation/types.d.ts +1 -1
  14. package/dist/connection/types.d.ts +3 -2
  15. package/dist/index.d.ts +9 -2
  16. package/dist/index.js +17 -4
  17. package/dist/{prefix.js → lang/annotation-prefix.js} +1 -1
  18. package/dist/lang/ast/expressions/expr-given.js +1 -1
  19. package/dist/lang/ast/field-space/dynamic-space.d.ts +1 -1
  20. package/dist/lang/ast/field-space/dynamic-space.js +2 -2
  21. package/dist/lang/ast/field-space/include-utils.d.ts +3 -3
  22. package/dist/lang/ast/field-space/query-spaces.js +2 -2
  23. package/dist/lang/ast/field-space/reference-field.js +5 -5
  24. package/dist/lang/ast/field-space/refined-space.d.ts +2 -2
  25. package/dist/lang/ast/field-space/refined-space.js +3 -3
  26. package/dist/lang/ast/field-space/rename-space-field.d.ts +2 -2
  27. package/dist/lang/ast/field-space/rename-space-field.js +4 -4
  28. package/dist/lang/ast/field-space/static-space.js +1 -1
  29. package/dist/lang/ast/query-elements/anonymous-query.d.ts +2 -2
  30. package/dist/lang/ast/query-elements/anonymous-query.js +3 -3
  31. package/dist/lang/ast/query-elements/query-arrow.js +2 -2
  32. package/dist/lang/ast/query-items/field-declaration.d.ts +2 -2
  33. package/dist/lang/ast/query-items/field-declaration.js +1 -1
  34. package/dist/lang/ast/query-items/field-references.d.ts +3 -3
  35. package/dist/lang/ast/query-properties/nest.js +2 -2
  36. package/dist/lang/ast/source-elements/composite-source.d.ts +2 -2
  37. package/dist/lang/ast/source-elements/refined-source.d.ts +2 -2
  38. package/dist/lang/ast/source-elements/sql-source.js +1 -1
  39. package/dist/lang/ast/source-elements/typed-source.js +7 -4
  40. package/dist/lang/ast/source-properties/join.d.ts +2 -2
  41. package/dist/lang/ast/source-properties/join.js +2 -2
  42. package/dist/lang/ast/source-properties/renames.d.ts +2 -2
  43. package/dist/lang/ast/source-properties/user-type-shape.d.ts +2 -2
  44. package/dist/lang/ast/source-properties/user-type-shape.js +7 -7
  45. package/dist/lang/ast/source-properties/view-field-declaration.d.ts +1 -1
  46. package/dist/lang/ast/source-properties/view-field-declaration.js +2 -2
  47. package/dist/lang/ast/source-query-elements/include-item.d.ts +3 -3
  48. package/dist/lang/ast/statements/define-given.d.ts +2 -2
  49. package/dist/lang/ast/statements/define-given.js +2 -2
  50. package/dist/lang/ast/statements/define-query.d.ts +2 -2
  51. package/dist/lang/ast/statements/define-query.js +2 -2
  52. package/dist/lang/ast/statements/define-source.d.ts +2 -2
  53. package/dist/lang/ast/statements/define-source.js +2 -2
  54. package/dist/lang/ast/statements/define-user-type.d.ts +2 -2
  55. package/dist/lang/ast/statements/define-user-type.js +1 -1
  56. package/dist/lang/ast/statements/import-statement.js +1 -1
  57. package/dist/lang/ast/types/annotation-elements.js +3 -3
  58. package/dist/lang/ast/types/definition-list.d.ts +3 -3
  59. package/dist/lang/ast/types/literal.d.ts +1 -1
  60. package/dist/lang/ast/types/malloy-element.d.ts +4 -4
  61. package/dist/lang/ast/types/malloy-element.js +15 -15
  62. package/dist/lang/ast/types/noteable.d.ts +5 -5
  63. package/dist/lang/ast/types/pipeline-comp.d.ts +2 -2
  64. package/dist/lang/ast/view-elements/reference-view.js +1 -1
  65. package/dist/lang/ast/view-elements/view-refine.js +1 -1
  66. package/dist/lang/composite-source-utils.d.ts +2 -2
  67. package/dist/lang/composite-source-utils.js +6 -6
  68. package/dist/lang/malloy-to-ast.d.ts +3 -3
  69. package/dist/lang/malloy-to-ast.js +5 -5
  70. package/dist/lang/malloy-to-stable-query.d.ts +2 -2
  71. package/dist/lang/parse-malloy.js +6 -6
  72. package/dist/lang/parse-tree-walkers/model-annotation-walker.d.ts +2 -2
  73. package/dist/lang/parse-tree-walkers/model-annotation-walker.js +2 -2
  74. package/dist/lang/prettify/index.js +1 -1
  75. package/dist/lang/prettify/leaf.js +2 -2
  76. package/dist/lang/translate-response.d.ts +2 -2
  77. package/dist/model/malloy_types.d.ts +29 -25
  78. package/dist/model/persist_utils.js +3 -3
  79. package/dist/model/query_model_impl.js +1 -1
  80. package/dist/model/query_node.js +8 -8
  81. package/dist/model/query_query.js +13 -13
  82. package/dist/model/source_def_utils.js +4 -4
  83. package/dist/run_sql_options.d.ts +5 -11
  84. package/dist/to_stable.d.ts +2 -2
  85. package/dist/to_stable.js +7 -7
  86. package/dist/version.d.ts +1 -1
  87. package/dist/version.js +1 -1
  88. package/package.json +4 -4
  89. package/dist/annotation.d.ts +0 -96
  90. /package/dist/{taggable.js → api/foundation/taggable.js} +0 -0
  91. /package/dist/{prefix.d.ts → lang/annotation-prefix.d.ts} +0 -0
@@ -4,7 +4,7 @@ export { EmptyURLReader, InMemoryURLReader, FixedConnectionMap, hashForInvalidat
4
4
  export type { ModelCache, CachedModel } from './cache';
5
5
  export { CacheManager, InMemoryModelCache } from './cache';
6
6
  export { Parse, DocumentTablePath, DocumentRange, DocumentPosition, DocumentSymbol, DocumentCompletion, } from './document';
7
- export { SourceRelationship, AtomicFieldType, DateTimeframe, TimestampTimeframe, JoinRelationship, type Field, type SerializedExplore, type SortableField, type PreparedResultJSON, type BuildPlan, Explore, ExploreField, AtomicField, DateField, TimestampField, NumberField, BooleanField, JSONField, UnsupportedField, StringField, Query, QueryField, Model, PersistSource, PreparedQuery, PreparedResult, } from './core';
7
+ export { SourceRelationship, AtomicFieldType, DateTimeframe, TimestampTimeframe, JoinRelationship, type Field, type SerializedExplore, type SortableField, type PreparedResultJSON, type BuildPlan, Explore, ExploreField, AtomicField, DateField, TimestampField, NumberField, BooleanField, JSONField, UnsupportedField, StringField, Query, QueryField, Model, PersistSource, PreparedQuery, PreparedResult, Reference, type ReferenceKind, } from './core';
8
8
  export { type ResultJSON, type DataColumn, type DataArrayOrRecord, Result, DataArray, DataRecord, } from './result';
9
9
  export { type WriteStream, DataWriter, JSONWriter, CSVWriter } from './writers';
10
10
  export { Runtime, ConnectionRuntime, SingleConnectionRuntime, ModelMaterializer, QueryMaterializer, PreparedResultMaterializer, ExploreMaterializer, } from './runtime';
@@ -4,8 +4,8 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ExploreMaterializer = exports.PreparedResultMaterializer = exports.QueryMaterializer = exports.ModelMaterializer = exports.SingleConnectionRuntime = exports.ConnectionRuntime = exports.Runtime = exports.CSVWriter = exports.JSONWriter = exports.DataWriter = exports.DataRecord = exports.DataArray = exports.Result = exports.PreparedResult = exports.PreparedQuery = exports.PersistSource = exports.Model = exports.QueryField = exports.Query = exports.StringField = exports.UnsupportedField = exports.JSONField = exports.BooleanField = exports.NumberField = exports.TimestampField = exports.DateField = exports.AtomicField = exports.ExploreField = exports.Explore = exports.JoinRelationship = exports.TimestampTimeframe = exports.DateTimeframe = exports.AtomicFieldType = exports.SourceRelationship = exports.DocumentCompletion = exports.DocumentSymbol = exports.DocumentPosition = exports.DocumentRange = exports.DocumentTablePath = exports.Parse = exports.InMemoryModelCache = exports.CacheManager = exports.getInvalidationKey = exports.readURL = exports.isInternalURL = exports.hashForInvalidationKey = exports.FixedConnectionMap = exports.InMemoryURLReader = exports.EmptyURLReader = exports.EMPTY_BUILD_MANIFEST = void 0;
8
- exports.MalloyError = exports.Malloy = exports.discoverConfig = exports.defaultConfigOverlays = exports.contextOverlay = exports.envOverlay = exports.MalloyConfig = exports.Manifest = void 0;
7
+ exports.PreparedResultMaterializer = exports.QueryMaterializer = exports.ModelMaterializer = exports.SingleConnectionRuntime = exports.ConnectionRuntime = exports.Runtime = exports.CSVWriter = exports.JSONWriter = exports.DataWriter = exports.DataRecord = exports.DataArray = exports.Result = exports.Reference = exports.PreparedResult = exports.PreparedQuery = exports.PersistSource = exports.Model = exports.QueryField = exports.Query = exports.StringField = exports.UnsupportedField = exports.JSONField = exports.BooleanField = exports.NumberField = exports.TimestampField = exports.DateField = exports.AtomicField = exports.ExploreField = exports.Explore = exports.JoinRelationship = exports.TimestampTimeframe = exports.DateTimeframe = exports.AtomicFieldType = exports.SourceRelationship = exports.DocumentCompletion = exports.DocumentSymbol = exports.DocumentPosition = exports.DocumentRange = exports.DocumentTablePath = exports.Parse = exports.InMemoryModelCache = exports.CacheManager = exports.getInvalidationKey = exports.readURL = exports.isInternalURL = exports.hashForInvalidationKey = exports.FixedConnectionMap = exports.InMemoryURLReader = exports.EmptyURLReader = exports.EMPTY_BUILD_MANIFEST = void 0;
8
+ exports.MalloyError = exports.Malloy = exports.discoverConfig = exports.defaultConfigOverlays = exports.contextOverlay = exports.envOverlay = exports.MalloyConfig = exports.Manifest = exports.ExploreMaterializer = void 0;
9
9
  var types_1 = require("./types");
10
10
  Object.defineProperty(exports, "EMPTY_BUILD_MANIFEST", { enumerable: true, get: function () { return types_1.EMPTY_BUILD_MANIFEST; } });
11
11
  // URL readers and connection helpers
@@ -53,6 +53,7 @@ Object.defineProperty(exports, "Model", { enumerable: true, get: function () { r
53
53
  Object.defineProperty(exports, "PersistSource", { enumerable: true, get: function () { return core_1.PersistSource; } });
54
54
  Object.defineProperty(exports, "PreparedQuery", { enumerable: true, get: function () { return core_1.PreparedQuery; } });
55
55
  Object.defineProperty(exports, "PreparedResult", { enumerable: true, get: function () { return core_1.PreparedResult; } });
56
+ Object.defineProperty(exports, "Reference", { enumerable: true, get: function () { return core_1.Reference; } });
56
57
  // Result and Data classes
57
58
  var result_1 = require("./result");
58
59
  Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return result_1.Result; } });
@@ -873,8 +873,8 @@ exports.ModelMaterializer = ModelMaterializer;
873
873
  // =============================================================================
874
874
  function runSQLOptionsWithAnnotations(preparedResult, givenOptions) {
875
875
  return {
876
- queryAnnotation: preparedResult.annotation,
877
- modelAnnotation: preparedResult.modelAnnotation,
876
+ queryAnnotations: preparedResult._rawQuery.annotations,
877
+ modelAnnotations: preparedResult._modelDef.annotations,
878
878
  ...givenOptions,
879
879
  };
880
880
  }
@@ -8,17 +8,17 @@ export interface Taggable {
8
8
  /**
9
9
  * Route-aware annotation access — read annotations by *route*. See
10
10
  * `Annotations` for what a route is and which ones are claimed. Unlike
11
- * `tagParse`/`getTaglines`, this sees block annotations (`#|`…`|#`).
11
+ * `tagParse`/`getTaglines`, this sees multi-line annotations (`#|`…`|#`).
12
12
  */
13
13
  readonly annotations: Annotations;
14
14
  /**
15
- * @deprecated The RegExp form cannot see block annotations (`#|`…`|#`) and
16
- * cannot report content offsets for error mapping. Use
15
+ * @deprecated The RegExp form cannot see multi-line annotations
16
+ * (`#|`…`|#`) and cannot report content offsets for error mapping. Use
17
17
  * `annotations.parseAsTag(route)` instead.
18
18
  */
19
19
  tagParse: (spec?: TagParseSpec) => MalloyTagParse;
20
20
  /**
21
- * @deprecated The RegExp form cannot see block annotations. Use
21
+ * @deprecated The RegExp form cannot see multi-line annotations. Use
22
22
  * `annotations.texts(route)` (raw strings) or `annotations.forRoute(route)`
23
23
  * (objects with offsets) instead.
24
24
  */
@@ -9,7 +9,7 @@ import type { BuildManifest, GivenValue, VirtualMap } from '../../model';
9
9
  * Frozen to prevent accidental mutation of the shared sentinel.
10
10
  */
11
11
  export declare const EMPTY_BUILD_MANIFEST: BuildManifest;
12
- export type { Taggable } from '../../taggable';
12
+ export type { Taggable } from './taggable';
13
13
  export interface Loggable {
14
14
  debug: (message?: any, ...optionalParams: any[]) => void;
15
15
  info: (message?: any, ...optionalParams: any[]) => void;
@@ -1,12 +1,13 @@
1
1
  import type { RunSQLOptions } from '../run_sql_options';
2
- import type { Annotation, MalloyQueryData, QueryRecord, QueryRunStats, SQLSourceDef, TableSourceDef } from '../model/malloy_types';
2
+ import type { AnnotationsDef, MalloyQueryData, QueryRecord, QueryRunStats, SQLSourceDef, TableSourceDef } from '../model/malloy_types';
3
3
  import type { SQLSourceRequest } from '../lang/translate-response';
4
4
  /**
5
5
  * Options passed to fetchSchema methods.
6
6
  */
7
7
  export interface FetchSchemaOptions {
8
8
  refreshTimestamp?: number;
9
- modelAnnotation?: Annotation;
9
+ /** Model annotations forwarded to the adapter (e.g. `##!` dialect flags). */
10
+ modelAnnotations?: AnnotationsDef;
10
11
  }
11
12
  /**
12
13
  * An object capable of reading schemas for given table names.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { DuckDBDialect, StandardSQLDialect, TrinoDialect, PostgresDialect, SnowflakeDialect, MySQLDialect, DatabricksDialect, registerDialect, arg, qtz, overload, minScalar, anyExprType, minAggregate, maxScalar, sql, makeParam, param, variadicParam, literal, spread, Dialect, decodeDottedTablePath, validateDottedTablePath, } from './dialect';
2
2
  export type { DialectFieldList, DialectFunctionOverloadDef, QueryInfo, MalloyStandardFunctionImplementations, DefinitionBlueprint, DefinitionBlueprintMap, OverloadedDefinitionBlueprint, DecodeDottedTablePathResult, DottedTablePathOptions, TablePathEscapeStyle, TablePathSegment, ValidateTablePathResult, } from './dialect';
3
- export type { QueryRecord, StructDef, TableSourceDef, SQLSourceDef, SourceDef, JoinFieldDef, NamedSourceDefs, MalloyQueryData, DateUnit, ExtractUnit, TimestampUnit, TemporalFieldType, QueryData, QueryValue, Expr, FilterCondition, Argument, Parameter, FieldDef, PipeSegment, QueryFieldDef, IndexFieldDef, TurtleDef, SearchValueMapResult, SearchIndexResult, ModelDef, Query, QueryResult, QueryResultDef, QueryRunStats, QueryScalar, NamedQueryDef, NamedModelObject, ExpressionType, FunctionDef, FunctionOverloadDef, FunctionParameterDef, ExpressionValueType, TypeDesc, FunctionParamTypeDesc, DocumentLocation, DocumentRange, DocumentPosition, Sampling, Annotation, BasicAtomicTypeDef, BasicAtomicDef, AtomicTypeDef, AtomicFieldDef, ArrayDef, ArrayTypeDef, RecordTypeDef, RepeatedRecordTypeDef, RecordDef, RepeatedRecordDef, RecordLiteralNode, StringLiteralNode, ArrayLiteralNode, SourceComponentInfo, DateLiteralNode, TimestampLiteralNode, TimestamptzLiteralNode, TimeLiteralExpr, TypecastExpr, BuildID, BuildManifest, BuildManifestEntry, GivenValue, VirtualMap, } from './model';
3
+ export type { QueryRecord, StructDef, TableSourceDef, SQLSourceDef, SourceDef, JoinFieldDef, NamedSourceDefs, MalloyQueryData, DateUnit, ExtractUnit, TimestampUnit, TemporalFieldType, QueryData, QueryValue, Expr, FilterCondition, Argument, Parameter, FieldDef, PipeSegment, QueryFieldDef, IndexFieldDef, TurtleDef, SearchValueMapResult, SearchIndexResult, ModelDef, Query, QueryResult, QueryResultDef, QueryRunStats, QueryScalar, NamedQueryDef, NamedModelObject, ExpressionType, FunctionDef, FunctionOverloadDef, FunctionParameterDef, ExpressionValueType, TypeDesc, FunctionParamTypeDesc, DocumentLocation, DocumentRange, DocumentPosition, Sampling, BasicAtomicTypeDef, BasicAtomicDef, AtomicTypeDef, AtomicFieldDef, ArrayDef, ArrayTypeDef, RecordTypeDef, RepeatedRecordTypeDef, RecordDef, RepeatedRecordDef, RecordLiteralNode, StringLiteralNode, ArrayLiteralNode, SourceComponentInfo, DateLiteralNode, TimestampLiteralNode, TimestamptzLiteralNode, TimeLiteralExpr, TypecastExpr, BuildID, BuildManifest, BuildManifestEntry, GivenValue, VirtualMap, } from './model';
4
4
  export { isSourceDef, isAtomic, isBasicAtomic, isCompoundArrayData, isJoined, isJoinedSource, isSamplingEnable, isSamplingPercent, isSamplingRows, isRepeatedRecord, isBasicArray, mkArrayDef, mkFieldDef, expressionIsAggregate, expressionIsAnalytic, expressionIsCalculation, expressionIsScalar, expressionIsUngroupedAggregate, indent, composeSQLExpr, isTimestampUnit, isDateUnit, constantExprToSQL, } from './model';
5
5
  export { malloyToQuery, MalloyTranslator, } from './lang';
6
6
  export type { LogMessage, TranslateResponse } from './lang';
@@ -19,7 +19,14 @@ export { modelDefToModelInfo, sourceDefToSourceInfo } from './to_stable';
19
19
  export * as API from './api';
20
20
  export type { SQLSourceRequest } from './lang/translate-response';
21
21
  export { sqlKey } from './model/sql_block';
22
- export { annotationToTag, annotationToTaglines } from './annotation';
22
+ export { Annotations, RoutedNote } from './api/foundation/annotation';
23
+ export { routeOf, payloadOf, annotationsForRoute, tagFromAnnotations, } from './api/annotation-utils';
24
+ /** @deprecated — use the `.annotations` view on a Foundation entity
25
+ * (`entity.annotations.parseAsTag(route)` / `.texts(route)`). */
26
+ export { annotationToTag, annotationToTaglines, } from './api/foundation/annotation';
23
27
  export type { BuildGraph, BuildNode, BuildPlan } from './api/foundation';
24
28
  export { PersistSource, EMPTY_BUILD_MANIFEST } from './api/foundation';
29
+ export { Reference } from './api/foundation';
30
+ export type { ReferenceKind } from './api/foundation';
31
+ export type { ImportLocation } from './model';
25
32
  export { makeDigest } from './model';
package/dist/index.js CHANGED
@@ -34,7 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Model = exports.MalloyTranslator = exports.malloyToQuery = exports.constantExprToSQL = exports.isDateUnit = exports.isTimestampUnit = exports.composeSQLExpr = exports.indent = exports.expressionIsUngroupedAggregate = exports.expressionIsScalar = exports.expressionIsCalculation = exports.expressionIsAnalytic = exports.expressionIsAggregate = exports.mkFieldDef = exports.mkArrayDef = exports.isBasicArray = exports.isRepeatedRecord = exports.isSamplingRows = exports.isSamplingPercent = exports.isSamplingEnable = exports.isJoinedSource = exports.isJoined = exports.isCompoundArrayData = exports.isBasicAtomic = exports.isAtomic = exports.isSourceDef = exports.validateDottedTablePath = exports.decodeDottedTablePath = exports.Dialect = exports.spread = exports.literal = exports.variadicParam = exports.param = exports.makeParam = exports.sql = exports.maxScalar = exports.minAggregate = exports.anyExprType = exports.minScalar = exports.overload = exports.qtz = exports.arg = exports.registerDialect = exports.DatabricksDialect = exports.MySQLDialect = exports.SnowflakeDialect = exports.PostgresDialect = exports.TrinoDialect = exports.StandardSQLDialect = exports.DuckDBDialect = void 0;
37
- exports.makeDigest = exports.EMPTY_BUILD_MANIFEST = exports.PersistSource = exports.annotationToTaglines = exports.annotationToTag = exports.sqlKey = exports.API = exports.sourceDefToSourceInfo = exports.modelDefToModelInfo = exports.toAsyncGenerator = exports.createConnectionsFromConfig = exports.getRegisteredConnectionTypes = exports.getConnectionTypeDisplayName = exports.getConnectionProperties = exports.registerConnectionType = exports.discoverConfig = exports.defaultConfigOverlays = exports.contextOverlay = exports.envOverlay = exports.MalloyConfig = exports.Manifest = exports.CacheManager = exports.InMemoryModelCache = exports.Explore = exports.DataWriter = exports.Parse = exports.JSONWriter = exports.CSVWriter = exports.QueryMaterializer = exports.Result = exports.PreparedResult = exports.TimestampTimeframe = exports.DateTimeframe = exports.SourceRelationship = exports.JoinRelationship = exports.MalloyError = exports.FixedConnectionMap = exports.InMemoryURLReader = exports.EmptyURLReader = exports.SingleConnectionRuntime = exports.ConnectionRuntime = exports.AtomicFieldType = exports.Runtime = exports.Malloy = void 0;
37
+ exports.Reference = exports.EMPTY_BUILD_MANIFEST = exports.PersistSource = exports.annotationToTaglines = exports.annotationToTag = exports.tagFromAnnotations = exports.annotationsForRoute = exports.payloadOf = exports.routeOf = exports.RoutedNote = exports.Annotations = exports.sqlKey = exports.API = exports.sourceDefToSourceInfo = exports.modelDefToModelInfo = exports.toAsyncGenerator = exports.createConnectionsFromConfig = exports.getRegisteredConnectionTypes = exports.getConnectionTypeDisplayName = exports.getConnectionProperties = exports.registerConnectionType = exports.discoverConfig = exports.defaultConfigOverlays = exports.contextOverlay = exports.envOverlay = exports.MalloyConfig = exports.Manifest = exports.CacheManager = exports.InMemoryModelCache = exports.Explore = exports.DataWriter = exports.Parse = exports.JSONWriter = exports.CSVWriter = exports.QueryMaterializer = exports.Result = exports.PreparedResult = exports.TimestampTimeframe = exports.DateTimeframe = exports.SourceRelationship = exports.JoinRelationship = exports.MalloyError = exports.FixedConnectionMap = exports.InMemoryURLReader = exports.EmptyURLReader = exports.SingleConnectionRuntime = exports.ConnectionRuntime = exports.AtomicFieldType = exports.Runtime = exports.Malloy = void 0;
38
+ exports.makeDigest = void 0;
38
39
  /*
39
40
  * Copyright 2023 Google LLC
40
41
  *
@@ -157,12 +158,24 @@ Object.defineProperty(exports, "sourceDefToSourceInfo", { enumerable: true, get:
157
158
  exports.API = __importStar(require("./api"));
158
159
  var sql_block_1 = require("./model/sql_block");
159
160
  Object.defineProperty(exports, "sqlKey", { enumerable: true, get: function () { return sql_block_1.sqlKey; } });
160
- var annotation_1 = require("./annotation");
161
- Object.defineProperty(exports, "annotationToTag", { enumerable: true, get: function () { return annotation_1.annotationToTag; } });
162
- Object.defineProperty(exports, "annotationToTaglines", { enumerable: true, get: function () { return annotation_1.annotationToTaglines; } });
161
+ var annotation_1 = require("./api/foundation/annotation");
162
+ Object.defineProperty(exports, "Annotations", { enumerable: true, get: function () { return annotation_1.Annotations; } });
163
+ Object.defineProperty(exports, "RoutedNote", { enumerable: true, get: function () { return annotation_1.RoutedNote; } });
164
+ var annotation_utils_1 = require("./api/annotation-utils");
165
+ Object.defineProperty(exports, "routeOf", { enumerable: true, get: function () { return annotation_utils_1.routeOf; } });
166
+ Object.defineProperty(exports, "payloadOf", { enumerable: true, get: function () { return annotation_utils_1.payloadOf; } });
167
+ Object.defineProperty(exports, "annotationsForRoute", { enumerable: true, get: function () { return annotation_utils_1.annotationsForRoute; } });
168
+ Object.defineProperty(exports, "tagFromAnnotations", { enumerable: true, get: function () { return annotation_utils_1.tagFromAnnotations; } });
169
+ /** @deprecated — use the `.annotations` view on a Foundation entity
170
+ * (`entity.annotations.parseAsTag(route)` / `.texts(route)`). */
171
+ var annotation_2 = require("./api/foundation/annotation");
172
+ Object.defineProperty(exports, "annotationToTag", { enumerable: true, get: function () { return annotation_2.annotationToTag; } });
173
+ Object.defineProperty(exports, "annotationToTaglines", { enumerable: true, get: function () { return annotation_2.annotationToTaglines; } });
163
174
  var foundation_2 = require("./api/foundation");
164
175
  Object.defineProperty(exports, "PersistSource", { enumerable: true, get: function () { return foundation_2.PersistSource; } });
165
176
  Object.defineProperty(exports, "EMPTY_BUILD_MANIFEST", { enumerable: true, get: function () { return foundation_2.EMPTY_BUILD_MANIFEST; } });
177
+ var foundation_3 = require("./api/foundation");
178
+ Object.defineProperty(exports, "Reference", { enumerable: true, get: function () { return foundation_3.Reference; } });
166
179
  var model_2 = require("./model");
167
180
  Object.defineProperty(exports, "makeDigest", { enumerable: true, get: function () { return model_2.makeDigest; } });
168
181
  //# sourceMappingURL=index.js.map
@@ -96,4 +96,4 @@ function parsePrefix(text) {
96
96
  // Otherwise: a bare word, or mixed text with no brackets.
97
97
  return { route: routing, contentIndex, malformation: 'malformed-route' };
98
98
  }
99
- //# sourceMappingURL=prefix.js.map
99
+ //# sourceMappingURL=annotation-prefix.js.map
@@ -46,7 +46,7 @@ class GivenReference extends expression_def_1.ExpressionDef {
46
46
  location: this.location,
47
47
  definition: {
48
48
  type: (0, utils_1.typeDefToString)(given.type),
49
- annotation: given.annotation,
49
+ annotations: given.annotations,
50
50
  location: given.location,
51
51
  defaultText: given.defaultText,
52
52
  },
@@ -13,7 +13,7 @@ export declare abstract class DynamicSpace extends StaticSpace implements Source
13
13
  private parameters;
14
14
  protected newTimezone?: string;
15
15
  protected newAccessModifiers: Map<string, model.AccessModifierLabel>;
16
- protected newNotes: Map<string, model.Annotation>;
16
+ protected newNotes: Map<string, model.AnnotationsDef>;
17
17
  constructor(extending: SourceDef);
18
18
  protected setEntry(name: string, value: SpaceEntry): void;
19
19
  addParameters(parameters: HasParameter[]): DynamicSpace;
@@ -191,9 +191,9 @@ class DynamicSpace extends static_space_1.StaticSpace {
191
191
  const field = this.sourceDef.fields[index];
192
192
  this.sourceDef.fields[index] = {
193
193
  ...field,
194
- annotation: {
194
+ annotations: {
195
195
  ...note,
196
- inherits: field.annotation,
196
+ inherits: field.annotations,
197
197
  },
198
198
  };
199
199
  }
@@ -1,9 +1,9 @@
1
- import type { AccessModifierLabel, Annotation, DocumentLocation, SourceDef } from '../../../model/malloy_types';
1
+ import type { AccessModifierLabel, AnnotationsDef, DocumentLocation, SourceDef } from '../../../model/malloy_types';
2
2
  import type { IncludeItem } from '../source-query-elements/include-item';
3
3
  import type { FieldReference } from '../query-items/field-references';
4
4
  export interface JoinIncludeProcessingState {
5
5
  star: AccessModifierLabel | 'inherit' | 'except' | undefined;
6
- starNote: Annotation | undefined;
6
+ starNote: AnnotationsDef | undefined;
7
7
  fieldsIncluded: Set<string>;
8
8
  joinNames: Set<string>;
9
9
  fieldsExcepted: Set<string>;
@@ -16,7 +16,7 @@ export interface JoinIncludeProcessingState {
16
16
  location: DocumentLocation;
17
17
  }[];
18
18
  fieldsToInclude: Set<string> | undefined;
19
- notes: Map<string, Annotation>;
19
+ notes: Map<string, AnnotationsDef>;
20
20
  }
21
21
  export interface IncludeProcessingState {
22
22
  joins: {
@@ -309,8 +309,8 @@ class QuerySpace extends QueryOperationSpace {
309
309
  throw new Error('Invalid type for fieldref');
310
310
  }
311
311
  ret.location = (_c = ret.location) !== null && _c !== void 0 ? _c : this.astEl.location;
312
- if (queryFieldDef.annotation) {
313
- ret.annotation = queryFieldDef.annotation;
312
+ if (queryFieldDef.annotations) {
313
+ ret.annotations = queryFieldDef.annotations;
314
314
  }
315
315
  return ret;
316
316
  }
@@ -113,12 +113,12 @@ class ReferenceField extends space_field_1.SpaceField {
113
113
  const origFd = refTo.constructorFieldDef();
114
114
  if (origFd) {
115
115
  const notes = this.fieldRef.note;
116
- if (origFd.annotation || notes) {
117
- const annotation = notes || {};
118
- if (origFd.annotation) {
119
- annotation.inherits = origFd.annotation;
116
+ if (origFd.annotations || notes) {
117
+ const annotations = notes || {};
118
+ if (origFd.annotations) {
119
+ annotations.inherits = origFd.annotations;
120
120
  }
121
- this.queryFieldDef.annotation = annotation;
121
+ this.queryFieldDef.annotations = annotations;
122
122
  }
123
123
  }
124
124
  }
@@ -1,4 +1,4 @@
1
- import { type AccessModifierLabel, type Annotation, type SourceDef } from '../../../model/malloy_types';
1
+ import { type AccessModifierLabel, type AnnotationsDef, type SourceDef } from '../../../model/malloy_types';
2
2
  import type { FieldListEdit } from '../source-properties/field-list-edit';
3
3
  import { DynamicSpace } from './dynamic-space';
4
4
  import type { MalloyElement } from '../types/malloy-element';
@@ -14,6 +14,6 @@ export declare class RefinedSpace extends DynamicSpace {
14
14
  pushFields(...defs: MalloyElement[]): void;
15
15
  addField(def: MalloyElement): void;
16
16
  addAccessModifiers(ams: Map<string, AccessModifierLabel>): void;
17
- addNotes(notes: Map<string, Annotation>): void;
17
+ addNotes(notes: Map<string, AnnotationsDef>): void;
18
18
  accessProtectionLevel(): AccessModifierLabel;
19
19
  }
@@ -160,13 +160,13 @@ function editJoinsFromIncludeState(path, from, includeState) {
160
160
  ...field,
161
161
  as: rename ? rename.name.nameString : field.as,
162
162
  accessModifier: accessModifier === 'public' ? undefined : accessModifier,
163
- annotation: notes
163
+ annotations: notes
164
164
  ? {
165
- inherits: field.annotation,
165
+ inherits: field.annotations,
166
166
  blockNotes: notes.blockNotes,
167
167
  notes: notes.notes,
168
168
  }
169
- : field.annotation,
169
+ : field.annotations,
170
170
  }
171
171
  : { ...field };
172
172
  if ((0, malloy_types_1.isJoined)(editedField)) {
@@ -1,11 +1,11 @@
1
- import type { Annotation, DocumentLocation, FieldDef } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, DocumentLocation, FieldDef } from '../../../model/malloy_types';
2
2
  import { SpaceField } from '../types/space-field';
3
3
  export declare class RenameSpaceField extends SpaceField {
4
4
  private readonly otherField;
5
5
  private readonly newName;
6
6
  private readonly location;
7
7
  private note;
8
- constructor(otherField: SpaceField, newName: string, location: DocumentLocation, note: Annotation | undefined);
8
+ constructor(otherField: SpaceField, newName: string, location: DocumentLocation, note: AnnotationsDef | undefined);
9
9
  fieldDef(): FieldDef | undefined;
10
10
  typeDesc(): import("../../..").TypeDesc;
11
11
  }
@@ -39,14 +39,14 @@ class RenameSpaceField extends space_field_1.SpaceField {
39
39
  return undefined;
40
40
  }
41
41
  if (this.note) {
42
- if (returnFieldDef.annotation) {
43
- returnFieldDef.annotation = {
42
+ if (returnFieldDef.annotations) {
43
+ returnFieldDef.annotations = {
44
44
  ...this.note,
45
- inherits: returnFieldDef.annotation,
45
+ inherits: returnFieldDef.annotations,
46
46
  };
47
47
  }
48
48
  else {
49
- returnFieldDef.annotation = this.note;
49
+ returnFieldDef.annotations = this.note;
50
50
  }
51
51
  }
52
52
  return {
@@ -143,7 +143,7 @@ class StaticSpace {
143
143
  : 'fieldReference',
144
144
  definition: {
145
145
  type: definition.type,
146
- annotation: definition.annotation,
146
+ annotations: definition.annotations,
147
147
  location: definition.location,
148
148
  },
149
149
  location: head.location,
@@ -1,4 +1,4 @@
1
- import type { Annotation } from '../../../model';
1
+ import type { AnnotationsDef } from '../../../model';
2
2
  import type { DocStatement, Document } from '../types/malloy-element';
3
3
  import { MalloyElement } from '../types/malloy-element';
4
4
  import type { Noteable } from '../types/noteable';
@@ -10,6 +10,6 @@ export declare class AnonymousQuery extends MalloyElement implements DocStatemen
10
10
  constructor(queryExpr: SourceQueryElement);
11
11
  readonly isNoteableObj = true;
12
12
  extendNote: typeof extendNoteMethod;
13
- note?: Annotation;
13
+ note?: AnnotationsDef;
14
14
  execute(doc: Document): void;
15
15
  }
@@ -42,11 +42,11 @@ class AnonymousQuery extends malloy_element_1.MalloyElement {
42
42
  }
43
43
  const modelQuery = { ...queryObj.query() };
44
44
  const annotation = this.note || {};
45
- if (modelQuery.annotation) {
46
- annotation.inherits = modelQuery.annotation;
45
+ if (modelQuery.annotations) {
46
+ annotation.inherits = modelQuery.annotations;
47
47
  }
48
48
  if (annotation.notes || annotation.blockNotes || annotation.inherits) {
49
- modelQuery.annotation = annotation;
49
+ modelQuery.annotations = annotation;
50
50
  }
51
51
  doc.queryList.push(modelQuery);
52
52
  }
@@ -69,11 +69,11 @@ class QueryArrow extends query_base_1.QueryBase {
69
69
  inputStruct = lhsQuery.outputStruct;
70
70
  fieldSpace = new static_space_1.StaticSourceSpace(lhsQuery.outputStruct, 'public');
71
71
  }
72
- const { pipeline: rhsPipeline, annotation, outputStruct, name, } = this.view.pipelineComp(fieldSpace);
72
+ const { pipeline: rhsPipeline, annotations, outputStruct, name, } = this.view.pipelineComp(fieldSpace);
73
73
  const query = {
74
74
  ...queryBase,
75
75
  name,
76
- annotation,
76
+ annotations,
77
77
  pipeline: [...queryBase.pipeline, ...rhsPipeline],
78
78
  };
79
79
  const compositeResolvedSourceDef = (_a = query.compositeResolvedSourceDef) !== null && _a !== void 0 ? _a : this.resolveCompositeSource(inputStruct, rhsPipeline);
@@ -1,4 +1,4 @@
1
- import type { Annotation, TypeDesc, FieldDef, AtomicFieldDef } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, TypeDesc, FieldDef, AtomicFieldDef } from '../../../model/malloy_types';
2
2
  import type { ExprValue } from '../types/expr-value';
3
3
  import type { ExpressionDef } from '../types/expression-def';
4
4
  import type { FieldSpace } from '../types/field-space';
@@ -15,7 +15,7 @@ export declare abstract class AtomicFieldDeclaration extends MalloyElement imple
15
15
  readonly exprSrc?: string | undefined;
16
16
  readonly isNoteableObj = true;
17
17
  extendNote: typeof extendNoteMethod;
18
- note?: Annotation;
18
+ note?: AnnotationsDef;
19
19
  constructor(expr: ExpressionDef, defineName: string, exprSrc?: string | undefined);
20
20
  getName(): string;
21
21
  fieldDef(fs: FieldSpace, exprName: string): FieldDef;
@@ -157,7 +157,7 @@ class AtomicFieldDeclaration extends malloy_element_1.MalloyElement {
157
157
  ret.code = this.exprSrc;
158
158
  }
159
159
  if (this.note) {
160
- ret.annotation = this.note;
160
+ ret.annotations = this.note;
161
161
  }
162
162
  return ret;
163
163
  }
@@ -1,4 +1,4 @@
1
- import type { Annotation, FieldDef, RefToField, TypeDesc } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, FieldDef, RefToField, TypeDesc } from '../../../model/malloy_types';
2
2
  import type { DynamicSpace } from '../field-space/dynamic-space';
3
3
  import { DefinitionList } from '../types/definition-list';
4
4
  import type { FieldName, FieldSpace } from '../types/field-space';
@@ -10,7 +10,7 @@ import type { MakeEntry } from '../types/space-entry';
10
10
  export type FieldReferenceConstructor = new (names: FieldName[]) => FieldReference;
11
11
  export declare abstract class FieldReference extends ListOf<FieldName> implements Noteable, MakeEntry {
12
12
  readonly isNoteableObj = true;
13
- note?: Annotation;
13
+ note?: AnnotationsDef;
14
14
  extendNote: typeof extendNoteMethod;
15
15
  constructor(names: FieldName[]);
16
16
  makeEntry(fs: DynamicSpace): void;
@@ -97,7 +97,7 @@ export declare class ViewOrScalarFieldReference extends FieldReference {
97
97
  export declare class WildcardFieldReference extends MalloyElement implements Noteable {
98
98
  readonly joinPath: FieldReference | undefined;
99
99
  elementType: string;
100
- note?: Annotation;
100
+ note?: AnnotationsDef;
101
101
  readonly isNoteableObj = true;
102
102
  extendNote: typeof extendNoteMethod;
103
103
  except: Set<string>;
@@ -76,7 +76,7 @@ class NestFieldDeclaration extends view_field_declaration_1.ViewFieldDeclaration
76
76
  if (this.turtleDef)
77
77
  return this.turtleDef;
78
78
  if (fs.isQueryFieldSpace()) {
79
- const { pipeline, annotation } = this.view.pipelineComp(fs, fs.outputSpace());
79
+ const { pipeline, annotations } = this.view.pipelineComp(fs, fs.outputSpace());
80
80
  const refSummary = pipeline[0] && model.isQuerySegment(pipeline[0])
81
81
  ? pipeline[0].refSummary
82
82
  : undefined;
@@ -86,7 +86,7 @@ class NestFieldDeclaration extends view_field_declaration_1.ViewFieldDeclaration
86
86
  type: 'turtle',
87
87
  name: this.name,
88
88
  pipeline: pipelineWithDrillPaths,
89
- annotation: { ...this.note, inherits: annotation },
89
+ annotations: { ...this.note, inherits: annotations },
90
90
  location: this.location,
91
91
  refSummary,
92
92
  };
@@ -1,4 +1,4 @@
1
- import type { Annotation, SourceDef } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, SourceDef } from '../../../model/malloy_types';
2
2
  import type { HasParameter } from '../parameters/has-parameter';
3
3
  import { Source } from './source';
4
4
  import type { ParameterSpace } from '../field-space/parameter-space';
@@ -9,7 +9,7 @@ import type { ParameterSpace } from '../field-space/parameter-space';
9
9
  export declare class CompositeSource extends Source {
10
10
  readonly sources: Source[];
11
11
  elementType: string;
12
- currentAnnotation?: Annotation;
12
+ currentAnnotation?: AnnotationsDef;
13
13
  constructor(sources: Source[]);
14
14
  getSourceDef(parameterSpace: ParameterSpace | undefined): SourceDef;
15
15
  withParameters(parameterSpace: ParameterSpace | undefined, pList: HasParameter[] | undefined): SourceDef;
@@ -1,4 +1,4 @@
1
- import type { Annotation, SourceDef } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, SourceDef } from '../../../model/malloy_types';
2
2
  import type { HasParameter } from '../parameters/has-parameter';
3
3
  import type { SourceDesc } from '../types/source-desc';
4
4
  import { Source } from './source';
@@ -12,7 +12,7 @@ export declare class RefinedSource extends Source {
12
12
  readonly refinement: SourceDesc;
13
13
  readonly includeList: IncludeItem[] | undefined;
14
14
  elementType: string;
15
- currentAnnotation?: Annotation;
15
+ currentAnnotation?: AnnotationsDef;
16
16
  constructor(source: Source, refinement: SourceDesc, includeList: IncludeItem[] | undefined);
17
17
  getSourceDef(parameterSpace: ParameterSpace | undefined): SourceDef;
18
18
  withParameters(parameterSpace: ParameterSpace | undefined, pList: HasParameter[] | undefined): SourceDef;
@@ -149,7 +149,7 @@ class SQLSource extends source_1.Source {
149
149
  const fromDoc = this.document();
150
150
  const modelAnnotation = fromDoc === null || fromDoc === void 0 ? void 0 : fromDoc.currentModelAnnotation();
151
151
  if (modelAnnotation) {
152
- locStruct.modelAnnotation = modelAnnotation;
152
+ locStruct.modelAnnotations = modelAnnotation;
153
153
  }
154
154
  return locStruct;
155
155
  }
@@ -80,11 +80,14 @@ class TypedSource extends source_1.Source {
80
80
  ? { ...f, accessModifier: exports.USER_TYPE_HIDDEN_ACCESS }
81
81
  : f;
82
82
  }
83
- const shapeAnnotation = shapeEntry.field.annotation;
83
+ const shapeAnnotation = shapeEntry.field.annotations;
84
84
  if (!shapeAnnotation) {
85
85
  return f;
86
86
  }
87
- return { ...f, annotation: mergeAnnotation(f.annotation, shapeAnnotation) };
87
+ return {
88
+ ...f,
89
+ annotations: mergeAnnotation(f.annotations, shapeAnnotation),
90
+ };
88
91
  });
89
92
  return {
90
93
  ...sourceDef,
@@ -105,8 +108,8 @@ class TypedSource extends source_1.Source {
105
108
  }
106
109
  for (const sf of entry.entry.fields) {
107
110
  const field = (0, malloy_types_1.mkFieldDef)(sf.typeDef, sf.name);
108
- if (sf.annotation) {
109
- field.annotation = sf.annotation;
111
+ if (sf.annotations) {
112
+ field.annotations = sf.annotations;
110
113
  }
111
114
  next.set(sf.name, { field, fromShape: ref });
112
115
  }
@@ -1,4 +1,4 @@
1
- import type { Annotation, JoinFieldDef, JoinType, MatrixOperation, SourceDef, AccessModifierLabel } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, JoinFieldDef, JoinType, MatrixOperation, SourceDef, AccessModifierLabel } from '../../../model/malloy_types';
2
2
  import type { DynamicSpace } from '../field-space/dynamic-space';
3
3
  import { DefinitionList } from '../types/definition-list';
4
4
  import type { QueryBuilder } from '../types/query-builder';
@@ -20,7 +20,7 @@ export declare abstract class Join extends MalloyElement implements Noteable, Ma
20
20
  readonly isNoteableObj = true;
21
21
  extendNote: typeof extendNoteMethod;
22
22
  abstract sourceExpr: SourceQueryElement;
23
- note?: Annotation;
23
+ note?: AnnotationsDef;
24
24
  makeEntry(fs: DynamicSpace): void;
25
25
  getName(): string;
26
26
  protected getStructDefFromExpr(parameterSpace: ParameterSpace): SourceDef;
@@ -77,7 +77,7 @@ class KeyJoin extends Join {
77
77
  };
78
78
  delete joinStruct.as;
79
79
  if (this.note) {
80
- joinStruct.annotation = this.note;
80
+ joinStruct.annotations = this.note;
81
81
  }
82
82
  (_a = this.document()) === null || _a === void 0 ? void 0 : _a.rememberToAddModelAnnotations(joinStruct);
83
83
  return joinStruct;
@@ -172,7 +172,7 @@ class ExpressionJoin extends Join {
172
172
  };
173
173
  delete joinStruct.as;
174
174
  if (this.note) {
175
- joinStruct.annotation = this.note;
175
+ joinStruct.annotations = this.note;
176
176
  }
177
177
  (_a = this.document()) === null || _a === void 0 ? void 0 : _a.rememberToAddModelAnnotations(joinStruct);
178
178
  return joinStruct;
@@ -1,4 +1,4 @@
1
- import type { AccessModifierLabel, Annotation } from '../../../model';
1
+ import type { AccessModifierLabel, AnnotationsDef } from '../../../model';
2
2
  import type { DynamicSpace } from '../field-space/dynamic-space';
3
3
  import { DefinitionList } from '../types/definition-list';
4
4
  import type { FieldName } from '../types/field-space';
@@ -9,7 +9,7 @@ export declare class RenameField extends MalloyElement implements Noteable, Make
9
9
  readonly newName: string;
10
10
  readonly oldName: FieldName;
11
11
  elementType: string;
12
- note?: Annotation;
12
+ note?: AnnotationsDef;
13
13
  extendNote: typeof extendNoteMethod;
14
14
  readonly isNoteableObj = true;
15
15
  constructor(newName: string, oldName: FieldName);
@@ -1,4 +1,4 @@
1
- import type { Annotation, AtomicTypeDef, UserTypeFieldDef } from '../../../model/malloy_types';
1
+ import type { AnnotationsDef, AtomicTypeDef, UserTypeFieldDef } from '../../../model/malloy_types';
2
2
  import { ListOf, MalloyElement } from '../types/malloy-element';
3
3
  import type { Noteable } from '../types/noteable';
4
4
  import { extendNoteMethod } from '../types/noteable';
@@ -6,7 +6,7 @@ export declare abstract class UserTypeMember extends MalloyElement implements No
6
6
  readonly name: string;
7
7
  readonly isNoteableObj = true;
8
8
  extendNote: typeof extendNoteMethod;
9
- note?: Annotation;
9
+ note?: AnnotationsDef;
10
10
  constructor(name: string);
11
11
  abstract userTypeFieldDef(): UserTypeFieldDef;
12
12
  }