occam-model 1.0.524 → 1.0.526

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.
@@ -34,13 +34,13 @@ _export(exports, {
34
34
  return versionFromDocumentNode;
35
35
  }
36
36
  });
37
+ const _occamdom = require("occam-dom");
37
38
  const _occamgrammars = require("occam-grammars");
38
39
  const _version = /*#__PURE__*/ _interop_require_default(require("../version"));
39
40
  const _dependency = /*#__PURE__*/ _interop_require_default(require("../dependency"));
40
41
  const _dependencies = /*#__PURE__*/ _interop_require_default(require("../dependencies"));
41
42
  const _shortenedVersion = /*#__PURE__*/ _interop_require_default(require("../shortenedVersion"));
42
43
  const _content = require("../utilities/content");
43
- const _query = require("../utilities/query");
44
44
  const _validate = require("../utilities/validate");
45
45
  const _propertyNames = require("../propertyNames");
46
46
  function _interop_require_default(obj) {
@@ -48,8 +48,9 @@ function _interop_require_default(obj) {
48
48
  default: obj
49
49
  };
50
50
  }
51
+ const { nodeQuery, nodesQuery } = _occamdom.queryUtilities;
51
52
  const jsonLexer = _occamgrammars.JSONLexer.fromNothing(), jsonParser = _occamgrammars.JSONParser.fromNothing();
52
- const errorNodesQuery = (0, _query.nodesQuery)("/*/error"), propertyNodesQuery = (0, _query.nodesQuery)("/property/json/object/property"), documentPropertyNodesQuery = (0, _query.nodesQuery)("/document/json/object/property"), propertyStringLiteralTerminalNodeQuery = (0, _query.nodeQuery)("/property/@string-literal"), propertyJSONStringLiteralTerminalNodeQuery = (0, _query.nodeQuery)("/property/json/@string-literal!");
53
+ const errorNodesQuery = nodesQuery("/*/error"), propertyNodesQuery = nodesQuery("/property/json/object/property"), documentPropertyNodesQuery = nodesQuery("/document/json/object/property"), propertyStringLiteralTerminalNodeQuery = nodeQuery("/property/@string-literal"), propertyJSONStringLiteralTerminalNodeQuery = nodeQuery("/property/json/@string-literal!");
53
54
  function isMetaJSONFileValid(metaJSONFile) {
54
55
  let metaJSONFileValid = false;
55
56
  const documentNode = documentNodeFromMetaJSONFile(metaJSONFile);
@@ -193,4 +194,4 @@ function dependenciesPropertyNodeFromDocumentNode(documentNode) {
193
194
  return dependenciesPropertyNode;
194
195
  }
195
196
 
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEpTT05MZXhlciwgSlNPTlBhcnNlciB9IGZyb20gXCJvY2NhbS1ncmFtbWFyc1wiO1xuXG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi4vdmVyc2lvblwiO1xuaW1wb3J0IERlcGVuZGVuY3kgZnJvbSBcIi4uL2RlcGVuZGVuY3lcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IFNob3J0ZW5lZFZlcnNpb24gZnJvbSBcIi4uL3Nob3J0ZW5lZFZlcnNpb25cIjtcblxuaW1wb3J0IHsgdHJpbURvdWJsZVF1b3RlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgaXNTdHJpbmdWZXJzaW9uU3RyaW5nLCBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBWRVJTSU9OX1BST1BFUlRZX05BTUUsIFJFUE9TSVRPUllfUFJPUEVSVFlfTkFNRSwgREVQRU5ERU5DSUVTX1BST1BFUlRZX05BTUUgfSBmcm9tIFwiLi4vcHJvcGVydHlOYW1lc1wiO1xuXG5jb25zdCBqc29uTGV4ZXIgPSBKU09OTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIGpzb25QYXJzZXIgPSBKU09OUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGVycm9yTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvKi9lcnJvclwiKSxcbiAgICAgIHByb3BlcnR5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcHJvcGVydHkvanNvbi9vYmplY3QvcHJvcGVydHlcIiksXG4gICAgICBkb2N1bWVudFByb3BlcnR5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvanNvbi9vYmplY3QvcHJvcGVydHlcIiksXG4gICAgICBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9wZXJ0eS9Ac3RyaW5nLWxpdGVyYWxcIiksXG4gICAgICBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHkvanNvbi9Ac3RyaW5nLWxpdGVyYWwhXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNZXRhSlNPTkZpbGVWYWxpZChtZXRhSlNPTkZpbGUpIHtcbiAgbGV0IG1ldGFKU09ORmlsZVZhbGlkID0gZmFsc2U7XG5cbiAgY29uc3QgZG9jdW1lbnROb2RlID0gZG9jdW1lbnROb2RlRnJvbU1ldGFKU09ORmlsZShtZXRhSlNPTkZpbGUpO1xuXG4gIGlmIChkb2N1bWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBlcnJvck5vZGVzID0gZXJyb3JOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgZXJyb3JOb2Rlc0xlbmd0aCA9IGVycm9yTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGVycm9yTm9kZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpLFxuICAgICAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFKU09ORmlsZVZhbGlkID0gKCh2ZXJzaW9uICE9PSBudWxsKSAmJiAocmVwb3NpdG9yeSAhPT0gbnVsbCkgJiYgKGRlcGVuZGVuY2llcyAhPT0gbnVsbCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhSlNPTkZpbGVWYWxpZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24obWV0YUpTT05GaWxlLCB2ZXJzaW9uKSB7XG4gIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSxcbiAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgbGV0IGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBjb25zdCBzdHJpbmcgPSB2ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgdmVyc2lvbiA9IHN0cmluZzsgIC8vL1xuXG4gIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICBjb25zdCBqc29uID0ge1xuICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgcmVwb3NpdG9yeSxcbiAgICAgICAgICBkZXBlbmRlbmNpZXNcbiAgICAgICAgfSxcbiAgICAgICAganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLFxuICAgICAgICBtZXRhSlNPTkZpbGVDb250ZW50ID0ganNvblN0cmluZzsgLy8vXG5cbiAgbWV0YUpTT05GaWxlLnNldENvbnRlbnQobWV0YUpTT05GaWxlQ29udGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2N1bWVudE5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSkge1xuICBsZXQgZG9jdW1lbnROb2RlID0gbnVsbDtcblxuICBpZiAobWV0YUpTT05GaWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29udGVudCA9IG1ldGFKU09ORmlsZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgdG9rZW5zID0ganNvbkxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICAgIG5vZGUgPSBqc29uUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBkb2N1bWVudE5vZGUgPSBub2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gZG9jdW1lbnROb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyc2lvbkZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCB2ZXJzaW9uID0gbnVsbDtcblxuICBjb25zdCBkb2N1bWVudFByb3BlcnR5Tm9kZXMgPSBkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzLnNvbWUoKGRvY3VtZW50UHJvcGVydHlOb2RlKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlOb2RlID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBWRVJTSU9OX1BST1BFUlRZX05BTUUpIHtcbiAgICAgIGNvbnN0IHN0cmluZ1Byb3BlcnR5VmFsdWUgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgICBpZiAoc3RyaW5nUHJvcGVydHlWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlLCAvLy9cbiAgICAgICAgICAgICAgc3RyaW5nVmVyc2lvblN0cmluZyA9IGlzU3RyaW5nVmVyc2lvblN0cmluZyhzdHJpbmcpO1xuXG4gICAgICAgIGlmIChzdHJpbmdWZXJzaW9uU3RyaW5nKSB7XG4gICAgICAgICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVN0cmluZyhzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgcmVwb3NpdG9yeSA9IG51bGw7XG5cbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGRvY3VtZW50UHJvcGVydHlOb2Rlcy5zb21lKChkb2N1bWVudFByb3BlcnR5Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRvY3VtZW50UHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gUkVQT1NJVE9SWV9QUk9QRVJUWV9OQU1FKSB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmVwb3NpdG9yeSA9IHN0cmluZ1Byb3BlcnR5VmFsdWU7ICAvLy9cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXBvc2l0b3J5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jaWVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgbGV0IGRlcGVuZGVuY2llcyA9IG51bGw7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGlmIChkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUgIT09IG51bGwpIHtcbiAgICBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbU5vdGhpbmcoKTtcblxuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5Tm9kZXMgPSBwcm9wZXJ0eU5vZGVzUXVlcnkocHJvcGVydHlOb2RlKTtcblxuICAgIHByb3BlcnR5Tm9kZXMuZm9yRWFjaCgocHJvcGVydHlOb2RlKSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nUHJvcGVydHlWYWx1ZSwgLy8vXG4gICAgICAgICAgICAgIHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZykge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKSxcbiAgICAgICAgICAgICAgICBuYW1lID0gcHJvcGVydHlOYW1lLCAgLy8vXG4gICAgICAgICAgICAgICAgc2hvcnRlbmVkVmVyc2lvbiA9IFNob3J0ZW5lZFZlcnNpb24uZnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgICAgICAgIGRlcGVuZGVuY3kgPSBEZXBlbmRlbmN5LmZyb21OYW1lQW5kU2hvcnRlbmVkVmVyc2lvbihuYW1lLCBzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgICAgICAgIGRlcGVuZGVuY2llcy5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgbGV0IGRlcGVuZGVuY3lOYW1lcyA9IG51bGw7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGlmIChkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUgIT09IG51bGwpIHtcbiAgICBkZXBlbmRlbmN5TmFtZXMgPSBbXTtcblxuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5Tm9kZXMgPSBwcm9wZXJ0eU5vZGVzUXVlcnkocHJvcGVydHlOb2RlKTtcblxuICAgIHByb3BlcnR5Tm9kZXMuZm9yRWFjaCgocHJvcGVydHlOb2RlKSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nUHJvcGVydHlWYWx1ZSwgLy8vXG4gICAgICAgICAgICAgIHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZykge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKSxcbiAgICAgICAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IHByb3BlcnR5TmFtZTsgIC8vL1xuXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzLnB1c2goZGVwZW5kZW5jeU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jeU5hbWVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzTWV0YUpTT05GaWxlVmFsaWQsXG4gIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24sXG4gIGRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUsXG4gIHZlcnNpb25Gcm9tRG9jdW1lbnROb2RlLFxuICByZXBvc2l0b3J5RnJvbURvY3VtZW50Tm9kZSxcbiAgZGVwZW5kZW5jaWVzRnJvbURvY3VtZW50Tm9kZSxcbiAgZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZVxufTtcblxuZnVuY3Rpb24gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpIHtcbiAgY29uc3QgcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlID0gcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkocHJvcGVydHlOb2RlKSxcbiAgICAgICAgcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCA9IHByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIHByb3BlcnR5TmFtZSA9IHRyaW1Eb3VibGVRdW90ZXMocHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCk7IC8vL1xuXG4gIHJldHVybiBwcm9wZXJ0eU5hbWU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSkge1xuICBsZXQgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IG51bGw7XG5cbiAgY29uc3QgcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSA9IHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVRdWVyeShwcm9wZXJ0eU5vZGUpO1xuXG4gIGlmIChwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgIHN0cmluZ1Byb3BlcnR5VmFsdWUgPSB0cmltRG91YmxlUXVvdGVzKHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50KTsgLy8vXG4gIH1cblxuICByZXR1cm4gc3RyaW5nUHJvcGVydHlWYWx1ZTtcbn1cblxuZnVuY3Rpb24gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzUXVlcnkoZG9jdW1lbnROb2RlKTtcblxuICByZXR1cm4gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzO1xufVxuXG5mdW5jdGlvbiBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGVGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gbnVsbDtcblxuICBjb25zdCBkb2N1bWVudFByb3BlcnR5Tm9kZXMgPSBkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzLnNvbWUoKGRvY3VtZW50UHJvcGVydHlOb2RlKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlOb2RlID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBERVBFTkRFTkNJRVNfUFJPUEVSVFlfTkFNRSkge1xuICAgICAgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gcHJvcGVydHlOb2RlOyAgLy8vXG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlIiwiZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZSIsImRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUiLCJpc01ldGFKU09ORmlsZVZhbGlkIiwicmVwb3NpdG9yeUZyb21Eb2N1bWVudE5vZGUiLCJ1cGRhdGVNZXRhSlNPTkZpbGVWZXJzaW9uIiwidmVyc2lvbkZyb21Eb2N1bWVudE5vZGUiLCJqc29uTGV4ZXIiLCJKU09OTGV4ZXIiLCJmcm9tTm90aGluZyIsImpzb25QYXJzZXIiLCJKU09OUGFyc2VyIiwiZXJyb3JOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInByb3BlcnR5Tm9kZXNRdWVyeSIsImRvY3VtZW50UHJvcGVydHlOb2Rlc1F1ZXJ5IiwicHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJtZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVWYWxpZCIsImRvY3VtZW50Tm9kZSIsImVycm9yTm9kZXMiLCJlcnJvck5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJkZXBlbmRlbmNpZXMiLCJzdHJpbmciLCJ0b1N0cmluZyIsImRlcGVuZGVuY2llc0pTT04iLCJ0b0pTT04iLCJqc29uIiwianNvblN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZXRhSlNPTkZpbGVDb250ZW50Iiwic2V0Q29udGVudCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJub2RlIiwicGFyc2UiLCJkb2N1bWVudFByb3BlcnR5Tm9kZXMiLCJkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlIiwic29tZSIsImRvY3VtZW50UHJvcGVydHlOb2RlIiwicHJvcGVydHlOb2RlIiwicHJvcGVydHlOYW1lIiwicHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZSIsIlZFUlNJT05fUFJPUEVSVFlfTkFNRSIsInN0cmluZ1Byb3BlcnR5VmFsdWUiLCJzdHJpbmdQcm9wZXJ0eVZhbHVlRnJvbVByb3BlcnR5Tm9kZSIsInN0cmluZ1ZlcnNpb25TdHJpbmciLCJpc1N0cmluZ1ZlcnNpb25TdHJpbmciLCJWZXJzaW9uIiwiZnJvbVN0cmluZyIsIlJFUE9TSVRPUllfUFJPUEVSVFlfTkFNRSIsImRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSIsImRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZUZyb21Eb2N1bWVudE5vZGUiLCJEZXBlbmRlbmNpZXMiLCJwcm9wZXJ0eU5vZGVzIiwiZm9yRWFjaCIsInN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmciLCJpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmciLCJuYW1lIiwic2hvcnRlbmVkVmVyc2lvbiIsIlNob3J0ZW5lZFZlcnNpb24iLCJkZXBlbmRlbmN5IiwiRGVwZW5kZW5jeSIsImZyb21OYW1lQW5kU2hvcnRlbmVkVmVyc2lvbiIsImFkZERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZSIsInB1c2giLCJwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUiLCJwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50IiwidHJpbURvdWJsZVF1b3RlcyIsInByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUiLCJwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCIsIkRFUEVOREVOQ0lFU19QUk9QRVJUWV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFxTUE7ZUFBQTs7UUFoRWdCQTtlQUFBQTs7UUFpQ0FDO2VBQUFBOztRQWxHQUM7ZUFBQUE7O1FBN0NBQztlQUFBQTs7UUF1RkFDO2VBQUFBOztRQWxFQUM7ZUFBQUE7O1FBc0NBQztlQUFBQTs7OytCQWhGc0I7Z0VBRWxCO21FQUNHO3FFQUNFO3lFQUNJO3lCQUVJO3VCQUNLOzBCQUNnQzsrQkFDc0I7Ozs7OztBQUU1RixNQUFNQyxZQUFZQyx3QkFBUyxDQUFDQyxXQUFXLElBQ2pDQyxhQUFhQyx5QkFBVSxDQUFDRixXQUFXO0FBRXpDLE1BQU1HLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxhQUM3QkMscUJBQXFCRCxJQUFBQSxpQkFBVSxFQUFDLG1DQUNoQ0UsNkJBQTZCRixJQUFBQSxpQkFBVSxFQUFDLG1DQUN4Q0cseUNBQXlDQyxJQUFBQSxnQkFBUyxFQUFDLDhCQUNuREMsNkNBQTZDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXRELFNBQVNkLG9CQUFvQmdCLFlBQVk7SUFDOUMsSUFBSUMsb0JBQW9CO0lBRXhCLE1BQU1DLGVBQWVuQiw2QkFBNkJpQjtJQUVsRCxJQUFJRSxpQkFBaUIsTUFBTTtRQUN6QixNQUFNQyxhQUFhVixnQkFBZ0JTLGVBQzdCRSxtQkFBbUJELFdBQVdFLE1BQU07UUFFMUMsSUFBSUQscUJBQXFCLEdBQUc7WUFDMUIsTUFBTUUsVUFBVW5CLHdCQUF3QmUsZUFDbENLLGFBQWF0QiwyQkFBMkJpQixlQUN4Q00sZUFBZTNCLDZCQUE2QnFCO1lBRWxERCxvQkFBcUIsQUFBQ0ssWUFBWSxRQUFVQyxlQUFlLFFBQVVDLGlCQUFpQjtRQUN4RjtJQUNGO0lBRUEsT0FBT1A7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
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWRvbVwiO1xuaW1wb3J0IHsgSlNPTkxleGVyLCBKU09OUGFyc2VyIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXJzXCI7XG5cbmltcG9ydCBWZXJzaW9uIGZyb20gXCIuLi92ZXJzaW9uXCI7XG5pbXBvcnQgRGVwZW5kZW5jeSBmcm9tIFwiLi4vZGVwZW5kZW5jeVwiO1xuaW1wb3J0IERlcGVuZGVuY2llcyBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgU2hvcnRlbmVkVmVyc2lvbiBmcm9tIFwiLi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5pbXBvcnQgeyB0cmltRG91YmxlUXVvdGVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZW50XCI7XG5pbXBvcnQgeyBpc1N0cmluZ1ZlcnNpb25TdHJpbmcsIGlzU3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsaWRhdGVcIjtcbmltcG9ydCB7IFZFUlNJT05fUFJPUEVSVFlfTkFNRSwgUkVQT1NJVE9SWV9QUk9QRVJUWV9OQU1FLCBERVBFTkRFTkNJRVNfUFJPUEVSVFlfTkFNRSB9IGZyb20gXCIuLi9wcm9wZXJ0eU5hbWVzXCI7XG5cbmNvbnN0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gPSBxdWVyeVV0aWxpdGllcztcblxuY29uc3QganNvbkxleGVyID0gSlNPTkxleGVyLmZyb21Ob3RoaW5nKCksXG4gICAgICBqc29uUGFyc2VyID0gSlNPTlBhcnNlci5mcm9tTm90aGluZygpO1xuXG5jb25zdCBlcnJvck5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLyovZXJyb3JcIiksXG4gICAgICBwcm9wZXJ0eU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3Byb3BlcnR5L2pzb24vb2JqZWN0L3Byb3BlcnR5XCIpLFxuICAgICAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2RvY3VtZW50L2pzb24vb2JqZWN0L3Byb3BlcnR5XCIpLFxuICAgICAgcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHkvQHN0cmluZy1saXRlcmFsXCIpLFxuICAgICAgcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb3BlcnR5L2pzb24vQHN0cmluZy1saXRlcmFsIVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWV0YUpTT05GaWxlVmFsaWQobWV0YUpTT05GaWxlKSB7XG4gIGxldCBtZXRhSlNPTkZpbGVWYWxpZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKTtcblxuICBpZiAoZG9jdW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgZXJyb3JOb2RlcyA9IGVycm9yTm9kZXNRdWVyeShkb2N1bWVudE5vZGUpLFxuICAgICAgICAgIGVycm9yTm9kZXNMZW5ndGggPSBlcnJvck5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChlcnJvck5vZGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uID0gdmVyc2lvbkZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSxcbiAgICAgICAgICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5RnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpLFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gICAgICBtZXRhSlNPTkZpbGVWYWxpZCA9ICgodmVyc2lvbiAhPT0gbnVsbCkgJiYgKHJlcG9zaXRvcnkgIT09IG51bGwpICYmIChkZXBlbmRlbmNpZXMgIT09IG51bGwpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YUpTT05GaWxlVmFsaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVNZXRhSlNPTkZpbGVWZXJzaW9uKG1ldGFKU09ORmlsZSwgdmVyc2lvbikge1xuICBjb25zdCBkb2N1bWVudE5vZGUgPSBkb2N1bWVudE5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSksXG4gICAgICAgIHJlcG9zaXRvcnkgPSByZXBvc2l0b3J5RnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGxldCBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICBkZXBlbmRlbmNpZXNKU09OID0gZGVwZW5kZW5jaWVzLnRvSlNPTigpO1xuXG4gIHZlcnNpb24gPSBzdHJpbmc7ICAvLy9cblxuICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNKU09OOyAgLy8vXG5cbiAgY29uc3QganNvbiA9IHtcbiAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgIHJlcG9zaXRvcnksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgIH0sXG4gICAgICAgIGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSxcbiAgICAgICAgbWV0YUpTT05GaWxlQ29udGVudCA9IGpzb25TdHJpbmc7IC8vL1xuXG4gIG1ldGFKU09ORmlsZS5zZXRDb250ZW50KG1ldGFKU09ORmlsZUNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9jdW1lbnROb2RlRnJvbU1ldGFKU09ORmlsZShtZXRhSlNPTkZpbGUpIHtcbiAgbGV0IGRvY3VtZW50Tm9kZSA9IG51bGw7XG5cbiAgaWYgKG1ldGFKU09ORmlsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBtZXRhSlNPTkZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IGpzb25MZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgICBub2RlID0ganNvblBhcnNlci5wYXJzZSh0b2tlbnMpO1xuXG4gICAgZG9jdW1lbnROb2RlID0gbm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGRvY3VtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnNpb25Gcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgdmVyc2lvbiA9IG51bGw7XG5cbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGRvY3VtZW50UHJvcGVydHlOb2Rlcy5zb21lKChkb2N1bWVudFByb3BlcnR5Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRvY3VtZW50UHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gVkVSU0lPTl9QUk9QRVJUWV9OQU1FKSB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nUHJvcGVydHlWYWx1ZSwgLy8vXG4gICAgICAgICAgICAgIHN0cmluZ1ZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1ZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RyaW5nVmVyc2lvblN0cmluZykge1xuICAgICAgICAgIHZlcnNpb24gPSBWZXJzaW9uLmZyb21TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvc2l0b3J5RnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgbGV0IHJlcG9zaXRvcnkgPSBudWxsO1xuXG4gIGNvbnN0IGRvY3VtZW50UHJvcGVydHlOb2RlcyA9IGRvY3VtZW50UHJvcGVydHlOb2Rlc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBkb2N1bWVudFByb3BlcnR5Tm9kZXMuc29tZSgoZG9jdW1lbnRQcm9wZXJ0eU5vZGUpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eU5vZGUgPSBkb2N1bWVudFByb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09IFJFUE9TSVRPUllfUFJPUEVSVFlfTkFNRSkge1xuICAgICAgY29uc3Qgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICAgIGlmIChzdHJpbmdQcm9wZXJ0eVZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJlcG9zaXRvcnkgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVwb3NpdG9yeTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY2llc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCBkZXBlbmRlbmNpZXMgPSBudWxsO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZUZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlICE9PSBudWxsKSB7XG4gICAgZGVwZW5kZW5jaWVzID0gRGVwZW5kZW5jaWVzLmZyb21Ob3RoaW5nKCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5vZGUgPSBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5vZGVzID0gcHJvcGVydHlOb2Rlc1F1ZXJ5KHByb3BlcnR5Tm9kZSk7XG5cbiAgICBwcm9wZXJ0eU5vZGVzLmZvckVhY2goKHByb3BlcnR5Tm9kZSkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICAgIGlmIChzdHJpbmdQcm9wZXJ0eVZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IHN0cmluZ1Byb3BlcnR5VmFsdWUsIC8vL1xuICAgICAgICAgICAgICBzdHJpbmdTaG9ydGVuZWRWZXJzaW9uU3RyaW5nID0gaXNTdHJpbmdTaG9ydGVuZWRWZXJzaW9uU3RyaW5nKHN0cmluZyk7XG5cbiAgICAgICAgaWYgKHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSksXG4gICAgICAgICAgICAgICAgbmFtZSA9IHByb3BlcnR5TmFtZSwgIC8vL1xuICAgICAgICAgICAgICAgIHNob3J0ZW5lZFZlcnNpb24gPSBTaG9ydGVuZWRWZXJzaW9uLmZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tTmFtZUFuZFNob3J0ZW5lZFZlcnNpb24obmFtZSwgc2hvcnRlbmVkVmVyc2lvbik7XG5cbiAgICAgICAgICBkZXBlbmRlbmNpZXMuYWRkRGVwZW5kZW5jeShkZXBlbmRlbmN5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY3lOYW1lc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCBkZXBlbmRlbmN5TmFtZXMgPSBudWxsO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZUZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlICE9PSBudWxsKSB7XG4gICAgZGVwZW5kZW5jeU5hbWVzID0gW107XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5vZGUgPSBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5vZGVzID0gcHJvcGVydHlOb2Rlc1F1ZXJ5KHByb3BlcnR5Tm9kZSk7XG5cbiAgICBwcm9wZXJ0eU5vZGVzLmZvckVhY2goKHByb3BlcnR5Tm9kZSkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICAgIGlmIChzdHJpbmdQcm9wZXJ0eVZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IHN0cmluZ1Byb3BlcnR5VmFsdWUsIC8vL1xuICAgICAgICAgICAgICBzdHJpbmdTaG9ydGVuZWRWZXJzaW9uU3RyaW5nID0gaXNTdHJpbmdTaG9ydGVuZWRWZXJzaW9uU3RyaW5nKHN0cmluZyk7XG5cbiAgICAgICAgaWYgKHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSksXG4gICAgICAgICAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBwcm9wZXJ0eU5hbWU7ICAvLy9cblxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lcy5wdXNoKGRlcGVuZGVuY3lOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY3lOYW1lcztcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBpc01ldGFKU09ORmlsZVZhbGlkLFxuICB1cGRhdGVNZXRhSlNPTkZpbGVWZXJzaW9uLFxuICBkb2N1bWVudE5vZGVGcm9tTWV0YUpTT05GaWxlLFxuICB2ZXJzaW9uRnJvbURvY3VtZW50Tm9kZSxcbiAgcmVwb3NpdG9yeUZyb21Eb2N1bWVudE5vZGUsXG4gIGRlcGVuZGVuY2llc0Zyb21Eb2N1bWVudE5vZGUsXG4gIGRlcGVuZGVuY3lOYW1lc0Zyb21Eb2N1bWVudE5vZGVcbn07XG5cbmZ1bmN0aW9uIHByb3BlcnR5TmFtZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKSB7XG4gIGNvbnN0IHByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSA9IHByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZVF1ZXJ5KHByb3BlcnR5Tm9kZSksXG4gICAgICAgIHByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBwcm9wZXJ0eU5hbWUgPSB0cmltRG91YmxlUXVvdGVzKHByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQpOyAvLy9cblxuICByZXR1cm4gcHJvcGVydHlOYW1lO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdQcm9wZXJ0eVZhbHVlRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpIHtcbiAgbGV0IHN0cmluZ1Byb3BlcnR5VmFsdWUgPSBudWxsO1xuXG4gIGNvbnN0IHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUgPSBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkocHJvcGVydHlOb2RlKTtcblxuICBpZiAocHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50ID0gcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gdHJpbURvdWJsZVF1b3Rlcyhwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCk7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZ1Byb3BlcnR5VmFsdWU7XG59XG5cbmZ1bmN0aW9uIGRvY3VtZW50UHJvcGVydHlOb2Rlc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGNvbnN0IGRvY3VtZW50UHJvcGVydHlOb2RlcyA9IGRvY3VtZW50UHJvcGVydHlOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIGRvY3VtZW50UHJvcGVydHlOb2Rlcztcbn1cblxuZnVuY3Rpb24gZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgbGV0IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSA9IG51bGw7XG5cbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGRvY3VtZW50UHJvcGVydHlOb2Rlcy5zb21lKChkb2N1bWVudFByb3BlcnR5Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRvY3VtZW50UHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gREVQRU5ERU5DSUVTX1BST1BFUlRZX05BTUUpIHtcbiAgICAgIGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSA9IHByb3BlcnR5Tm9kZTsgIC8vL1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGU7XG59XG4iXSwibmFtZXMiOlsiZGVwZW5kZW5jaWVzRnJvbURvY3VtZW50Tm9kZSIsImRlcGVuZGVuY3lOYW1lc0Zyb21Eb2N1bWVudE5vZGUiLCJkb2N1bWVudE5vZGVGcm9tTWV0YUpTT05GaWxlIiwiaXNNZXRhSlNPTkZpbGVWYWxpZCIsInJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlIiwidXBkYXRlTWV0YUpTT05GaWxlVmVyc2lvbiIsInZlcnNpb25Gcm9tRG9jdW1lbnROb2RlIiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwianNvbkxleGVyIiwiSlNPTkxleGVyIiwiZnJvbU5vdGhpbmciLCJqc29uUGFyc2VyIiwiSlNPTlBhcnNlciIsImVycm9yTm9kZXNRdWVyeSIsInByb3BlcnR5Tm9kZXNRdWVyeSIsImRvY3VtZW50UHJvcGVydHlOb2Rlc1F1ZXJ5IiwicHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJtZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVWYWxpZCIsImRvY3VtZW50Tm9kZSIsImVycm9yTm9kZXMiLCJlcnJvck5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJkZXBlbmRlbmNpZXMiLCJzdHJpbmciLCJ0b1N0cmluZyIsImRlcGVuZGVuY2llc0pTT04iLCJ0b0pTT04iLCJqc29uIiwianNvblN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZXRhSlNPTkZpbGVDb250ZW50Iiwic2V0Q29udGVudCIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJub2RlIiwicGFyc2UiLCJkb2N1bWVudFByb3BlcnR5Tm9kZXMiLCJkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlIiwic29tZSIsImRvY3VtZW50UHJvcGVydHlOb2RlIiwicHJvcGVydHlOb2RlIiwicHJvcGVydHlOYW1lIiwicHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZSIsIlZFUlNJT05fUFJPUEVSVFlfTkFNRSIsInN0cmluZ1Byb3BlcnR5VmFsdWUiLCJzdHJpbmdQcm9wZXJ0eVZhbHVlRnJvbVByb3BlcnR5Tm9kZSIsInN0cmluZ1ZlcnNpb25TdHJpbmciLCJpc1N0cmluZ1ZlcnNpb25TdHJpbmciLCJWZXJzaW9uIiwiZnJvbVN0cmluZyIsIlJFUE9TSVRPUllfUFJPUEVSVFlfTkFNRSIsImRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSIsImRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZUZyb21Eb2N1bWVudE5vZGUiLCJEZXBlbmRlbmNpZXMiLCJwcm9wZXJ0eU5vZGVzIiwiZm9yRWFjaCIsInN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmciLCJpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmciLCJuYW1lIiwic2hvcnRlbmVkVmVyc2lvbiIsIlNob3J0ZW5lZFZlcnNpb24iLCJkZXBlbmRlbmN5IiwiRGVwZW5kZW5jeSIsImZyb21OYW1lQW5kU2hvcnRlbmVkVmVyc2lvbiIsImFkZERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZSIsInB1c2giLCJwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUiLCJwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50IiwidHJpbURvdWJsZVF1b3RlcyIsInByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUiLCJwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCIsIkRFUEVOREVOQ0lFU19QUk9QRVJUWV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1TUE7ZUFBQTs7UUFoRWdCQTtlQUFBQTs7UUFpQ0FDO2VBQUFBOztRQWxHQUM7ZUFBQUE7O1FBN0NBQztlQUFBQTs7UUF1RkFDO2VBQUFBOztRQWxFQUM7ZUFBQUE7O1FBc0NBQztlQUFBQTs7OzBCQWxGZTsrQkFDTztnRUFFbEI7bUVBQ0c7cUVBQ0U7eUVBQ0k7eUJBRUk7MEJBQ3FDOytCQUNzQjs7Ozs7O0FBRTVGLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUUsR0FBR0Msd0JBQWM7QUFFaEQsTUFBTUMsWUFBWUMsd0JBQVMsQ0FBQ0MsV0FBVyxJQUNqQ0MsYUFBYUMseUJBQVUsQ0FBQ0YsV0FBVztBQUV6QyxNQUFNRyxrQkFBa0JQLFdBQVcsYUFDN0JRLHFCQUFxQlIsV0FBVyxtQ0FDaENTLDZCQUE2QlQsV0FBVyxtQ0FDeENVLHlDQUF5Q1gsVUFBVSw4QkFDbkRZLDZDQUE2Q1osVUFBVTtBQUV0RCxTQUFTSixvQkFBb0JpQixZQUFZO0lBQzlDLElBQUlDLG9CQUFvQjtJQUV4QixNQUFNQyxlQUFlcEIsNkJBQTZCa0I7SUFFbEQsSUFBSUUsaUJBQWlCLE1BQU07UUFDekIsTUFBTUMsYUFBYVIsZ0JBQWdCTyxlQUM3QkUsbUJBQW1CRCxXQUFXRSxNQUFNO1FBRTFDLElBQUlELHFCQUFxQixHQUFHO1lBQzFCLE1BQU1FLFVBQVVwQix3QkFBd0JnQixlQUNsQ0ssYUFBYXZCLDJCQUEyQmtCLGVBQ3hDTSxlQUFlNUIsNkJBQTZCc0I7WUFFbERELG9CQUFxQixBQUFDSyxZQUFZLFFB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-model",
3
3
  "author": "James Smith",
4
- "version": "1.0.524",
4
+ "version": "1.0.526",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-model",
7
7
  "description": "Parts of Occam's model.",
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.2.10",
14
- "occam-grammars": "^1.3.559",
15
- "occam-query": "^4.1.178"
14
+ "occam-dom": "^6.1.1",
15
+ "occam-grammars": "^1.3.559"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@swc/core": "1.13.20",
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { queryUtilities } from "occam-dom";
3
4
  import { JSONLexer, JSONParser } from "occam-grammars";
4
5
 
5
6
  import Version from "../version";
@@ -8,10 +9,11 @@ import Dependencies from "../dependencies";
8
9
  import ShortenedVersion from "../shortenedVersion";
9
10
 
10
11
  import { trimDoubleQuotes } from "../utilities/content";
11
- import { nodeQuery, nodesQuery } from "../utilities/query";
12
12
  import { isStringVersionString, isStringShortenedVersionString } from "../utilities/validate";
13
13
  import { VERSION_PROPERTY_NAME, REPOSITORY_PROPERTY_NAME, DEPENDENCIES_PROPERTY_NAME } from "../propertyNames";
14
14
 
15
+ const { nodeQuery, nodesQuery } = queryUtilities;
16
+
15
17
  const jsonLexer = JSONLexer.fromNothing(),
16
18
  jsonParser = JSONParser.fromNothing();
17
19
 
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get nodeQuery () {
13
- return nodeQuery;
14
- },
15
- get nodesQuery () {
16
- return nodesQuery;
17
- }
18
- });
19
- const _occamquery = require("occam-query");
20
- function nodeQuery(expressionString) {
21
- const query = _occamquery.Query.fromExpressionString(expressionString);
22
- return function(node) {
23
- const nodes = query.execute(node);
24
- node = nodes.shift() || null; ///
25
- return node;
26
- };
27
- }
28
- function nodesQuery(expressionString) {
29
- const query = _occamquery.Query.fromExpressionString(expressionString);
30
- return function(node) {
31
- const nodes = query.execute(node);
32
- return nodes;
33
- };
34
- }
35
-
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlUXVlcnkoZXhwcmVzc2lvblN0cmluZykge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgbm9kZSA9IG5vZGVzLnNoaWZ0KCkgfHwgbnVsbDsgLy8vXG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzUXVlcnkoZXhwcmVzc2lvblN0cmluZykge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9O1xufVxuIl0sIm5hbWVzIjpbIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJleHByZXNzaW9uU3RyaW5nIiwicXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwibm9kZSIsIm5vZGVzIiwiZXhlY3V0ZSIsInNoaWZ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZ0JBO2VBQUFBOztRQVlBQztlQUFBQTs7OzRCQWRNO0FBRWYsU0FBU0QsVUFBVUUsZ0JBQWdCO0lBQ3hDLE1BQU1DLFFBQVFDLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDSDtJQUV6QyxPQUFPLFNBQVNJLElBQUk7UUFDbEIsTUFBTUMsUUFBUUosTUFBTUssT0FBTyxDQUFDRjtRQUU1QkEsT0FBT0MsTUFBTUUsS0FBSyxNQUFNLE1BQU0sR0FBRztRQUVqQyxPQUFPSDtJQUNUO0FBQ0Y7QUFFTyxTQUFTTCxXQUFXQyxnQkFBZ0I7SUFDekMsTUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixNQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCLE9BQU9DO0lBQ1Q7QUFDRiJ9
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- import { Query } from "occam-query";
4
-
5
- export function nodeQuery(expressionString) {
6
- const query = Query.fromExpressionString(expressionString);
7
-
8
- return function(node) {
9
- const nodes = query.execute(node);
10
-
11
- node = nodes.shift() || null; ///
12
-
13
- return node;
14
- };
15
- }
16
-
17
- export function nodesQuery(expressionString) {
18
- const query = Query.fromExpressionString(expressionString);
19
-
20
- return function(node) {
21
- const nodes = query.execute(node);
22
-
23
- return nodes;
24
- };
25
- }