@enspirit/elo 1.0.1 → 1.0.2

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 (47) hide show
  1. package/dist/src/ast.d.ts +7 -1
  2. package/dist/src/ast.d.ts.map +1 -1
  3. package/dist/src/ast.js +9 -10
  4. package/dist/src/ast.js.map +1 -1
  5. package/dist/src/bindings/javascript.d.ts.map +1 -1
  6. package/dist/src/bindings/javascript.js +41 -24
  7. package/dist/src/bindings/javascript.js.map +1 -1
  8. package/dist/src/bindings/python.d.ts.map +1 -1
  9. package/dist/src/bindings/python.js +42 -35
  10. package/dist/src/bindings/python.js.map +1 -1
  11. package/dist/src/bindings/ruby.d.ts.map +1 -1
  12. package/dist/src/bindings/ruby.js +46 -26
  13. package/dist/src/bindings/ruby.js.map +1 -1
  14. package/dist/src/bindings/sql.d.ts.map +1 -1
  15. package/dist/src/bindings/sql.js +24 -3
  16. package/dist/src/bindings/sql.js.map +1 -1
  17. package/dist/src/compilers/_validate.d.ts +5 -0
  18. package/dist/src/compilers/_validate.d.ts.map +1 -1
  19. package/dist/src/compilers/_validate.js +11 -0
  20. package/dist/src/compilers/_validate.js.map +1 -1
  21. package/dist/src/compilers/javascript.js +8 -6
  22. package/dist/src/compilers/javascript.js.map +1 -1
  23. package/dist/src/compilers/python.js +8 -5
  24. package/dist/src/compilers/python.js.map +1 -1
  25. package/dist/src/compilers/ruby.js +8 -6
  26. package/dist/src/compilers/ruby.js.map +1 -1
  27. package/dist/src/compilers/sql.js +13 -6
  28. package/dist/src/compilers/sql.js.map +1 -1
  29. package/dist/src/elo.js +13 -2
  30. package/dist/src/elo.js.map +1 -1
  31. package/dist/src/eloc.js +13 -2
  32. package/dist/src/eloc.js.map +1 -1
  33. package/dist/src/parser.d.ts +7 -0
  34. package/dist/src/parser.d.ts.map +1 -1
  35. package/dist/src/parser.js +40 -18
  36. package/dist/src/parser.js.map +1 -1
  37. package/dist/src/runtime.d.ts +13 -0
  38. package/dist/src/runtime.d.ts.map +1 -1
  39. package/dist/src/runtime.js +66 -1
  40. package/dist/src/runtime.js.map +1 -1
  41. package/dist/src/stdlib.d.ts +13 -0
  42. package/dist/src/stdlib.d.ts.map +1 -1
  43. package/dist/src/stdlib.js +37 -0
  44. package/dist/src/stdlib.js.map +1 -1
  45. package/dist/src/transform.js +40 -10
  46. package/dist/src/transform.js.map +1 -1
  47. package/package.json +1 -1
@@ -6,16 +6,35 @@
6
6
  * when needed, wrapped in an IIFE for encapsulation.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.PY_HELPERS = exports.PY_HELPER_DEPS = exports.RUBY_HELPERS = exports.RUBY_HELPER_DEPS = exports.JS_HELPERS = exports.JS_HELPER_DEPS = void 0;
9
+ exports.PY_HELPERS = exports.PY_HELPER_DEPS = exports.RUBY_HELPERS = exports.RUBY_HELPER_DEPS = exports.JS_HELPERS = exports.JS_HELPER_DEPS = exports.MAX_STRING_LENGTH = exports.DEFAULT_MAX_STRING_LENGTH = void 0;
10
10
  /**
11
11
  * Individual JavaScript helper function snippets.
12
12
  * Each helper is a standalone function that can be included in the output.
13
13
  * Used for dynamically-typed operations where types aren't known at compile time.
14
14
  */
15
+ /**
16
+ * Maximum length, in characters, of a string the compiled code is allowed to
17
+ * build with a single repeat (`'a' * n`) or pad operation. Repeating or padding
18
+ * without a bound lets a short expression allocate gigabytes and OOM the host,
19
+ * so the compiled runtime refuses to cross this ceiling.
20
+ *
21
+ * The default is safe; it is read once, at compile time, from the
22
+ * `ELO_MAX_STRING_LENGTH` environment variable so a deployment can raise or
23
+ * lower it. Raising it re-opens the denial-of-service window — see the security
24
+ * page.
25
+ */
26
+ exports.DEFAULT_MAX_STRING_LENGTH = 10000000;
27
+ exports.MAX_STRING_LENGTH = (() => {
28
+ const v = Number(process.env.ELO_MAX_STRING_LENGTH);
29
+ return Number.isFinite(v) && v > 0 ? Math.floor(v) : exports.DEFAULT_MAX_STRING_LENGTH;
30
+ })();
15
31
  /**
16
32
  * Dependencies between helpers. If helper A uses helper B, A depends on B.
17
33
  */
18
34
  exports.JS_HELPER_DEPS = {
35
+ kRepeat: [],
36
+ kPad: [],
37
+ kRound: [],
19
38
  kNeq: ['kEq'],
20
39
  kFetchObject: ['kFetch'],
21
40
  // Parser helpers depend on pOk/pFail
@@ -31,6 +50,15 @@ exports.JS_HELPER_DEPS = {
31
50
  pData: ['pOk', 'pFail'],
32
51
  };
33
52
  exports.JS_HELPERS = {
53
+ kRepeat: `function kRepeat(s, n) {
54
+ if (n <= 0) return "";
55
+ if (s.length * n > ${exports.MAX_STRING_LENGTH}) throw new Error("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings");
56
+ return s.repeat(n);
57
+ }`,
58
+ kPad: `function kPad(s, n, p, atStart) {
59
+ if (n > ${exports.MAX_STRING_LENGTH}) throw new Error("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings");
60
+ return atStart ? s.padStart(n, p) : s.padEnd(n, p);
61
+ }`,
34
62
  kAdd: `function kAdd(l, r) {
35
63
  if (DateTime.isDateTime(l) && Duration.isDuration(r)) return l.plus(r);
36
64
  if (Duration.isDuration(l) && DateTime.isDateTime(r)) return r.plus(l);
@@ -44,6 +72,7 @@ exports.JS_HELPERS = {
44
72
  return l - r;
45
73
  }`,
46
74
  kMul: `function kMul(l, r) {
75
+ if (Array.isArray(l) || Array.isArray(r)) throw new Error("Array multiplication is not supported");
47
76
  if (Duration.isDuration(l)) return Duration.fromMillis(l.toMillis() * r);
48
77
  if (Duration.isDuration(r)) return Duration.fromMillis(r.toMillis() * l);
49
78
  return l * r;
@@ -52,6 +81,7 @@ exports.JS_HELPERS = {
52
81
  if (Duration.isDuration(l) && typeof r === 'number') return Duration.fromMillis(l.toMillis() / r);
53
82
  return l / r;
54
83
  }`,
84
+ kRound: `function kRound(x) { return x < 0 ? -Math.round(-x) : Math.round(x); }`,
55
85
  kMod: `function kMod(l, r) { return l % r; }`,
56
86
  kPow: `function kPow(l, r) { return Math.pow(l, r); }`,
57
87
  kEq: `function kEq(l, r) {
@@ -92,6 +122,7 @@ exports.JS_HELPERS = {
92
122
  }`,
93
123
  kIsNull: `function kIsNull(v) { return v === null || v === undefined; }`,
94
124
  kFetch: `function kFetch(data, path) {
125
+ var FORBIDDEN = ['constructor', '__proto__', 'prototype', '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__'];
95
126
  let current = data;
96
127
  for (const segment of path) {
97
128
  if (current === null || current === undefined) return null;
@@ -100,6 +131,8 @@ exports.JS_HELPERS = {
100
131
  current = current[segment];
101
132
  } else {
102
133
  if (typeof current !== 'object' || current === null) return null;
134
+ /* A property read walks the prototype chain, so a meta-property name (reachable via a variable, array or concatenated key the compile-time denylist cannot see) would hand back Object.prototype or the Object constructor. These are never valid data keys. */
135
+ if (FORBIDDEN.indexOf(segment) !== -1) return null;
103
136
  current = current[segment];
104
137
  }
105
138
  }
@@ -113,9 +146,12 @@ exports.JS_HELPERS = {
113
146
  return result;
114
147
  }`,
115
148
  kPatch: `function kPatch(data, path, value) {
149
+ var FORBIDDEN = ['constructor', '__proto__', 'prototype', '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__'];
116
150
  if (path.length === 0) return value;
117
151
  const seg = path[0];
118
152
  const rest = path.slice(1);
153
+ /* A meta-property name is never a valid data key; writing (or reading) one would reach the host prototype chain, so reject it however the segment was supplied. */
154
+ if (typeof seg === 'string' && FORBIDDEN.indexOf(seg) !== -1) throw new Error("patch() segment '" + seg + "' is forbidden: this name would expose the host runtime and is not a valid Elo property.");
119
155
  const nextDefault = rest.length === 0 ? null : typeof rest[0] === 'number' ? [] : {};
120
156
  if (typeof seg === 'number') {
121
157
  if (data !== null && data !== undefined && !Array.isArray(data)) throw new Error('cannot patch array index on non-array');
@@ -264,6 +300,9 @@ exports.JS_HELPERS = {
264
300
  * These are embedded in compiled Ruby output when type definitions are used.
265
301
  */
266
302
  exports.RUBY_HELPER_DEPS = {
303
+ k_div: [],
304
+ k_str_mul: [],
305
+ k_pad: [],
267
306
  p_any: ['p_ok'],
268
307
  p_null: ['p_ok', 'p_fail'],
269
308
  p_string: ['p_ok', 'p_fail'],
@@ -276,6 +315,19 @@ exports.RUBY_HELPER_DEPS = {
276
315
  p_data: ['p_ok', 'p_fail'],
277
316
  };
278
317
  exports.RUBY_HELPERS = {
318
+ k_str_mul: `def k_str_mul(s, n)
319
+ return '' if n <= 0
320
+ raise "String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings" if s.length * n > ${exports.MAX_STRING_LENGTH}
321
+ s * n
322
+ end`,
323
+ k_pad: `def k_pad(s, n, p, at_start)
324
+ raise "String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings" if n > ${exports.MAX_STRING_LENGTH}
325
+ at_start ? s.rjust(n, p) : s.ljust(n, p)
326
+ end`,
327
+ k_div: `def k_div(l, r)
328
+ return l.fdiv(r) if l.is_a?(Integer) && r.is_a?(Integer)
329
+ l / r
330
+ end`,
279
331
  k_deep_merge: `def k_deep_merge(a, b)
280
332
  return b unless a.is_a?(Hash) && b.is_a?(Hash)
281
333
  result = a.dup
@@ -382,6 +434,9 @@ end`,
382
434
  * Special entries starting with _ are import statements, not functions.
383
435
  */
384
436
  exports.PY_HELPER_DEPS = {
437
+ kStrMul: [],
438
+ kPad: [],
439
+ kRound: ['_import_math'],
385
440
  kEq: [],
386
441
  kNeq: ['kEq'],
387
442
  kIntersection: ['_EloInterval'],
@@ -422,6 +477,13 @@ exports.PY_HELPER_DEPS = {
422
477
  pSubtype: ['pOk', 'pFail'],
423
478
  };
424
479
  exports.PY_HELPERS = {
480
+ kStrMul: `def kStrMul(s, n):
481
+ if n <= 0: return ""
482
+ if len(s) * n > ${exports.MAX_STRING_LENGTH}: raise ValueError("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings")
483
+ return s * n`,
484
+ kPad: `def kPad(s, n, p, at_start):
485
+ if n > ${exports.MAX_STRING_LENGTH}: raise ValueError("String length limit (${exports.MAX_STRING_LENGTH}) exceeded; raise ELO_MAX_STRING_LENGTH to allow larger strings")
486
+ return s.rjust(n, p) if at_start else s.ljust(n, p)`,
425
487
  _import_math: `import math`,
426
488
  _import_functools: `import functools`,
427
489
  _import_datetime: `import datetime as _dt`,
@@ -651,9 +713,12 @@ def _elo_end_of_year(dt):
651
713
  if isinstance(l, EloDuration) and isinstance(r, EloDuration): return l.minus(r)
652
714
  return l - r`,
653
715
  kMul: `def kMul(l, r):
716
+ if isinstance(l, list) or isinstance(r, list): raise ValueError("Array multiplication is not supported")
654
717
  if isinstance(l, EloDuration): return l.scale(r)
655
718
  if isinstance(r, EloDuration): return r.scale(l)
656
719
  return l * r`,
720
+ kRound: `def kRound(x):
721
+ return math.floor(x + 0.5) if x >= 0 else math.ceil(x - 0.5)`,
657
722
  kDiv: `def kDiv(l, r):
658
723
  if isinstance(l, EloDuration) and isinstance(r, (int, float)): return l.divide(r)
659
724
  return l / r`,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,11 @@ export declare class StdLib<T> {
75
75
  * Emit code for a function call
76
76
  */
77
77
  emit(name: string, args: IRExpr[], argTypes: EloType[], ctx: EmitContext<T>): T;
78
+ /**
79
+ * Every registered signature of a function name, formatted for an error
80
+ * message, most specific first and without duplicates.
81
+ */
82
+ signaturesOf(name: string): string[];
78
83
  }
79
84
  /**
80
85
  * Helper to create a binary operator emitter
@@ -108,6 +113,14 @@ export declare function isBinaryOp(ir: IRExpr): boolean;
108
113
  * Helper for Ruby-style postfix method call that wraps binary expressions in parens.
109
114
  * Use for: arg0.method() where Ruby's precedence requires parens around binary ops.
110
115
  */
116
+ /**
117
+ * Helper for a conversion that is a no-op in the target language.
118
+ *
119
+ * Returning the operand untouched loses its grouping: the parent sees a call
120
+ * node, decides it needs no parentheses, and re-associates the bare operand.
121
+ * `Float(a - b) / c` would emit as `a - b / c`.
122
+ */
123
+ export declare function identity(): FunctionEmitter<string>;
111
124
  export declare function rubyMethod(method: string): FunctionEmitter<string>;
112
125
  /**
113
126
  * Helper for function call style: fn(arg0, arg1, ...)
@@ -1 +1 @@
1
- {"version":3,"file":"stdlib.d.ts","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdlib.d.ts","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ exports.methodCall = methodCall;
18
18
  exports.nullary = nullary;
19
19
  exports.unaryMethod = unaryMethod;
20
20
  exports.isBinaryOp = isBinaryOp;
21
+ exports.identity = identity;
21
22
  exports.rubyMethod = rubyMethod;
22
23
  exports.fnCall = fnCall;
23
24
  exports.helperCall = helperCall;
@@ -142,8 +143,31 @@ class StdLib {
142
143
  if (this.fallback) {
143
144
  return this.fallback(name, args, argTypes, ctx);
144
145
  }
146
+ // A name that exists under other signatures is a different mistake from a
147
+ // name that does not exist at all, and the author fixes it differently.
148
+ const known = this.signaturesOf(name);
149
+ if (known.length > 0) {
150
+ throw new Error(`No signature of ${name} accepts ${formatSignature(name, argTypes)}. ` +
151
+ `Known: ${known.join(', ')}`);
152
+ }
145
153
  throw new Error(`Unknown function ${formatSignature(name, argTypes)}`);
146
154
  }
155
+ /**
156
+ * Every registered signature of a function name, formatted for an error
157
+ * message, most specific first and without duplicates.
158
+ */
159
+ signaturesOf(name) {
160
+ const seen = new Set();
161
+ for (const key of this.implementations.keys()) {
162
+ const colonIdx = key.indexOf(':');
163
+ if ((colonIdx === -1 ? key : key.substring(0, colonIdx)) !== name)
164
+ continue;
165
+ const types = colonIdx === -1 ? '' : key.substring(colonIdx + 1).split(',')
166
+ .map(t => t.charAt(0).toUpperCase() + t.slice(1)).join(', ');
167
+ seen.add(`${name}(${types})`);
168
+ }
169
+ return [...seen];
170
+ }
147
171
  }
148
172
  exports.StdLib = StdLib;
149
173
  /**
@@ -207,6 +231,19 @@ function isBinaryOp(ir) {
207
231
  * Helper for Ruby-style postfix method call that wraps binary expressions in parens.
208
232
  * Use for: arg0.method() where Ruby's precedence requires parens around binary ops.
209
233
  */
234
+ /**
235
+ * Helper for a conversion that is a no-op in the target language.
236
+ *
237
+ * Returning the operand untouched loses its grouping: the parent sees a call
238
+ * node, decides it needs no parentheses, and re-associates the bare operand.
239
+ * `Float(a - b) / c` would emit as `a - b / c`.
240
+ */
241
+ function identity() {
242
+ return (args, ctx) => {
243
+ const emitted = ctx.emit(args[0]);
244
+ return isBinaryOp(args[0]) ? `(${emitted})` : emitted;
245
+ };
246
+ }
210
247
  function rubyMethod(method) {
211
248
  return (args, ctx) => {
212
249
  const emitted = ctx.emit(args[0]);
@@ -1 +1 @@
1
- {"version":3,"file":"stdlib.js","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdlib.js","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ function transformWithDepth(expr, env, defining, depth, maxDepth, allowUndefined
44
44
  const recurse = (e, newEnv = env, newDefining = defining) => transformWithDepth(e, newEnv, newDefining, nextDepth, maxDepth, allowUndefinedVariables);
45
45
  switch (expr.type) {
46
46
  case 'literal':
47
- return transformLiteral(expr.value);
47
+ return transformLiteral(expr.value, expr.isFloat);
48
48
  case 'string':
49
49
  return (0, ir_1.irString)(expr.value);
50
50
  case 'null':
@@ -105,6 +105,19 @@ function transformWithDepth(expr, env, defining, depth, maxDepth, allowUndefined
105
105
  const fnIR = recurse(expr.fn);
106
106
  const argsIR = expr.args.map((arg) => recurse(arg));
107
107
  const argTypes = argsIR.map(ir_1.inferType);
108
+ // Reject applying a plain variable that is not known to hold a function.
109
+ // A lambda parameter is typed `any`, so applying one to itself — the
110
+ // Y-combinator shape (x)(x) — would otherwise compile to an unbounded
111
+ // self-call and break Elo's termination guarantee. Immediately-invoked
112
+ // lambdas (callee is a lambda), functions stored in data (member_access,
113
+ // handled below) and let-bound functions (variable inferred as `fn`)
114
+ // remain allowed.
115
+ if (fnIR.type === 'variable' && (0, ir_1.inferType)(fnIR).kind !== 'fn') {
116
+ throw new Error(`'${fnIR.name}' cannot be called as a function: only lambdas, ` +
117
+ `let-bound functions and functions stored in data may be applied. ` +
118
+ `Applying an arbitrary value (such as a lambda parameter) is not ` +
119
+ `allowed because it could build non-terminating recursion.`);
120
+ }
108
121
  // Reject method-call syntax on member access unless it's a function stored in data
109
122
  // This prevents calling runtime methods like DateTime.diff() or String.toUpperCase()
110
123
  if (fnIR.type === 'member_access') {
@@ -164,6 +177,13 @@ const BUILTIN_TYPE_SELECTORS = new Set([
164
177
  * Transform an AST type expression to IR type expression
165
178
  */
166
179
  function transformTypeExprWithContext(typeExpr, env, defining, depth, maxDepth, allowUndefinedVariables) {
180
+ // Type expressions recurse in parallel to value expressions (nested arrays,
181
+ // schemas, unions). Count each level against the same guard so deeply nested
182
+ // types raise a typed error rather than overflowing the host call stack.
183
+ if (depth > maxDepth) {
184
+ throw new Error(`Maximum transform depth exceeded (${maxDepth})`);
185
+ }
186
+ const nextDepth = depth + 1;
167
187
  switch (typeExpr.kind) {
168
188
  case 'type_ref': {
169
189
  const name = typeExpr.name;
@@ -180,7 +200,7 @@ function transformTypeExprWithContext(typeExpr, env, defining, depth, maxDepth,
180
200
  case 'type_schema': {
181
201
  const props = typeExpr.properties.map(prop => ({
182
202
  key: prop.key,
183
- typeExpr: transformTypeExprWithContext(prop.typeExpr, env, defining, depth, maxDepth, allowUndefinedVariables),
203
+ typeExpr: transformTypeExprWithContext(prop.typeExpr, env, defining, nextDepth, maxDepth, allowUndefinedVariables),
184
204
  optional: prop.optional,
185
205
  }));
186
206
  // Transform extras if it's a TypeExpr, otherwise pass through as-is
@@ -189,37 +209,38 @@ function transformTypeExprWithContext(typeExpr, env, defining, depth, maxDepth,
189
209
  extras = typeExpr.extras;
190
210
  }
191
211
  else {
192
- extras = transformTypeExprWithContext(typeExpr.extras, env, defining, depth, maxDepth, allowUndefinedVariables);
212
+ extras = transformTypeExprWithContext(typeExpr.extras, env, defining, nextDepth, maxDepth, allowUndefinedVariables);
193
213
  }
194
214
  return (0, ir_1.irTypeSchema)(props, extras);
195
215
  }
196
216
  case 'subtype_constraint': {
197
217
  // Transform the base type
198
- const baseTypeIR = transformTypeExprWithContext(typeExpr.baseType, env, defining, depth, maxDepth, allowUndefinedVariables);
218
+ const baseTypeIR = transformTypeExprWithContext(typeExpr.baseType, env, defining, nextDepth, maxDepth, allowUndefinedVariables);
199
219
  // Transform each constraint with the variable in scope
200
220
  const constraintEnv = new Map(env);
201
221
  constraintEnv.set(typeExpr.variable, types_1.Types.any);
202
222
  const constraintsIR = typeExpr.constraints.map(c => ({
203
223
  label: c.label,
204
- condition: transformWithDepth(c.condition, constraintEnv, defining, depth, maxDepth, allowUndefinedVariables)
224
+ condition: transformWithDepth(c.condition, constraintEnv, defining, nextDepth, maxDepth, allowUndefinedVariables)
205
225
  }));
206
226
  return (0, ir_1.irSubtypeConstraint)(baseTypeIR, typeExpr.variable, constraintsIR);
207
227
  }
208
228
  case 'array_type':
209
- return (0, ir_1.irArrayType)(transformTypeExprWithContext(typeExpr.elementType, env, defining, depth, maxDepth, allowUndefinedVariables));
229
+ return (0, ir_1.irArrayType)(transformTypeExprWithContext(typeExpr.elementType, env, defining, nextDepth, maxDepth, allowUndefinedVariables));
210
230
  case 'union_type':
211
- return (0, ir_1.irUnionType)(typeExpr.types.map(t => transformTypeExprWithContext(t, env, defining, depth, maxDepth, allowUndefinedVariables)));
231
+ return (0, ir_1.irUnionType)(typeExpr.types.map(t => transformTypeExprWithContext(t, env, defining, nextDepth, maxDepth, allowUndefinedVariables)));
212
232
  }
213
233
  }
214
234
  /**
215
235
  * Transform a literal value (number or boolean)
216
236
  */
217
- function transformLiteral(value) {
237
+ function transformLiteral(value, isFloat = false) {
218
238
  if (typeof value === 'boolean') {
219
239
  return (0, ir_1.irBool)(value);
220
240
  }
221
- // Distinguish int from float
222
- if (Number.isInteger(value)) {
241
+ // Distinguish int from float. `Number.isInteger(1.0)` is true, so a literal
242
+ // written `1.0` only stays a float thanks to the marker set by the parser.
243
+ if (Number.isInteger(value) && !isFloat) {
223
244
  return (0, ir_1.irInt)(value);
224
245
  }
225
246
  return (0, ir_1.irFloat)(value);
@@ -236,6 +257,15 @@ function transformBinaryOp(operator, left, right, env, defining, depth, maxDepth
236
257
  if (!fn) {
237
258
  throw new Error(`Unknown binary operator: ${operator}`);
238
259
  }
260
+ // Multiplication is numeric (plus the documented String * Number repeat). An
261
+ // array operand is a type error: it is meaningless on SQL, coerces to NaN on
262
+ // JavaScript, and on Ruby/Python repeats the array — an unbounded allocation
263
+ // (`[1] * 1000000000` exhausts host memory). Reject it statically so the DoS
264
+ // cannot be written in Elo source.
265
+ if (fn === 'mul' && (leftType.kind === 'array' || rightType.kind === 'array')) {
266
+ throw new Error(`Array multiplication is not supported: '*' requires numeric operands ` +
267
+ `(or String * Number). Repeating an array is not a valid Elo operation.`);
268
+ }
239
269
  const resultType = typedefs_1.eloTypeDefs.lookup(fn, [leftType, rightType]);
240
270
  return (0, ir_1.irCall)(fn, [leftIR, rightIR], [leftType, rightType], resultType);
241
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA4EH,8BASC;AAlFD,6BA8Bc;AAEd,mCAAmD;AACnD,yCAAyC;AACzC,uCAAiD;AAEjD,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IACrD,aAAa;IACb,WAAW;IACX,WAAW;IACX,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;CACnB,CAAC,CAAC;AAwBH,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;GAEG;AACH,SAAgB,SAAS,CACvB,IAAU,EACV,MAAe,IAAI,GAAG,EAAE,EACxB,WAAwB,IAAI,GAAG,EAAE,EACjC,UAA4B,EAAE;IAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACvD,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,KAAK,CAAC;IACzE,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,IAAU,EACV,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,CAAC,CAAO,EAAE,SAAkB,GAAG,EAAE,cAA2B,QAAQ,EAAE,EAAE,CACtF,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE3F,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtC,KAAK,QAAQ;YACX,OAAO,IAAA,aAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,KAAK,MAAM;YACT,OAAO,IAAA,WAAM,GAAE,CAAC;QAElB,KAAK,MAAM;YACT,OAAO,IAAA,WAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,KAAK,UAAU;YACb,OAAO,IAAA,eAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,KAAK,UAAU;YACb,OAAO,IAAA,eAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,KAAK,UAAU;YACb,0DAA0D;YAC1D,uGAAuG;YACvG,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,IAAA,eAAU,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAK,CAAC,GAAG,CAAC,CAAC;QAEhE,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAE9H,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAEpH,KAAK,kBAAkB;YACrB,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,KAAK,eAAe;YAClB,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAElH,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,IAAA,cAAS,EAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,CAAC,QAAQ,kCAAkC;oBAClE,0DAA0D,CAC3D,CAAC;YACJ,CAAC;YAED,8DAA8D;YAC9D,gFAAgF;YAChF,MAAM,YAAY,GAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,CAAC,QAAQ,uBAAuB,UAAU,CAAC,IAAI,SAAS;oBAC/E,8EAA8E,CAC/E,CAAC;YACJ,CAAC;YAED,OAAO,IAAA,mBAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAE7G,KAAK,IAAI;YACP,OAAO,IAAA,SAAI,EACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CACnB,CAAC;QAEJ,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAE9G,KAAK,QAAQ;YACX,OAAO,IAAA,aAAQ,EACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC,CACJ,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO,IAAA,YAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzD,KAAK,aAAa;YAChB,OAAO,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAE9G,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,cAAS,CAAC,CAAC;YAEvC,mFAAmF;YACnF,qFAAqF;YACrF,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAA,cAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,YAAY,GAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,QAAQ,4BAA4B,UAAU,CAAC,IAAI,SAAS;wBAClF,+BAA+B,CAChC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,IAAA,YAAO,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAK,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,UAAU;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,kCAAkC;wBAC3D,0DAA0D,CAC3D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,IAAA,eAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,4BAA4B;YAC5B,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC5H,yDAAyD;YACzD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC7G,OAAO,IAAA,cAAS,EAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,6BAA6B;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;aAChC,CAAC,CAAC,CAAC;YACJ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAA,YAAO,EAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,KAAK;IACL,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,4BAA4B,CACnC,QAAkB,EAClB,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,6FAA6F;YAC7F,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,2FAA2F;gBAC3F,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,OAAO,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC;gBAC9G,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC,CAAC;YACJ,oEAAoE;YACpE,IAAI,MAAqD,CAAC;YAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,4BAA4B,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAClH,CAAC;YACD,OAAO,IAAA,iBAAY,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,0BAA0B;YAC1B,MAAM,UAAU,GAAG,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC5H,uDAAuD;YACvD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAK,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC;aAC9G,CAAC,CAAC,CAAC;YACJ,OAAO,IAAA,wBAAmB,EAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,YAAY;YACf,OAAO,IAAA,gBAAW,EAChB,4BAA4B,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAC5G,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO,IAAA,gBAAW,EAChB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAClH,CAAC;IACN,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAA,WAAM,EAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,6BAA6B;IAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAA,UAAK,EAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAAA,YAAO,EAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,QAAgB,EAChB,IAAU,EACV,KAAW,EACX,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,IAAA,cAAS,EAAC,MAAM,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC;IAErC,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,UAAU,GAAG,sBAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjE,OAAO,IAAA,WAAM,EAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,QAAgB,EAChB,OAAa,EACb,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACvG,MAAM,WAAW,GAAG,IAAA,cAAS,EAAC,SAAS,CAAC,CAAC;IAEzC,MAAM,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,UAAU,GAAG,sBAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzD,OAAO,IAAA,WAAM,EAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAA,WAAM,EAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,aAAK,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAA,WAAM,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;IAExD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,KAAK,EAAE,CAAC;QAEjB,KAAK,KAAK;YACR,OAAO,GAAG,EAAE,CAAC;QAEf,KAAK,UAAU;YACb,OAAO,IAAA,WAAM,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,IAAA,eAAU,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAK,CAAC,IAAI,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,IAAI,CAAC,CAAC;QAE/F,KAAK,WAAW;YACd,OAAO,IAAA,WAAM,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,IAAA,eAAU,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAK,CAAC,IAAI,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,IAAI,CAAC,CAAC;QAE/F,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE3E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAEzE,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE5E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE1E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE7E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE3E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE/E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE7E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE5E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE1E,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE/C,KAAK,KAAK;YACR,OAAO,IAAA,WAAM,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,aAAK,CAAC,QAAQ,CAAC,CAAC;QAE/C;YACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,IAAY,EACZ,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,2BAA2B;IAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,sBAAsB,CAAC,CAAC;IAC5F,CAAC;IAED,gFAAgF;IAChF,yEAAyE;IACzE,+EAA+E;IAC/E,0BAA0B;IAC1B,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,CAAC,KAAK,kCAAkC;gBAC3D,0DAA0D,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,4DAA4D;QAC5D,IAAA,8BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACnH,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,cAAS,CAAC,CAAC;IAEvC,mDAAmD;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACrC,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAA,eAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,IAAA,YAAO,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAK,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,uBAAuB;IACvB,MAAM,UAAU,GAAG,sBAAW,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,IAAA,WAAM,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,QAA8C,EAC9C,IAAU,EACV,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,4CAA4C;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC1C,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE/E,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QACjH,MAAM,SAAS,GAAG,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACpG,OAAO,IAAA,UAAK,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,MAAgB,EAChB,IAAU,EACV,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,oDAAoD;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAK,CAAC,GAAG,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IACpG,MAAM,UAAU,GAAG,IAAA,cAAS,EAAC,MAAM,CAAC,CAAC;IACrC,OAAO,IAAA,aAAQ,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,YAAoB,EACpB,GAAY,EACZ,QAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,uBAAgC;IAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CACjF,CAAC;IAEF,2FAA2F;IAC3F,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAA,cAAS,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,UAAU,GAAY,SAAS,CAAC;IACpC,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC7B,gFAAgF;QAChF,UAAU,GAAG,aAAK,CAAC,GAAG,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAA,cAAS,EAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,UAAU,GAAG,OAAO,CAAC;gBACrB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAA,kBAAa,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,SAAS,GAA2B;IACxC,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,cAAc,GAA2B;IAC7C,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACX,CAAC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enspirit/elo",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "A small expression language that compiles to Ruby, Javascript and PostgreSQL",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",