Index: frontend/node_modules/jsonpath/include/action.js
===================================================================
--- frontend/node_modules/jsonpath/include/action.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/jsonpath/include/action.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+if (!yy.ast) {
+    yy.ast = _ast;
+    _ast.initialize();
+}
Index: frontend/node_modules/jsonpath/include/module.js
===================================================================
--- frontend/node_modules/jsonpath/include/module.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/jsonpath/include/module.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,34 @@
+var _ast = {
+
+  initialize: function() {
+    this._nodes = [];
+    this._node = {};
+    this._stash = [];
+  },
+
+  set: function(props) {
+    for (var k in props) this._node[k] = props[k];
+    return this._node;
+  },
+
+  node: function(obj) {
+    if (arguments.length) this._node = obj;
+    return this._node;
+  },
+
+  push: function() {
+    this._nodes.push(this._node);
+    this._node = {};
+  },
+
+  unshift: function() {
+    this._nodes.unshift(this._node);
+    this._node = {};
+  },
+
+  yield: function() {
+    var _nodes = this._nodes;
+    this.initialize();
+    return _nodes;
+  }
+};
