siren-parser 8.6.1 → 9.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.
- package/README.md +10 -14
- package/dist/Action.js +0 -2
- package/dist/Field.js +0 -2
- package/dist/Link.js +0 -2
- package/dist/assert.js +0 -2
- package/dist/chaiPlugin.js +0 -2
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
- package/src/index.js +6 -0
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ There are three ways to use `siren-parser`'s functionality.
|
|
|
17
17
|
|
|
18
18
|
1. In Node.js, `require` it as you would any other NPM package:
|
|
19
19
|
```javascript
|
|
20
|
-
const SirenParse = require('siren-parser');
|
|
20
|
+
const SirenParse = require('siren-parser').default;
|
|
21
21
|
var parsedEntity = SirenParse('{"class":["foo","bar"]}');
|
|
22
22
|
```
|
|
23
23
|
|
|
@@ -26,6 +26,12 @@ There are three ways to use `siren-parser`'s functionality.
|
|
|
26
26
|
import SirenParse from 'siren-parser';
|
|
27
27
|
var parsedEntity = SirenParse('{"class":["foo","bar"]}');
|
|
28
28
|
```
|
|
29
|
+
You can also import `Action`, `Entity`, and `Link` by name if you need to add custom functionality to parsed entities.
|
|
30
|
+
```javascript
|
|
31
|
+
import SirenParse, { Action, Entity, Link } from 'siren-parser';
|
|
32
|
+
Entity.prototype.printEntity = function() { console.log(this) };
|
|
33
|
+
var parsedEntity = SirenParse('{"class":["foo","bar"]}'); // parsedEntity will have printEntity()
|
|
34
|
+
```
|
|
29
35
|
|
|
30
36
|
3. An ES6 module installed on the window as a global:
|
|
31
37
|
```html
|
|
@@ -347,21 +353,11 @@ There are two helper `superagent` methods included with this module, under `./su
|
|
|
347
353
|
npm test
|
|
348
354
|
```
|
|
349
355
|
|
|
350
|
-
## Releasing
|
|
351
|
-
|
|
352
|
-
This repository uses the [semantic-release GitHub Action](https://github.com/BrightspaceUI/actions/tree/master/semantic-release) to create new versions. See [Triggering a Release](https://github.com/BrightspaceUI/actions/tree/master/semantic-release#triggering-a-release) for more information about automatically creating releases on merge.
|
|
353
|
-
|
|
354
|
-
## Contributing
|
|
355
|
-
|
|
356
|
-
1. **Fork** the repository. Committing directly against this repository is highly discouraged.
|
|
357
|
-
|
|
358
|
-
2. Make your modifications in a branch, updating and writing new tests as necessary in the `test` directory.
|
|
359
|
-
|
|
360
|
-
3. Ensure that all tests pass with `npm test`
|
|
356
|
+
## Versioning and Releasing
|
|
361
357
|
|
|
362
|
-
|
|
358
|
+
This repo is configured to use `semantic-release`. Commits prefixed with `fix:` and `feat:` will trigger patch and minor releases when merged to `main`.
|
|
363
359
|
|
|
364
|
-
|
|
360
|
+
To learn how to create major releases and release from maintenance branches, refer to the [semantic-release GitHub Action](https://github.com/BrightspaceUI/actions/tree/main/semantic-release) documentation.
|
|
365
361
|
|
|
366
362
|
## Code Style
|
|
367
363
|
|
package/dist/Action.js
CHANGED
package/dist/Field.js
CHANGED
package/dist/Link.js
CHANGED
package/dist/assert.js
CHANGED
package/dist/chaiPlugin.js
CHANGED
|
@@ -134,6 +134,4 @@ function _default(chai, utils) {
|
|
|
134
134
|
objectProperty('sirenProperty', 'properties', _index["default"]);
|
|
135
135
|
objectProperty('sirenProperties', 'properties', _index["default"]);
|
|
136
136
|
}
|
|
137
|
-
|
|
138
|
-
module.exports = exports.default;
|
|
139
137
|
//# sourceMappingURL=chaiPlugin.js.map
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports["default"] = Entity;
|
|
6
|
+
exports.Entity = exports["default"] = Entity;
|
|
7
|
+
Object.defineProperty(exports, "Action", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _Action["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "Link", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _Link["default"];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
7
19
|
|
|
8
20
|
var _Action = _interopRequireDefault(require("./Action"));
|
|
9
21
|
|
|
@@ -423,6 +435,4 @@ Entity.prototype.getSubEntitiesByType = function (entityType) {
|
|
|
423
435
|
var vals = (0, _util.getMatchingValue)(this._entitiesByType, entityType);
|
|
424
436
|
return vals ? vals.slice() : [];
|
|
425
437
|
};
|
|
426
|
-
|
|
427
|
-
module.exports = exports.default;
|
|
428
438
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["Entity","entity","JSON","parse","rel","Array","isArray","stringify","title","type","properties","actions","links","entities","_actionsByName","_actionsByClass","_actionsByMethod","_actionsByType","forEach","action","actionInstance","Action","push","name","method","cls","_linksByRel","_linksByClass","_linksByType","link","linkInstance","Link","_entitiesByRel","_entitiesByClass","_entitiesByType","subEntity","subEntityInstance","href","prototype","toJSON","hasAction","actionName","hasActionByName","hasActionByClass","actionClass","hasActionByMethod","actionMethod","hasActionByType","actionType","hasClass","hasEntity","entityRel","hasSubEntityByRel","hasEntityByRel","hasEntityByClass","entityClass","hasSubEntityByClass","hasEntityByType","entityType","hasSubEntityByType","hasLink","linkRel","hasLinkByRel","hasLinkByClass","linkClass","hasLinkByType","linkType","hasProperty","property","getAction","getActionByName","getActionByClass","vals","undefined","getActionsByClass","slice","getActionByClasses","actionClasses","length","getActionsByClasses","getActionByMethod","getActionsByMethod","getActionByType","getActionsByType","getLink","getLinkByRel","getLinks","getLinksByRel","getLinkByRels","linkRels","getLinksByRels","getLinkByClass","getLinksByClass","getLinkByClasses","linkClasses","getLinksByClasses","getLinkByType","getLinksByType","getSubEntity","getSubEntityByRel","getSubEntities","getSubEntitiesByRel","getSubEntityByRels","entityRels","getSubEntitiesByRels","getSubEntityByClass","getSubEntitiesByClass","getSubEntityByClasses","entityClasses","getSubEntitiesByClasses","getSubEntityByType","getSubEntitiesByType"],"mappings":"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","sourcesContent":["import Action from './Action';\nimport assert from './assert';\nimport Link from './Link';\nimport { contains, getMatchingValue, getMatchingValuesByAll, hasProperty } from './util.js';\n\nexport default function Entity(entity) {\n\tentity = entity || {};\n\n\tif (entity instanceof Entity) {\n\t\treturn entity;\n\t}\n\tif (!(this instanceof Entity)) {\n\t\treturn new Entity(entity);\n\t}\n\n\tif ('object' !== typeof entity) {\n\t\tentity = JSON.parse(entity);\n\t}\n\n\tassert('undefined' === typeof entity.rel || Array.isArray(entity.rel),\n\t\t'entity.rel must be an array or undefined, got ' + JSON.stringify(entity.rel));\n\tassert('undefined' === typeof entity.title || 'string' === typeof entity.title,\n\t\t'entity.title must be a string or undefined, got ' + JSON.stringify(entity.title));\n\tassert('undefined' === typeof entity.type || 'string' === typeof entity.type,\n\t\t'entity.type must be a string or undefined, got ' + JSON.stringify(entity.type));\n\tassert('undefined' === typeof entity.properties || 'object' === typeof entity.properties,\n\t\t'entity.properties must be an object or undefined, got ' + JSON.stringify(entity.properties));\n\tassert('undefined' === typeof entity.class || Array.isArray(entity.class),\n\t\t'entity.class must be an array or undefined, got ' + JSON.stringify(entity.class));\n\tassert('undefined' === typeof entity.actions || Array.isArray(entity.actions),\n\t\t'entity.actions must be an array or undefined, got ' + JSON.stringify(entity.actions));\n\tassert('undefined' === typeof entity.links || Array.isArray(entity.links),\n\t\t'entity.links must be an array or undefined, got ' + JSON.stringify(entity.links));\n\tassert('undefined' === typeof entity.entities || Array.isArray(entity.entities),\n\t\t'entity.entities must be an array or undefined, got ' + JSON.stringify(entity.entities));\n\n\tif (entity.rel) {\n\t\t// Only applies to sub-entities (required for them)\n\t\tthis.rel = entity.rel;\n\t}\n\n\tif (entity.title) {\n\t\tthis.title = entity.title;\n\t}\n\n\tif (entity.type) {\n\t\tthis.type = entity.type;\n\t}\n\n\tif (entity.properties) {\n\t\tthis.properties = entity.properties;\n\t}\n\n\tif (entity.class) {\n\t\tthis.class = entity.class;\n\t}\n\n\tthis._actionsByName = {};\n\tthis._actionsByClass = {};\n\tthis._actionsByMethod = {};\n\tthis._actionsByType = {};\n\tif (entity.actions) {\n\t\tthis.actions = [];\n\t\tentity.actions.forEach(action => {\n\t\t\tconst actionInstance = new Action(action);\n\t\t\tthis.actions.push(actionInstance);\n\t\t\tthis._actionsByName[actionInstance.name] = actionInstance;\n\n\t\t\tif (actionInstance.method) {\n\t\t\t\tthis._actionsByMethod[actionInstance.method] = this._actionsByMethod[actionInstance.method] || [];\n\t\t\t\tthis._actionsByMethod[actionInstance.method].push(actionInstance);\n\t\t\t}\n\n\t\t\tif (actionInstance.type) {\n\t\t\t\tthis._actionsByType[actionInstance.type] = this._actionsByType[actionInstance.type] || [];\n\t\t\t\tthis._actionsByType[actionInstance.type].push(actionInstance);\n\t\t\t}\n\n\t\t\tif (actionInstance.class) {\n\t\t\t\tactionInstance.class.forEach(cls => {\n\t\t\t\t\tthis._actionsByClass[cls] = this._actionsByClass[cls] || [];\n\t\t\t\t\tthis._actionsByClass[cls].push(actionInstance);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tthis._linksByRel = {};\n\tthis._linksByClass = {};\n\tthis._linksByType = {};\n\tif (entity.links) {\n\t\tthis.links = [];\n\t\tentity.links.forEach(link => {\n\t\t\tconst linkInstance = new Link(link);\n\t\t\tthis.links.push(linkInstance);\n\n\t\t\tlinkInstance.rel.forEach(rel => {\n\t\t\t\tthis._linksByRel[rel] = this._linksByRel[rel] || [];\n\t\t\t\tthis._linksByRel[rel].push(linkInstance);\n\t\t\t});\n\n\t\t\tif (linkInstance.class) {\n\t\t\t\tlinkInstance.class.forEach(cls => {\n\t\t\t\t\tthis._linksByClass[cls] = this._linksByClass[cls] || [];\n\t\t\t\t\tthis._linksByClass[cls].push(linkInstance);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (linkInstance.type) {\n\t\t\t\tthis._linksByType[linkInstance.type] = this._linksByType[linkInstance.type] || [];\n\t\t\t\tthis._linksByType[linkInstance.type].push(linkInstance);\n\t\t\t}\n\t\t});\n\t}\n\n\tthis._entitiesByRel = {};\n\tthis._entitiesByClass = {};\n\tthis._entitiesByType = {};\n\tif (entity.entities) {\n\t\tthis.entities = [];\n\t\tentity.entities.forEach(subEntity => {\n\t\t\t// Subentities must have a rel array\n\t\t\tassert(Array.isArray(subEntity.rel),\n\t\t\t\t'sub-entities must have a rel array, got ' + JSON.stringify(subEntity.rel));\n\n\t\t\tlet subEntityInstance;\n\t\t\tif ('string' === typeof subEntity.href) {\n\t\t\t\tsubEntityInstance = new Link(subEntity);\n\t\t\t} else {\n\t\t\t\tsubEntityInstance = new Entity(subEntity);\n\t\t\t}\n\t\t\tthis.entities.push(subEntityInstance);\n\n\t\t\tsubEntityInstance.rel.forEach(rel => {\n\t\t\t\tthis._entitiesByRel[rel] = this._entitiesByRel[rel] || [];\n\t\t\t\tthis._entitiesByRel[rel].push(subEntityInstance);\n\t\t\t});\n\n\t\t\tif (subEntityInstance.class) {\n\t\t\t\tsubEntityInstance.class.forEach(cls => {\n\t\t\t\t\tthis._entitiesByClass[cls] = this._entitiesByClass[cls] || [];\n\t\t\t\t\tthis._entitiesByClass[cls].push(subEntityInstance);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (subEntityInstance.type) {\n\t\t\t\tthis._entitiesByType[subEntityInstance.type] = this._entitiesByType[subEntityInstance.type] || [];\n\t\t\t\tthis._entitiesByType[subEntityInstance.type].push(subEntityInstance);\n\t\t\t}\n\t\t});\n\t}\n}\n\nEntity.prototype.toJSON = function() {\n\treturn {\n\t\trel: this.rel,\n\t\ttitle: this.title,\n\t\ttype: this.type,\n\t\tproperties: this.properties,\n\t\tclass: this.class,\n\t\tactions: this.actions,\n\t\tlinks: this.links,\n\t\tentities: this.entities\n\t};\n};\n\nEntity.prototype.hasAction = function(actionName) {\n\treturn this.hasActionByName(actionName);\n};\n\nEntity.prototype.hasActionByName = function(actionName) {\n\treturn hasProperty(this._actionsByName, actionName);\n};\n\nEntity.prototype.hasActionByClass = function(actionClass) {\n\treturn hasProperty(this._actionsByClass, actionClass);\n};\n\nEntity.prototype.hasActionByMethod = function(actionMethod) {\n\treturn hasProperty(this._actionsByMethod, actionMethod);\n};\n\nEntity.prototype.hasActionByType = function(actionType) {\n\treturn hasProperty(this._actionsByType, actionType);\n};\n\nEntity.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n\nEntity.prototype.hasEntity = function(entityRel) {\n\treturn this.hasSubEntityByRel(entityRel);\n};\n\nEntity.prototype.hasEntityByRel = function(entityRel) {\n\treturn this.hasSubEntityByRel(entityRel);\n};\n\nEntity.prototype.hasSubEntityByRel = function(entityRel) {\n\treturn hasProperty(this._entitiesByRel, entityRel);\n};\n\nEntity.prototype.hasEntityByClass = function(entityClass) {\n\treturn this.hasSubEntityByClass(entityClass);\n};\n\nEntity.prototype.hasSubEntityByClass = function(entityClass) {\n\treturn hasProperty(this._entitiesByClass, entityClass);\n};\n\nEntity.prototype.hasEntityByType = function(entityType) {\n\treturn this.hasSubEntityByType(entityType);\n};\n\nEntity.prototype.hasSubEntityByType = function(entityType) {\n\treturn hasProperty(this._entitiesByType, entityType);\n};\n\nEntity.prototype.hasLink = function(linkRel) {\n\treturn this.hasLinkByRel(linkRel);\n};\n\nEntity.prototype.hasLinkByRel = function(linkRel) {\n\treturn hasProperty(this._linksByRel, linkRel);\n};\n\nEntity.prototype.hasLinkByClass = function(linkClass) {\n\treturn hasProperty(this._linksByClass, linkClass);\n};\n\nEntity.prototype.hasLinkByType = function(linkType) {\n\treturn hasProperty(this._linksByType, linkType);\n};\n\nEntity.prototype.hasProperty = function(property) {\n\treturn hasProperty(this, 'properties') && hasProperty(this.properties, property);\n};\n\nEntity.prototype.getAction = function(actionName) {\n\treturn this.getActionByName(actionName);\n};\n\nEntity.prototype.getActionByName = function(actionName) {\n\treturn getMatchingValue(this._actionsByName, actionName);\n};\n\nEntity.prototype.getActionByClass = function(actionClass) {\n\tconst vals = getMatchingValue(this._actionsByClass, actionClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByClass = function(actionClass) {\n\tconst vals = getMatchingValue(this._actionsByClass, actionClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByClasses = function(actionClasses) {\n\tconst vals = getMatchingValuesByAll(this.actions, actionClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByClasses = function(actionClasses) {\n\tconst vals = getMatchingValuesByAll(this.actions, actionClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByMethod = function(actionMethod) {\n\tconst vals = getMatchingValue(this._actionsByMethod, actionMethod);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByMethod = function(actionMethod) {\n\tconst vals = getMatchingValue(this._actionsByMethod, actionMethod);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByType = function(actionType) {\n\tconst vals = getMatchingValue(this._actionsByType, actionType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByType = function(actionType) {\n\tconst vals = getMatchingValue(this._actionsByType, actionType);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLink = function(linkRel) {\n\treturn this.getLinkByRel(linkRel);\n};\n\nEntity.prototype.getLinks = function(linkRel) {\n\treturn this.getLinksByRel(linkRel);\n};\n\nEntity.prototype.getLinkByRel = function(linkRel) {\n\tconst vals = getMatchingValue(this._linksByRel, linkRel);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByRel = function(linkRel) {\n\tconst vals = getMatchingValue(this._linksByRel, linkRel);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByRels = function(linkRels) {\n\tconst vals = getMatchingValuesByAll(this.links, linkRels, 'rel');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByRels = function(linkRels) {\n\tconst vals = getMatchingValuesByAll(this.links, linkRels, 'rel');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByClass = function(linkClass) {\n\tconst vals = getMatchingValue(this._linksByClass, linkClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByClass = function(linkClass) {\n\tconst vals = getMatchingValue(this._linksByClass, linkClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByClasses = function(linkClasses) {\n\tconst vals = getMatchingValuesByAll(this.links, linkClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByClasses = function(linkClasses) {\n\tconst vals = getMatchingValuesByAll(this.links, linkClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByType = function(linkType) {\n\tconst vals = getMatchingValue(this._linksByType, linkType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByType = function(linkType) {\n\tconst vals = getMatchingValue(this._linksByType, linkType);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntity = function(entityRel) {\n\treturn this.getSubEntityByRel(entityRel);\n};\n\nEntity.prototype.getSubEntities = function(entityRel) {\n\treturn this.getSubEntitiesByRel(entityRel);\n};\n\nEntity.prototype.getSubEntityByRel = function(entityRel) {\n\tconst vals = getMatchingValue(this._entitiesByRel, entityRel);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByRel = function(entityRel) {\n\tconst vals = getMatchingValue(this._entitiesByRel, entityRel);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByRels = function(entityRels) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityRels, 'rel');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByRels = function(entityRels) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityRels, 'rel');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByClass = function(entityClass) {\n\tconst vals = getMatchingValue(this._entitiesByClass, entityClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByClass = function(entityClass) {\n\tconst vals = getMatchingValue(this._entitiesByClass, entityClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByClasses = function(entityClasses) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByClasses = function(entityClasses) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByType = function(entityType) {\n\tconst vals = getMatchingValue(this._entitiesByType, entityType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByType = function(entityType) {\n\tconst vals = getMatchingValue(this._entitiesByType, entityType);\n\treturn vals ? vals.slice() : [];\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["Entity","entity","JSON","parse","rel","Array","isArray","stringify","title","type","properties","actions","links","entities","_actionsByName","_actionsByClass","_actionsByMethod","_actionsByType","forEach","action","actionInstance","Action","push","name","method","cls","_linksByRel","_linksByClass","_linksByType","link","linkInstance","Link","_entitiesByRel","_entitiesByClass","_entitiesByType","subEntity","subEntityInstance","href","prototype","toJSON","hasAction","actionName","hasActionByName","hasActionByClass","actionClass","hasActionByMethod","actionMethod","hasActionByType","actionType","hasClass","hasEntity","entityRel","hasSubEntityByRel","hasEntityByRel","hasEntityByClass","entityClass","hasSubEntityByClass","hasEntityByType","entityType","hasSubEntityByType","hasLink","linkRel","hasLinkByRel","hasLinkByClass","linkClass","hasLinkByType","linkType","hasProperty","property","getAction","getActionByName","getActionByClass","vals","undefined","getActionsByClass","slice","getActionByClasses","actionClasses","length","getActionsByClasses","getActionByMethod","getActionsByMethod","getActionByType","getActionsByType","getLink","getLinkByRel","getLinks","getLinksByRel","getLinkByRels","linkRels","getLinksByRels","getLinkByClass","getLinksByClass","getLinkByClasses","linkClasses","getLinksByClasses","getLinkByType","getLinksByType","getSubEntity","getSubEntityByRel","getSubEntities","getSubEntitiesByRel","getSubEntityByRels","entityRels","getSubEntitiesByRels","getSubEntityByClass","getSubEntitiesByClass","getSubEntityByClasses","entityClasses","getSubEntitiesByClasses","getSubEntityByType","getSubEntitiesByType"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEe,SAASA,MAAT,CAAgBC,MAAhB,EAAwB;AAAA;;AACtCA,EAAAA,MAAM,GAAGA,MAAM,IAAI,EAAnB;;AAEA,MAAIA,MAAM,YAAYD,MAAtB,EAA8B;AAC7B,WAAOC,MAAP;AACA;;AACD,MAAI,EAAE,gBAAgBD,MAAlB,CAAJ,EAA+B;AAC9B,WAAO,IAAIA,MAAJ,CAAWC,MAAX,CAAP;AACA;;AAED,MAAI,qBAAoBA,MAApB,CAAJ,EAAgC;AAC/BA,IAAAA,MAAM,GAAGC,IAAI,CAACC,KAAL,CAAWF,MAAX,CAAT;AACA;;AAED,0BAAO,gBAAgB,OAAOA,MAAM,CAACG,GAA9B,IAAqCC,KAAK,CAACC,OAAN,CAAcL,MAAM,CAACG,GAArB,CAA5C,EACC,mDAAmDF,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACG,GAAtB,CADpD;AAEA,0BAAO,gBAAgB,OAAOH,MAAM,CAACO,KAA9B,IAAuC,aAAa,OAAOP,MAAM,CAACO,KAAzE,EACC,qDAAqDN,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACO,KAAtB,CADtD;AAEA,0BAAO,gBAAgB,OAAOP,MAAM,CAACQ,IAA9B,IAAsC,aAAa,OAAOR,MAAM,CAACQ,IAAxE,EACC,oDAAoDP,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACQ,IAAtB,CADrD;AAEA,0BAAO,gBAAgB,OAAOR,MAAM,CAACS,UAA9B,IAA4C,qBAAoBT,MAAM,CAACS,UAA3B,CAAnD,EACC,2DAA2DR,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACS,UAAtB,CAD5D;AAEA,0BAAO,gBAAgB,OAAOT,MAAM,SAA7B,IAAuCI,KAAK,CAACC,OAAN,CAAcL,MAAM,SAApB,CAA9C,EACC,qDAAqDC,IAAI,CAACK,SAAL,CAAeN,MAAM,SAArB,CADtD;AAEA,0BAAO,gBAAgB,OAAOA,MAAM,CAACU,OAA9B,IAAyCN,KAAK,CAACC,OAAN,CAAcL,MAAM,CAACU,OAArB,CAAhD,EACC,uDAAuDT,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACU,OAAtB,CADxD;AAEA,0BAAO,gBAAgB,OAAOV,MAAM,CAACW,KAA9B,IAAuCP,KAAK,CAACC,OAAN,CAAcL,MAAM,CAACW,KAArB,CAA9C,EACC,qDAAqDV,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACW,KAAtB,CADtD;AAEA,0BAAO,gBAAgB,OAAOX,MAAM,CAACY,QAA9B,IAA0CR,KAAK,CAACC,OAAN,CAAcL,MAAM,CAACY,QAArB,CAAjD,EACC,wDAAwDX,IAAI,CAACK,SAAL,CAAeN,MAAM,CAACY,QAAtB,CADzD;;AAGA,MAAIZ,MAAM,CAACG,GAAX,EAAgB;AACf;AACA,SAAKA,GAAL,GAAWH,MAAM,CAACG,GAAlB;AACA;;AAED,MAAIH,MAAM,CAACO,KAAX,EAAkB;AACjB,SAAKA,KAAL,GAAaP,MAAM,CAACO,KAApB;AACA;;AAED,MAAIP,MAAM,CAACQ,IAAX,EAAiB;AAChB,SAAKA,IAAL,GAAYR,MAAM,CAACQ,IAAnB;AACA;;AAED,MAAIR,MAAM,CAACS,UAAX,EAAuB;AACtB,SAAKA,UAAL,GAAkBT,MAAM,CAACS,UAAzB;AACA;;AAED,MAAIT,MAAM,SAAV,EAAkB;AACjB,oBAAaA,MAAM,SAAnB;AACA;;AAED,OAAKa,cAAL,GAAsB,EAAtB;AACA,OAAKC,eAAL,GAAuB,EAAvB;AACA,OAAKC,gBAAL,GAAwB,EAAxB;AACA,OAAKC,cAAL,GAAsB,EAAtB;;AACA,MAAIhB,MAAM,CAACU,OAAX,EAAoB;AACnB,SAAKA,OAAL,GAAe,EAAf;AACAV,IAAAA,MAAM,CAACU,OAAP,CAAeO,OAAf,CAAuB,UAAAC,MAAM,EAAI;AAChC,UAAMC,cAAc,GAAG,IAAIC,kBAAJ,CAAWF,MAAX,CAAvB;;AACA,MAAA,KAAI,CAACR,OAAL,CAAaW,IAAb,CAAkBF,cAAlB;;AACA,MAAA,KAAI,CAACN,cAAL,CAAoBM,cAAc,CAACG,IAAnC,IAA2CH,cAA3C;;AAEA,UAAIA,cAAc,CAACI,MAAnB,EAA2B;AAC1B,QAAA,KAAI,CAACR,gBAAL,CAAsBI,cAAc,CAACI,MAArC,IAA+C,KAAI,CAACR,gBAAL,CAAsBI,cAAc,CAACI,MAArC,KAAgD,EAA/F;;AACA,QAAA,KAAI,CAACR,gBAAL,CAAsBI,cAAc,CAACI,MAArC,EAA6CF,IAA7C,CAAkDF,cAAlD;AACA;;AAED,UAAIA,cAAc,CAACX,IAAnB,EAAyB;AACxB,QAAA,KAAI,CAACQ,cAAL,CAAoBG,cAAc,CAACX,IAAnC,IAA2C,KAAI,CAACQ,cAAL,CAAoBG,cAAc,CAACX,IAAnC,KAA4C,EAAvF;;AACA,QAAA,KAAI,CAACQ,cAAL,CAAoBG,cAAc,CAACX,IAAnC,EAAyCa,IAAzC,CAA8CF,cAA9C;AACA;;AAED,UAAIA,cAAc,SAAlB,EAA0B;AACzBA,QAAAA,cAAc,SAAd,CAAqBF,OAArB,CAA6B,UAAAO,GAAG,EAAI;AACnC,UAAA,KAAI,CAACV,eAAL,CAAqBU,GAArB,IAA4B,KAAI,CAACV,eAAL,CAAqBU,GAArB,KAA6B,EAAzD;;AACA,UAAA,KAAI,CAACV,eAAL,CAAqBU,GAArB,EAA0BH,IAA1B,CAA+BF,cAA/B;AACA,SAHD;AAIA;AACD,KArBD;AAsBA;;AAED,OAAKM,WAAL,GAAmB,EAAnB;AACA,OAAKC,aAAL,GAAqB,EAArB;AACA,OAAKC,YAAL,GAAoB,EAApB;;AACA,MAAI3B,MAAM,CAACW,KAAX,EAAkB;AACjB,SAAKA,KAAL,GAAa,EAAb;AACAX,IAAAA,MAAM,CAACW,KAAP,CAAaM,OAAb,CAAqB,UAAAW,IAAI,EAAI;AAC5B,UAAMC,YAAY,GAAG,IAAIC,gBAAJ,CAASF,IAAT,CAArB;;AACA,MAAA,KAAI,CAACjB,KAAL,CAAWU,IAAX,CAAgBQ,YAAhB;;AAEAA,MAAAA,YAAY,CAAC1B,GAAb,CAAiBc,OAAjB,CAAyB,UAAAd,GAAG,EAAI;AAC/B,QAAA,KAAI,CAACsB,WAAL,CAAiBtB,GAAjB,IAAwB,KAAI,CAACsB,WAAL,CAAiBtB,GAAjB,KAAyB,EAAjD;;AACA,QAAA,KAAI,CAACsB,WAAL,CAAiBtB,GAAjB,EAAsBkB,IAAtB,CAA2BQ,YAA3B;AACA,OAHD;;AAKA,UAAIA,YAAY,SAAhB,EAAwB;AACvBA,QAAAA,YAAY,SAAZ,CAAmBZ,OAAnB,CAA2B,UAAAO,GAAG,EAAI;AACjC,UAAA,KAAI,CAACE,aAAL,CAAmBF,GAAnB,IAA0B,KAAI,CAACE,aAAL,CAAmBF,GAAnB,KAA2B,EAArD;;AACA,UAAA,KAAI,CAACE,aAAL,CAAmBF,GAAnB,EAAwBH,IAAxB,CAA6BQ,YAA7B;AACA,SAHD;AAIA;;AAED,UAAIA,YAAY,CAACrB,IAAjB,EAAuB;AACtB,QAAA,KAAI,CAACmB,YAAL,CAAkBE,YAAY,CAACrB,IAA/B,IAAuC,KAAI,CAACmB,YAAL,CAAkBE,YAAY,CAACrB,IAA/B,KAAwC,EAA/E;;AACA,QAAA,KAAI,CAACmB,YAAL,CAAkBE,YAAY,CAACrB,IAA/B,EAAqCa,IAArC,CAA0CQ,YAA1C;AACA;AACD,KApBD;AAqBA;;AAED,OAAKE,cAAL,GAAsB,EAAtB;AACA,OAAKC,gBAAL,GAAwB,EAAxB;AACA,OAAKC,eAAL,GAAuB,EAAvB;;AACA,MAAIjC,MAAM,CAACY,QAAX,EAAqB;AACpB,SAAKA,QAAL,GAAgB,EAAhB;AACAZ,IAAAA,MAAM,CAACY,QAAP,CAAgBK,OAAhB,CAAwB,UAAAiB,SAAS,EAAI;AACpC;AACA,8BAAO9B,KAAK,CAACC,OAAN,CAAc6B,SAAS,CAAC/B,GAAxB,CAAP,EACC,6CAA6CF,IAAI,CAACK,SAAL,CAAe4B,SAAS,CAAC/B,GAAzB,CAD9C;AAGA,UAAIgC,iBAAJ;;AACA,UAAI,aAAa,OAAOD,SAAS,CAACE,IAAlC,EAAwC;AACvCD,QAAAA,iBAAiB,GAAG,IAAIL,gBAAJ,CAASI,SAAT,CAApB;AACA,OAFD,MAEO;AACNC,QAAAA,iBAAiB,GAAG,IAAIpC,MAAJ,CAAWmC,SAAX,CAApB;AACA;;AACD,MAAA,KAAI,CAACtB,QAAL,CAAcS,IAAd,CAAmBc,iBAAnB;;AAEAA,MAAAA,iBAAiB,CAAChC,GAAlB,CAAsBc,OAAtB,CAA8B,UAAAd,GAAG,EAAI;AACpC,QAAA,KAAI,CAAC4B,cAAL,CAAoB5B,GAApB,IAA2B,KAAI,CAAC4B,cAAL,CAAoB5B,GAApB,KAA4B,EAAvD;;AACA,QAAA,KAAI,CAAC4B,cAAL,CAAoB5B,GAApB,EAAyBkB,IAAzB,CAA8Bc,iBAA9B;AACA,OAHD;;AAKA,UAAIA,iBAAiB,SAArB,EAA6B;AAC5BA,QAAAA,iBAAiB,SAAjB,CAAwBlB,OAAxB,CAAgC,UAAAO,GAAG,EAAI;AACtC,UAAA,KAAI,CAACQ,gBAAL,CAAsBR,GAAtB,IAA6B,KAAI,CAACQ,gBAAL,CAAsBR,GAAtB,KAA8B,EAA3D;;AACA,UAAA,KAAI,CAACQ,gBAAL,CAAsBR,GAAtB,EAA2BH,IAA3B,CAAgCc,iBAAhC;AACA,SAHD;AAIA;;AAED,UAAIA,iBAAiB,CAAC3B,IAAtB,EAA4B;AAC3B,QAAA,KAAI,CAACyB,eAAL,CAAqBE,iBAAiB,CAAC3B,IAAvC,IAA+C,KAAI,CAACyB,eAAL,CAAqBE,iBAAiB,CAAC3B,IAAvC,KAAgD,EAA/F;;AACA,QAAA,KAAI,CAACyB,eAAL,CAAqBE,iBAAiB,CAAC3B,IAAvC,EAA6Ca,IAA7C,CAAkDc,iBAAlD;AACA;AACD,KA7BD;AA8BA;AACD;;AAEDpC,MAAM,CAACsC,SAAP,CAAiBC,MAAjB,GAA0B,YAAW;AACpC,SAAO;AACNnC,IAAAA,GAAG,EAAE,KAAKA,GADJ;AAENI,IAAAA,KAAK,EAAE,KAAKA,KAFN;AAGNC,IAAAA,IAAI,EAAE,KAAKA,IAHL;AAINC,IAAAA,UAAU,EAAE,KAAKA,UAJX;AAKN,aAAO,aALD;AAMNC,IAAAA,OAAO,EAAE,KAAKA,OANR;AAONC,IAAAA,KAAK,EAAE,KAAKA,KAPN;AAQNC,IAAAA,QAAQ,EAAE,KAAKA;AART,GAAP;AAUA,CAXD;;AAaAb,MAAM,CAACsC,SAAP,CAAiBE,SAAjB,GAA6B,UAASC,UAAT,EAAqB;AACjD,SAAO,KAAKC,eAAL,CAAqBD,UAArB,CAAP;AACA,CAFD;;AAIAzC,MAAM,CAACsC,SAAP,CAAiBI,eAAjB,GAAmC,UAASD,UAAT,EAAqB;AACvD,SAAO,uBAAY,KAAK3B,cAAjB,EAAiC2B,UAAjC,CAAP;AACA,CAFD;;AAIAzC,MAAM,CAACsC,SAAP,CAAiBK,gBAAjB,GAAoC,UAASC,WAAT,EAAsB;AACzD,SAAO,uBAAY,KAAK7B,eAAjB,EAAkC6B,WAAlC,CAAP;AACA,CAFD;;AAIA5C,MAAM,CAACsC,SAAP,CAAiBO,iBAAjB,GAAqC,UAASC,YAAT,EAAuB;AAC3D,SAAO,uBAAY,KAAK9B,gBAAjB,EAAmC8B,YAAnC,CAAP;AACA,CAFD;;AAIA9C,MAAM,CAACsC,SAAP,CAAiBS,eAAjB,GAAmC,UAASC,UAAT,EAAqB;AACvD,SAAO,uBAAY,KAAK/B,cAAjB,EAAiC+B,UAAjC,CAAP;AACA,CAFD;;AAIAhD,MAAM,CAACsC,SAAP,CAAiBW,QAAjB,GAA4B,UAASxB,GAAT,EAAc;AACzC,SAAO,yBAAsBpB,KAAtB,IAA+B,oBAAS,aAAT,EAAqBoB,GAArB,CAAtC;AACA,CAFD;;AAIAzB,MAAM,CAACsC,SAAP,CAAiBY,SAAjB,GAA6B,UAASC,SAAT,EAAoB;AAChD,SAAO,KAAKC,iBAAL,CAAuBD,SAAvB,CAAP;AACA,CAFD;;AAIAnD,MAAM,CAACsC,SAAP,CAAiBe,cAAjB,GAAkC,UAASF,SAAT,EAAoB;AACrD,SAAO,KAAKC,iBAAL,CAAuBD,SAAvB,CAAP;AACA,CAFD;;AAIAnD,MAAM,CAACsC,SAAP,CAAiBc,iBAAjB,GAAqC,UAASD,SAAT,EAAoB;AACxD,SAAO,uBAAY,KAAKnB,cAAjB,EAAiCmB,SAAjC,CAAP;AACA,CAFD;;AAIAnD,MAAM,CAACsC,SAAP,CAAiBgB,gBAAjB,GAAoC,UAASC,WAAT,EAAsB;AACzD,SAAO,KAAKC,mBAAL,CAAyBD,WAAzB,CAAP;AACA,CAFD;;AAIAvD,MAAM,CAACsC,SAAP,CAAiBkB,mBAAjB,GAAuC,UAASD,WAAT,EAAsB;AAC5D,SAAO,uBAAY,KAAKtB,gBAAjB,EAAmCsB,WAAnC,CAAP;AACA,CAFD;;AAIAvD,MAAM,CAACsC,SAAP,CAAiBmB,eAAjB,GAAmC,UAASC,UAAT,EAAqB;AACvD,SAAO,KAAKC,kBAAL,CAAwBD,UAAxB,CAAP;AACA,CAFD;;AAIA1D,MAAM,CAACsC,SAAP,CAAiBqB,kBAAjB,GAAsC,UAASD,UAAT,EAAqB;AAC1D,SAAO,uBAAY,KAAKxB,eAAjB,EAAkCwB,UAAlC,CAAP;AACA,CAFD;;AAIA1D,MAAM,CAACsC,SAAP,CAAiBsB,OAAjB,GAA2B,UAASC,OAAT,EAAkB;AAC5C,SAAO,KAAKC,YAAL,CAAkBD,OAAlB,CAAP;AACA,CAFD;;AAIA7D,MAAM,CAACsC,SAAP,CAAiBwB,YAAjB,GAAgC,UAASD,OAAT,EAAkB;AACjD,SAAO,uBAAY,KAAKnC,WAAjB,EAA8BmC,OAA9B,CAAP;AACA,CAFD;;AAIA7D,MAAM,CAACsC,SAAP,CAAiByB,cAAjB,GAAkC,UAASC,SAAT,EAAoB;AACrD,SAAO,uBAAY,KAAKrC,aAAjB,EAAgCqC,SAAhC,CAAP;AACA,CAFD;;AAIAhE,MAAM,CAACsC,SAAP,CAAiB2B,aAAjB,GAAiC,UAASC,QAAT,EAAmB;AACnD,SAAO,uBAAY,KAAKtC,YAAjB,EAA+BsC,QAA/B,CAAP;AACA,CAFD;;AAIAlE,MAAM,CAACsC,SAAP,CAAiB6B,WAAjB,GAA+B,UAASC,QAAT,EAAmB;AACjD,SAAO,uBAAY,IAAZ,EAAkB,YAAlB,KAAmC,uBAAY,KAAK1D,UAAjB,EAA6B0D,QAA7B,CAA1C;AACA,CAFD;;AAIApE,MAAM,CAACsC,SAAP,CAAiB+B,SAAjB,GAA6B,UAAS5B,UAAT,EAAqB;AACjD,SAAO,KAAK6B,eAAL,CAAqB7B,UAArB,CAAP;AACA,CAFD;;AAIAzC,MAAM,CAACsC,SAAP,CAAiBgC,eAAjB,GAAmC,UAAS7B,UAAT,EAAqB;AACvD,SAAO,4BAAiB,KAAK3B,cAAtB,EAAsC2B,UAAtC,CAAP;AACA,CAFD;;AAIAzC,MAAM,CAACsC,SAAP,CAAiBiC,gBAAjB,GAAoC,UAAS3B,WAAT,EAAsB;AACzD,MAAM4B,IAAI,GAAG,4BAAiB,KAAKzD,eAAtB,EAAuC6B,WAAvC,CAAb;AACA,SAAO4B,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBoC,iBAAjB,GAAqC,UAAS9B,WAAT,EAAsB;AAC1D,MAAM4B,IAAI,GAAG,4BAAiB,KAAKzD,eAAtB,EAAuC6B,WAAvC,CAAb;AACA,SAAO4B,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBsC,kBAAjB,GAAsC,UAASC,aAAT,EAAwB;AAC7D,MAAML,IAAI,GAAG,kCAAuB,KAAK7D,OAA5B,EAAqCkE,aAArC,EAAoD,OAApD,CAAb;AACA,SAAOL,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAAC,CAAD,CAA9B,GAAoCC,SAA3C;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiByC,mBAAjB,GAAuC,UAASF,aAAT,EAAwB;AAC9D,MAAML,IAAI,GAAG,kCAAuB,KAAK7D,OAA5B,EAAqCkE,aAArC,EAAoD,OAApD,CAAb;AACA,SAAOL,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAACG,KAAL,EAA1B,GAAyC,EAAhD;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiB0C,iBAAjB,GAAqC,UAASlC,YAAT,EAAuB;AAC3D,MAAM0B,IAAI,GAAG,4BAAiB,KAAKxD,gBAAtB,EAAwC8B,YAAxC,CAAb;AACA,SAAO0B,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiB2C,kBAAjB,GAAsC,UAASnC,YAAT,EAAuB;AAC5D,MAAM0B,IAAI,GAAG,4BAAiB,KAAKxD,gBAAtB,EAAwC8B,YAAxC,CAAb;AACA,SAAO0B,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiB4C,eAAjB,GAAmC,UAASlC,UAAT,EAAqB;AACvD,MAAMwB,IAAI,GAAG,4BAAiB,KAAKvD,cAAtB,EAAsC+B,UAAtC,CAAb;AACA,SAAOwB,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiB6C,gBAAjB,GAAoC,UAASnC,UAAT,EAAqB;AACxD,MAAMwB,IAAI,GAAG,4BAAiB,KAAKvD,cAAtB,EAAsC+B,UAAtC,CAAb;AACA,SAAOwB,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiB8C,OAAjB,GAA2B,UAASvB,OAAT,EAAkB;AAC5C,SAAO,KAAKwB,YAAL,CAAkBxB,OAAlB,CAAP;AACA,CAFD;;AAIA7D,MAAM,CAACsC,SAAP,CAAiBgD,QAAjB,GAA4B,UAASzB,OAAT,EAAkB;AAC7C,SAAO,KAAK0B,aAAL,CAAmB1B,OAAnB,CAAP;AACA,CAFD;;AAIA7D,MAAM,CAACsC,SAAP,CAAiB+C,YAAjB,GAAgC,UAASxB,OAAT,EAAkB;AACjD,MAAMW,IAAI,GAAG,4BAAiB,KAAK9C,WAAtB,EAAmCmC,OAAnC,CAAb;AACA,SAAOW,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBiD,aAAjB,GAAiC,UAAS1B,OAAT,EAAkB;AAClD,MAAMW,IAAI,GAAG,4BAAiB,KAAK9C,WAAtB,EAAmCmC,OAAnC,CAAb;AACA,SAAOW,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBkD,aAAjB,GAAiC,UAASC,QAAT,EAAmB;AACnD,MAAMjB,IAAI,GAAG,kCAAuB,KAAK5D,KAA5B,EAAmC6E,QAAnC,EAA6C,KAA7C,CAAb;AACA,SAAOjB,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAAC,CAAD,CAA9B,GAAoCC,SAA3C;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBoD,cAAjB,GAAkC,UAASD,QAAT,EAAmB;AACpD,MAAMjB,IAAI,GAAG,kCAAuB,KAAK5D,KAA5B,EAAmC6E,QAAnC,EAA6C,KAA7C,CAAb;AACA,SAAOjB,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAACG,KAAL,EAA1B,GAAyC,EAAhD;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBqD,cAAjB,GAAkC,UAAS3B,SAAT,EAAoB;AACrD,MAAMQ,IAAI,GAAG,4BAAiB,KAAK7C,aAAtB,EAAqCqC,SAArC,CAAb;AACA,SAAOQ,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBsD,eAAjB,GAAmC,UAAS5B,SAAT,EAAoB;AACtD,MAAMQ,IAAI,GAAG,4BAAiB,KAAK7C,aAAtB,EAAqCqC,SAArC,CAAb;AACA,SAAOQ,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBuD,gBAAjB,GAAoC,UAASC,WAAT,EAAsB;AACzD,MAAMtB,IAAI,GAAG,kCAAuB,KAAK5D,KAA5B,EAAmCkF,WAAnC,EAAgD,OAAhD,CAAb;AACA,SAAOtB,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAAC,CAAD,CAA9B,GAAoCC,SAA3C;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiByD,iBAAjB,GAAqC,UAASD,WAAT,EAAsB;AAC1D,MAAMtB,IAAI,GAAG,kCAAuB,KAAK5D,KAA5B,EAAmCkF,WAAnC,EAAgD,OAAhD,CAAb;AACA,SAAOtB,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAACG,KAAL,EAA1B,GAAyC,EAAhD;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiB0D,aAAjB,GAAiC,UAAS9B,QAAT,EAAmB;AACnD,MAAMM,IAAI,GAAG,4BAAiB,KAAK5C,YAAtB,EAAoCsC,QAApC,CAAb;AACA,SAAOM,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiB2D,cAAjB,GAAkC,UAAS/B,QAAT,EAAmB;AACpD,MAAMM,IAAI,GAAG,4BAAiB,KAAK5C,YAAtB,EAAoCsC,QAApC,CAAb;AACA,SAAOM,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiB4D,YAAjB,GAAgC,UAAS/C,SAAT,EAAoB;AACnD,SAAO,KAAKgD,iBAAL,CAAuBhD,SAAvB,CAAP;AACA,CAFD;;AAIAnD,MAAM,CAACsC,SAAP,CAAiB8D,cAAjB,GAAkC,UAASjD,SAAT,EAAoB;AACrD,SAAO,KAAKkD,mBAAL,CAAyBlD,SAAzB,CAAP;AACA,CAFD;;AAIAnD,MAAM,CAACsC,SAAP,CAAiB6D,iBAAjB,GAAqC,UAAShD,SAAT,EAAoB;AACxD,MAAMqB,IAAI,GAAG,4BAAiB,KAAKxC,cAAtB,EAAsCmB,SAAtC,CAAb;AACA,SAAOqB,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiB+D,mBAAjB,GAAuC,UAASlD,SAAT,EAAoB;AAC1D,MAAMqB,IAAI,GAAG,4BAAiB,KAAKxC,cAAtB,EAAsCmB,SAAtC,CAAb;AACA,SAAOqB,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBgE,kBAAjB,GAAsC,UAASC,UAAT,EAAqB;AAC1D,MAAM/B,IAAI,GAAG,kCAAuB,KAAK3D,QAA5B,EAAsC0F,UAAtC,EAAkD,KAAlD,CAAb;AACA,SAAO/B,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAAC,CAAD,CAA9B,GAAoCC,SAA3C;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBkE,oBAAjB,GAAwC,UAASD,UAAT,EAAqB;AAC5D,MAAM/B,IAAI,GAAG,kCAAuB,KAAK3D,QAA5B,EAAsC0F,UAAtC,EAAkD,KAAlD,CAAb;AACA,SAAO/B,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAACG,KAAL,EAA1B,GAAyC,EAAhD;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBmE,mBAAjB,GAAuC,UAASlD,WAAT,EAAsB;AAC5D,MAAMiB,IAAI,GAAG,4BAAiB,KAAKvC,gBAAtB,EAAwCsB,WAAxC,CAAb;AACA,SAAOiB,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBoE,qBAAjB,GAAyC,UAASnD,WAAT,EAAsB;AAC9D,MAAMiB,IAAI,GAAG,4BAAiB,KAAKvC,gBAAtB,EAAwCsB,WAAxC,CAAb;AACA,SAAOiB,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBqE,qBAAjB,GAAyC,UAASC,aAAT,EAAwB;AAChE,MAAMpC,IAAI,GAAG,kCAAuB,KAAK3D,QAA5B,EAAsC+F,aAAtC,EAAqD,OAArD,CAAb;AACA,SAAOpC,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAAC,CAAD,CAA9B,GAAoCC,SAA3C;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiBuE,uBAAjB,GAA2C,UAASD,aAAT,EAAwB;AAClE,MAAMpC,IAAI,GAAG,kCAAuB,KAAK3D,QAA5B,EAAsC+F,aAAtC,EAAqD,OAArD,CAAb;AACA,SAAOpC,IAAI,IAAIA,IAAI,CAACM,MAAL,GAAc,CAAtB,GAA0BN,IAAI,CAACG,KAAL,EAA1B,GAAyC,EAAhD;AACA,CAHD;;AAKA3E,MAAM,CAACsC,SAAP,CAAiBwE,kBAAjB,GAAsC,UAASpD,UAAT,EAAqB;AAC1D,MAAMc,IAAI,GAAG,4BAAiB,KAAKtC,eAAtB,EAAuCwB,UAAvC,CAAb;AACA,SAAOc,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAP,GAAaC,SAAxB;AACA,CAHD;;AAKAzE,MAAM,CAACsC,SAAP,CAAiByE,oBAAjB,GAAwC,UAASrD,UAAT,EAAqB;AAC5D,MAAMc,IAAI,GAAG,4BAAiB,KAAKtC,eAAtB,EAAuCwB,UAAvC,CAAb;AACA,SAAOc,IAAI,GAAGA,IAAI,CAACG,KAAL,EAAH,GAAkB,EAA7B;AACA,CAHD","sourcesContent":["import Action from './Action';\nimport assert from './assert';\nimport Link from './Link';\nimport { contains, getMatchingValue, getMatchingValuesByAll, hasProperty } from './util.js';\n\nexport default function Entity(entity) {\n\tentity = entity || {};\n\n\tif (entity instanceof Entity) {\n\t\treturn entity;\n\t}\n\tif (!(this instanceof Entity)) {\n\t\treturn new Entity(entity);\n\t}\n\n\tif ('object' !== typeof entity) {\n\t\tentity = JSON.parse(entity);\n\t}\n\n\tassert('undefined' === typeof entity.rel || Array.isArray(entity.rel),\n\t\t'entity.rel must be an array or undefined, got ' + JSON.stringify(entity.rel));\n\tassert('undefined' === typeof entity.title || 'string' === typeof entity.title,\n\t\t'entity.title must be a string or undefined, got ' + JSON.stringify(entity.title));\n\tassert('undefined' === typeof entity.type || 'string' === typeof entity.type,\n\t\t'entity.type must be a string or undefined, got ' + JSON.stringify(entity.type));\n\tassert('undefined' === typeof entity.properties || 'object' === typeof entity.properties,\n\t\t'entity.properties must be an object or undefined, got ' + JSON.stringify(entity.properties));\n\tassert('undefined' === typeof entity.class || Array.isArray(entity.class),\n\t\t'entity.class must be an array or undefined, got ' + JSON.stringify(entity.class));\n\tassert('undefined' === typeof entity.actions || Array.isArray(entity.actions),\n\t\t'entity.actions must be an array or undefined, got ' + JSON.stringify(entity.actions));\n\tassert('undefined' === typeof entity.links || Array.isArray(entity.links),\n\t\t'entity.links must be an array or undefined, got ' + JSON.stringify(entity.links));\n\tassert('undefined' === typeof entity.entities || Array.isArray(entity.entities),\n\t\t'entity.entities must be an array or undefined, got ' + JSON.stringify(entity.entities));\n\n\tif (entity.rel) {\n\t\t// Only applies to sub-entities (required for them)\n\t\tthis.rel = entity.rel;\n\t}\n\n\tif (entity.title) {\n\t\tthis.title = entity.title;\n\t}\n\n\tif (entity.type) {\n\t\tthis.type = entity.type;\n\t}\n\n\tif (entity.properties) {\n\t\tthis.properties = entity.properties;\n\t}\n\n\tif (entity.class) {\n\t\tthis.class = entity.class;\n\t}\n\n\tthis._actionsByName = {};\n\tthis._actionsByClass = {};\n\tthis._actionsByMethod = {};\n\tthis._actionsByType = {};\n\tif (entity.actions) {\n\t\tthis.actions = [];\n\t\tentity.actions.forEach(action => {\n\t\t\tconst actionInstance = new Action(action);\n\t\t\tthis.actions.push(actionInstance);\n\t\t\tthis._actionsByName[actionInstance.name] = actionInstance;\n\n\t\t\tif (actionInstance.method) {\n\t\t\t\tthis._actionsByMethod[actionInstance.method] = this._actionsByMethod[actionInstance.method] || [];\n\t\t\t\tthis._actionsByMethod[actionInstance.method].push(actionInstance);\n\t\t\t}\n\n\t\t\tif (actionInstance.type) {\n\t\t\t\tthis._actionsByType[actionInstance.type] = this._actionsByType[actionInstance.type] || [];\n\t\t\t\tthis._actionsByType[actionInstance.type].push(actionInstance);\n\t\t\t}\n\n\t\t\tif (actionInstance.class) {\n\t\t\t\tactionInstance.class.forEach(cls => {\n\t\t\t\t\tthis._actionsByClass[cls] = this._actionsByClass[cls] || [];\n\t\t\t\t\tthis._actionsByClass[cls].push(actionInstance);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tthis._linksByRel = {};\n\tthis._linksByClass = {};\n\tthis._linksByType = {};\n\tif (entity.links) {\n\t\tthis.links = [];\n\t\tentity.links.forEach(link => {\n\t\t\tconst linkInstance = new Link(link);\n\t\t\tthis.links.push(linkInstance);\n\n\t\t\tlinkInstance.rel.forEach(rel => {\n\t\t\t\tthis._linksByRel[rel] = this._linksByRel[rel] || [];\n\t\t\t\tthis._linksByRel[rel].push(linkInstance);\n\t\t\t});\n\n\t\t\tif (linkInstance.class) {\n\t\t\t\tlinkInstance.class.forEach(cls => {\n\t\t\t\t\tthis._linksByClass[cls] = this._linksByClass[cls] || [];\n\t\t\t\t\tthis._linksByClass[cls].push(linkInstance);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (linkInstance.type) {\n\t\t\t\tthis._linksByType[linkInstance.type] = this._linksByType[linkInstance.type] || [];\n\t\t\t\tthis._linksByType[linkInstance.type].push(linkInstance);\n\t\t\t}\n\t\t});\n\t}\n\n\tthis._entitiesByRel = {};\n\tthis._entitiesByClass = {};\n\tthis._entitiesByType = {};\n\tif (entity.entities) {\n\t\tthis.entities = [];\n\t\tentity.entities.forEach(subEntity => {\n\t\t\t// Subentities must have a rel array\n\t\t\tassert(Array.isArray(subEntity.rel),\n\t\t\t\t'sub-entities must have a rel array, got ' + JSON.stringify(subEntity.rel));\n\n\t\t\tlet subEntityInstance;\n\t\t\tif ('string' === typeof subEntity.href) {\n\t\t\t\tsubEntityInstance = new Link(subEntity);\n\t\t\t} else {\n\t\t\t\tsubEntityInstance = new Entity(subEntity);\n\t\t\t}\n\t\t\tthis.entities.push(subEntityInstance);\n\n\t\t\tsubEntityInstance.rel.forEach(rel => {\n\t\t\t\tthis._entitiesByRel[rel] = this._entitiesByRel[rel] || [];\n\t\t\t\tthis._entitiesByRel[rel].push(subEntityInstance);\n\t\t\t});\n\n\t\t\tif (subEntityInstance.class) {\n\t\t\t\tsubEntityInstance.class.forEach(cls => {\n\t\t\t\t\tthis._entitiesByClass[cls] = this._entitiesByClass[cls] || [];\n\t\t\t\t\tthis._entitiesByClass[cls].push(subEntityInstance);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (subEntityInstance.type) {\n\t\t\t\tthis._entitiesByType[subEntityInstance.type] = this._entitiesByType[subEntityInstance.type] || [];\n\t\t\t\tthis._entitiesByType[subEntityInstance.type].push(subEntityInstance);\n\t\t\t}\n\t\t});\n\t}\n}\n\nEntity.prototype.toJSON = function() {\n\treturn {\n\t\trel: this.rel,\n\t\ttitle: this.title,\n\t\ttype: this.type,\n\t\tproperties: this.properties,\n\t\tclass: this.class,\n\t\tactions: this.actions,\n\t\tlinks: this.links,\n\t\tentities: this.entities\n\t};\n};\n\nEntity.prototype.hasAction = function(actionName) {\n\treturn this.hasActionByName(actionName);\n};\n\nEntity.prototype.hasActionByName = function(actionName) {\n\treturn hasProperty(this._actionsByName, actionName);\n};\n\nEntity.prototype.hasActionByClass = function(actionClass) {\n\treturn hasProperty(this._actionsByClass, actionClass);\n};\n\nEntity.prototype.hasActionByMethod = function(actionMethod) {\n\treturn hasProperty(this._actionsByMethod, actionMethod);\n};\n\nEntity.prototype.hasActionByType = function(actionType) {\n\treturn hasProperty(this._actionsByType, actionType);\n};\n\nEntity.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n\nEntity.prototype.hasEntity = function(entityRel) {\n\treturn this.hasSubEntityByRel(entityRel);\n};\n\nEntity.prototype.hasEntityByRel = function(entityRel) {\n\treturn this.hasSubEntityByRel(entityRel);\n};\n\nEntity.prototype.hasSubEntityByRel = function(entityRel) {\n\treturn hasProperty(this._entitiesByRel, entityRel);\n};\n\nEntity.prototype.hasEntityByClass = function(entityClass) {\n\treturn this.hasSubEntityByClass(entityClass);\n};\n\nEntity.prototype.hasSubEntityByClass = function(entityClass) {\n\treturn hasProperty(this._entitiesByClass, entityClass);\n};\n\nEntity.prototype.hasEntityByType = function(entityType) {\n\treturn this.hasSubEntityByType(entityType);\n};\n\nEntity.prototype.hasSubEntityByType = function(entityType) {\n\treturn hasProperty(this._entitiesByType, entityType);\n};\n\nEntity.prototype.hasLink = function(linkRel) {\n\treturn this.hasLinkByRel(linkRel);\n};\n\nEntity.prototype.hasLinkByRel = function(linkRel) {\n\treturn hasProperty(this._linksByRel, linkRel);\n};\n\nEntity.prototype.hasLinkByClass = function(linkClass) {\n\treturn hasProperty(this._linksByClass, linkClass);\n};\n\nEntity.prototype.hasLinkByType = function(linkType) {\n\treturn hasProperty(this._linksByType, linkType);\n};\n\nEntity.prototype.hasProperty = function(property) {\n\treturn hasProperty(this, 'properties') && hasProperty(this.properties, property);\n};\n\nEntity.prototype.getAction = function(actionName) {\n\treturn this.getActionByName(actionName);\n};\n\nEntity.prototype.getActionByName = function(actionName) {\n\treturn getMatchingValue(this._actionsByName, actionName);\n};\n\nEntity.prototype.getActionByClass = function(actionClass) {\n\tconst vals = getMatchingValue(this._actionsByClass, actionClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByClass = function(actionClass) {\n\tconst vals = getMatchingValue(this._actionsByClass, actionClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByClasses = function(actionClasses) {\n\tconst vals = getMatchingValuesByAll(this.actions, actionClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByClasses = function(actionClasses) {\n\tconst vals = getMatchingValuesByAll(this.actions, actionClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByMethod = function(actionMethod) {\n\tconst vals = getMatchingValue(this._actionsByMethod, actionMethod);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByMethod = function(actionMethod) {\n\tconst vals = getMatchingValue(this._actionsByMethod, actionMethod);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByType = function(actionType) {\n\tconst vals = getMatchingValue(this._actionsByType, actionType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByType = function(actionType) {\n\tconst vals = getMatchingValue(this._actionsByType, actionType);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLink = function(linkRel) {\n\treturn this.getLinkByRel(linkRel);\n};\n\nEntity.prototype.getLinks = function(linkRel) {\n\treturn this.getLinksByRel(linkRel);\n};\n\nEntity.prototype.getLinkByRel = function(linkRel) {\n\tconst vals = getMatchingValue(this._linksByRel, linkRel);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByRel = function(linkRel) {\n\tconst vals = getMatchingValue(this._linksByRel, linkRel);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByRels = function(linkRels) {\n\tconst vals = getMatchingValuesByAll(this.links, linkRels, 'rel');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByRels = function(linkRels) {\n\tconst vals = getMatchingValuesByAll(this.links, linkRels, 'rel');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByClass = function(linkClass) {\n\tconst vals = getMatchingValue(this._linksByClass, linkClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByClass = function(linkClass) {\n\tconst vals = getMatchingValue(this._linksByClass, linkClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByClasses = function(linkClasses) {\n\tconst vals = getMatchingValuesByAll(this.links, linkClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByClasses = function(linkClasses) {\n\tconst vals = getMatchingValuesByAll(this.links, linkClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByType = function(linkType) {\n\tconst vals = getMatchingValue(this._linksByType, linkType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByType = function(linkType) {\n\tconst vals = getMatchingValue(this._linksByType, linkType);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntity = function(entityRel) {\n\treturn this.getSubEntityByRel(entityRel);\n};\n\nEntity.prototype.getSubEntities = function(entityRel) {\n\treturn this.getSubEntitiesByRel(entityRel);\n};\n\nEntity.prototype.getSubEntityByRel = function(entityRel) {\n\tconst vals = getMatchingValue(this._entitiesByRel, entityRel);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByRel = function(entityRel) {\n\tconst vals = getMatchingValue(this._entitiesByRel, entityRel);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByRels = function(entityRels) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityRels, 'rel');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByRels = function(entityRels) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityRels, 'rel');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByClass = function(entityClass) {\n\tconst vals = getMatchingValue(this._entitiesByClass, entityClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByClass = function(entityClass) {\n\tconst vals = getMatchingValue(this._entitiesByClass, entityClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByClasses = function(entityClasses) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByClasses = function(entityClasses) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByType = function(entityType) {\n\tconst vals = getMatchingValue(this._entitiesByType, entityType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByType = function(entityType) {\n\tconst vals = getMatchingValue(this._entitiesByType, entityType);\n\treturn vals ? vals.slice() : [];\n};\n\nexport {\n\tEntity,\n\tAction,\n\tLink\n};\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "siren-parser",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"build": "babel src --out-dir ./dist --source-maps
|
|
7
|
+
"build": "babel src --out-dir ./dist --source-maps",
|
|
8
8
|
"lint": "eslint src test --ext .js",
|
|
9
9
|
"test": "npm run lint && npm run test:unit",
|
|
10
10
|
"test:unit": "nyc mocha"
|
|
@@ -30,12 +30,11 @@
|
|
|
30
30
|
"@babel/node": "^7.12.16",
|
|
31
31
|
"@babel/preset-env": "^7.12.16",
|
|
32
32
|
"@babel/register": "^7.12.13",
|
|
33
|
-
"babel-plugin-add-module-exports": "^1.0.4",
|
|
34
33
|
"babel-plugin-istanbul": "^6.0.0",
|
|
35
34
|
"chai": "^4.3.0",
|
|
36
35
|
"eslint": "^7.20.0",
|
|
37
36
|
"eslint-config-brightspace": "^0.12.0",
|
|
38
|
-
"mocha": "^
|
|
37
|
+
"mocha": "^10.1.0",
|
|
39
38
|
"nock": "^13.0.7",
|
|
40
39
|
"nyc": "^15.1.0",
|
|
41
40
|
"sinon": "^9.2.4",
|
package/src/index.js
CHANGED