vega-interpreter 2.0.0 → 2.1.0
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,4 @@
|
|
|
1
|
-
import { ascending, isString } from 'vega-util';
|
|
1
|
+
import { ascending, isString, DisallowedObjectProperties } from 'vega-util';
|
|
2
2
|
|
|
3
3
|
function adjustSpatial (item, encode, swap) {
|
|
4
4
|
let t;
|
|
@@ -82,15 +82,7 @@ const apply = (m, args, cast) => {
|
|
|
82
82
|
const obj = cast ? cast(args[0]) : args[0];
|
|
83
83
|
return obj[m].apply(obj, slice.call(args, 1));
|
|
84
84
|
};
|
|
85
|
-
const datetime =
|
|
86
|
-
let m = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
87
|
-
let d = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
88
|
-
let H = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
89
|
-
let M = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
|
|
90
|
-
let S = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
|
|
91
|
-
let ms = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
|
|
92
|
-
return isString(yearOrTimestring) ? new Date(yearOrTimestring) : new Date(yearOrTimestring, m, d, H, M, S, ms);
|
|
93
|
-
};
|
|
85
|
+
const datetime = (yearOrTimestring, m = 0, d = 1, H = 0, M = 0, S = 0, ms = 0) => isString(yearOrTimestring) ? new Date(yearOrTimestring) : new Date(yearOrTimestring, m, d, H, M, S, ms);
|
|
94
86
|
var Functions = {
|
|
95
87
|
// math functions
|
|
96
88
|
isNaN: Number.isNaN,
|
|
@@ -221,7 +213,7 @@ const Visitors = {
|
|
|
221
213
|
$.memberDepth += 1;
|
|
222
214
|
const k = $(p.key);
|
|
223
215
|
$.memberDepth -= 1;
|
|
224
|
-
if (
|
|
216
|
+
if (DisallowedObjectProperties.has($(p.value))) {
|
|
225
217
|
// eslint-disable-next-line no-console
|
|
226
218
|
console.error(`Prevented interpretation of property "${k}" which could lead to insecure code execution`);
|
|
227
219
|
} else {
|
|
@@ -240,9 +232,7 @@ function interpret (ast, fn, params, datum, event, item) {
|
|
|
240
232
|
$.item = item;
|
|
241
233
|
|
|
242
234
|
// route event functions to annotated vega event context
|
|
243
|
-
EventFunctions.forEach(f => $.fn[f] =
|
|
244
|
-
return event.vega[f](...arguments);
|
|
245
|
-
});
|
|
235
|
+
EventFunctions.forEach(f => $.fn[f] = (...args) => event.vega[f](...args));
|
|
246
236
|
return $(ast);
|
|
247
237
|
}
|
|
248
238
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vega-interpreter.js","sources":["../src/adjust-spatial.js","../src/constants.js","../src/ops-binary.js","../src/ops-unary.js","../src/functions.js","../src/interpret.js","../src/expression.js"],"sourcesContent":["export default function(item, encode, swap) {\n let t;\n\n if (encode.x2) {\n if (encode.x) {\n if (swap && item.x > item.x2) {\n t = item.x;\n item.x = item.x2;\n item.x2 = t;\n }\n item.width = item.x2 - item.x;\n } else {\n item.x = item.x2 - (item.width || 0);\n }\n }\n\n if (encode.xc) {\n item.x = item.xc - (item.width || 0) / 2;\n }\n\n if (encode.y2) {\n if (encode.y) {\n if (swap && item.y > item.y2) {\n t = item.y;\n item.y = item.y2;\n item.y2 = t;\n }\n item.height = item.y2 - item.y;\n } else {\n item.y = item.y2 - (item.height || 0);\n }\n }\n\n if (encode.yc) {\n item.y = item.yc - (item.height || 0) / 2;\n }\n}\n","export default {\n NaN: NaN,\n E: Math.E,\n LN2: Math.LN2,\n LN10: Math.LN10,\n LOG2E: Math.LOG2E,\n LOG10E: Math.LOG10E,\n PI: Math.PI,\n SQRT1_2: Math.SQRT1_2,\n SQRT2: Math.SQRT2,\n MIN_VALUE: Number.MIN_VALUE,\n MAX_VALUE: Number.MAX_VALUE\n};\n","export default {\n '*': (a, b) => a * b,\n '+': (a, b) => a + b,\n '-': (a, b) => a - b,\n '/': (a, b) => a / b,\n '%': (a, b) => a % b,\n '>': (a, b) => a > b,\n '<': (a, b) => a < b,\n '<=': (a, b) => a <= b,\n '>=': (a, b) => a >= b,\n '==': (a, b) => a == b,\n '!=': (a, b) => a != b,\n '===': (a, b) => a === b,\n '!==': (a, b) => a !== b,\n '&': (a, b) => a & b,\n '|': (a, b) => a | b,\n '^': (a, b) => a ^ b,\n '<<': (a, b) => a << b,\n '>>': (a, b) => a >> b,\n '>>>': (a, b) => a >>> b\n};\n","export default {\n '+': a => +a,\n '-': a => -a,\n '~': a => ~a,\n '!': a => !a\n};\n","import { ascending, isString } from 'vega-util';\n\nconst slice = Array.prototype.slice;\n\nconst apply = (m, args, cast) => {\n const obj = cast ? cast(args[0]) : args[0];\n return obj[m].apply(obj, slice.call(args, 1));\n};\n\nconst datetime = (yearOrTimestring, m = 0, d = 1, H = 0, M = 0, S = 0, ms = 0) =>\n isString(yearOrTimestring)\n ? new Date(yearOrTimestring)\n : new Date(yearOrTimestring, m, d, H, M, S, ms);\n\nexport default {\n // math functions\n isNaN: Number.isNaN,\n isFinite: Number.isFinite,\n abs: Math.abs,\n acos: Math.acos,\n asin: Math.asin,\n atan: Math.atan,\n atan2: Math.atan2,\n ceil: Math.ceil,\n cos: Math.cos,\n exp: Math.exp,\n floor: Math.floor,\n log: Math.log,\n max: Math.max,\n min: Math.min,\n pow: Math.pow,\n random: Math.random,\n round: Math.round,\n sin: Math.sin,\n sqrt: Math.sqrt,\n tan: Math.tan,\n clamp: (a, b, c) => Math.max(b, Math.min(c, a)),\n\n // date functions\n now: Date.now,\n utc: Date.UTC,\n datetime: datetime,\n date: d => new Date(d).getDate(),\n day: d => new Date(d).getDay(),\n year: d => new Date(d).getFullYear(),\n month: d => new Date(d).getMonth(),\n hours: d => new Date(d).getHours(),\n minutes: d => new Date(d).getMinutes(),\n seconds: d => new Date(d).getSeconds(),\n milliseconds: d => new Date(d).getMilliseconds(),\n time: d => new Date(d).getTime(),\n timezoneoffset: d => new Date(d).getTimezoneOffset(),\n utcdate: d => new Date(d).getUTCDate(),\n utcday: d => new Date(d).getUTCDay(),\n utcyear: d => new Date(d).getUTCFullYear(),\n utcmonth: d => new Date(d).getUTCMonth(),\n utchours: d => new Date(d).getUTCHours(),\n utcminutes: d => new Date(d).getUTCMinutes(),\n utcseconds: d => new Date(d).getUTCSeconds(),\n utcmilliseconds: d => new Date(d).getUTCMilliseconds(),\n\n // sequence functions\n length: x => x.length,\n join: function() { return apply('join', arguments); },\n indexof: function() { return apply('indexOf', arguments); },\n lastindexof: function() { return apply('lastIndexOf', arguments); },\n slice: function() { return apply('slice', arguments); },\n reverse: x => x.slice().reverse(),\n sort: x => x.slice().sort(ascending),\n\n // string functions\n parseFloat: parseFloat,\n parseInt: parseInt,\n upper: x => String(x).toUpperCase(),\n lower: x => String(x).toLowerCase(),\n substring: function() { return apply('substring', arguments, String); },\n split: function() { return apply('split', arguments, String); },\n replace: function() { return apply('replace', arguments, String); },\n trim: x => String(x).trim(),\n // Base64 encode/decode\n // Convert binary string to base64-encoded ascii\n btoa: x => btoa(x),\n // Convert base64-encoded ascii to binary string\n atob: x => atob(x),\n\n // regexp functions\n regexp: RegExp,\n test: (r, t) => RegExp(r).test(t)\n};\n","import Constants from './constants.js';\nimport Ops from './ops-binary.js';\nimport Unary from './ops-unary.js';\nimport Functions from './functions.js';\n\nconst EventFunctions = ['view', 'item', 'group', 'xy', 'x', 'y'];\nconst DisallowedMethods = new Set([\n Function,\n eval,\n setTimeout,\n setInterval\n]);\n\nif (typeof setImmediate === 'function') DisallowedMethods.add(setImmediate);\n\nconst Visitors = {\n Literal: ($, n) => n.value,\n\n Identifier: ($, n) => {\n const id = n.name;\n return $.memberDepth > 0 ? id\n : id === 'datum' ? $.datum\n : id === 'event' ? $.event\n : id === 'item' ? $.item\n : Constants[id] || $.params['$' + id];\n },\n\n MemberExpression: ($, n) => {\n const d = !n.computed,\n o = $(n.object);\n if (d) $.memberDepth += 1;\n const p = $(n.property);\n if (d) $.memberDepth -= 1;\n if (DisallowedMethods.has(o[p])) {\n // eslint-disable-next-line no-console\n console.error(`Prevented interpretation of member \"${p}\" which could lead to insecure code execution`);\n return;\n }\n return o[p];\n },\n\n CallExpression: ($, n) => {\n const args = n.arguments;\n let name = n.callee.name;\n\n // handle special internal functions used by encoders\n // re-route to corresponding standard function\n if (name.startsWith('_')) {\n name = name.slice(1);\n }\n\n // special case \"if\" due to conditional evaluation of branches\n return name === 'if'\n ? ($(args[0]) ? $(args[1]) : $(args[2]))\n : ($.fn[name] || Functions[name]).apply($.fn, args.map($));\n },\n\n ArrayExpression: ($, n) => n.elements.map($),\n\n BinaryExpression: ($, n) => Ops[n.operator]($(n.left), $(n.right)),\n\n UnaryExpression: ($, n) => Unary[n.operator]($(n.argument)),\n\n ConditionalExpression: ($, n) => $(n.test)\n ? $(n.consequent)\n : $(n.alternate),\n\n LogicalExpression: ($, n) => n.operator === '&&'\n ? $(n.left) && $(n.right)\n : $(n.left) || $(n.right),\n\n ObjectExpression: ($, n) => n.properties.reduce((o, p) => {\n $.memberDepth += 1;\n const k = $(p.key);\n $.memberDepth -= 1;\n if (DisallowedMethods.has($(p.value))) {\n // eslint-disable-next-line no-console\n console.error(`Prevented interpretation of property \"${k}\" which could lead to insecure code execution`);\n } else {\n o[k] = $(p.value);\n }\n return o;\n }, {})\n};\n\nexport default function(ast, fn, params, datum, event, item) {\n const $ = n => Visitors[n.type]($, n);\n $.memberDepth = 0;\n $.fn = Object.create(fn);\n $.params = params;\n $.datum = datum;\n $.event = event;\n $.item = item;\n\n // route event functions to annotated vega event context\n EventFunctions.forEach(f => $.fn[f] = (...args) => event.vega[f](...args));\n\n return $(ast);\n}\n","import adjustSpatial from './adjust-spatial.js';\nimport interpret from './interpret.js';\n\nexport default {\n /**\n * Parse an expression used to update an operator value.\n */\n operator(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return _ => interpret(ast, fn, _);\n },\n\n /**\n * Parse an expression provided as an operator parameter value.\n */\n parameter(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return (datum, _) => interpret(ast, fn, _, datum);\n },\n\n /**\n * Parse an expression applied to an event stream.\n */\n event(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return event => interpret(ast, fn, undefined, undefined, event);\n },\n\n /**\n * Parse an expression used to handle an event-driven operator update.\n */\n handler(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return (_, event) => {\n const datum = event.item && event.item.datum;\n return interpret(ast, fn, _, datum, event);\n };\n },\n\n /**\n * Parse an expression that performs visual encoding.\n */\n encode(ctx, encode) {\n const {marktype, channels} = encode,\n fn = ctx.functions,\n swap = marktype === 'group'\n || marktype === 'image'\n || marktype === 'rect';\n\n return (item, _) => {\n const datum = item.datum;\n let m = 0, v;\n\n for (const name in channels) {\n v = interpret(channels[name].ast, fn, _, datum, undefined, item);\n if (item[name] !== v) {\n item[name] = v;\n m = 1;\n }\n }\n\n if (marktype !== 'rule') {\n adjustSpatial(item, channels, swap);\n }\n return m;\n };\n }\n};\n"],"names":["item","encode","swap","t","x2","x","width","xc","y2","y","height","yc","NaN","E","Math","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","MIN_VALUE","Number","MAX_VALUE","*","a","b","+","-","/","%",">","<","<=",">=","==","!=","===","!==","&","|","^","<<",">>",">>>","slice","Array","prototype","apply","m","args","cast","obj","call","datetime","yearOrTimestring","arguments","length","undefined","d","H","M","S","ms","isString","Date","isNaN","isFinite","abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","random","round","sin","sqrt","tan","clamp","c","now","utc","UTC","date","getDate","day","getDay","year","getFullYear","month","getMonth","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","time","getTime","timezoneoffset","getTimezoneOffset","utcdate","getUTCDate","utcday","getUTCDay","utcyear","getUTCFullYear","utcmonth","getUTCMonth","utchours","getUTCHours","utcminutes","getUTCMinutes","utcseconds","getUTCSeconds","utcmilliseconds","getUTCMilliseconds","join","indexof","lastindexof","reverse","sort","ascending","parseFloat","parseInt","upper","String","toUpperCase","lower","toLowerCase","substring","split","replace","trim","btoa","atob","regexp","RegExp","test","r","EventFunctions","DisallowedMethods","Set","Function","eval","setTimeout","setInterval","setImmediate","add","Visitors","Literal","$","n","value","Identifier","id","name","memberDepth","datum","event","Constants","params","MemberExpression","computed","o","object","p","property","has","console","error","CallExpression","callee","startsWith","fn","Functions","map","ArrayExpression","elements","BinaryExpression","Ops","operator","left","right","UnaryExpression","Unary","argument","ConditionalExpression","consequent","alternate","LogicalExpression","ObjectExpression","properties","reduce","k","key","ast","type","Object","create","forEach","f","vega","ctx","expr","functions","_","interpret","parameter","handler","marktype","channels","v","adjustSpatial"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vega-interpreter.js","sources":["../src/adjust-spatial.js","../src/constants.js","../src/ops-binary.js","../src/ops-unary.js","../src/functions.js","../src/interpret.js","../src/expression.js"],"sourcesContent":["export default function(item, encode, swap) {\n let t;\n\n if (encode.x2) {\n if (encode.x) {\n if (swap && item.x > item.x2) {\n t = item.x;\n item.x = item.x2;\n item.x2 = t;\n }\n item.width = item.x2 - item.x;\n } else {\n item.x = item.x2 - (item.width || 0);\n }\n }\n\n if (encode.xc) {\n item.x = item.xc - (item.width || 0) / 2;\n }\n\n if (encode.y2) {\n if (encode.y) {\n if (swap && item.y > item.y2) {\n t = item.y;\n item.y = item.y2;\n item.y2 = t;\n }\n item.height = item.y2 - item.y;\n } else {\n item.y = item.y2 - (item.height || 0);\n }\n }\n\n if (encode.yc) {\n item.y = item.yc - (item.height || 0) / 2;\n }\n}\n","export default {\n NaN: NaN,\n E: Math.E,\n LN2: Math.LN2,\n LN10: Math.LN10,\n LOG2E: Math.LOG2E,\n LOG10E: Math.LOG10E,\n PI: Math.PI,\n SQRT1_2: Math.SQRT1_2,\n SQRT2: Math.SQRT2,\n MIN_VALUE: Number.MIN_VALUE,\n MAX_VALUE: Number.MAX_VALUE\n};\n","export default {\n '*': (a, b) => a * b,\n '+': (a, b) => a + b,\n '-': (a, b) => a - b,\n '/': (a, b) => a / b,\n '%': (a, b) => a % b,\n '>': (a, b) => a > b,\n '<': (a, b) => a < b,\n '<=': (a, b) => a <= b,\n '>=': (a, b) => a >= b,\n '==': (a, b) => a == b,\n '!=': (a, b) => a != b,\n '===': (a, b) => a === b,\n '!==': (a, b) => a !== b,\n '&': (a, b) => a & b,\n '|': (a, b) => a | b,\n '^': (a, b) => a ^ b,\n '<<': (a, b) => a << b,\n '>>': (a, b) => a >> b,\n '>>>': (a, b) => a >>> b\n};\n","export default {\n '+': a => +a,\n '-': a => -a,\n '~': a => ~a,\n '!': a => !a\n};\n","import { ascending, isString } from 'vega-util';\n\nconst slice = Array.prototype.slice;\n\nconst apply = (m, args, cast) => {\n const obj = cast ? cast(args[0]) : args[0];\n return obj[m].apply(obj, slice.call(args, 1));\n};\n\nconst datetime = (yearOrTimestring, m = 0, d = 1, H = 0, M = 0, S = 0, ms = 0) =>\n isString(yearOrTimestring)\n ? new Date(yearOrTimestring)\n : new Date(yearOrTimestring, m, d, H, M, S, ms);\n\nexport default {\n // math functions\n isNaN: Number.isNaN,\n isFinite: Number.isFinite,\n abs: Math.abs,\n acos: Math.acos,\n asin: Math.asin,\n atan: Math.atan,\n atan2: Math.atan2,\n ceil: Math.ceil,\n cos: Math.cos,\n exp: Math.exp,\n floor: Math.floor,\n log: Math.log,\n max: Math.max,\n min: Math.min,\n pow: Math.pow,\n random: Math.random,\n round: Math.round,\n sin: Math.sin,\n sqrt: Math.sqrt,\n tan: Math.tan,\n clamp: (a, b, c) => Math.max(b, Math.min(c, a)),\n\n // date functions\n now: Date.now,\n utc: Date.UTC,\n datetime: datetime,\n date: d => new Date(d).getDate(),\n day: d => new Date(d).getDay(),\n year: d => new Date(d).getFullYear(),\n month: d => new Date(d).getMonth(),\n hours: d => new Date(d).getHours(),\n minutes: d => new Date(d).getMinutes(),\n seconds: d => new Date(d).getSeconds(),\n milliseconds: d => new Date(d).getMilliseconds(),\n time: d => new Date(d).getTime(),\n timezoneoffset: d => new Date(d).getTimezoneOffset(),\n utcdate: d => new Date(d).getUTCDate(),\n utcday: d => new Date(d).getUTCDay(),\n utcyear: d => new Date(d).getUTCFullYear(),\n utcmonth: d => new Date(d).getUTCMonth(),\n utchours: d => new Date(d).getUTCHours(),\n utcminutes: d => new Date(d).getUTCMinutes(),\n utcseconds: d => new Date(d).getUTCSeconds(),\n utcmilliseconds: d => new Date(d).getUTCMilliseconds(),\n\n // sequence functions\n length: x => x.length,\n join: function() { return apply('join', arguments); },\n indexof: function() { return apply('indexOf', arguments); },\n lastindexof: function() { return apply('lastIndexOf', arguments); },\n slice: function() { return apply('slice', arguments); },\n reverse: x => x.slice().reverse(),\n sort: x => x.slice().sort(ascending),\n\n // string functions\n parseFloat: parseFloat,\n parseInt: parseInt,\n upper: x => String(x).toUpperCase(),\n lower: x => String(x).toLowerCase(),\n substring: function() { return apply('substring', arguments, String); },\n split: function() { return apply('split', arguments, String); },\n replace: function() { return apply('replace', arguments, String); },\n trim: x => String(x).trim(),\n // Base64 encode/decode\n // Convert binary string to base64-encoded ascii\n btoa: x => btoa(x),\n // Convert base64-encoded ascii to binary string\n atob: x => atob(x),\n\n // regexp functions\n regexp: RegExp,\n test: (r, t) => RegExp(r).test(t)\n};\n","import Constants from './constants.js';\nimport Ops from './ops-binary.js';\nimport Unary from './ops-unary.js';\nimport Functions from './functions.js';\nimport {DisallowedObjectProperties} from 'vega-util';\n\nconst EventFunctions = ['view', 'item', 'group', 'xy', 'x', 'y'];\nconst DisallowedMethods = new Set([\n Function,\n eval,\n setTimeout,\n setInterval\n]);\n\nif (typeof setImmediate === 'function') DisallowedMethods.add(setImmediate);\n\nconst Visitors = {\n Literal: ($, n) => n.value,\n\n Identifier: ($, n) => {\n const id = n.name;\n return $.memberDepth > 0 ? id\n : id === 'datum' ? $.datum\n : id === 'event' ? $.event\n : id === 'item' ? $.item\n : Constants[id] || $.params['$' + id];\n },\n\n MemberExpression: ($, n) => {\n const d = !n.computed,\n o = $(n.object);\n if (d) $.memberDepth += 1;\n const p = $(n.property);\n if (d) $.memberDepth -= 1;\n if (DisallowedMethods.has(o[p])) {\n // eslint-disable-next-line no-console\n console.error(`Prevented interpretation of member \"${p}\" which could lead to insecure code execution`);\n return;\n }\n return o[p];\n },\n\n CallExpression: ($, n) => {\n const args = n.arguments;\n let name = n.callee.name;\n\n // handle special internal functions used by encoders\n // re-route to corresponding standard function\n if (name.startsWith('_')) {\n name = name.slice(1);\n }\n\n // special case \"if\" due to conditional evaluation of branches\n return name === 'if'\n ? ($(args[0]) ? $(args[1]) : $(args[2]))\n : ($.fn[name] || Functions[name]).apply($.fn, args.map($));\n },\n\n ArrayExpression: ($, n) => n.elements.map($),\n\n BinaryExpression: ($, n) => Ops[n.operator]($(n.left), $(n.right)),\n\n UnaryExpression: ($, n) => Unary[n.operator]($(n.argument)),\n\n ConditionalExpression: ($, n) => $(n.test)\n ? $(n.consequent)\n : $(n.alternate),\n\n LogicalExpression: ($, n) => n.operator === '&&'\n ? $(n.left) && $(n.right)\n : $(n.left) || $(n.right),\n\n ObjectExpression: ($, n) => n.properties.reduce((o, p) => {\n $.memberDepth += 1;\n const k = $(p.key);\n $.memberDepth -= 1;\n if (DisallowedObjectProperties.has($(p.value))) {\n // eslint-disable-next-line no-console\n console.error(`Prevented interpretation of property \"${k}\" which could lead to insecure code execution`);\n } else {\n o[k] = $(p.value);\n }\n return o;\n }, {})\n};\n\nexport default function(ast, fn, params, datum, event, item) {\n const $ = n => Visitors[n.type]($, n);\n $.memberDepth = 0;\n $.fn = Object.create(fn);\n $.params = params;\n $.datum = datum;\n $.event = event;\n $.item = item;\n\n // route event functions to annotated vega event context\n EventFunctions.forEach(f => $.fn[f] = (...args) => event.vega[f](...args));\n\n return $(ast);\n}\n","import adjustSpatial from './adjust-spatial.js';\nimport interpret from './interpret.js';\n\nexport default {\n /**\n * Parse an expression used to update an operator value.\n */\n operator(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return _ => interpret(ast, fn, _);\n },\n\n /**\n * Parse an expression provided as an operator parameter value.\n */\n parameter(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return (datum, _) => interpret(ast, fn, _, datum);\n },\n\n /**\n * Parse an expression applied to an event stream.\n */\n event(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return event => interpret(ast, fn, undefined, undefined, event);\n },\n\n /**\n * Parse an expression used to handle an event-driven operator update.\n */\n handler(ctx, expr) {\n const ast = expr.ast, fn = ctx.functions;\n return (_, event) => {\n const datum = event.item && event.item.datum;\n return interpret(ast, fn, _, datum, event);\n };\n },\n\n /**\n * Parse an expression that performs visual encoding.\n */\n encode(ctx, encode) {\n const {marktype, channels} = encode,\n fn = ctx.functions,\n swap = marktype === 'group'\n || marktype === 'image'\n || marktype === 'rect';\n\n return (item, _) => {\n const datum = item.datum;\n let m = 0, v;\n\n for (const name in channels) {\n v = interpret(channels[name].ast, fn, _, datum, undefined, item);\n if (item[name] !== v) {\n item[name] = v;\n m = 1;\n }\n }\n\n if (marktype !== 'rule') {\n adjustSpatial(item, channels, swap);\n }\n return m;\n };\n }\n};\n"],"names":["item","encode","swap","t","x2","x","width","xc","y2","y","height","yc","NaN","E","Math","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","MIN_VALUE","Number","MAX_VALUE","*","a","b","+","-","/","%",">","<","<=",">=","==","!=","===","!==","&","|","^","<<",">>",">>>","slice","Array","prototype","apply","m","args","cast","obj","call","datetime","yearOrTimestring","d","H","M","S","ms","isString","Date","isNaN","isFinite","abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","random","round","sin","sqrt","tan","clamp","c","now","utc","UTC","date","getDate","day","getDay","year","getFullYear","month","getMonth","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","time","getTime","timezoneoffset","getTimezoneOffset","utcdate","getUTCDate","utcday","getUTCDay","utcyear","getUTCFullYear","utcmonth","getUTCMonth","utchours","getUTCHours","utcminutes","getUTCMinutes","utcseconds","getUTCSeconds","utcmilliseconds","getUTCMilliseconds","length","join","arguments","indexof","lastindexof","reverse","sort","ascending","parseFloat","parseInt","upper","String","toUpperCase","lower","toLowerCase","substring","split","replace","trim","btoa","atob","regexp","RegExp","test","r","EventFunctions","DisallowedMethods","Set","Function","eval","setTimeout","setInterval","setImmediate","add","Visitors","Literal","$","n","value","Identifier","id","name","memberDepth","datum","event","Constants","params","MemberExpression","computed","o","object","p","property","has","console","error","CallExpression","callee","startsWith","fn","Functions","map","ArrayExpression","elements","BinaryExpression","Ops","operator","left","right","UnaryExpression","Unary","argument","ConditionalExpression","consequent","alternate","LogicalExpression","ObjectExpression","properties","reduce","k","key","DisallowedObjectProperties","ast","type","Object","create","forEach","f","vega","ctx","expr","functions","_","interpret","parameter","undefined","handler","marktype","channels","v","adjustSpatial"],"mappings":";;AAAe,wBAASA,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAE;AAC1C,EAAA,IAAIC,CAAC;EAEL,IAAIF,MAAM,CAACG,EAAE,EAAE;IACb,IAAIH,MAAM,CAACI,CAAC,EAAE;MACZ,IAAIH,IAAI,IAAIF,IAAI,CAACK,CAAC,GAAGL,IAAI,CAACI,EAAE,EAAE;QAC5BD,CAAC,GAAGH,IAAI,CAACK,CAAC;AACVL,QAAAA,IAAI,CAACK,CAAC,GAAGL,IAAI,CAACI,EAAE;QAChBJ,IAAI,CAACI,EAAE,GAAGD,CAAC;AACb,MAAA;MACAH,IAAI,CAACM,KAAK,GAAGN,IAAI,CAACI,EAAE,GAAGJ,IAAI,CAACK,CAAC;AAC/B,IAAA,CAAC,MAAM;AACLL,MAAAA,IAAI,CAACK,CAAC,GAAGL,IAAI,CAACI,EAAE,IAAIJ,IAAI,CAACM,KAAK,IAAI,CAAC,CAAC;AACtC,IAAA;AACF,EAAA;EAEA,IAAIL,MAAM,CAACM,EAAE,EAAE;AACbP,IAAAA,IAAI,CAACK,CAAC,GAAGL,IAAI,CAACO,EAAE,GAAG,CAACP,IAAI,CAACM,KAAK,IAAI,CAAC,IAAI,CAAC;AAC1C,EAAA;EAEA,IAAIL,MAAM,CAACO,EAAE,EAAE;IACb,IAAIP,MAAM,CAACQ,CAAC,EAAE;MACZ,IAAIP,IAAI,IAAIF,IAAI,CAACS,CAAC,GAAGT,IAAI,CAACQ,EAAE,EAAE;QAC5BL,CAAC,GAAGH,IAAI,CAACS,CAAC;AACVT,QAAAA,IAAI,CAACS,CAAC,GAAGT,IAAI,CAACQ,EAAE;QAChBR,IAAI,CAACQ,EAAE,GAAGL,CAAC;AACb,MAAA;MACAH,IAAI,CAACU,MAAM,GAAGV,IAAI,CAACQ,EAAE,GAAGR,IAAI,CAACS,CAAC;AAChC,IAAA,CAAC,MAAM;AACLT,MAAAA,IAAI,CAACS,CAAC,GAAGT,IAAI,CAACQ,EAAE,IAAIR,IAAI,CAACU,MAAM,IAAI,CAAC,CAAC;AACvC,IAAA;AACF,EAAA;EAEA,IAAIT,MAAM,CAACU,EAAE,EAAE;AACbX,IAAAA,IAAI,CAACS,CAAC,GAAGT,IAAI,CAACW,EAAE,GAAG,CAACX,IAAI,CAACU,MAAM,IAAI,CAAC,IAAI,CAAC;AAC3C,EAAA;AACF;;ACpCA,gBAAe;AACbE,EAAAA,GAAG,EAASA,GAAG;EACfC,CAAC,EAAWC,IAAI,CAACD,CAAC;EAClBE,GAAG,EAASD,IAAI,CAACC,GAAG;EACpBC,IAAI,EAAQF,IAAI,CAACE,IAAI;EACrBC,KAAK,EAAOH,IAAI,CAACG,KAAK;EACtBC,MAAM,EAAMJ,IAAI,CAACI,MAAM;EACvBC,EAAE,EAAUL,IAAI,CAACK,EAAE;EACnBC,OAAO,EAAKN,IAAI,CAACM,OAAO;EACxBC,KAAK,EAAOP,IAAI,CAACO,KAAK;EACtBC,SAAS,EAAGC,MAAM,CAACD,SAAS;EAC5BE,SAAS,EAAGD,MAAM,CAACC;AACrB,CAAC;;ACZD,UAAe;EACb,GAAG,EAAEC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEC,CAACF,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEE,CAACH,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEG,CAACJ,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEI,CAACL,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEK,CAACN,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEM,CAACP,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,IAAI,EAAEO,CAACR,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC;EACtB,IAAI,EAAEQ,CAACT,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC;EACtB,IAAI,EAAES,CAACV,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC;EACtB,IAAI,EAAEU,CAACX,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC;EACtB,KAAK,EAAEW,CAACZ,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKC,CAAC;EACxB,KAAK,EAAEY,CAACb,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKC,CAAC;EACxB,GAAG,EAAEa,CAACd,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEc,CAACf,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,GAAG,EAAEe,CAAChB,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACpB,IAAI,EAAEgB,CAACjB,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC;EACtB,IAAI,EAAEiB,CAAClB,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC;AACtB,EAAA,KAAK,EAAEkB,CAACnB,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKC;AACzB,CAAC;;ACpBD,YAAe;AACb,EAAA,GAAG,EAAED,CAAC,IAAI,CAACA,CAAC;AACZ,EAAA,GAAG,EAAEA,CAAC,IAAI,CAACA,CAAC;AACZ,EAAA,GAAG,EAAEA,CAAC,IAAI,CAACA,CAAC;EACZ,GAAG,EAAEA,CAAC,IAAI,CAACA;AACb,CAAC;;ACHD,MAAMoB,KAAK,GAAGC,KAAK,CAACC,SAAS,CAACF,KAAK;AAEnC,MAAMG,KAAK,GAAGA,CAACC,CAAC,EAAEC,IAAI,EAAEC,IAAI,KAAK;AAC/B,EAAA,MAAMC,GAAG,GAAGD,IAAI,GAAGA,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC;AAC1C,EAAA,OAAOE,GAAG,CAACH,CAAC,CAAC,CAACD,KAAK,CAACI,GAAG,EAAEP,KAAK,CAACQ,IAAI,CAACH,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAMI,QAAQ,GAAGA,CAACC,gBAAgB,EAAEN,CAAC,GAAG,CAAC,EAAEO,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,KAC1EC,QAAQ,CAACN,gBAAgB,CAAC,GACtB,IAAIO,IAAI,CAACP,gBAAgB,CAAC,GAC1B,IAAIO,IAAI,CAACP,gBAAgB,EAAEN,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,EAAE,CAAC;AAEpD,gBAAe;AACb;EACAG,KAAK,EAAMzC,MAAM,CAACyC,KAAK;EACvBC,QAAQ,EAAG1C,MAAM,CAAC0C,QAAQ;EAC1BC,GAAG,EAAQpD,IAAI,CAACoD,GAAG;EACnBC,IAAI,EAAOrD,IAAI,CAACqD,IAAI;EACpBC,IAAI,EAAOtD,IAAI,CAACsD,IAAI;EACpBC,IAAI,EAAOvD,IAAI,CAACuD,IAAI;EACpBC,KAAK,EAAMxD,IAAI,CAACwD,KAAK;EACrBC,IAAI,EAAOzD,IAAI,CAACyD,IAAI;EACpBC,GAAG,EAAQ1D,IAAI,CAAC0D,GAAG;EACnBC,GAAG,EAAQ3D,IAAI,CAAC2D,GAAG;EACnBC,KAAK,EAAM5D,IAAI,CAAC4D,KAAK;EACrBC,GAAG,EAAQ7D,IAAI,CAAC6D,GAAG;EACnBC,GAAG,EAAQ9D,IAAI,CAAC8D,GAAG;EACnBC,GAAG,EAAQ/D,IAAI,CAAC+D,GAAG;EACnBC,GAAG,EAAQhE,IAAI,CAACgE,GAAG;EACnBC,MAAM,EAAKjE,IAAI,CAACiE,MAAM;EACtBC,KAAK,EAAMlE,IAAI,CAACkE,KAAK;EACrBC,GAAG,EAAQnE,IAAI,CAACmE,GAAG;EACnBC,IAAI,EAAOpE,IAAI,CAACoE,IAAI;EACpBC,GAAG,EAAQrE,IAAI,CAACqE,GAAG;EACnBC,KAAK,EAAMA,CAAC1D,CAAC,EAAEC,CAAC,EAAE0D,CAAC,KAAKvE,IAAI,CAAC8D,GAAG,CAACjD,CAAC,EAAEb,IAAI,CAAC+D,GAAG,CAACQ,CAAC,EAAE3D,CAAC,CAAC,CAAC;AAEnD;EACA4D,GAAG,EAAevB,IAAI,CAACuB,GAAG;EAC1BC,GAAG,EAAexB,IAAI,CAACyB,GAAG;AAC1BjC,EAAAA,QAAQ,EAAUA,QAAQ;EAC1BkC,IAAI,EAAchC,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACiC,OAAO,EAAE;EAC5CC,GAAG,EAAelC,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACmC,MAAM,EAAE;EAC3CC,IAAI,EAAcpC,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACqC,WAAW,EAAE;EAChDC,KAAK,EAAatC,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACuC,QAAQ,EAAE;EAC7CC,KAAK,EAAaxC,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACyC,QAAQ,EAAE;EAC7CC,OAAO,EAAW1C,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAAC2C,UAAU,EAAE;EAC/CC,OAAO,EAAW5C,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAAC6C,UAAU,EAAE;EAC/CC,YAAY,EAAM9C,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAAC+C,eAAe,EAAE;EACpDC,IAAI,EAAchD,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACiD,OAAO,EAAE;EAC5CC,cAAc,EAAIlD,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACmD,iBAAiB,EAAE;EACtDC,OAAO,EAAWpD,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACqD,UAAU,EAAE;EAC/CC,MAAM,EAAYtD,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACuD,SAAS,EAAE;EAC9CC,OAAO,EAAWxD,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACyD,cAAc,EAAE;EACnDC,QAAQ,EAAU1D,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAAC2D,WAAW,EAAE;EAChDC,QAAQ,EAAU5D,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAAC6D,WAAW,EAAE;EAChDC,UAAU,EAAQ9D,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAAC+D,aAAa,EAAE;EAClDC,UAAU,EAAQhE,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACiE,aAAa,EAAE;EAClDC,eAAe,EAAGlE,CAAC,IAAI,IAAIM,IAAI,CAACN,CAAC,CAAC,CAACmE,kBAAkB,EAAE;AAEvD;AACAC,EAAAA,MAAM,EAAQxH,CAAC,IAAIA,CAAC,CAACwH,MAAM;EAC3BC,IAAI,EAAU,YAAW;AAAE,IAAA,OAAO7E,KAAK,CAAC,MAAM,EAAE8E,SAAS,CAAC;EAAE,CAAC;EAC7DC,OAAO,EAAO,YAAW;AAAE,IAAA,OAAO/E,KAAK,CAAC,SAAS,EAAE8E,SAAS,CAAC;EAAE,CAAC;EAChEE,WAAW,EAAG,YAAW;AAAE,IAAA,OAAOhF,KAAK,CAAC,aAAa,EAAE8E,SAAS,CAAC;EAAE,CAAC;EACpEjF,KAAK,EAAS,YAAW;AAAE,IAAA,OAAOG,KAAK,CAAC,OAAO,EAAE8E,SAAS,CAAC;EAAE,CAAC;EAC9DG,OAAO,EAAO7H,CAAC,IAAIA,CAAC,CAACyC,KAAK,EAAE,CAACoF,OAAO,EAAE;AACtCC,EAAAA,IAAI,EAAU9H,CAAC,IAAIA,CAAC,CAACyC,KAAK,EAAE,CAACqF,IAAI,CAACC,SAAS,CAAC;AAE5C;AACAC,EAAAA,UAAU,EAAIA,UAAU;AACxBC,EAAAA,QAAQ,EAAMA,QAAQ;EACtBC,KAAK,EAASlI,CAAC,IAAImI,MAAM,CAACnI,CAAC,CAAC,CAACoI,WAAW,EAAE;EAC1CC,KAAK,EAASrI,CAAC,IAAImI,MAAM,CAACnI,CAAC,CAAC,CAACsI,WAAW,EAAE;EAC1CC,SAAS,EAAK,YAAW;AAAE,IAAA,OAAO3F,KAAK,CAAC,WAAW,EAAE8E,SAAS,EAAES,MAAM,CAAC;EAAE,CAAC;EAC1EK,KAAK,EAAS,YAAW;AAAE,IAAA,OAAO5F,KAAK,CAAC,OAAO,EAAE8E,SAAS,EAAES,MAAM,CAAC;EAAE,CAAC;EACtEM,OAAO,EAAO,YAAW;AAAE,IAAA,OAAO7F,KAAK,CAAC,SAAS,EAAE8E,SAAS,EAAES,MAAM,CAAC;EAAE,CAAC;EACxEO,IAAI,EAAU1I,CAAC,IAAImI,MAAM,CAACnI,CAAC,CAAC,CAAC0I,IAAI,EAAE;AACnC;AACA;AACAC,EAAAA,IAAI,EAAU3I,CAAC,IAAI2I,IAAI,CAAC3I,CAAC,CAAC;AAC1B;AACA4I,EAAAA,IAAI,EAAU5I,CAAC,IAAI4I,IAAI,CAAC5I,CAAC,CAAC;AAE1B;AACA6I,EAAAA,MAAM,EAAQC,MAAM;AACpBC,EAAAA,IAAI,EAAUA,CAACC,CAAC,EAAElJ,CAAC,KAAKgJ,MAAM,CAACE,CAAC,CAAC,CAACD,IAAI,CAACjJ,CAAC;AAC1C,CAAC;;AClFD,MAAMmJ,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AAChE,MAAMC,iBAAiB,GAAG,IAAIC,GAAG,CAAC,CAChCC,QAAQ,EACRC,IAAI,EACJC,UAAU,EACVC,WAAW,CACZ,CAAC;AAEF,IAAI,OAAOC,YAAY,KAAK,UAAU,EAAEN,iBAAiB,CAACO,GAAG,CAACD,YAAY,CAAC;AAE3E,MAAME,QAAQ,GAAG;EACfC,OAAO,EAAEA,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACC,KAAK;AAE1BC,EAAAA,UAAU,EAAEA,CAACH,CAAC,EAAEC,CAAC,KAAK;AACpB,IAAA,MAAMG,EAAE,GAAGH,CAAC,CAACI,IAAI;IACjB,OAAOL,CAAC,CAACM,WAAW,GAAG,CAAC,GAAGF,EAAE,GACzBA,EAAE,KAAK,OAAO,GAAGJ,CAAC,CAACO,KAAK,GACxBH,EAAE,KAAK,OAAO,GAAGJ,CAAC,CAACQ,KAAK,GACxBJ,EAAE,KAAK,MAAM,GAAGJ,CAAC,CAACjK,IAAI,GACtB0K,SAAS,CAACL,EAAE,CAAC,IAAIJ,CAAC,CAACU,MAAM,CAAC,GAAG,GAAGN,EAAE,CAAC;EACzC,CAAC;AAEDO,EAAAA,gBAAgB,EAAEA,CAACX,CAAC,EAAEC,CAAC,KAAK;AAC1B,IAAA,MAAMzG,CAAC,GAAG,CAACyG,CAAC,CAACW,QAAQ;AACfC,MAAAA,CAAC,GAAGb,CAAC,CAACC,CAAC,CAACa,MAAM,CAAC;AACrB,IAAA,IAAItH,CAAC,EAAEwG,CAAC,CAACM,WAAW,IAAI,CAAC;AACzB,IAAA,MAAMS,CAAC,GAAGf,CAAC,CAACC,CAAC,CAACe,QAAQ,CAAC;AACvB,IAAA,IAAIxH,CAAC,EAAEwG,CAAC,CAACM,WAAW,IAAI,CAAC;IACzB,IAAIhB,iBAAiB,CAAC2B,GAAG,CAACJ,CAAC,CAACE,CAAC,CAAC,CAAC,EAAE;AAC/B;AACAG,MAAAA,OAAO,CAACC,KAAK,CAAC,CAAA,oCAAA,EAAuCJ,CAAC,+CAA+C,CAAC;AACtG,MAAA;AACF,IAAA;IACA,OAAOF,CAAC,CAACE,CAAC,CAAC;EACb,CAAC;AAEDK,EAAAA,cAAc,EAAEA,CAACpB,CAAC,EAAEC,CAAC,KAAK;AACxB,IAAA,MAAM/G,IAAI,GAAG+G,CAAC,CAACnC,SAAS;AACxB,IAAA,IAAIuC,IAAI,GAAGJ,CAAC,CAACoB,MAAM,CAAChB,IAAI;;AAExB;AACA;AACA,IAAA,IAAIA,IAAI,CAACiB,UAAU,CAAC,GAAG,CAAC,EAAE;AACxBjB,MAAAA,IAAI,GAAGA,IAAI,CAACxH,KAAK,CAAC,CAAC,CAAC;AACtB,IAAA;;AAEA;IACA,OAAOwH,IAAI,KAAK,IAAI,GACfL,CAAC,CAAC9G,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG8G,CAAC,CAAC9G,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG8G,CAAC,CAAC9G,IAAI,CAAC,CAAC,CAAC,CAAC,GACrC,CAAC8G,CAAC,CAACuB,EAAE,CAAClB,IAAI,CAAC,IAAImB,SAAS,CAACnB,IAAI,CAAC,EAAErH,KAAK,CAACgH,CAAC,CAACuB,EAAE,EAAErI,IAAI,CAACuI,GAAG,CAACzB,CAAC,CAAC,CAAC;EAC9D,CAAC;AAED0B,EAAAA,eAAe,EAAEA,CAAC1B,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC0B,QAAQ,CAACF,GAAG,CAACzB,CAAC,CAAC;EAE5C4B,gBAAgB,EAAEA,CAAC5B,CAAC,EAAEC,CAAC,KAAK4B,GAAG,CAAC5B,CAAC,CAAC6B,QAAQ,CAAC,CAAC9B,CAAC,CAACC,CAAC,CAAC8B,IAAI,CAAC,EAAE/B,CAAC,CAACC,CAAC,CAAC+B,KAAK,CAAC,CAAC;AAElEC,EAAAA,eAAe,EAAEA,CAACjC,CAAC,EAAEC,CAAC,KAAKiC,KAAK,CAACjC,CAAC,CAAC6B,QAAQ,CAAC,CAAC9B,CAAC,CAACC,CAAC,CAACkC,QAAQ,CAAC,CAAC;EAE3DC,qBAAqB,EAAEA,CAACpC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACC,CAAC,CAACd,IAAI,CAAC,GACtCa,CAAC,CAACC,CAAC,CAACoC,UAAU,CAAC,GACfrC,CAAC,CAACC,CAAC,CAACqC,SAAS,CAAC;AAElBC,EAAAA,iBAAiB,EAAEA,CAACvC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC6B,QAAQ,KAAK,IAAI,GAC5C9B,CAAC,CAACC,CAAC,CAAC8B,IAAI,CAAC,IAAI/B,CAAC,CAACC,CAAC,CAAC+B,KAAK,CAAC,GACvBhC,CAAC,CAACC,CAAC,CAAC8B,IAAI,CAAC,IAAI/B,CAAC,CAACC,CAAC,CAAC+B,KAAK,CAAC;AAE3BQ,EAAAA,gBAAgB,EAAEA,CAACxC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACwC,UAAU,CAACC,MAAM,CAAC,CAAC7B,CAAC,EAAEE,CAAC,KAAK;IACxDf,CAAC,CAACM,WAAW,IAAI,CAAC;AAClB,IAAA,MAAMqC,CAAC,GAAG3C,CAAC,CAACe,CAAC,CAAC6B,GAAG,CAAC;IAClB5C,CAAC,CAACM,WAAW,IAAI,CAAC;IAClB,IAAIuC,0BAA0B,CAAC5B,GAAG,CAACjB,CAAC,CAACe,CAAC,CAACb,KAAK,CAAC,CAAC,EAAE;AAC9C;AACAgB,MAAAA,OAAO,CAACC,KAAK,CAAC,CAAA,sCAAA,EAAyCwB,CAAC,+CAA+C,CAAC;AAC1G,IAAA,CAAC,MAAM;MACL9B,CAAC,CAAC8B,CAAC,CAAC,GAAG3C,CAAC,CAACe,CAAC,CAACb,KAAK,CAAC;AACnB,IAAA;AACA,IAAA,OAAOW,CAAC;EACV,CAAC,EAAE,EAAE;AACP,CAAC;AAEc,kBAAA,EAASiC,GAAG,EAAEvB,EAAE,EAAEb,MAAM,EAAEH,KAAK,EAAEC,KAAK,EAAEzK,IAAI,EAAE;AAC3D,EAAA,MAAMiK,CAAC,GAAGC,CAAC,IAAIH,QAAQ,CAACG,CAAC,CAAC8C,IAAI,CAAC,CAAC/C,CAAC,EAAEC,CAAC,CAAC;EACrCD,CAAC,CAACM,WAAW,GAAG,CAAC;EACjBN,CAAC,CAACuB,EAAE,GAAGyB,MAAM,CAACC,MAAM,CAAC1B,EAAE,CAAC;EACxBvB,CAAC,CAACU,MAAM,GAAGA,MAAM;EACjBV,CAAC,CAACO,KAAK,GAAGA,KAAK;EACfP,CAAC,CAACQ,KAAK,GAAGA,KAAK;EACfR,CAAC,CAACjK,IAAI,GAAGA,IAAI;;AAEb;EACAsJ,cAAc,CAAC6D,OAAO,CAACC,CAAC,IAAInD,CAAC,CAACuB,EAAE,CAAC4B,CAAC,CAAC,GAAG,CAAC,GAAGjK,IAAI,KAAKsH,KAAK,CAAC4C,IAAI,CAACD,CAAC,CAAC,CAAC,GAAGjK,IAAI,CAAC,CAAC;EAE1E,OAAO8G,CAAC,CAAC8C,GAAG,CAAC;AACf;;AChGA,iBAAe;AACb;AACF;AACA;AACEhB,EAAAA,QAAQA,CAACuB,GAAG,EAAEC,IAAI,EAAE;AAClB,IAAA,MAAMR,GAAG,GAAGQ,IAAI,CAACR,GAAG;MAAEvB,EAAE,GAAG8B,GAAG,CAACE,SAAS;IACxC,OAAOC,CAAC,IAAIC,SAAS,CAACX,GAAG,EAAEvB,EAAE,EAAEiC,CAAC,CAAC;EACnC,CAAC;AAED;AACF;AACA;AACEE,EAAAA,SAASA,CAACL,GAAG,EAAEC,IAAI,EAAE;AACnB,IAAA,MAAMR,GAAG,GAAGQ,IAAI,CAACR,GAAG;MAAEvB,EAAE,GAAG8B,GAAG,CAACE,SAAS;AACxC,IAAA,OAAO,CAAChD,KAAK,EAAEiD,CAAC,KAAKC,SAAS,CAACX,GAAG,EAAEvB,EAAE,EAAEiC,CAAC,EAAEjD,KAAK,CAAC;EACnD,CAAC;AAED;AACF;AACA;AACEC,EAAAA,KAAKA,CAAC6C,GAAG,EAAEC,IAAI,EAAE;AACf,IAAA,MAAMR,GAAG,GAAGQ,IAAI,CAACR,GAAG;MAAEvB,EAAE,GAAG8B,GAAG,CAACE,SAAS;AACxC,IAAA,OAAO/C,KAAK,IAAIiD,SAAS,CAACX,GAAG,EAAEvB,EAAE,EAAEoC,SAAS,EAAEA,SAAS,EAAEnD,KAAK,CAAC;EACjE,CAAC;AAED;AACF;AACA;AACEoD,EAAAA,OAAOA,CAACP,GAAG,EAAEC,IAAI,EAAE;AACjB,IAAA,MAAMR,GAAG,GAAGQ,IAAI,CAACR,GAAG;MAAEvB,EAAE,GAAG8B,GAAG,CAACE,SAAS;AACxC,IAAA,OAAO,CAACC,CAAC,EAAEhD,KAAK,KAAK;MACnB,MAAMD,KAAK,GAAGC,KAAK,CAACzK,IAAI,IAAIyK,KAAK,CAACzK,IAAI,CAACwK,KAAK;MAC5C,OAAOkD,SAAS,CAACX,GAAG,EAAEvB,EAAE,EAAEiC,CAAC,EAAEjD,KAAK,EAAEC,KAAK,CAAC;IAC5C,CAAC;EACH,CAAC;AAED;AACF;AACA;AACExK,EAAAA,MAAMA,CAACqN,GAAG,EAAErN,MAAM,EAAE;IAClB,MAAM;QAAC6N,QAAQ;AAAEC,QAAAA;AAAQ,OAAC,GAAG9N,MAAM;MAC7BuL,EAAE,GAAG8B,GAAG,CAACE,SAAS;MAClBtN,IAAI,GAAG4N,QAAQ,KAAK,OAAO,IACpBA,QAAQ,KAAK,OAAO,IACpBA,QAAQ,KAAK,MAAM;AAEhC,IAAA,OAAO,CAAC9N,IAAI,EAAEyN,CAAC,KAAK;AAClB,MAAA,MAAMjD,KAAK,GAAGxK,IAAI,CAACwK,KAAK;MACxB,IAAItH,CAAC,GAAG,CAAC;QAAE8K,CAAC;AAEZ,MAAA,KAAK,MAAM1D,IAAI,IAAIyD,QAAQ,EAAE;AAC3BC,QAAAA,CAAC,GAAGN,SAAS,CAACK,QAAQ,CAACzD,IAAI,CAAC,CAACyC,GAAG,EAAEvB,EAAE,EAAEiC,CAAC,EAAEjD,KAAK,EAAEoD,SAAS,EAAE5N,IAAI,CAAC;AAChE,QAAA,IAAIA,IAAI,CAACsK,IAAI,CAAC,KAAK0D,CAAC,EAAE;AACpBhO,UAAAA,IAAI,CAACsK,IAAI,CAAC,GAAG0D,CAAC;AACd9K,UAAAA,CAAC,GAAG,CAAC;AACP,QAAA;AACF,MAAA;MAEA,IAAI4K,QAAQ,KAAK,MAAM,EAAE;AACvBG,QAAAA,aAAa,CAACjO,IAAI,EAAE+N,QAAQ,EAAE7N,IAAI,CAAC;AACrC,MAAA;AACA,MAAA,OAAOgD,CAAC;IACV,CAAC;AACH,EAAA;AACF,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vega-interpreter",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "CSP-compliant interpreter for Vega expressions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vega",
|
|
@@ -19,19 +19,22 @@
|
|
|
19
19
|
"default": "./build/vega-interpreter.js"
|
|
20
20
|
},
|
|
21
21
|
"types": "index.d.ts",
|
|
22
|
-
"repository":
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/vega/vega.git"
|
|
25
|
+
},
|
|
23
26
|
"scripts": {
|
|
24
27
|
"prebuild": "del-cli build",
|
|
25
28
|
"build": "rollup -c rollup.config.js --extend",
|
|
26
|
-
"pretest": "
|
|
29
|
+
"pretest": "npm run build -- --config-test",
|
|
27
30
|
"test": "TZ=America/Los_Angeles tape 'test/**/*-test.js'",
|
|
28
|
-
"prepublishOnly": "
|
|
31
|
+
"prepublishOnly": "npm test && npm run build"
|
|
29
32
|
},
|
|
30
33
|
"dependencies": {
|
|
31
|
-
"vega-util": "^2.
|
|
34
|
+
"vega-util": "^2.1.0"
|
|
32
35
|
},
|
|
33
36
|
"devDependencies": {
|
|
34
37
|
"vega": "*"
|
|
35
38
|
},
|
|
36
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "310bc54175035b6894c5a4a82877701ec8b8b0d4"
|
|
37
40
|
}
|
package/src/interpret.js
CHANGED
|
@@ -2,6 +2,7 @@ import Constants from './constants.js';
|
|
|
2
2
|
import Ops from './ops-binary.js';
|
|
3
3
|
import Unary from './ops-unary.js';
|
|
4
4
|
import Functions from './functions.js';
|
|
5
|
+
import {DisallowedObjectProperties} from 'vega-util';
|
|
5
6
|
|
|
6
7
|
const EventFunctions = ['view', 'item', 'group', 'xy', 'x', 'y'];
|
|
7
8
|
const DisallowedMethods = new Set([
|
|
@@ -73,7 +74,7 @@ const Visitors = {
|
|
|
73
74
|
$.memberDepth += 1;
|
|
74
75
|
const k = $(p.key);
|
|
75
76
|
$.memberDepth -= 1;
|
|
76
|
-
if (
|
|
77
|
+
if (DisallowedObjectProperties.has($(p.value))) {
|
|
77
78
|
// eslint-disable-next-line no-console
|
|
78
79
|
console.error(`Prevented interpretation of property "${k}" which could lead to insecure code execution`);
|
|
79
80
|
} else {
|