@malloydata/malloy 0.0.96-dev231025212541 → 0.0.96-dev231025215824

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.
@@ -1,4 +1,5 @@
1
1
  import { Annotation, DocumentLocation, DocumentReference, ModelDef, ModelAnnotation, NamedModelObject, Note, Query, SQLBlockStructDef, StructDef } from '../../../model/malloy_types';
2
+ import { Tag } from '../../../tags';
2
3
  import { LogSeverity, MessageLogger } from '../../parse-log';
3
4
  import { MalloyTranslation } from '../../parse-malloy';
4
5
  import { ModelDataRequest } from '../../translate-response';
@@ -28,6 +29,10 @@ export declare abstract class MalloyElement {
28
29
  protected namespace(): NameSpace | undefined;
29
30
  modelEntry(reference: string | ModelEntryReference): ModelEntry | undefined;
30
31
  private xlate?;
32
+ /**
33
+ * @returns The eldest of them all
34
+ */
35
+ kupuna(): MalloyElement;
31
36
  translator(): MalloyTranslation | undefined;
32
37
  setTranslator(x: MalloyTranslation): void;
33
38
  addReference(reference: DocumentReference): void;
@@ -48,6 +53,7 @@ export declare abstract class MalloyElement {
48
53
  private varInfo;
49
54
  protected internalError(msg: string): Error;
50
55
  needs(doc: Document): ModelDataRequest | undefined;
56
+ inExperiment(experimentID: string): boolean;
51
57
  }
52
58
  export declare class Unimplemented extends MalloyElement {
53
59
  elementType: string;
@@ -66,6 +72,12 @@ export declare class ModelEntryReference extends MalloyElement {
66
72
  export interface DocStatement extends MalloyElement {
67
73
  execute(doc: Document): void;
68
74
  }
75
+ export declare class ExperimentalExperiment extends MalloyElement implements DocStatement {
76
+ readonly id: string;
77
+ elementType: string;
78
+ constructor(id: string);
79
+ execute(_doc: Document): void;
80
+ }
69
81
  export declare function isDocStatement(e: MalloyElement): e is DocStatement;
70
82
  export declare function isDocStatementOrDocStatementList(el: MalloyElement): el is DocStatement | DocStatementList;
71
83
  export declare abstract class ListOf<ET extends MalloyElement> extends MalloyElement {
@@ -109,6 +121,7 @@ export declare class Document extends MalloyElement implements NameSpace {
109
121
  statements: DocStatementList;
110
122
  didInitModel: boolean;
111
123
  notes: Note[];
124
+ experiments: Tag;
112
125
  constructor(statements: (DocStatement | DocStatementList)[]);
113
126
  initModelDef(extendingModelDef: ModelDef | undefined): void;
114
127
  compile(): DocumentCompileResult;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Document = exports.DocStatementList = exports.ListOf = exports.isDocStatementOrDocStatementList = exports.isDocStatement = exports.ModelEntryReference = exports.Unimplemented = exports.MalloyElement = void 0;
6
+ exports.Document = exports.DocStatementList = exports.ListOf = exports.isDocStatementOrDocStatementList = exports.isDocStatement = exports.ExperimentalExperiment = exports.ModelEntryReference = exports.Unimplemented = exports.MalloyElement = void 0;
7
7
  /*
8
8
  * Copyright 2023 Google LLC
9
9
  *
@@ -28,6 +28,7 @@ exports.Document = exports.DocStatementList = exports.ListOf = exports.isDocStat
28
28
  */
29
29
  const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
30
30
  const malloy_types_1 = require("../../../model/malloy_types");
31
+ const tags_1 = require("../../../tags");
31
32
  const global_name_space_1 = require("./global-name-space");
32
33
  const noteable_1 = require("./noteable");
33
34
  const uuid_1 = require("uuid");
@@ -136,6 +137,13 @@ class MalloyElement {
136
137
  }
137
138
  return result;
138
139
  }
140
+ /**
141
+ * @returns The eldest of them all
142
+ */
143
+ kupuna() {
144
+ var _a;
145
+ return ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.kupuna()) || this;
146
+ }
139
147
  translator() {
140
148
  if (this.xlate) {
141
149
  return this.xlate;
@@ -254,6 +262,16 @@ class MalloyElement {
254
262
  return childNeeds;
255
263
  }
256
264
  }
265
+ inExperiment(experimentID) {
266
+ var _a;
267
+ const experimental = (_a = this.translator()) === null || _a === void 0 ? void 0 : _a.compilerFlags.tag('experimental');
268
+ const enabled = experimental && (experimental.bare() || experimental.has(experimentID));
269
+ if (enabled) {
270
+ return true;
271
+ }
272
+ this.log(`Experimental flag '${experimentID}' is not set, feature not available`);
273
+ return false;
274
+ }
257
275
  }
258
276
  exports.MalloyElement = MalloyElement;
259
277
  class Unimplemented extends MalloyElement {
@@ -282,6 +300,17 @@ class ModelEntryReference extends MalloyElement {
282
300
  }
283
301
  }
284
302
  exports.ModelEntryReference = ModelEntryReference;
303
+ class ExperimentalExperiment extends MalloyElement {
304
+ constructor(id) {
305
+ super();
306
+ this.id = id;
307
+ this.elementType = 'experimentalExperiment';
308
+ }
309
+ execute(_doc) {
310
+ this.inExperiment(this.id);
311
+ }
312
+ }
313
+ exports.ExperimentalExperiment = ExperimentalExperiment;
285
314
  function isDocStatement(e) {
286
315
  return e.execute !== undefined;
287
316
  }
@@ -404,6 +433,7 @@ class Document extends MalloyElement {
404
433
  this.sqlBlocks = [];
405
434
  this.didInitModel = false;
406
435
  this.notes = [];
436
+ this.experiments = new tags_1.Tag({});
407
437
  this.modelAnnotationTodoList = [];
408
438
  this.statements = new DocStatementList(statements);
409
439
  this.has({ statements: statements });
@@ -289,6 +289,7 @@ export declare class MalloyParser extends Parser {
289
289
  static readonly RULE_sqlExploreNameRef = 126;
290
290
  static readonly RULE_nameSQLBlock = 127;
291
291
  static readonly RULE_connectionName = 128;
292
+ static readonly RULE_experimentalStatementForTesting = 129;
292
293
  static readonly ruleNames: string[];
293
294
  private static readonly _LITERAL_NAMES;
294
295
  private static readonly _SYMBOLIC_NAMES;
@@ -430,6 +431,7 @@ export declare class MalloyParser extends Parser {
430
431
  sqlExploreNameRef(): SqlExploreNameRefContext;
431
432
  nameSQLBlock(): NameSQLBlockContext;
432
433
  connectionName(): ConnectionNameContext;
434
+ experimentalStatementForTesting(): ExperimentalStatementForTestingContext;
433
435
  sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
434
436
  private sqExpr_sempred;
435
437
  private fieldExpr_sempred;
@@ -461,6 +463,7 @@ export declare class MalloyStatementContext extends ParserRuleContext {
461
463
  runStatement(): RunStatementContext | undefined;
462
464
  docAnnotations(): DocAnnotationsContext | undefined;
463
465
  ignoredObjectAnnotations(): IgnoredObjectAnnotationsContext | undefined;
466
+ experimentalStatementForTesting(): ExperimentalStatementForTestingContext | undefined;
464
467
  constructor(parent: ParserRuleContext | undefined, invokingState: number);
465
468
  get ruleIndex(): number;
466
469
  enterRule(listener: MalloyParserListener): void;
@@ -2389,3 +2392,15 @@ export declare class ConnectionNameContext extends ParserRuleContext {
2389
2392
  exitRule(listener: MalloyParserListener): void;
2390
2393
  accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
2391
2394
  }
2395
+ export declare class ExperimentalStatementForTestingContext extends ParserRuleContext {
2396
+ SEMI(): TerminalNode[];
2397
+ SEMI(i: number): TerminalNode;
2398
+ OBRACK(): TerminalNode;
2399
+ string(): StringContext;
2400
+ CBRACK(): TerminalNode;
2401
+ constructor(parent: ParserRuleContext | undefined, invokingState: number);
2402
+ get ruleIndex(): number;
2403
+ enterRule(listener: MalloyParserListener): void;
2404
+ exitRule(listener: MalloyParserListener): void;
2405
+ accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
2406
+ }