@malloydata/malloy 0.0.239-dev250226010331 → 0.0.239-dev250227145856

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 (41) hide show
  1. package/dist/api/asynchronous.d.ts +13 -0
  2. package/dist/api/asynchronous.js +205 -0
  3. package/dist/api/asynchronous.spec.d.ts +1 -0
  4. package/dist/api/asynchronous.spec.js +238 -0
  5. package/dist/api/connection.d.ts +12 -0
  6. package/dist/api/connection.js +9 -0
  7. package/dist/api/core.d.ts +37 -0
  8. package/dist/api/core.js +448 -0
  9. package/dist/api/index.d.ts +3 -0
  10. package/dist/api/index.js +36 -0
  11. package/dist/api/sessioned.d.ts +10 -0
  12. package/dist/api/sessioned.js +210 -0
  13. package/dist/api/sessioned.spec.d.ts +1 -0
  14. package/dist/api/sessioned.spec.js +417 -0
  15. package/dist/api/stateless.d.ts +4 -0
  16. package/dist/api/stateless.js +46 -0
  17. package/dist/api/stateless.spec.d.ts +1 -0
  18. package/dist/api/stateless.spec.js +394 -0
  19. package/dist/connection/base_connection.d.ts +3 -2
  20. package/dist/connection/base_connection.js +3 -1
  21. package/dist/connection/types.d.ts +2 -1
  22. package/dist/index.d.ts +5 -2
  23. package/dist/index.js +28 -1
  24. package/dist/lang/ast/source-elements/sql-source.d.ts +4 -4
  25. package/dist/lang/ast/source-elements/sql-source.js +20 -12
  26. package/dist/lang/malloy-to-ast.d.ts +1 -1
  27. package/dist/lang/parse-malloy.js +0 -1
  28. package/dist/lang/test/locations.spec.js +1 -1
  29. package/dist/lang/test/parse-expects.js +1 -1
  30. package/dist/lang/test/parse.spec.js +18 -15
  31. package/dist/lang/test/sql-block.spec.js +18 -21
  32. package/dist/lang/test/test-translator.d.ts +5 -3
  33. package/dist/lang/test/test-translator.js +10 -10
  34. package/dist/lang/translate-response.d.ts +6 -3
  35. package/dist/malloy.d.ts +2 -4
  36. package/dist/malloy.js +11 -45
  37. package/dist/model/malloy_types.d.ts +0 -5
  38. package/dist/model/sql_block.d.ts +4 -7
  39. package/dist/model/sql_block.js +31 -21
  40. package/dist/to_stable.js +9 -0
  41. package/package.json +3 -3
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.compileQuery = exports.compileSource = exports.compileModel = void 0;
33
+ const Malloy = __importStar(require("@malloydata/malloy-interfaces"));
34
+ const Core = __importStar(require("./core"));
35
+ function sessionInfosMatch(a, b) {
36
+ if (a.type === 'compile_model') {
37
+ if (b.type !== 'compile_model')
38
+ return false;
39
+ return a.modelURL === b.modelURL && a.extendModelURL === b.extendModelURL;
40
+ }
41
+ else if (a.type === 'compile_source') {
42
+ if (b.type !== 'compile_source')
43
+ return false;
44
+ return (a.modelURL === b.modelURL &&
45
+ a.extendModelURL === b.extendModelURL &&
46
+ a.name === b.name);
47
+ }
48
+ else {
49
+ if (b.type !== 'compile_query')
50
+ return false;
51
+ return a.modelURL === b.modelURL && a.queryString === b.queryString;
52
+ }
53
+ }
54
+ class SessionManager {
55
+ constructor() {
56
+ this.sessions = [];
57
+ }
58
+ purgeExpired(except) {
59
+ const now = new Date();
60
+ this.sessions = this.sessions.filter(s => (except && sessionInfosMatch(s.sessionInfo, except)) ||
61
+ s.expires === undefined ||
62
+ s.expires > now);
63
+ }
64
+ findSession(sessionInfo) {
65
+ const session = this.sessions.find(s => sessionInfosMatch(s.sessionInfo, sessionInfo));
66
+ this.purgeExpired(sessionInfo);
67
+ return session;
68
+ }
69
+ getExpires(ttl) {
70
+ if (ttl instanceof Date) {
71
+ return ttl;
72
+ }
73
+ else {
74
+ // TODO is this how you do this?
75
+ return new Date(Date.now() + ttl.seconds * 1000);
76
+ }
77
+ }
78
+ newCompileModelSession(request, sessionInfo, options) {
79
+ const expires = (options === null || options === void 0 ? void 0 : options.ttl) ? this.getExpires(options.ttl) : undefined;
80
+ const state = Core.newCompileModelState(request);
81
+ return {
82
+ type: 'compile_model',
83
+ sessionInfo,
84
+ state,
85
+ expires,
86
+ };
87
+ }
88
+ newCompileSourceSession(request, sessionInfo, options) {
89
+ const expires = (options === null || options === void 0 ? void 0 : options.ttl) ? this.getExpires(options.ttl) : undefined;
90
+ const state = Core.newCompileSourceState(request);
91
+ return {
92
+ type: 'compile_source',
93
+ sessionInfo,
94
+ state,
95
+ expires,
96
+ };
97
+ }
98
+ newCompileQuerySession(request, sessionInfo, options) {
99
+ const expires = (options === null || options === void 0 ? void 0 : options.ttl) ? this.getExpires(options.ttl) : undefined;
100
+ const state = Core.newCompileQueryState(request);
101
+ return {
102
+ type: 'compile_query',
103
+ sessionInfo,
104
+ state,
105
+ expires,
106
+ };
107
+ }
108
+ findCompileModelSession(sessionInfo) {
109
+ const session = this.findSession(sessionInfo);
110
+ if ((session === null || session === void 0 ? void 0 : session.type) === 'compile_model') {
111
+ return session;
112
+ }
113
+ }
114
+ killSession(sessionInfo) {
115
+ this.sessions = this.sessions.filter(s => !sessionInfosMatch(s.sessionInfo, sessionInfo));
116
+ }
117
+ hasErrors(log) {
118
+ var _a;
119
+ return (_a = log === null || log === void 0 ? void 0 : log.some(m => m.severity === 'error')) !== null && _a !== void 0 ? _a : false;
120
+ }
121
+ compileModel(request, options) {
122
+ const sessionInfo = {
123
+ type: 'compile_model',
124
+ modelURL: request.model_url,
125
+ extendModelURL: request.extend_model_url,
126
+ };
127
+ let session = this.findCompileModelSession(sessionInfo);
128
+ if (session) {
129
+ Core.updateCompileModelState(session.state, request.compiler_needs);
130
+ }
131
+ else {
132
+ session = this.newCompileModelSession(request, sessionInfo, options);
133
+ this.sessions.push(session);
134
+ }
135
+ const result = Core.statedCompileModel(session.state);
136
+ if (result.model || this.hasErrors(result.logs)) {
137
+ this.killSession(sessionInfo);
138
+ }
139
+ return result;
140
+ }
141
+ findCompileSourceSession(sessionInfo) {
142
+ const session = this.findSession(sessionInfo);
143
+ if ((session === null || session === void 0 ? void 0 : session.type) === 'compile_source') {
144
+ return session;
145
+ }
146
+ }
147
+ compileSource(request, options) {
148
+ const sessionInfo = {
149
+ type: 'compile_source',
150
+ modelURL: request.model_url,
151
+ name: request.name,
152
+ extendModelURL: request.extend_model_url,
153
+ };
154
+ let session = this.findCompileSourceSession(sessionInfo);
155
+ if (session) {
156
+ Core.updateCompileModelState(session.state, request.compiler_needs);
157
+ }
158
+ else {
159
+ session = this.newCompileSourceSession(request, sessionInfo, options);
160
+ this.sessions.push(session);
161
+ }
162
+ const result = Core.statedCompileSource(session.state, request.name);
163
+ if (result.source || this.hasErrors(result.logs)) {
164
+ this.killSession(sessionInfo);
165
+ }
166
+ return result;
167
+ }
168
+ findCompileQuerySession(sessionInfo) {
169
+ const session = this.findSession(sessionInfo);
170
+ if ((session === null || session === void 0 ? void 0 : session.type) === 'compile_query') {
171
+ return session;
172
+ }
173
+ }
174
+ compileQuery(request, options) {
175
+ const queryString = Malloy.queryToMalloy(request.query);
176
+ const sessionInfo = {
177
+ type: 'compile_query',
178
+ modelURL: request.model_url,
179
+ queryString,
180
+ query: request.query,
181
+ };
182
+ let session = this.findCompileQuerySession(sessionInfo);
183
+ if (session) {
184
+ Core.updateCompileModelState(session.state, request.compiler_needs);
185
+ }
186
+ else {
187
+ session = this.newCompileQuerySession(request, sessionInfo, options);
188
+ this.sessions.push(session);
189
+ }
190
+ const result = Core.statedCompileQuery(session.state);
191
+ if (result.result || this.hasErrors(result.logs)) {
192
+ this.killSession(sessionInfo);
193
+ }
194
+ return result;
195
+ }
196
+ }
197
+ const SESSION_MANAGER = new SessionManager();
198
+ function compileModel(request, options) {
199
+ return SESSION_MANAGER.compileModel(request, options);
200
+ }
201
+ exports.compileModel = compileModel;
202
+ function compileSource(request, options) {
203
+ return SESSION_MANAGER.compileSource(request, options);
204
+ }
205
+ exports.compileSource = compileSource;
206
+ function compileQuery(request, options) {
207
+ return SESSION_MANAGER.compileQuery(request, options);
208
+ }
209
+ exports.compileQuery = compileQuery;
210
+ //# sourceMappingURL=sessioned.js.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const sessioned_1 = require("./sessioned");
10
+ describe('api', () => {
11
+ describe('compile model', () => {
12
+ test('compile model with table dependency', () => {
13
+ let result = (0, sessioned_1.compileModel)({
14
+ model_url: 'file://test.malloy',
15
+ });
16
+ let expected = {
17
+ compiler_needs: {
18
+ files: [
19
+ {
20
+ url: 'file://test.malloy',
21
+ },
22
+ ],
23
+ },
24
+ };
25
+ expect(result).toMatchObject(expected);
26
+ result = (0, sessioned_1.compileModel)({
27
+ model_url: 'file://test.malloy',
28
+ compiler_needs: {
29
+ files: [
30
+ {
31
+ url: 'file://test.malloy',
32
+ contents: "source: flights is connection.table('flights')",
33
+ },
34
+ ],
35
+ },
36
+ });
37
+ expected = {
38
+ compiler_needs: {
39
+ table_schemas: [
40
+ {
41
+ connection_name: 'connection',
42
+ name: 'flights',
43
+ },
44
+ ],
45
+ connections: [{ name: 'connection' }],
46
+ },
47
+ };
48
+ expect(result).toMatchObject(expected);
49
+ result = (0, sessioned_1.compileModel)({
50
+ model_url: 'file://test.malloy',
51
+ compiler_needs: {
52
+ table_schemas: [
53
+ {
54
+ connection_name: 'connection',
55
+ name: 'flights',
56
+ schema: {
57
+ fields: [
58
+ {
59
+ kind: 'dimension',
60
+ name: 'carrier',
61
+ type: { kind: 'string_type' },
62
+ },
63
+ ],
64
+ },
65
+ },
66
+ ],
67
+ connections: [{ name: 'connection', dialect: 'duckdb' }],
68
+ },
69
+ });
70
+ expected = {
71
+ model: {
72
+ entries: [
73
+ {
74
+ kind: 'source',
75
+ name: 'flights',
76
+ schema: {
77
+ fields: [
78
+ {
79
+ kind: 'dimension',
80
+ name: 'carrier',
81
+ type: { kind: 'string_type' },
82
+ },
83
+ ],
84
+ },
85
+ },
86
+ ],
87
+ anonymous_queries: [],
88
+ },
89
+ };
90
+ expect(result).toMatchObject(expected);
91
+ });
92
+ test('compile source basic test', () => {
93
+ let result = (0, sessioned_1.compileSource)({
94
+ model_url: 'file://test.malloy',
95
+ name: 'flights',
96
+ compiler_needs: {
97
+ files: [
98
+ {
99
+ url: 'file://test.malloy',
100
+ contents: "source: flights is connection.table('flights')",
101
+ },
102
+ ],
103
+ },
104
+ });
105
+ let expected = {
106
+ compiler_needs: {
107
+ table_schemas: [
108
+ {
109
+ connection_name: 'connection',
110
+ name: 'flights',
111
+ },
112
+ ],
113
+ connections: [{ name: 'connection' }],
114
+ },
115
+ };
116
+ expect(result).toMatchObject(expected);
117
+ result = (0, sessioned_1.compileSource)({
118
+ model_url: 'file://test.malloy',
119
+ name: 'flights',
120
+ compiler_needs: {
121
+ table_schemas: [
122
+ {
123
+ connection_name: 'connection',
124
+ name: 'flights',
125
+ schema: {
126
+ fields: [
127
+ {
128
+ kind: 'dimension',
129
+ name: 'carrier',
130
+ type: { kind: 'string_type' },
131
+ },
132
+ ],
133
+ },
134
+ },
135
+ ],
136
+ connections: [{ name: 'connection', dialect: 'duckdb' }],
137
+ },
138
+ });
139
+ expected = {
140
+ source: {
141
+ name: 'flights',
142
+ schema: {
143
+ fields: [
144
+ {
145
+ kind: 'dimension',
146
+ name: 'carrier',
147
+ type: { kind: 'string_type' },
148
+ },
149
+ ],
150
+ },
151
+ },
152
+ };
153
+ expect(result).toMatchObject(expected);
154
+ });
155
+ });
156
+ describe('compile query', () => {
157
+ test('compile query with table dependency', () => {
158
+ const query = {
159
+ definition: {
160
+ kind: 'arrow',
161
+ source_reference: { name: 'flights' },
162
+ view: {
163
+ kind: 'segment',
164
+ operations: [
165
+ {
166
+ kind: 'group_by',
167
+ field: {
168
+ expression: { kind: 'field_reference', name: 'carrier' },
169
+ },
170
+ },
171
+ ],
172
+ },
173
+ },
174
+ };
175
+ let result = (0, sessioned_1.compileQuery)({
176
+ model_url: 'file://test.malloy',
177
+ query,
178
+ });
179
+ let expected = {
180
+ compiler_needs: {
181
+ files: [
182
+ {
183
+ url: 'file://test.malloy',
184
+ },
185
+ ],
186
+ },
187
+ };
188
+ expect(result).toMatchObject(expected);
189
+ result = (0, sessioned_1.compileQuery)({
190
+ model_url: 'file://test.malloy',
191
+ query,
192
+ compiler_needs: {
193
+ files: [
194
+ {
195
+ url: 'file://test.malloy',
196
+ contents: "source: flights is connection.table('flights')",
197
+ },
198
+ ],
199
+ },
200
+ });
201
+ expected = {
202
+ compiler_needs: {
203
+ table_schemas: [
204
+ {
205
+ connection_name: 'connection',
206
+ name: 'flights',
207
+ },
208
+ ],
209
+ connections: [{ name: 'connection' }],
210
+ },
211
+ };
212
+ expect(result).toMatchObject(expected);
213
+ result = (0, sessioned_1.compileQuery)({
214
+ model_url: 'file://test.malloy',
215
+ query,
216
+ compiler_needs: {
217
+ table_schemas: [
218
+ {
219
+ connection_name: 'connection',
220
+ name: 'flights',
221
+ schema: {
222
+ fields: [
223
+ {
224
+ kind: 'dimension',
225
+ name: 'carrier',
226
+ type: { kind: 'string_type' },
227
+ },
228
+ ],
229
+ },
230
+ },
231
+ ],
232
+ connections: [{ name: 'connection', dialect: 'duckdb' }],
233
+ },
234
+ });
235
+ expected = {
236
+ result: {
237
+ connection_name: 'connection',
238
+ sql: `SELECT \n\
239
+ base."carrier" as "carrier"
240
+ FROM flights as base
241
+ GROUP BY 1
242
+ ORDER BY 1 asc NULLS LAST
243
+ `,
244
+ schema: {
245
+ fields: [
246
+ {
247
+ kind: 'dimension',
248
+ name: 'carrier',
249
+ type: { kind: 'string_type' },
250
+ },
251
+ ],
252
+ },
253
+ },
254
+ };
255
+ expect(result).toMatchObject(expected);
256
+ });
257
+ });
258
+ describe('sessions', () => {
259
+ describe('ttl', () => {
260
+ test('making a different request should purge expired sessions', () => {
261
+ let result = (0, sessioned_1.compileModel)({
262
+ model_url: 'file://test.malloy',
263
+ }, {
264
+ // This is in the past...
265
+ ttl: new Date(Date.now() - 1000),
266
+ });
267
+ let expected = {
268
+ compiler_needs: {
269
+ files: [
270
+ {
271
+ url: 'file://test.malloy',
272
+ },
273
+ ],
274
+ },
275
+ };
276
+ expect(result).toMatchObject(expected);
277
+ (0, sessioned_1.compileModel)({
278
+ model_url: 'file://some_other_model.malloy',
279
+ });
280
+ result = (0, sessioned_1.compileModel)({
281
+ model_url: 'file://test.malloy',
282
+ });
283
+ expected = {
284
+ compiler_needs: {
285
+ files: [
286
+ {
287
+ url: 'file://test.malloy',
288
+ },
289
+ ],
290
+ },
291
+ };
292
+ expect(result).toMatchObject(expected);
293
+ });
294
+ });
295
+ test('getting an error should kill session', () => {
296
+ let result = (0, sessioned_1.compileModel)({
297
+ model_url: 'file://test.malloy',
298
+ compiler_needs: {
299
+ files: [
300
+ {
301
+ url: 'file://test.malloy',
302
+ contents: "source: flights is connection.table('flights') extend { dimension: x is does_not_exist }",
303
+ },
304
+ ],
305
+ table_schemas: [
306
+ {
307
+ connection_name: 'connection',
308
+ name: 'flights',
309
+ schema: {
310
+ fields: [
311
+ {
312
+ kind: 'dimension',
313
+ name: 'carrier',
314
+ type: { kind: 'string_type' },
315
+ },
316
+ ],
317
+ },
318
+ },
319
+ ],
320
+ connections: [{ name: 'connection', dialect: 'duckdb' }],
321
+ },
322
+ });
323
+ let expected = {
324
+ logs: [
325
+ {
326
+ url: 'file://test.malloy',
327
+ severity: 'error',
328
+ message: "'does_not_exist' is not defined",
329
+ range: {
330
+ start: { line: 0, character: 72 },
331
+ end: { line: 0, character: 86 },
332
+ },
333
+ },
334
+ ],
335
+ };
336
+ expect(result).toMatchObject(expected);
337
+ result = (0, sessioned_1.compileModel)({
338
+ model_url: 'file://test.malloy',
339
+ });
340
+ expected = {
341
+ compiler_needs: {
342
+ files: [
343
+ {
344
+ url: 'file://test.malloy',
345
+ },
346
+ ],
347
+ },
348
+ };
349
+ expect(result).toMatchObject(expected);
350
+ });
351
+ test('sessions should be cleared when they successfully return a result', () => {
352
+ let result = (0, sessioned_1.compileModel)({
353
+ model_url: 'file://test.malloy',
354
+ compiler_needs: {
355
+ table_schemas: [
356
+ {
357
+ connection_name: 'connection',
358
+ name: 'flights',
359
+ schema: {
360
+ fields: [
361
+ {
362
+ kind: 'dimension',
363
+ name: 'carrier',
364
+ type: { kind: 'string_type' },
365
+ },
366
+ ],
367
+ },
368
+ },
369
+ ],
370
+ files: [
371
+ {
372
+ url: 'file://test.malloy',
373
+ contents: "source: flights is connection.table('flights')",
374
+ },
375
+ ],
376
+ connections: [{ name: 'connection', dialect: 'duckdb' }],
377
+ },
378
+ });
379
+ let expected = {
380
+ model: {
381
+ entries: [
382
+ {
383
+ kind: 'source',
384
+ name: 'flights',
385
+ schema: {
386
+ fields: [
387
+ {
388
+ kind: 'dimension',
389
+ name: 'carrier',
390
+ type: { kind: 'string_type' },
391
+ },
392
+ ],
393
+ },
394
+ },
395
+ ],
396
+ anonymous_queries: [],
397
+ },
398
+ };
399
+ expect(result).toMatchObject(expected);
400
+ result = (0, sessioned_1.compileModel)({
401
+ model_url: 'file://test.malloy',
402
+ });
403
+ // Compiler should not know the contents of this file anymore because the session was cleared
404
+ expected = {
405
+ compiler_needs: {
406
+ files: [
407
+ {
408
+ url: 'file://test.malloy',
409
+ },
410
+ ],
411
+ },
412
+ };
413
+ expect(result).toMatchObject(expected);
414
+ });
415
+ });
416
+ });
417
+ //# sourceMappingURL=sessioned.spec.js.map
@@ -0,0 +1,4 @@
1
+ import * as Malloy from '@malloydata/malloy-interfaces';
2
+ export declare function compileModel(request: Malloy.CompileModelRequest): Malloy.CompileModelResponse;
3
+ export declare function compileSource(request: Malloy.CompileSourceRequest): Malloy.CompileSourceResponse;
4
+ export declare function compileQuery(request: Malloy.CompileQueryRequest): Malloy.CompileQueryResponse;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.compileQuery = exports.compileSource = exports.compileModel = void 0;
33
+ const Core = __importStar(require("./core"));
34
+ function compileModel(request) {
35
+ return Core.compileModel(request);
36
+ }
37
+ exports.compileModel = compileModel;
38
+ function compileSource(request) {
39
+ return Core.compileSource(request);
40
+ }
41
+ exports.compileSource = compileSource;
42
+ function compileQuery(request) {
43
+ return Core.compileQuery(request);
44
+ }
45
+ exports.compileQuery = compileQuery;
46
+ //# sourceMappingURL=stateless.js.map
@@ -0,0 +1 @@
1
+ export {};