@malloydata/malloy 0.0.1

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 (104) hide show
  1. package/README.md +39 -0
  2. package/dist/connection_utils.d.ts +1 -0
  3. package/dist/connection_utils.js +56 -0
  4. package/dist/dialect/dialect-map.d.ts +3 -0
  5. package/dist/dialect/dialect-map.js +33 -0
  6. package/dist/dialect/dialect.d.ts +64 -0
  7. package/dist/dialect/dialect.js +64 -0
  8. package/dist/dialect/dialect_map.d.ts +3 -0
  9. package/dist/dialect/dialect_map.js +35 -0
  10. package/dist/dialect/duckdb.d.ts +49 -0
  11. package/dist/dialect/duckdb.js +349 -0
  12. package/dist/dialect/index.d.ts +6 -0
  13. package/dist/dialect/index.js +27 -0
  14. package/dist/dialect/postgres.d.ts +49 -0
  15. package/dist/dialect/postgres.js +308 -0
  16. package/dist/dialect/standardsql.d.ts +46 -0
  17. package/dist/dialect/standardsql.js +361 -0
  18. package/dist/index.d.ts +9 -0
  19. package/dist/index.js +47 -0
  20. package/dist/lang/ast/apply-expr.d.ts +16 -0
  21. package/dist/lang/ast/apply-expr.js +215 -0
  22. package/dist/lang/ast/ast-expr.d.ts +291 -0
  23. package/dist/lang/ast/ast-expr.js +1056 -0
  24. package/dist/lang/ast/ast-main.d.ts +480 -0
  25. package/dist/lang/ast/ast-main.js +2096 -0
  26. package/dist/lang/ast/ast-time-expr.d.ts +109 -0
  27. package/dist/lang/ast/ast-time-expr.js +550 -0
  28. package/dist/lang/ast/ast-types.d.ts +83 -0
  29. package/dist/lang/ast/ast-types.js +215 -0
  30. package/dist/lang/ast/index.d.ts +5 -0
  31. package/dist/lang/ast/index.js +34 -0
  32. package/dist/lang/ast/time-utils.d.ts +8 -0
  33. package/dist/lang/ast/time-utils.js +83 -0
  34. package/dist/lang/field-space.d.ts +157 -0
  35. package/dist/lang/field-space.js +651 -0
  36. package/dist/lang/field-utils.d.ts +5 -0
  37. package/dist/lang/field-utils.js +33 -0
  38. package/dist/lang/index.d.ts +9 -0
  39. package/dist/lang/index.js +22 -0
  40. package/dist/lang/lib/Malloy/MalloyLexer.d.ts +156 -0
  41. package/dist/lang/lib/Malloy/MalloyLexer.js +1163 -0
  42. package/dist/lang/lib/Malloy/MalloyListener.d.ts +2026 -0
  43. package/dist/lang/lib/Malloy/MalloyListener.js +4 -0
  44. package/dist/lang/lib/Malloy/MalloyParser.d.ts +1920 -0
  45. package/dist/lang/lib/Malloy/MalloyParser.js +11790 -0
  46. package/dist/lang/lib/Malloy/MalloyVisitor.d.ts +1276 -0
  47. package/dist/lang/lib/Malloy/MalloyVisitor.js +4 -0
  48. package/dist/lang/parse-log.d.ts +27 -0
  49. package/dist/lang/parse-log.js +41 -0
  50. package/dist/lang/parse-malloy.d.ts +245 -0
  51. package/dist/lang/parse-malloy.js +729 -0
  52. package/dist/lang/parse-to-ast.d.ts +156 -0
  53. package/dist/lang/parse-to-ast.js +945 -0
  54. package/dist/lang/parse-tree-walkers/document-completion-walker.d.ts +10 -0
  55. package/dist/lang/parse-tree-walkers/document-completion-walker.js +136 -0
  56. package/dist/lang/parse-tree-walkers/document-help-context-walker.d.ts +9 -0
  57. package/dist/lang/parse-tree-walkers/document-help-context-walker.js +97 -0
  58. package/dist/lang/parse-tree-walkers/document-highlight-walker.d.ts +83 -0
  59. package/dist/lang/parse-tree-walkers/document-highlight-walker.js +375 -0
  60. package/dist/lang/parse-tree-walkers/document-symbol-walker.d.ts +11 -0
  61. package/dist/lang/parse-tree-walkers/document-symbol-walker.js +172 -0
  62. package/dist/lang/parse-tree-walkers/explore-query-walker.d.ts +34 -0
  63. package/dist/lang/parse-tree-walkers/explore-query-walker.js +64 -0
  64. package/dist/lang/parse-tree-walkers/find-external-references.d.ts +11 -0
  65. package/dist/lang/parse-tree-walkers/find-external-references.js +51 -0
  66. package/dist/lang/reference-list.d.ts +10 -0
  67. package/dist/lang/reference-list.js +80 -0
  68. package/dist/lang/space-field.d.ts +119 -0
  69. package/dist/lang/space-field.js +339 -0
  70. package/dist/lang/test/document-help-context-walker.spec.d.ts +1 -0
  71. package/dist/lang/test/document-help-context-walker.spec.js +45 -0
  72. package/dist/lang/test/document-symbol-walker.spec.d.ts +1 -0
  73. package/dist/lang/test/document-symbol-walker.spec.js +100 -0
  74. package/dist/lang/test/field-symbols.spec.d.ts +1 -0
  75. package/dist/lang/test/field-symbols.spec.js +172 -0
  76. package/dist/lang/test/parse.spec.d.ts +12 -0
  77. package/dist/lang/test/parse.spec.js +1936 -0
  78. package/dist/lang/test/test-translator.d.ts +38 -0
  79. package/dist/lang/test/test-translator.js +334 -0
  80. package/dist/lang/zone.d.ts +57 -0
  81. package/dist/lang/zone.js +97 -0
  82. package/dist/malloy.d.ts +1134 -0
  83. package/dist/malloy.js +2354 -0
  84. package/dist/model/index.d.ts +2 -0
  85. package/dist/model/index.js +34 -0
  86. package/dist/model/malloy-query.d.ts +313 -0
  87. package/dist/model/malloy-query.js +2603 -0
  88. package/dist/model/malloy-types.d.ts +404 -0
  89. package/dist/model/malloy-types.js +242 -0
  90. package/dist/model/malloy_query.d.ts +353 -0
  91. package/dist/model/malloy_query.js +2990 -0
  92. package/dist/model/malloy_types.d.ts +502 -0
  93. package/dist/model/malloy_types.js +283 -0
  94. package/dist/model/sql-block.d.ts +11 -0
  95. package/dist/model/sql-block.js +38 -0
  96. package/dist/model/sql_block.d.ts +11 -0
  97. package/dist/model/sql_block.js +41 -0
  98. package/dist/model/utils.d.ts +21 -0
  99. package/dist/model/utils.js +84 -0
  100. package/dist/runtime-types.d.ts +116 -0
  101. package/dist/runtime-types.js +40 -0
  102. package/dist/runtime_types.d.ts +119 -0
  103. package/dist/runtime_types.js +15 -0
  104. package/package.json +36 -0
@@ -0,0 +1,480 @@
1
+ import * as model from "../../model/malloy_types";
2
+ import { FieldSpace, FSPair, QuerySpace, LookupResult } from "../field-space";
3
+ import { MalloyTranslation } from "../parse-malloy";
4
+ import { ConstantSubExpression, ExpressionDef, FieldDeclaration } from "./index";
5
+ import { SQLBlockRequest } from "../../model/sql_block";
6
+ export declare class ErrorFactory {
7
+ static get structDef(): model.StructDef;
8
+ static isErrorStructDef(s: model.StructDef): boolean;
9
+ static get query(): model.Query;
10
+ static get reduceSegment(): model.ReduceSegment;
11
+ static get projectSegment(): model.ProjectSegment;
12
+ static get indexSegment(): model.IndexSegment;
13
+ }
14
+ declare type ChildBody = MalloyElement | MalloyElement[];
15
+ declare type ElementChildren = Record<string, ChildBody>;
16
+ export declare abstract class MalloyElement {
17
+ abstract elementType: string;
18
+ codeLocation?: model.DocumentLocation;
19
+ children: ElementChildren;
20
+ parent: MalloyElement | null;
21
+ private logger?;
22
+ /**
23
+ * @param kids All children passed to the constructor are not optional
24
+ */
25
+ constructor(kids?: ElementChildren);
26
+ /**
27
+ * Record all elements as children of this element, and mark this
28
+ * element as their parent.
29
+ * @param kids Some of these might be undefined, in which case they are ignored
30
+ */
31
+ has(kids: Record<string, ChildBody | undefined>): void;
32
+ get location(): model.DocumentLocation;
33
+ set location(loc: model.DocumentLocation | undefined);
34
+ protected namespace(): NameSpace | undefined;
35
+ modelEntry(reference: string | ModelEntryReference): ModelEntry | undefined;
36
+ private xlate?;
37
+ translator(): MalloyTranslation | undefined;
38
+ setTranslator(x: MalloyTranslation): void;
39
+ addReference(reference: model.DocumentReference): void;
40
+ private get sourceURL();
41
+ errorsExist(): boolean;
42
+ private logged;
43
+ log(message: string): void;
44
+ /**
45
+ * Mostly for debugging / testing. A string-y version of this object which
46
+ * is used to ask "are these two AST segments equal". Formatted so that
47
+ * errors would be human readable.
48
+ * @param indent only used for recursion
49
+ */
50
+ toString(): string;
51
+ private stringify;
52
+ walk(callBack: (node: MalloyElement) => void): void;
53
+ private varInfo;
54
+ protected internalError(msg: string): Error;
55
+ }
56
+ export declare class ListOf<ET extends MalloyElement> extends MalloyElement {
57
+ elementType: string;
58
+ private elements;
59
+ constructor(listDesc: string, elements: ET[]);
60
+ private newContents;
61
+ get list(): ET[];
62
+ empty(): boolean;
63
+ notEmpty(): boolean;
64
+ push(...el: ET[]): ET[];
65
+ }
66
+ export declare class Unimplemented extends MalloyElement {
67
+ elementType: string;
68
+ reported: boolean;
69
+ }
70
+ declare type FieldDecl = FieldDeclaration | Join | TurtleDecl | Turtles;
71
+ export declare type ExploreField = FieldDecl | RenameField;
72
+ export declare function isExploreField(f: MalloyElement): f is ExploreField;
73
+ /**
74
+ * A "Mallobj" is a thing which you can run queries against, it has been called
75
+ * an "exploreable", or a "space".
76
+ */
77
+ export declare abstract class Mallobj extends MalloyElement {
78
+ abstract structDef(): model.StructDef;
79
+ structRef(): model.StructRef;
80
+ withParameters(pList: HasParameter[] | undefined): model.StructDef;
81
+ }
82
+ export interface DocStatement extends MalloyElement {
83
+ execute(doc: Document): void;
84
+ }
85
+ export declare function isDocStatement(e: MalloyElement): e is DocStatement;
86
+ export declare class DefineExplore extends MalloyElement implements DocStatement {
87
+ readonly name: string;
88
+ readonly mallobj: Mallobj;
89
+ readonly exported: boolean;
90
+ elementType: string;
91
+ readonly parameters?: HasParameter[];
92
+ constructor(name: string, mallobj: Mallobj, exported: boolean, params?: MalloyElement[]);
93
+ execute(doc: Document): void;
94
+ }
95
+ export declare class DefineSourceList extends ListOf<DefineExplore> implements DocStatement {
96
+ constructor(sourceList: DefineExplore[]);
97
+ execute(doc: Document): void;
98
+ }
99
+ /**
100
+ * A Mallobj made from a source and a set of refinements
101
+ */
102
+ export declare class RefinedExplore extends Mallobj {
103
+ readonly source: Mallobj;
104
+ readonly refinement: ExploreDesc;
105
+ elementType: string;
106
+ constructor(source: Mallobj, refinement: ExploreDesc);
107
+ structDef(): model.StructDef;
108
+ withParameters(pList: HasParameter[] | undefined): model.StructDef;
109
+ }
110
+ export declare class TableSource extends Mallobj {
111
+ readonly name: string;
112
+ elementType: string;
113
+ constructor(name: string);
114
+ structDef(): model.StructDef;
115
+ }
116
+ export declare class IsValueBlock extends MalloyElement {
117
+ readonly isMap: Record<string, ConstantSubExpression>;
118
+ elementType: string;
119
+ constructor(isMap: Record<string, ConstantSubExpression>);
120
+ }
121
+ export declare class ModelEntryReference extends MalloyElement {
122
+ readonly name: string;
123
+ elementType: string;
124
+ constructor(name: string);
125
+ get refString(): string;
126
+ toString(): string;
127
+ }
128
+ export declare class NamedSource extends Mallobj {
129
+ readonly ref: ModelEntryReference | string;
130
+ elementType: string;
131
+ protected isBlock?: IsValueBlock;
132
+ constructor(ref: ModelEntryReference | string, paramValues?: Record<string, ConstantSubExpression>);
133
+ get refName(): string;
134
+ structRef(): model.StructRef;
135
+ modelStruct(): model.StructDef | undefined;
136
+ structDef(): model.StructDef;
137
+ }
138
+ export declare class SQLSource extends NamedSource {
139
+ elementType: string;
140
+ structRef(): model.StructRef;
141
+ modelStruct(): model.StructDef | undefined;
142
+ }
143
+ export declare class QuerySource extends Mallobj {
144
+ readonly query: QueryElement;
145
+ elementType: string;
146
+ constructor(query: QueryElement);
147
+ structDef(): model.StructDef;
148
+ }
149
+ export declare abstract class Join extends MalloyElement {
150
+ abstract name: ModelEntryReference;
151
+ abstract structDef(): model.StructDef;
152
+ abstract fixupJoinOn(outer: FSPair, inStruct: model.StructDef): void;
153
+ }
154
+ export declare class KeyJoin extends Join {
155
+ readonly name: ModelEntryReference;
156
+ readonly source: Mallobj;
157
+ readonly keyExpr: ExpressionDef;
158
+ elementType: string;
159
+ constructor(name: ModelEntryReference, source: Mallobj, keyExpr: ExpressionDef);
160
+ structDef(): model.StructDef;
161
+ fixupJoinOn(outer: FSPair, inStruct: model.StructDef): void;
162
+ }
163
+ declare type ExpressionJoinType = "many" | "one" | "cross";
164
+ export declare class ExpressionJoin extends Join {
165
+ readonly name: ModelEntryReference;
166
+ readonly source: Mallobj;
167
+ elementType: string;
168
+ joinType: ExpressionJoinType;
169
+ private expr?;
170
+ constructor(name: ModelEntryReference, source: Mallobj);
171
+ set joinOn(joinExpr: ExpressionDef | undefined);
172
+ get joinOn(): ExpressionDef | undefined;
173
+ fixupJoinOn(outer: FSPair, inStruct: model.StructDef): model.Expr | undefined;
174
+ structDef(): model.StructDef;
175
+ }
176
+ export declare class Joins extends ListOf<Join> {
177
+ constructor(joins: Join[]);
178
+ }
179
+ export declare type QueryProperty = Ordering | Top | Limit | Filter | Index | SampleProperty | Joins | DeclareFields | ProjectStatement | NestReference | NestDefinition | NestReference | Nests | Aggregate | GroupBy;
180
+ export declare function isQueryProperty(q: MalloyElement): q is QueryProperty;
181
+ export declare type ExploreProperty = Filter | Joins | DeclareFields | FieldListEdit | Renames | PrimaryKey | Turtles;
182
+ export declare function isExploreProperty(p: MalloyElement): p is ExploreProperty;
183
+ export declare class ExploreDesc extends ListOf<ExploreProperty> {
184
+ constructor(props: ExploreProperty[]);
185
+ }
186
+ export declare class FilterElement extends MalloyElement {
187
+ readonly expr: ExpressionDef;
188
+ readonly exprSrc: string;
189
+ elementType: string;
190
+ constructor(expr: ExpressionDef, exprSrc: string);
191
+ filterExpression(fs: FSPair): model.FilterExpression;
192
+ }
193
+ export declare class Filter extends ListOf<FilterElement> {
194
+ elementType: string;
195
+ private havingClause?;
196
+ constructor(elements?: FilterElement[]);
197
+ set having(isHaving: boolean);
198
+ getFilterList(fs: FSPair): model.FilterExpression[];
199
+ }
200
+ export declare class DeclareFields extends ListOf<FieldDeclaration> {
201
+ constructor(fields: FieldDeclaration[], fieldType?: string);
202
+ }
203
+ export declare class Measures extends DeclareFields {
204
+ constructor(measures: FieldDeclaration[]);
205
+ }
206
+ export declare class Dimensions extends DeclareFields {
207
+ constructor(dimensions: FieldDeclaration[]);
208
+ }
209
+ export declare class Renames extends ListOf<RenameField> {
210
+ constructor(renames: RenameField[]);
211
+ }
212
+ export declare class FieldName extends MalloyElement {
213
+ readonly name: string;
214
+ elementType: string;
215
+ constructor(name: string);
216
+ get refString(): string;
217
+ toString(): string;
218
+ getField(fs: FSPair): LookupResult;
219
+ }
220
+ export declare class FieldReference extends ListOf<FieldName> {
221
+ elementType: string;
222
+ constructor(names: FieldName[]);
223
+ get refString(): string;
224
+ get outputName(): string;
225
+ get sourceString(): string | undefined;
226
+ get nameString(): string;
227
+ getField(fs: FieldSpace): LookupResult;
228
+ }
229
+ export declare type FieldReferenceElement = FieldReference | WildcardFieldReference;
230
+ export declare class FieldReferences extends ListOf<FieldReferenceElement> {
231
+ constructor(members: FieldReferenceElement[]);
232
+ }
233
+ export declare type FieldCollectionMember = FieldReferenceElement | FieldDeclaration;
234
+ export declare function isFieldCollectionMember(el: MalloyElement): el is FieldCollectionMember;
235
+ export declare class ProjectStatement extends ListOf<FieldCollectionMember> {
236
+ constructor(members: FieldCollectionMember[]);
237
+ }
238
+ export declare class FieldListEdit extends MalloyElement {
239
+ readonly edit: "accept" | "except";
240
+ readonly refs: FieldReferences;
241
+ elementType: string;
242
+ constructor(edit: "accept" | "except", refs: FieldReferences);
243
+ }
244
+ export declare type QueryItem = FieldDeclaration | FieldReference | NestDefinition | NestReference;
245
+ export declare class GroupBy extends ListOf<QueryItem> {
246
+ constructor(members: QueryItem[]);
247
+ }
248
+ export declare class Aggregate extends ListOf<QueryItem> {
249
+ constructor(members: QueryItem[]);
250
+ }
251
+ interface OpDesc {
252
+ segment: model.PipeSegment;
253
+ outputSpace: () => FieldSpace;
254
+ }
255
+ declare type QOPType = "grouping" | "aggregate" | "project" | "index";
256
+ export declare class QOPDesc extends ListOf<QueryProperty> {
257
+ opType: QOPType;
258
+ private refineThis?;
259
+ constructor(props: QueryProperty[]);
260
+ protected computeType(): QOPType;
261
+ refineFrom(existing: model.PipeSegment): void;
262
+ private getExecutor;
263
+ getOp(inputFS: FieldSpace, forPipeline: PipelineDesc | null): OpDesc;
264
+ }
265
+ export interface ModelEntry {
266
+ entry: model.NamedModelObject | model.SQLBlock;
267
+ exported?: boolean;
268
+ }
269
+ export interface NameSpace {
270
+ getEntry(name: string): ModelEntry | undefined;
271
+ setEntry(name: string, value: ModelEntry, exported: boolean): void;
272
+ }
273
+ export declare class Document extends MalloyElement implements NameSpace {
274
+ readonly statements: DocStatement[];
275
+ elementType: string;
276
+ documentModel: Record<string, ModelEntry>;
277
+ queryList: model.Query[];
278
+ sqlBlocks: model.SQLBlock[];
279
+ constructor(statements: DocStatement[]);
280
+ getModelDef(extendingModelDef: model.ModelDef | undefined): model.ModelDef;
281
+ defineSQL(sql: model.SQLBlock, name?: string): boolean;
282
+ getEntry(str: string): ModelEntry;
283
+ setEntry(str: string, ent: ModelEntry): void;
284
+ }
285
+ export declare class PrimaryKey extends MalloyElement {
286
+ readonly field: FieldName;
287
+ elementType: string;
288
+ constructor(field: FieldName);
289
+ }
290
+ export declare class RenameField extends MalloyElement {
291
+ readonly newName: string;
292
+ readonly oldName: FieldName;
293
+ elementType: string;
294
+ constructor(newName: string, oldName: FieldName);
295
+ }
296
+ export declare class WildcardFieldReference extends MalloyElement {
297
+ readonly joinPath: FieldReference | undefined;
298
+ readonly star: "*" | "**";
299
+ elementType: string;
300
+ constructor(joinPath: FieldReference | undefined, star: "*" | "**");
301
+ getFieldDef(): model.FieldDef;
302
+ get refString(): string;
303
+ }
304
+ export declare class OrderBy extends MalloyElement {
305
+ readonly field: number | FieldName;
306
+ readonly dir?: "asc" | "desc" | undefined;
307
+ elementType: string;
308
+ constructor(field: number | FieldName, dir?: "asc" | "desc" | undefined);
309
+ get modelField(): string | number;
310
+ getOrderBy(_fs: FSPair): model.OrderBy;
311
+ }
312
+ export declare class Ordering extends ListOf<OrderBy> {
313
+ constructor(list: OrderBy[]);
314
+ getOrderBy(fs: FSPair): model.OrderBy[];
315
+ }
316
+ export declare class Limit extends MalloyElement {
317
+ readonly limit: number;
318
+ elementType: string;
319
+ constructor(limit: number);
320
+ }
321
+ export declare class Turtles extends ListOf<TurtleDecl> {
322
+ constructor(turtles: TurtleDecl[]);
323
+ }
324
+ export declare class Index extends MalloyElement {
325
+ readonly fields: FieldReferences;
326
+ elementType: string;
327
+ weightBy?: FieldName;
328
+ constructor(fields: FieldReferences);
329
+ useWeight(fn: FieldName): void;
330
+ }
331
+ interface QueryComp {
332
+ outputStruct: model.StructDef;
333
+ query: model.Query;
334
+ }
335
+ /**
336
+ * Generic abstract for all pipelines, the first segment might be a reference
337
+ * to an existing pipeline (query or turtle), and if there is a refinement it
338
+ * is refers to the first segment of the composed pipeline.
339
+ */
340
+ declare abstract class PipelineDesc extends MalloyElement {
341
+ elementType: string;
342
+ protected headRefinement?: QOPDesc;
343
+ protected qops: QOPDesc[];
344
+ nestedInQuerySpace?: QuerySpace;
345
+ refineHead(refinement: QOPDesc): void;
346
+ addSegments(...segDesc: QOPDesc[]): void;
347
+ protected appendOps(modelPipe: model.PipeSegment[], existingEndSpace: FieldSpace): {
348
+ opList: model.PipeSegment[];
349
+ structDef: model.StructDef;
350
+ };
351
+ protected refinePipeline(fs: FieldSpace, modelPipe: model.Pipeline): model.Pipeline;
352
+ protected expandTurtle(turtleName: string, fromStruct: model.StructDef): {
353
+ pipeline: model.PipeSegment[];
354
+ location: model.DocumentLocation | undefined;
355
+ };
356
+ protected getOutputStruct(walkStruct: model.StructDef, pipeline: model.PipeSegment[]): model.StructDef;
357
+ }
358
+ export declare class ExistingQuery extends PipelineDesc {
359
+ _head?: ModelEntryReference;
360
+ set head(head: ModelEntryReference | undefined);
361
+ get head(): ModelEntryReference | undefined;
362
+ queryComp(): QueryComp;
363
+ query(): model.Query;
364
+ }
365
+ export declare abstract class TurtleHeadedPipe extends PipelineDesc {
366
+ _turtleName?: FieldName;
367
+ set turtleName(turtleName: FieldName | undefined);
368
+ get turtleName(): FieldName | undefined;
369
+ }
370
+ export declare class FullQuery extends TurtleHeadedPipe {
371
+ readonly explore: Mallobj;
372
+ constructor(explore: Mallobj);
373
+ queryComp(): QueryComp;
374
+ query(): model.Query;
375
+ }
376
+ export declare class TurtleDecl extends TurtleHeadedPipe {
377
+ readonly name: string;
378
+ constructor(name: string);
379
+ getPipeline(fs: FSPair): model.Pipeline;
380
+ getFieldDef(inSpace: FieldSpace, nestParent: QuerySpace | undefined): model.TurtleDef;
381
+ }
382
+ export declare class NestReference extends FieldReference {
383
+ readonly name: FieldName;
384
+ elementType: string;
385
+ constructor(name: FieldName);
386
+ }
387
+ export declare class NestRefinement extends TurtleDecl {
388
+ elementType: string;
389
+ constructor(turtleName: FieldName);
390
+ }
391
+ export declare class NestDefinition extends TurtleDecl {
392
+ elementType: string;
393
+ constructor(name: string);
394
+ }
395
+ export declare type NestedQuery = NestReference | NestDefinition | NestRefinement;
396
+ export declare function isNestedQuery(me: MalloyElement): me is NestedQuery;
397
+ export declare class Nests extends ListOf<NestedQuery> {
398
+ constructor(nests: NestedQuery[]);
399
+ }
400
+ export declare type QueryElement = FullQuery | ExistingQuery;
401
+ export declare function isQueryElement(e: MalloyElement): e is QueryElement;
402
+ export declare class DefineQueryList extends ListOf<DefineQuery> implements DocStatement {
403
+ constructor(queryList: DefineQuery[]);
404
+ execute(doc: Document): void;
405
+ }
406
+ export declare class DefineQuery extends MalloyElement implements DocStatement {
407
+ readonly name: string;
408
+ readonly queryDetails: QueryElement;
409
+ elementType: string;
410
+ constructor(name: string, queryDetails: QueryElement);
411
+ execute(doc: Document): void;
412
+ }
413
+ export declare class AnonymousQuery extends MalloyElement implements DocStatement {
414
+ readonly theQuery: QueryElement;
415
+ elementType: string;
416
+ constructor(theQuery: QueryElement);
417
+ execute(doc: Document): void;
418
+ }
419
+ declare type TopInit = FieldName | ExpressionDef;
420
+ export declare class Top extends MalloyElement {
421
+ readonly limit: number;
422
+ readonly by?: TopInit | undefined;
423
+ elementType: string;
424
+ constructor(limit: number, by?: TopInit | undefined);
425
+ getBy(fs: FSPair): model.By | undefined;
426
+ }
427
+ export declare class JSONElement extends MalloyElement {
428
+ elementType: string;
429
+ readonly value: any;
430
+ constructor(jsonSrc: string);
431
+ }
432
+ export declare class JSONStructDef extends Mallobj {
433
+ readonly struct: model.StructDef;
434
+ elementType: string;
435
+ constructor(struct: model.StructDef);
436
+ static fromJSON(jsonObj: JSONElement): JSONStructDef | undefined;
437
+ structDef(): model.StructDef;
438
+ }
439
+ export declare class ImportStatement extends MalloyElement implements DocStatement {
440
+ readonly url: string;
441
+ elementType: string;
442
+ fullURL?: string;
443
+ constructor(url: string, baseURL: string);
444
+ execute(doc: Document): void;
445
+ }
446
+ interface HasInit {
447
+ name: string;
448
+ isCondition: boolean;
449
+ type?: string;
450
+ default?: ConstantSubExpression;
451
+ }
452
+ export declare class HasParameter extends MalloyElement {
453
+ elementType: string;
454
+ readonly name: string;
455
+ readonly isCondition: boolean;
456
+ readonly type?: model.AtomicFieldType;
457
+ readonly default?: ConstantSubExpression;
458
+ constructor(init: HasInit);
459
+ parameter(): model.Parameter;
460
+ }
461
+ export declare class ConstantParameter extends HasParameter {
462
+ readonly value: ConstantSubExpression;
463
+ constructor(name: string, value: ConstantSubExpression);
464
+ parameter(): model.Parameter;
465
+ }
466
+ export declare class SQLStatement extends MalloyElement implements DocStatement {
467
+ readonly blockReq: SQLBlockRequest;
468
+ elementType: string;
469
+ is?: string;
470
+ constructor(blockReq: SQLBlockRequest);
471
+ sqlBlock(): model.SQLBlock;
472
+ execute(doc: Document): void;
473
+ }
474
+ export declare class SampleProperty extends MalloyElement {
475
+ readonly sample: model.Sampling;
476
+ elementType: string;
477
+ constructor(sample: model.Sampling);
478
+ sampling(): model.Sampling;
479
+ }
480
+ export {};