@malloydata/malloy-tag 0.0.335 → 0.0.336

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 (59) hide show
  1. package/CONTEXT.md +83 -9
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.js +5 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/peggy/dist/peg-tag-parser.d.ts +11 -0
  6. package/dist/peggy/dist/peg-tag-parser.js +3130 -0
  7. package/dist/peggy/dist/peg-tag-parser.js.map +1 -0
  8. package/dist/peggy/index.d.ts +13 -0
  9. package/dist/peggy/index.js +117 -0
  10. package/dist/peggy/index.js.map +1 -0
  11. package/dist/peggy/interpreter.d.ts +32 -0
  12. package/dist/peggy/interpreter.js +208 -0
  13. package/dist/peggy/interpreter.js.map +1 -0
  14. package/dist/peggy/statements.d.ts +51 -0
  15. package/dist/peggy/statements.js +7 -0
  16. package/dist/peggy/statements.js.map +1 -0
  17. package/dist/schema.d.ts +41 -0
  18. package/dist/schema.js +573 -0
  19. package/dist/schema.js.map +1 -0
  20. package/dist/schema.spec.d.ts +1 -0
  21. package/dist/schema.spec.js +980 -0
  22. package/dist/schema.spec.js.map +1 -0
  23. package/dist/tags.d.ts +144 -37
  24. package/dist/tags.js +535 -344
  25. package/dist/tags.js.map +1 -1
  26. package/dist/tags.spec.js +524 -45
  27. package/dist/tags.spec.js.map +1 -1
  28. package/package.json +6 -8
  29. package/src/index.ts +3 -0
  30. package/src/motly-schema.motly +52 -0
  31. package/src/peggy/dist/peg-tag-parser.js +2790 -0
  32. package/src/peggy/index.ts +89 -0
  33. package/src/peggy/interpreter.ts +265 -0
  34. package/src/peggy/malloy-tag.peggy +224 -0
  35. package/src/peggy/statements.ts +49 -0
  36. package/src/schema.spec.ts +1280 -0
  37. package/src/schema.ts +852 -0
  38. package/src/tags.spec.ts +591 -46
  39. package/src/tags.ts +597 -398
  40. package/tsconfig.json +3 -2
  41. package/dist/lib/Malloy/MalloyTagLexer.d.ts +0 -42
  42. package/dist/lib/Malloy/MalloyTagLexer.js +0 -395
  43. package/dist/lib/Malloy/MalloyTagLexer.js.map +0 -1
  44. package/dist/lib/Malloy/MalloyTagParser.d.ts +0 -180
  45. package/dist/lib/Malloy/MalloyTagParser.js +0 -1077
  46. package/dist/lib/Malloy/MalloyTagParser.js.map +0 -1
  47. package/dist/lib/Malloy/MalloyTagVisitor.d.ts +0 -120
  48. package/dist/lib/Malloy/MalloyTagVisitor.js +0 -4
  49. package/dist/lib/Malloy/MalloyTagVisitor.js.map +0 -1
  50. package/scripts/build_parser.js +0 -98
  51. package/src/MalloyTag.g4 +0 -104
  52. package/src/lib/Malloy/MalloyTag.interp +0 -61
  53. package/src/lib/Malloy/MalloyTag.tokens +0 -32
  54. package/src/lib/Malloy/MalloyTagLexer.interp +0 -85
  55. package/src/lib/Malloy/MalloyTagLexer.tokens +0 -32
  56. package/src/lib/Malloy/MalloyTagLexer.ts +0 -386
  57. package/src/lib/Malloy/MalloyTagParser.ts +0 -1065
  58. package/src/lib/Malloy/MalloyTagVisitor.ts +0 -141
  59. package/src/lib/Malloy/_BUILD_DIGEST_ +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peg-tag-parser.js","sourceRoot":"","sources":["../../../src/peggy/dist/peg-tag-parser.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { TagParse } from '../tags';
2
+ import { Tag } from '../tags';
3
+ /**
4
+ * Parse Malloy tag language into a Tag which can be queried.
5
+ *
6
+ * @param source - A single string or array of strings to parse. If a string
7
+ * starts with #, all characters up to the first space are skipped.
8
+ * When an array is provided, strings are parsed sequentially and merged.
9
+ * @param extending - A tag which this parse will extend
10
+ * @returns TagParse with the resulting tag and any errors. For arrays,
11
+ * error line numbers indicate the index in the array where the error occurred.
12
+ */
13
+ export declare function parseTag(source: string | string[], extending?: Tag): TagParse;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright Contributors to the Malloy project
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.parseTag = parseTag;
41
+ const tags_1 = require("../tags");
42
+ const interpreter_1 = require("./interpreter");
43
+ const parser = __importStar(require("./dist/peg-tag-parser"));
44
+ /**
45
+ * Parse a single line of Malloy tag language into a Tag.
46
+ * Internal helper - use parseTag() as the public API.
47
+ */
48
+ function parseTagLine(source, extending) {
49
+ var _a;
50
+ // Skip the prefix if present (e.g., "# " or "#(docs) ")
51
+ if (source[0] === '#') {
52
+ const skipTo = source.indexOf(' ');
53
+ if (skipTo > 0) {
54
+ source = source.slice(skipTo);
55
+ }
56
+ else {
57
+ source = '';
58
+ }
59
+ }
60
+ const errors = [];
61
+ let statements = [];
62
+ try {
63
+ statements = parser.parse(source);
64
+ }
65
+ catch (e) {
66
+ if (e && typeof e === 'object' && 'location' in e && 'message' in e) {
67
+ const peggyError = e;
68
+ // Return 0-based line and offset within the input string
69
+ errors.push({
70
+ code: 'tag-parse-syntax-error',
71
+ message: peggyError.message,
72
+ line: peggyError.location.start.line - 1,
73
+ offset: peggyError.location.start.column - 1,
74
+ });
75
+ }
76
+ else {
77
+ errors.push({
78
+ code: 'tag-parse-syntax-error',
79
+ message: String(e),
80
+ line: 0,
81
+ offset: 0,
82
+ });
83
+ }
84
+ return { tag: (_a = extending === null || extending === void 0 ? void 0 : extending.clone()) !== null && _a !== void 0 ? _a : new tags_1.Tag({}), log: errors };
85
+ }
86
+ const interpreter = new interpreter_1.Interpreter();
87
+ const tag = interpreter.execute(statements, extending);
88
+ return { tag, log: errors };
89
+ }
90
+ /**
91
+ * Parse Malloy tag language into a Tag which can be queried.
92
+ *
93
+ * @param source - A single string or array of strings to parse. If a string
94
+ * starts with #, all characters up to the first space are skipped.
95
+ * When an array is provided, strings are parsed sequentially and merged.
96
+ * @param extending - A tag which this parse will extend
97
+ * @returns TagParse with the resulting tag and any errors. For arrays,
98
+ * error line numbers indicate the index in the array where the error occurred.
99
+ */
100
+ function parseTag(source, extending) {
101
+ if (typeof source === 'string') {
102
+ return parseTagLine(source, extending);
103
+ }
104
+ const allErrs = [];
105
+ let current = extending !== null && extending !== void 0 ? extending : new tags_1.Tag({});
106
+ for (let i = 0; i < source.length; i++) {
107
+ const text = source[i];
108
+ const noteParse = parseTagLine(text, current);
109
+ current = noteParse.tag;
110
+ // Adjust error line to be the index in the array
111
+ for (const err of noteParse.log) {
112
+ allErrs.push({ ...err, line: i + err.line });
113
+ }
114
+ }
115
+ return { tag: current, log: allErrs };
116
+ }
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/peggy/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { Tag } from '../tags';
2
+ import type { TagStatement } from './statements';
3
+ /**
4
+ * Executes TagStatements to build a Tag object.
5
+ */
6
+ export declare class Interpreter {
7
+ execute(statements: TagStatement[], extending?: Tag): Tag;
8
+ private executeStatement;
9
+ private executeSetEq;
10
+ private executeReplaceProperties;
11
+ private executeUpdateProperties;
12
+ private executeDefine;
13
+ /**
14
+ * Navigate to the parent of the final path segment, creating intermediate
15
+ * tags as needed. Returns [finalKey, parentDict, parentTag] so caller can write to it.
16
+ */
17
+ private buildAccessPath;
18
+ /**
19
+ * Resolve array elements to Tag[] with proper parent links.
20
+ */
21
+ private resolveArrayWithParent;
22
+ /**
23
+ * Update an existing tag's value in place, preserving its properties.
24
+ * Note: References must be handled separately since they require a RefTag.
25
+ */
26
+ private setTagValue;
27
+ /**
28
+ * Create a Tag with value, resolving arrays with proper parent links.
29
+ * Returns a RefTag for reference values.
30
+ */
31
+ private createTagWithValue;
32
+ }
@@ -0,0 +1,208 @@
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.Interpreter = void 0;
8
+ const tags_1 = require("../tags");
9
+ /**
10
+ * Executes TagStatements to build a Tag object.
11
+ */
12
+ class Interpreter {
13
+ execute(statements, extending) {
14
+ var _a;
15
+ // Root tag has no parent
16
+ const tag = (_a = extending === null || extending === void 0 ? void 0 : extending.clone()) !== null && _a !== void 0 ? _a : new tags_1.Tag({});
17
+ for (const stmt of statements) {
18
+ this.executeStatement(stmt, tag);
19
+ }
20
+ return tag;
21
+ }
22
+ executeStatement(stmt, tag) {
23
+ switch (stmt.kind) {
24
+ case 'setEq':
25
+ this.executeSetEq(stmt, tag);
26
+ break;
27
+ case 'replaceProperties':
28
+ this.executeReplaceProperties(stmt, tag);
29
+ break;
30
+ case 'updateProperties':
31
+ this.executeUpdateProperties(stmt, tag);
32
+ break;
33
+ case 'define':
34
+ this.executeDefine(stmt, tag);
35
+ break;
36
+ case 'clearAll':
37
+ tag.properties = {};
38
+ break;
39
+ }
40
+ }
41
+ executeSetEq(stmt, tag) {
42
+ const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
43
+ if (stmt.properties) {
44
+ // name = value { new_properties } - replace properties with new ones
45
+ const resultTag = this.createTagWithValue(stmt.value, parentTag);
46
+ for (const propStmt of stmt.properties) {
47
+ this.executeStatement(propStmt, resultTag);
48
+ }
49
+ writeInto[writeKey] = resultTag;
50
+ }
51
+ else if (stmt.preserveProperties) {
52
+ // name = value { ... } - preserve existing properties, update value
53
+ const existing = writeInto[writeKey];
54
+ if (existing && stmt.value.kind !== 'reference') {
55
+ // Update value in place, preserving properties and parent chains
56
+ this.setTagValue(existing, stmt.value);
57
+ }
58
+ else {
59
+ // No existing tag, or reference value (which requires a RefTag)
60
+ const resultTag = this.createTagWithValue(stmt.value, parentTag);
61
+ if (existing === null || existing === void 0 ? void 0 : existing.properties) {
62
+ // Clone properties with correct parent to preserve parent chains
63
+ resultTag.properties = {};
64
+ for (const [key, val] of Object.entries(existing.properties)) {
65
+ resultTag.properties[key] = val.clone(resultTag);
66
+ }
67
+ }
68
+ writeInto[writeKey] = resultTag;
69
+ }
70
+ }
71
+ else {
72
+ // name = value - simple assignment
73
+ writeInto[writeKey] = this.createTagWithValue(stmt.value, parentTag);
74
+ }
75
+ }
76
+ executeReplaceProperties(stmt, tag) {
77
+ const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
78
+ if (stmt.preserveValue) {
79
+ // name = ... { properties } - preserve value, replace properties
80
+ const existing = writeInto[writeKey];
81
+ const resultTag = new tags_1.Tag({}, parentTag);
82
+ if (existing) {
83
+ resultTag.eq = existing.eq;
84
+ }
85
+ for (const propStmt of stmt.properties) {
86
+ this.executeStatement(propStmt, resultTag);
87
+ }
88
+ writeInto[writeKey] = resultTag;
89
+ }
90
+ else {
91
+ // name = { properties } - no value, replace properties
92
+ const resultTag = new tags_1.Tag({}, parentTag);
93
+ for (const propStmt of stmt.properties) {
94
+ this.executeStatement(propStmt, resultTag);
95
+ }
96
+ writeInto[writeKey] = resultTag;
97
+ }
98
+ }
99
+ executeUpdateProperties(stmt, tag) {
100
+ var _a;
101
+ const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
102
+ // Create or reuse the result tag - this is the tag that will be stored
103
+ // and that child tags will have as their parent
104
+ const resultTag = (_a = writeInto[writeKey]) !== null && _a !== void 0 ? _a : new tags_1.Tag({}, parentTag);
105
+ // Execute nested statements in the context of the result tag
106
+ for (const propStmt of stmt.properties) {
107
+ this.executeStatement(propStmt, resultTag);
108
+ }
109
+ writeInto[writeKey] = resultTag;
110
+ }
111
+ executeDefine(stmt, tag) {
112
+ const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
113
+ if (stmt.deleted) {
114
+ writeInto[writeKey] = new tags_1.Tag({ deleted: true }, parentTag);
115
+ }
116
+ else {
117
+ writeInto[writeKey] = new tags_1.Tag({}, parentTag);
118
+ }
119
+ }
120
+ /**
121
+ * Navigate to the parent of the final path segment, creating intermediate
122
+ * tags as needed. Returns [finalKey, parentDict, parentTag] so caller can write to it.
123
+ */
124
+ buildAccessPath(tag, path) {
125
+ var _a;
126
+ var _b;
127
+ if (path.length === 0) {
128
+ throw new Error('INTERNAL ERROR: buildAccessPath called with empty path');
129
+ }
130
+ let currentTag = tag;
131
+ let parentDict = tag.getProperties();
132
+ for (const segment of path.slice(0, -1)) {
133
+ let next;
134
+ if (parentDict[segment] === undefined) {
135
+ next = new tags_1.Tag({}, currentTag);
136
+ parentDict[segment] = next;
137
+ }
138
+ else {
139
+ // Ensure properties exists on this intermediate tag
140
+ (_a = (_b = parentDict[segment]).properties) !== null && _a !== void 0 ? _a : (_b.properties = {});
141
+ next = parentDict[segment];
142
+ }
143
+ currentTag = next;
144
+ parentDict = next.getProperties();
145
+ }
146
+ return [path[path.length - 1], parentDict, currentTag];
147
+ }
148
+ /**
149
+ * Resolve array elements to Tag[] with proper parent links.
150
+ */
151
+ resolveArrayWithParent(elements, parent) {
152
+ return elements.map(el => {
153
+ var _a;
154
+ // Reference without properties becomes a RefTag
155
+ if (((_a = el.value) === null || _a === void 0 ? void 0 : _a.kind) === 'reference' && !el.properties) {
156
+ return new tags_1.RefTag(el.value.ups, el.value.path, parent);
157
+ }
158
+ const resultTag = new tags_1.Tag({}, parent);
159
+ if (el.value) {
160
+ if (el.value.kind === 'array') {
161
+ // Nested array
162
+ resultTag.eq = this.resolveArrayWithParent(el.value.elements, resultTag);
163
+ }
164
+ else if (el.value.kind !== 'reference') {
165
+ resultTag.eq = el.value.value;
166
+ }
167
+ // References with properties are ignored (just the properties are kept)
168
+ }
169
+ if (el.properties) {
170
+ for (const stmt of el.properties) {
171
+ this.executeStatement(stmt, resultTag);
172
+ }
173
+ }
174
+ return resultTag;
175
+ });
176
+ }
177
+ /**
178
+ * Update an existing tag's value in place, preserving its properties.
179
+ * Note: References must be handled separately since they require a RefTag.
180
+ */
181
+ setTagValue(tag, valueData) {
182
+ if (valueData.kind === 'array') {
183
+ tag.eq = this.resolveArrayWithParent(valueData.elements, tag);
184
+ }
185
+ else {
186
+ tag.eq = valueData.value;
187
+ }
188
+ }
189
+ /**
190
+ * Create a Tag with value, resolving arrays with proper parent links.
191
+ * Returns a RefTag for reference values.
192
+ */
193
+ createTagWithValue(valueData, parent) {
194
+ if (valueData.kind === 'reference') {
195
+ return new tags_1.RefTag(valueData.ups, valueData.path, parent);
196
+ }
197
+ const resultTag = new tags_1.Tag({}, parent);
198
+ if (valueData.kind === 'array') {
199
+ resultTag.eq = this.resolveArrayWithParent(valueData.elements, resultTag);
200
+ }
201
+ else {
202
+ resultTag.eq = valueData.value;
203
+ }
204
+ return resultTag;
205
+ }
206
+ }
207
+ exports.Interpreter = Interpreter;
208
+ //# sourceMappingURL=interpreter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/peggy/interpreter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Intermediate representation for tag statements.
3
+ * The Peggy parser outputs these, and the interpreter executes them to build a Tag.
4
+ */
5
+ export type ScalarValue = {
6
+ kind: 'string';
7
+ value: string;
8
+ } | {
9
+ kind: 'number';
10
+ value: number;
11
+ } | {
12
+ kind: 'boolean';
13
+ value: boolean;
14
+ } | {
15
+ kind: 'date';
16
+ value: Date;
17
+ } | {
18
+ kind: 'reference';
19
+ ups: number;
20
+ path: (string | number)[];
21
+ };
22
+ export type TagValue = ScalarValue | {
23
+ kind: 'array';
24
+ elements: ArrayElement[];
25
+ };
26
+ export type ArrayElement = {
27
+ value?: TagValue;
28
+ properties?: TagStatement[];
29
+ };
30
+ export type TagStatement = {
31
+ kind: 'setEq';
32
+ path: string[];
33
+ value: TagValue;
34
+ properties?: TagStatement[];
35
+ preserveProperties?: boolean;
36
+ } | {
37
+ kind: 'replaceProperties';
38
+ path: string[];
39
+ properties: TagStatement[];
40
+ preserveValue: boolean;
41
+ } | {
42
+ kind: 'updateProperties';
43
+ path: string[];
44
+ properties: TagStatement[];
45
+ } | {
46
+ kind: 'define';
47
+ path: string[];
48
+ deleted: boolean;
49
+ } | {
50
+ kind: 'clearAll';
51
+ };