occam-entities 1.0.285 → 1.0.288

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.
@@ -90,11 +90,14 @@ function versionFromDocumentNode(documentNode) {
90
90
  documentPropertyNodes.some(function(documentPropertyNode) {
91
91
  var propertyNode = documentPropertyNode, propertyName = propertyNameFromPropertyNode(propertyNode);
92
92
  if (propertyName === _propertyNames.VERSION_PROPERTY_NAME) {
93
- var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode), string = stringPropertyValue, stringVersionString = (0, _validate.isStringVersionString)(string);
94
- if (stringVersionString) {
95
- version = _version.default.fromString(string);
93
+ var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
94
+ if (stringPropertyValue !== null) {
95
+ var string = stringPropertyValue, stringVersionString = (0, _validate.isStringVersionString)(string);
96
+ if (stringVersionString) {
97
+ version = _version.default.fromString(string);
98
+ }
99
+ return true;
96
100
  }
97
- return true;
98
101
  }
99
102
  });
100
103
  return version;
@@ -106,8 +109,10 @@ function repositoryFromDocumentNode(documentNode) {
106
109
  var propertyNode = documentPropertyNode, propertyName = propertyNameFromPropertyNode(propertyNode);
107
110
  if (propertyName === _propertyNames.REPOSITORY_PROPERTY_NAME) {
108
111
  var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
109
- repository = stringPropertyValue; ///
110
- return true;
112
+ if (stringPropertyValue !== null) {
113
+ repository = stringPropertyValue; ///
114
+ return true;
115
+ }
111
116
  }
112
117
  });
113
118
  return repository;
@@ -119,10 +124,13 @@ function dependenciesFromDocumentNode(documentNode) {
119
124
  dependencies = _dependencies.default.fromNothing();
120
125
  var propertyNode = dependenciesPropertyNode, propertyNodes = propertyNodesQuery(propertyNode);
121
126
  propertyNodes.forEach(function(propertyNode) {
122
- var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode), string = stringPropertyValue, stringShortenedVersionString = (0, _validate.isStringShortenedVersionString)(string);
123
- if (stringShortenedVersionString) {
124
- var propertyName = propertyNameFromPropertyNode(propertyNode), name = propertyName, shortenedVersion = _shortenedVersion.default.fromString(string), dependency = _dependency.default.fromNameAndShortenedVersion(name, shortenedVersion);
125
- dependencies.addDependency(dependency);
127
+ var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
128
+ if (stringPropertyValue !== null) {
129
+ var string = stringPropertyValue, stringShortenedVersionString = (0, _validate.isStringShortenedVersionString)(string);
130
+ if (stringShortenedVersionString) {
131
+ var propertyName = propertyNameFromPropertyNode(propertyNode), name = propertyName, shortenedVersion = _shortenedVersion.default.fromString(string), dependency = _dependency.default.fromNameAndShortenedVersion(name, shortenedVersion);
132
+ dependencies.addDependency(dependency);
133
+ }
126
134
  }
127
135
  });
128
136
  }
@@ -135,10 +143,13 @@ function dependencyNamesFromDocumentNode(documentNode) {
135
143
  dependencyNames = [];
136
144
  var propertyNode = dependenciesPropertyNode, propertyNodes = propertyNodesQuery(propertyNode);
137
145
  propertyNodes.forEach(function(propertyNode) {
138
- var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode), string = stringPropertyValue, stringShortenedVersionString = (0, _validate.isStringShortenedVersionString)(string);
139
- if (stringShortenedVersionString) {
140
- var propertyName = propertyNameFromPropertyNode(propertyNode), dependencyName = propertyName; ///
141
- dependencyNames.push(dependencyName);
146
+ var stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
147
+ if (stringPropertyValue !== null) {
148
+ var string = stringPropertyValue, stringShortenedVersionString = (0, _validate.isStringShortenedVersionString)(string);
149
+ if (stringShortenedVersionString) {
150
+ var propertyName = propertyNameFromPropertyNode(propertyNode), dependencyName = propertyName; ///
151
+ dependencyNames.push(dependencyName);
152
+ }
142
153
  }
143
154
  });
144
155
  }
@@ -158,7 +169,12 @@ function propertyNameFromPropertyNode(propertyNode) {
158
169
  return propertyName;
159
170
  }
160
171
  function stringPropertyValueFromPropertyNode(propertyNode) {
161
- var propertyJSONStringLiteralTerminalNode = propertyJSONStringLiteralTerminalNodeQuery(propertyNode), propertyJSONStringLiteralTerminalNodeContent = propertyJSONStringLiteralTerminalNode.getContent(), stringPropertyValue = (0, _content.trimDoubleQuotes)(propertyJSONStringLiteralTerminalNodeContent); ///
172
+ var stringPropertyValue = null;
173
+ var propertyJSONStringLiteralTerminalNode = propertyJSONStringLiteralTerminalNodeQuery(propertyNode);
174
+ if (propertyJSONStringLiteralTerminalNode !== null) {
175
+ var propertyJSONStringLiteralTerminalNodeContent = propertyJSONStringLiteralTerminalNode.getContent();
176
+ stringPropertyValue = (0, _content.trimDoubleQuotes)(propertyJSONStringLiteralTerminalNodeContent); ///
177
+ }
162
178
  return stringPropertyValue;
163
179
  }
164
180
  function documentPropertyNodesFromDocumentNode(documentNode) {
@@ -178,4 +194,4 @@ function dependenciesPropertyNodeFromDocumentNode(documentNode) {
178
194
  return dependenciesPropertyNode;
179
195
  }
180
196
 
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEpTT05MZXhlciwgSlNPTlBhcnNlciB9IGZyb20gXCJvY2NhbS1ncmFtbWFyc1wiO1xuXG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi4vdmVyc2lvblwiO1xuaW1wb3J0IERlcGVuZGVuY3kgZnJvbSBcIi4uL2RlcGVuZGVuY3lcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IFNob3J0ZW5lZFZlcnNpb24gZnJvbSBcIi4uL3Nob3J0ZW5lZFZlcnNpb25cIjtcblxuaW1wb3J0IHsgRE9VQkxFX1NQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdHJpbURvdWJsZVF1b3RlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgaXNTdHJpbmdWZXJzaW9uU3RyaW5nLCBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBWRVJTSU9OX1BST1BFUlRZX05BTUUsIFJFUE9TSVRPUllfUFJPUEVSVFlfTkFNRSwgREVQRU5ERU5DSUVTX1BST1BFUlRZX05BTUUgfSBmcm9tIFwiLi4vcHJvcGVydHlOYW1lc1wiO1xuXG5jb25zdCBqc29uTGV4ZXIgPSBKU09OTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIGpzb25QYXJzZXIgPSBKU09OUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGVycm9yTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvKi9lcnJvclwiKSxcbiAgICAgIHByb3BlcnR5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcHJvcGVydHkvanNvbi9vYmplY3QvcHJvcGVydHlcIiksXG4gICAgICBkb2N1bWVudFByb3BlcnR5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvanNvbi9vYmplY3QvcHJvcGVydHlcIiksXG4gICAgICBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9wZXJ0eS9Ac3RyaW5nLWxpdGVyYWxcIiksXG4gICAgICBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHkvanNvbi9Ac3RyaW5nLWxpdGVyYWwhXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNZXRhSlNPTkZpbGVWYWxpZChtZXRhSlNPTkZpbGUpIHtcbiAgbGV0IG1ldGFKU09ORmlsZVZhbGlkID0gZmFsc2U7XG5cbiAgY29uc3QgZG9jdW1lbnROb2RlID0gZG9jdW1lbnROb2RlRnJvbU1ldGFKU09ORmlsZShtZXRhSlNPTkZpbGUpO1xuXG4gIGlmIChkb2N1bWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBlcnJvck5vZGVzID0gZXJyb3JOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgZXJyb3JOb2Rlc0xlbmd0aCA9IGVycm9yTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGVycm9yTm9kZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpLFxuICAgICAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFKU09ORmlsZVZhbGlkID0gKCh2ZXJzaW9uICE9PSBudWxsKSAmJiAocmVwb3NpdG9yeSAhPT0gbnVsbCkgJiYgKGRlcGVuZGVuY2llcyAhPT0gbnVsbCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhSlNPTkZpbGVWYWxpZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24obWV0YUpTT05GaWxlLCB2ZXJzaW9uKSB7XG4gIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSxcbiAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgbGV0IGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBjb25zdCBzdHJpbmcgPSB2ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgdmVyc2lvbiA9IHN0cmluZzsgIC8vL1xuXG4gIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICBjb25zdCBtZXRhSlNPTiA9IHtcbiAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgIHJlcG9zaXRvcnksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGFKU09OU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkobWV0YUpTT04sIG51bGwsIERPVUJMRV9TUEFDRSksXG4gICAgICAgIG1ldGFKU09ORmlsZUNvbnRlbnQgPSBtZXRhSlNPTlN0cmluZzsgLy8vXG5cbiAgbWV0YUpTT05GaWxlLnNldENvbnRlbnQobWV0YUpTT05GaWxlQ29udGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2N1bWVudE5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSkge1xuICBsZXQgZG9jdW1lbnROb2RlID0gbnVsbDtcblxuICBpZiAobWV0YUpTT05GaWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29udGVudCA9IG1ldGFKU09ORmlsZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgdG9rZW5zID0ganNvbkxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICAgIG5vZGUgPSBqc29uUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBkb2N1bWVudE5vZGUgPSBub2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gZG9jdW1lbnROb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyc2lvbkZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCB2ZXJzaW9uID0gbnVsbDtcblxuICBjb25zdCBkb2N1bWVudFByb3BlcnR5Tm9kZXMgPSBkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzLnNvbWUoKGRvY3VtZW50UHJvcGVydHlOb2RlKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlOb2RlID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBWRVJTSU9OX1BST1BFUlRZX05BTUUpIHtcbiAgICAgIGNvbnN0IHN0cmluZ1Byb3BlcnR5VmFsdWUgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpLFxuICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nUHJvcGVydHlWYWx1ZSwgLy8vXG4gICAgICAgICAgICBzdHJpbmdWZXJzaW9uU3RyaW5nID0gaXNTdHJpbmdWZXJzaW9uU3RyaW5nKHN0cmluZyk7XG5cbiAgICAgIGlmIChzdHJpbmdWZXJzaW9uU3RyaW5nKSB7XG4gICAgICAgIHZlcnNpb24gPSBWZXJzaW9uLmZyb21TdHJpbmcoc3RyaW5nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgcmVwb3NpdG9yeSA9IG51bGw7XG5cbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGRvY3VtZW50UHJvcGVydHlOb2Rlcy5zb21lKChkb2N1bWVudFByb3BlcnR5Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRvY3VtZW50UHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gUkVQT1NJVE9SWV9QUk9QRVJUWV9OQU1FKSB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgcmVwb3NpdG9yeSA9IHN0cmluZ1Byb3BlcnR5VmFsdWU7ICAvLy9cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVwb3NpdG9yeTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY2llc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCBkZXBlbmRlbmNpZXMgPSBudWxsO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZUZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlICE9PSBudWxsKSB7XG4gICAgZGVwZW5kZW5jaWVzID0gRGVwZW5kZW5jaWVzLmZyb21Ob3RoaW5nKCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5vZGUgPSBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5vZGVzID0gcHJvcGVydHlOb2Rlc1F1ZXJ5KHByb3BlcnR5Tm9kZSk7XG5cbiAgICBwcm9wZXJ0eU5vZGVzLmZvckVhY2goKHByb3BlcnR5Tm9kZSkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSksXG4gICAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlLCAvLy9cbiAgICAgICAgICAgIHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgaWYgKHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpLFxuICAgICAgICAgICAgICBuYW1lID0gcHJvcGVydHlOYW1lLCAgLy8vXG4gICAgICAgICAgICAgIHNob3J0ZW5lZFZlcnNpb24gPSBTaG9ydGVuZWRWZXJzaW9uLmZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICAgICAgZGVwZW5kZW5jeSA9IERlcGVuZGVuY3kuZnJvbU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uKG5hbWUsIHNob3J0ZW5lZFZlcnNpb24pO1xuXG4gICAgICAgIGRlcGVuZGVuY2llcy5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY3lOYW1lc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCBkZXBlbmRlbmN5TmFtZXMgPSBudWxsO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZUZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlICE9PSBudWxsKSB7XG4gICAgZGVwZW5kZW5jeU5hbWVzID0gW107XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5vZGUgPSBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5vZGVzID0gcHJvcGVydHlOb2Rlc1F1ZXJ5KHByb3BlcnR5Tm9kZSk7XG5cbiAgICBwcm9wZXJ0eU5vZGVzLmZvckVhY2goKHByb3BlcnR5Tm9kZSkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSksXG4gICAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlLCAvLy9cbiAgICAgICAgICAgIHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgaWYgKHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpLFxuICAgICAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IHByb3BlcnR5TmFtZTsgIC8vL1xuXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lcy5wdXNoKGRlcGVuZGVuY3lOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkZXBlbmRlbmN5TmFtZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaXNNZXRhSlNPTkZpbGVWYWxpZCxcbiAgdXBkYXRlTWV0YUpTT05GaWxlVmVyc2lvbixcbiAgZG9jdW1lbnROb2RlRnJvbU1ldGFKU09ORmlsZSxcbiAgdmVyc2lvbkZyb21Eb2N1bWVudE5vZGUsXG4gIHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlLFxuICBkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlLFxuICBkZXBlbmRlbmN5TmFtZXNGcm9tRG9jdW1lbnROb2RlXG59O1xuXG5mdW5jdGlvbiBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSkge1xuICBjb25zdCBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUgPSBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVRdWVyeShwcm9wZXJ0eU5vZGUpLFxuICAgICAgICBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50ID0gcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgcHJvcGVydHlOYW1lID0gdHJpbURvdWJsZVF1b3Rlcyhwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50KTsgLy8vXG5cbiAgcmV0dXJuIHByb3BlcnR5TmFtZTtcbn1cblxuZnVuY3Rpb24gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKSB7XG4gIGNvbnN0IHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUgPSBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkocHJvcGVydHlOb2RlKSxcbiAgICAgICAgcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IHRyaW1Eb3VibGVRdW90ZXMocHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQpOyAvLy9cblxuICByZXR1cm4gc3RyaW5nUHJvcGVydHlWYWx1ZTtcbn1cblxuZnVuY3Rpb24gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzUXVlcnkoZG9jdW1lbnROb2RlKTtcblxuICByZXR1cm4gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzO1xufVxuXG5mdW5jdGlvbiBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGVGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gbnVsbDtcblxuICBjb25zdCBkb2N1bWVudFByb3BlcnR5Tm9kZXMgPSBkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzLnNvbWUoKGRvY3VtZW50UHJvcGVydHlOb2RlKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlOb2RlID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBERVBFTkRFTkNJRVNfUFJPUEVSVFlfTkFNRSkge1xuICAgICAgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gcHJvcGVydHlOb2RlOyAgLy8vXG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlIiwiZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZSIsImRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUiLCJpc01ldGFKU09ORmlsZVZhbGlkIiwicmVwb3NpdG9yeUZyb21Eb2N1bWVudE5vZGUiLCJ1cGRhdGVNZXRhSlNPTkZpbGVWZXJzaW9uIiwidmVyc2lvbkZyb21Eb2N1bWVudE5vZGUiLCJqc29uTGV4ZXIiLCJKU09OTGV4ZXIiLCJmcm9tTm90aGluZyIsImpzb25QYXJzZXIiLCJKU09OUGFyc2VyIiwiZXJyb3JOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInByb3BlcnR5Tm9kZXNRdWVyeSIsImRvY3VtZW50UHJvcGVydHlOb2Rlc1F1ZXJ5IiwicHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJtZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVWYWxpZCIsImRvY3VtZW50Tm9kZSIsImVycm9yTm9kZXMiLCJlcnJvck5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJkZXBlbmRlbmNpZXMiLCJzdHJpbmciLCJ0b1N0cmluZyIsImRlcGVuZGVuY2llc0pTT04iLCJ0b0pTT04iLCJtZXRhSlNPTiIsIm1ldGFKU09OU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIkRPVUJMRV9TUEFDRSIsIm1ldGFKU09ORmlsZUNvbnRlbnQiLCJzZXRDb250ZW50IiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsIm5vZGUiLCJwYXJzZSIsImRvY3VtZW50UHJvcGVydHlOb2RlcyIsImRvY3VtZW50UHJvcGVydHlOb2Rlc0Zyb21Eb2N1bWVudE5vZGUiLCJzb21lIiwiZG9jdW1lbnRQcm9wZXJ0eU5vZGUiLCJwcm9wZXJ0eU5vZGUiLCJwcm9wZXJ0eU5hbWUiLCJwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlIiwiVkVSU0lPTl9QUk9QRVJUWV9OQU1FIiwic3RyaW5nUHJvcGVydHlWYWx1ZSIsInN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlIiwic3RyaW5nVmVyc2lvblN0cmluZyIsImlzU3RyaW5nVmVyc2lvblN0cmluZyIsIlZlcnNpb24iLCJmcm9tU3RyaW5nIiwiUkVQT1NJVE9SWV9QUk9QRVJUWV9OQU1FIiwiZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlIiwiZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZSIsIkRlcGVuZGVuY2llcyIsInByb3BlcnR5Tm9kZXMiLCJmb3JFYWNoIiwic3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZyIsImlzU3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZyIsIm5hbWUiLCJzaG9ydGVuZWRWZXJzaW9uIiwiU2hvcnRlbmVkVmVyc2lvbiIsImRlcGVuZGVuY3kiLCJEZXBlbmRlbmN5IiwiZnJvbU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwiYWRkRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lOYW1lcyIsImRlcGVuZGVuY3lOYW1lIiwicHVzaCIsInByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSIsInByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJ0cmltRG91YmxlUXVvdGVzIiwicHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSIsInByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50IiwiREVQRU5ERU5DSUVTX1BST1BFUlRZX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTJMQSxPQVFFO2VBUkY7O0lBMURnQkEsNEJBQTRCO2VBQTVCQTs7SUE4QkFDLCtCQUErQjtlQUEvQkE7O0lBMUZBQyw0QkFBNEI7ZUFBNUJBOztJQTdDQUMs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
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUpTT04uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEpTT05MZXhlciwgSlNPTlBhcnNlciB9IGZyb20gXCJvY2NhbS1ncmFtbWFyc1wiO1xuXG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi4vdmVyc2lvblwiO1xuaW1wb3J0IERlcGVuZGVuY3kgZnJvbSBcIi4uL2RlcGVuZGVuY3lcIjtcbmltcG9ydCBEZXBlbmRlbmNpZXMgZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IFNob3J0ZW5lZFZlcnNpb24gZnJvbSBcIi4uL3Nob3J0ZW5lZFZlcnNpb25cIjtcblxuaW1wb3J0IHsgRE9VQkxFX1NQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdHJpbURvdWJsZVF1b3RlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgaXNTdHJpbmdWZXJzaW9uU3RyaW5nLCBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBWRVJTSU9OX1BST1BFUlRZX05BTUUsIFJFUE9TSVRPUllfUFJPUEVSVFlfTkFNRSwgREVQRU5ERU5DSUVTX1BST1BFUlRZX05BTUUgfSBmcm9tIFwiLi4vcHJvcGVydHlOYW1lc1wiO1xuXG5jb25zdCBqc29uTGV4ZXIgPSBKU09OTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIGpzb25QYXJzZXIgPSBKU09OUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IGVycm9yTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvKi9lcnJvclwiKSxcbiAgICAgIHByb3BlcnR5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcHJvcGVydHkvanNvbi9vYmplY3QvcHJvcGVydHlcIiksXG4gICAgICBkb2N1bWVudFByb3BlcnR5Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZG9jdW1lbnQvanNvbi9vYmplY3QvcHJvcGVydHlcIiksXG4gICAgICBwcm9wZXJ0eVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9wZXJ0eS9Ac3RyaW5nLWxpdGVyYWxcIiksXG4gICAgICBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHkvanNvbi9Ac3RyaW5nLWxpdGVyYWwhXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNZXRhSlNPTkZpbGVWYWxpZChtZXRhSlNPTkZpbGUpIHtcbiAgbGV0IG1ldGFKU09ORmlsZVZhbGlkID0gZmFsc2U7XG5cbiAgY29uc3QgZG9jdW1lbnROb2RlID0gZG9jdW1lbnROb2RlRnJvbU1ldGFKU09ORmlsZShtZXRhSlNPTkZpbGUpO1xuXG4gIGlmIChkb2N1bWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBlcnJvck5vZGVzID0gZXJyb3JOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgZXJyb3JOb2Rlc0xlbmd0aCA9IGVycm9yTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGVycm9yTm9kZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpLFxuICAgICAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFKU09ORmlsZVZhbGlkID0gKCh2ZXJzaW9uICE9PSBudWxsKSAmJiAocmVwb3NpdG9yeSAhPT0gbnVsbCkgJiYgKGRlcGVuZGVuY2llcyAhPT0gbnVsbCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhSlNPTkZpbGVWYWxpZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24obWV0YUpTT05GaWxlLCB2ZXJzaW9uKSB7XG4gIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUobWV0YUpTT05GaWxlKSxcbiAgICAgICAgcmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgbGV0IGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0Zyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKTtcblxuICBjb25zdCBzdHJpbmcgPSB2ZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgICAgIGRlcGVuZGVuY2llc0pTT04gPSBkZXBlbmRlbmNpZXMudG9KU09OKCk7XG5cbiAgdmVyc2lvbiA9IHN0cmluZzsgIC8vL1xuXG4gIGRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llc0pTT047ICAvLy9cblxuICBjb25zdCBtZXRhSlNPTiA9IHtcbiAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgIHJlcG9zaXRvcnksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGFKU09OU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkobWV0YUpTT04sIG51bGwsIERPVUJMRV9TUEFDRSksXG4gICAgICAgIG1ldGFKU09ORmlsZUNvbnRlbnQgPSBtZXRhSlNPTlN0cmluZzsgLy8vXG5cbiAgbWV0YUpTT05GaWxlLnNldENvbnRlbnQobWV0YUpTT05GaWxlQ29udGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2N1bWVudE5vZGVGcm9tTWV0YUpTT05GaWxlKG1ldGFKU09ORmlsZSkge1xuICBsZXQgZG9jdW1lbnROb2RlID0gbnVsbDtcblxuICBpZiAobWV0YUpTT05GaWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29udGVudCA9IG1ldGFKU09ORmlsZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgdG9rZW5zID0ganNvbkxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICAgIG5vZGUgPSBqc29uUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBkb2N1bWVudE5vZGUgPSBub2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gZG9jdW1lbnROb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyc2lvbkZyb21Eb2N1bWVudE5vZGUoZG9jdW1lbnROb2RlKSB7XG4gIGxldCB2ZXJzaW9uID0gbnVsbDtcblxuICBjb25zdCBkb2N1bWVudFByb3BlcnR5Tm9kZXMgPSBkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzLnNvbWUoKGRvY3VtZW50UHJvcGVydHlOb2RlKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlOb2RlID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBWRVJTSU9OX1BST1BFUlRZX05BTUUpIHtcbiAgICAgIGNvbnN0IHN0cmluZ1Byb3BlcnR5VmFsdWUgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgICBpZiAoc3RyaW5nUHJvcGVydHlWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBzdHJpbmdQcm9wZXJ0eVZhbHVlLCAvLy9cbiAgICAgICAgICAgICAgc3RyaW5nVmVyc2lvblN0cmluZyA9IGlzU3RyaW5nVmVyc2lvblN0cmluZyhzdHJpbmcpO1xuXG4gICAgICAgIGlmIChzdHJpbmdWZXJzaW9uU3RyaW5nKSB7XG4gICAgICAgICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVN0cmluZyhzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgcmVwb3NpdG9yeSA9IG51bGw7XG5cbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGRvY3VtZW50UHJvcGVydHlOb2Rlcy5zb21lKChkb2N1bWVudFByb3BlcnR5Tm9kZSkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRvY3VtZW50UHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpO1xuXG4gICAgaWYgKHByb3BlcnR5TmFtZSA9PT0gUkVQT1NJVE9SWV9QUk9QRVJUWV9OQU1FKSB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmVwb3NpdG9yeSA9IHN0cmluZ1Byb3BlcnR5VmFsdWU7ICAvLy9cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXBvc2l0b3J5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jaWVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgbGV0IGRlcGVuZGVuY2llcyA9IG51bGw7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGlmIChkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUgIT09IG51bGwpIHtcbiAgICBkZXBlbmRlbmNpZXMgPSBEZXBlbmRlbmNpZXMuZnJvbU5vdGhpbmcoKTtcblxuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5Tm9kZXMgPSBwcm9wZXJ0eU5vZGVzUXVlcnkocHJvcGVydHlOb2RlKTtcblxuICAgIHByb3BlcnR5Tm9kZXMuZm9yRWFjaCgocHJvcGVydHlOb2RlKSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nUHJvcGVydHlWYWx1ZSwgLy8vXG4gICAgICAgICAgICAgIHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZykge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKSxcbiAgICAgICAgICAgICAgICBuYW1lID0gcHJvcGVydHlOYW1lLCAgLy8vXG4gICAgICAgICAgICAgICAgc2hvcnRlbmVkVmVyc2lvbiA9IFNob3J0ZW5lZFZlcnNpb24uZnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgICAgICAgIGRlcGVuZGVuY3kgPSBEZXBlbmRlbmN5LmZyb21OYW1lQW5kU2hvcnRlbmVkVmVyc2lvbihuYW1lLCBzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgICAgICAgIGRlcGVuZGVuY2llcy5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jaWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgbGV0IGRlcGVuZGVuY3lOYW1lcyA9IG51bGw7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpO1xuXG4gIGlmIChkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGUgIT09IG51bGwpIHtcbiAgICBkZXBlbmRlbmN5TmFtZXMgPSBbXTtcblxuICAgIGNvbnN0IHByb3BlcnR5Tm9kZSA9IGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5Tm9kZXMgPSBwcm9wZXJ0eU5vZGVzUXVlcnkocHJvcGVydHlOb2RlKTtcblxuICAgIHByb3BlcnR5Tm9kZXMuZm9yRWFjaCgocHJvcGVydHlOb2RlKSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmdQcm9wZXJ0eVZhbHVlID0gc3RyaW5nUHJvcGVydHlWYWx1ZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKTtcblxuICAgICAgaWYgKHN0cmluZ1Byb3BlcnR5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nUHJvcGVydHlWYWx1ZSwgLy8vXG4gICAgICAgICAgICAgIHN0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcgPSBpc1N0cmluZ1Nob3J0ZW5lZFZlcnNpb25TdHJpbmcoc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZykge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlKSxcbiAgICAgICAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IHByb3BlcnR5TmFtZTsgIC8vL1xuXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzLnB1c2goZGVwZW5kZW5jeU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGVwZW5kZW5jeU5hbWVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzTWV0YUpTT05GaWxlVmFsaWQsXG4gIHVwZGF0ZU1ldGFKU09ORmlsZVZlcnNpb24sXG4gIGRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUsXG4gIHZlcnNpb25Gcm9tRG9jdW1lbnROb2RlLFxuICByZXBvc2l0b3J5RnJvbURvY3VtZW50Tm9kZSxcbiAgZGVwZW5kZW5jaWVzRnJvbURvY3VtZW50Tm9kZSxcbiAgZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZVxufTtcblxuZnVuY3Rpb24gcHJvcGVydHlOYW1lRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpIHtcbiAgY29uc3QgcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlID0gcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkocHJvcGVydHlOb2RlKSxcbiAgICAgICAgcHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCA9IHByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIHByb3BlcnR5TmFtZSA9IHRyaW1Eb3VibGVRdW90ZXMocHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlQ29udGVudCk7IC8vL1xuXG4gIHJldHVybiBwcm9wZXJ0eU5hbWU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSkge1xuICBsZXQgc3RyaW5nUHJvcGVydHlWYWx1ZSA9IG51bGw7XG5cbiAgY29uc3QgcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSA9IHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVRdWVyeShwcm9wZXJ0eU5vZGUpO1xuXG4gIGlmIChwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgIHN0cmluZ1Byb3BlcnR5VmFsdWUgPSB0cmltRG91YmxlUXVvdGVzKHByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50KTsgLy8vXG4gIH1cblxuICByZXR1cm4gc3RyaW5nUHJvcGVydHlWYWx1ZTtcbn1cblxuZnVuY3Rpb24gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzRnJvbURvY3VtZW50Tm9kZShkb2N1bWVudE5vZGUpIHtcbiAgY29uc3QgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzUXVlcnkoZG9jdW1lbnROb2RlKTtcblxuICByZXR1cm4gZG9jdW1lbnRQcm9wZXJ0eU5vZGVzO1xufVxuXG5mdW5jdGlvbiBkZXBlbmRlbmNpZXNQcm9wZXJ0eU5vZGVGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSkge1xuICBsZXQgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gbnVsbDtcblxuICBjb25zdCBkb2N1bWVudFByb3BlcnR5Tm9kZXMgPSBkb2N1bWVudFByb3BlcnR5Tm9kZXNGcm9tRG9jdW1lbnROb2RlKGRvY3VtZW50Tm9kZSk7XG5cbiAgZG9jdW1lbnRQcm9wZXJ0eU5vZGVzLnNvbWUoKGRvY3VtZW50UHJvcGVydHlOb2RlKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlOb2RlID0gZG9jdW1lbnRQcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSk7XG5cbiAgICBpZiAocHJvcGVydHlOYW1lID09PSBERVBFTkRFTkNJRVNfUFJPUEVSVFlfTkFNRSkge1xuICAgICAgZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlID0gcHJvcGVydHlOb2RlOyAgLy8vXG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llc1Byb3BlcnR5Tm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJkZXBlbmRlbmNpZXNGcm9tRG9jdW1lbnROb2RlIiwiZGVwZW5kZW5jeU5hbWVzRnJvbURvY3VtZW50Tm9kZSIsImRvY3VtZW50Tm9kZUZyb21NZXRhSlNPTkZpbGUiLCJpc01ldGFKU09ORmlsZVZhbGlkIiwicmVwb3NpdG9yeUZyb21Eb2N1bWVudE5vZGUiLCJ1cGRhdGVNZXRhSlNPTkZpbGVWZXJzaW9uIiwidmVyc2lvbkZyb21Eb2N1bWVudE5vZGUiLCJqc29uTGV4ZXIiLCJKU09OTGV4ZXIiLCJmcm9tTm90aGluZyIsImpzb25QYXJzZXIiLCJKU09OUGFyc2VyIiwiZXJyb3JOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInByb3BlcnR5Tm9kZXNRdWVyeSIsImRvY3VtZW50UHJvcGVydHlOb2Rlc1F1ZXJ5IiwicHJvcGVydHlTdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJwcm9wZXJ0eUpTT05TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlUXVlcnkiLCJtZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVWYWxpZCIsImRvY3VtZW50Tm9kZSIsImVycm9yTm9kZXMiLCJlcnJvck5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidmVyc2lvbiIsInJlcG9zaXRvcnkiLCJkZXBlbmRlbmNpZXMiLCJzdHJpbmciLCJ0b1N0cmluZyIsImRlcGVuZGVuY2llc0pTT04iLCJ0b0pTT04iLCJtZXRhSlNPTiIsIm1ldGFKU09OU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIkRPVUJMRV9TUEFDRSIsIm1ldGFKU09ORmlsZUNvbnRlbnQiLCJzZXRDb250ZW50IiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsIm5vZGUiLCJwYXJzZSIsImRvY3VtZW50UHJvcGVydHlOb2RlcyIsImRvY3VtZW50UHJvcGVydHlOb2Rlc0Zyb21Eb2N1bWVudE5vZGUiLCJzb21lIiwiZG9jdW1lbnRQcm9wZXJ0eU5vZGUiLCJwcm9wZXJ0eU5vZGUiLCJwcm9wZXJ0eU5hbWUiLCJwcm9wZXJ0eU5hbWVGcm9tUHJvcGVydHlOb2RlIiwiVkVSU0lPTl9QUk9QRVJUWV9OQU1FIiwic3RyaW5nUHJvcGVydHlWYWx1ZSIsInN0cmluZ1Byb3BlcnR5VmFsdWVGcm9tUHJvcGVydHlOb2RlIiwic3RyaW5nVmVyc2lvblN0cmluZyIsImlzU3RyaW5nVmVyc2lvblN0cmluZyIsIlZlcnNpb24iLCJmcm9tU3RyaW5nIiwiUkVQT1NJVE9SWV9QUk9QRVJUWV9OQU1FIiwiZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlIiwiZGVwZW5kZW5jaWVzUHJvcGVydHlOb2RlRnJvbURvY3VtZW50Tm9kZSIsIkRlcGVuZGVuY2llcyIsInByb3BlcnR5Tm9kZXMiLCJmb3JFYWNoIiwic3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZyIsImlzU3RyaW5nU2hvcnRlbmVkVmVyc2lvblN0cmluZyIsIm5hbWUiLCJzaG9ydGVuZWRWZXJzaW9uIiwiU2hvcnRlbmVkVmVyc2lvbiIsImRlcGVuZGVuY3kiLCJEZXBlbmRlbmN5IiwiZnJvbU5hbWVBbmRTaG9ydGVuZWRWZXJzaW9uIiwiYWRkRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lOYW1lcyIsImRlcGVuZGVuY3lOYW1lIiwicHVzaCIsInByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSIsInByb3BlcnR5U3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJ0cmltRG91YmxlUXVvdGVzIiwicHJvcGVydHlKU09OU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSIsInByb3BlcnR5SlNPTlN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVDb250ZW50IiwiREVQRU5ERU5DSUVTX1BST1BFUlRZX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXNNQSxPQVFFO2VBUkY7O0lBaEVnQkEsNEJBQTRCO2VBQTVCQTs7SUFpQ0FDLCtCQUErQjtlQUEvQkE7O0lBbEdBQyw0QkFBNEI7ZUFBNUJBOztJQTdDQUMsbUJBQW1CO2VBQW5CQTs7SUF1RkFDLDBCQUEwQjtlQUExQkE7O0lBbEVBQyx5QkFBeUI7ZUFBekJBOztJQXNDQUMsdUJBQXVCO2VBQXZCQTs7OzZCQWpGc0I7OERBRWxCO2lFQUNHO21FQUNFO3VFQUNJO3lCQUVBO3VCQUNJO3FCQUNLO3dCQUNnQzs2QkFDc0I7Ozs7OztBQUU1RixJQUFNQyxZQUFZQyx3QkFBUyxDQUFDQyxXQUFXLElBQ2pDQyxhQUFhQyx5QkFBVSxDQUFDRixXQUFXO0FBRXpDLElBQU1HLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxhQUM3QkMscUJBQXFCRCxJQUFBQSxpQkFBVSxFQUFDLG1DQUNoQ0UsNkJBQTZCRixJQUFBQSxpQkFBVSxFQUFDLG1DQUN4Q0cseUNBQXlDQyxJQUFBQSxnQkFBUyxFQUFDLDhCQUNuREMsNkNBQTZDRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXRELFNBQVNkLG9CQUFvQmdCLFlBQVk7SUFDOUMsSUFBSUMsb0JBQW9CO0lBRXhCLElBQU1DLGVBQWVuQiw2QkFBNkJpQjtJQUVsRCxJQUFJRSxpQkFBaUIsTUFBTTtRQUN6QixJQUFNQyxhQUFhVixnQkFBZ0JTLGVBQzdCRSxtQkFBbUJELFdBQVdFLE1BQU07UUFF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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-entities",
3
3
  "author": "James Smith",
4
- "version": "1.0.285",
4
+ "version": "1.0.288",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-entities",
7
7
  "description": "Occam's entities.",
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^14.3.2",
14
- "occam-grammars": "^1.3.143",
15
- "occam-query": "^4.1.27"
14
+ "occam-grammars": "^1.3.145",
15
+ "occam-query": "^4.1.30"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@swc/core": "^1.5.6",
@@ -91,15 +91,18 @@ export function versionFromDocumentNode(documentNode) {
91
91
  propertyName = propertyNameFromPropertyNode(propertyNode);
92
92
 
93
93
  if (propertyName === VERSION_PROPERTY_NAME) {
94
- const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode),
95
- string = stringPropertyValue, ///
96
- stringVersionString = isStringVersionString(string);
94
+ const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
97
95
 
98
- if (stringVersionString) {
99
- version = Version.fromString(string);
100
- }
96
+ if (stringPropertyValue !== null) {
97
+ const string = stringPropertyValue, ///
98
+ stringVersionString = isStringVersionString(string);
101
99
 
102
- return true;
100
+ if (stringVersionString) {
101
+ version = Version.fromString(string);
102
+ }
103
+
104
+ return true;
105
+ }
103
106
  }
104
107
  });
105
108
 
@@ -118,9 +121,11 @@ export function repositoryFromDocumentNode(documentNode) {
118
121
  if (propertyName === REPOSITORY_PROPERTY_NAME) {
119
122
  const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
120
123
 
121
- repository = stringPropertyValue; ///
124
+ if (stringPropertyValue !== null) {
125
+ repository = stringPropertyValue; ///
122
126
 
123
- return true;
127
+ return true;
128
+ }
124
129
  }
125
130
  });
126
131
 
@@ -139,17 +144,20 @@ export function dependenciesFromDocumentNode(documentNode) {
139
144
  propertyNodes = propertyNodesQuery(propertyNode);
140
145
 
141
146
  propertyNodes.forEach((propertyNode) => {
142
- const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode),
143
- string = stringPropertyValue, ///
144
- stringShortenedVersionString = isStringShortenedVersionString(string);
147
+ const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
145
148
 
146
- if (stringShortenedVersionString) {
147
- const propertyName = propertyNameFromPropertyNode(propertyNode),
148
- name = propertyName, ///
149
- shortenedVersion = ShortenedVersion.fromString(string),
150
- dependency = Dependency.fromNameAndShortenedVersion(name, shortenedVersion);
149
+ if (stringPropertyValue !== null) {
150
+ const string = stringPropertyValue, ///
151
+ stringShortenedVersionString = isStringShortenedVersionString(string);
151
152
 
152
- dependencies.addDependency(dependency);
153
+ if (stringShortenedVersionString) {
154
+ const propertyName = propertyNameFromPropertyNode(propertyNode),
155
+ name = propertyName, ///
156
+ shortenedVersion = ShortenedVersion.fromString(string),
157
+ dependency = Dependency.fromNameAndShortenedVersion(name, shortenedVersion);
158
+
159
+ dependencies.addDependency(dependency);
160
+ }
153
161
  }
154
162
  });
155
163
  }
@@ -169,15 +177,18 @@ export function dependencyNamesFromDocumentNode(documentNode) {
169
177
  propertyNodes = propertyNodesQuery(propertyNode);
170
178
 
171
179
  propertyNodes.forEach((propertyNode) => {
172
- const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode),
173
- string = stringPropertyValue, ///
174
- stringShortenedVersionString = isStringShortenedVersionString(string);
180
+ const stringPropertyValue = stringPropertyValueFromPropertyNode(propertyNode);
175
181
 
176
- if (stringShortenedVersionString) {
177
- const propertyName = propertyNameFromPropertyNode(propertyNode),
178
- dependencyName = propertyName; ///
182
+ if (stringPropertyValue !== null) {
183
+ const string = stringPropertyValue, ///
184
+ stringShortenedVersionString = isStringShortenedVersionString(string);
179
185
 
180
- dependencyNames.push(dependencyName);
186
+ if (stringShortenedVersionString) {
187
+ const propertyName = propertyNameFromPropertyNode(propertyNode),
188
+ dependencyName = propertyName; ///
189
+
190
+ dependencyNames.push(dependencyName);
191
+ }
181
192
  }
182
193
  });
183
194
  }
@@ -204,9 +215,15 @@ function propertyNameFromPropertyNode(propertyNode) {
204
215
  }
205
216
 
206
217
  function stringPropertyValueFromPropertyNode(propertyNode) {
207
- const propertyJSONStringLiteralTerminalNode = propertyJSONStringLiteralTerminalNodeQuery(propertyNode),
208
- propertyJSONStringLiteralTerminalNodeContent = propertyJSONStringLiteralTerminalNode.getContent(),
209
- stringPropertyValue = trimDoubleQuotes(propertyJSONStringLiteralTerminalNodeContent); ///
218
+ let stringPropertyValue = null;
219
+
220
+ const propertyJSONStringLiteralTerminalNode = propertyJSONStringLiteralTerminalNodeQuery(propertyNode);
221
+
222
+ if (propertyJSONStringLiteralTerminalNode !== null) {
223
+ const propertyJSONStringLiteralTerminalNodeContent = propertyJSONStringLiteralTerminalNode.getContent();
224
+
225
+ stringPropertyValue = trimDoubleQuotes(propertyJSONStringLiteralTerminalNodeContent); ///
226
+ }
210
227
 
211
228
  return stringPropertyValue;
212
229
  }