siren-parser 8.1.0 → 8.5.1
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 +6 -0
- package/dist/Action.js +1 -1
- package/dist/Action.js.map +1 -1
- package/dist/Field.js +15 -3
- package/dist/Field.js.map +1 -1
- package/dist/Link.js +1 -1
- package/dist/Link.js.map +1 -1
- package/dist/chaiPlugin.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/superagent.js +1 -1
- package/dist/superagent.js.map +1 -1
- package/dist/util.js +19 -5
- package/dist/util.js.map +1 -1
- package/package.json +18 -21
- package/src/Action.js +1 -1
- package/src/Field.js +17 -3
- package/src/Link.js +1 -1
- package/src/index.js +1 -1
- package/src/superagent.js +1 -1
- package/src/util.js +17 -5
package/README.md
CHANGED
|
@@ -295,6 +295,8 @@ Attributes:
|
|
|
295
295
|
* `class` (array of strings)
|
|
296
296
|
* `type` (string) _Must be a [Siren Field type][field types]_
|
|
297
297
|
* `title` (string)
|
|
298
|
+
* `min` (number)
|
|
299
|
+
* `max` (number)
|
|
298
300
|
|
|
299
301
|
#### `Field.hasClass(String class)`
|
|
300
302
|
|
|
@@ -345,6 +347,10 @@ There are two helper `superagent` methods included with this module, under `./su
|
|
|
345
347
|
npm test
|
|
346
348
|
```
|
|
347
349
|
|
|
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
|
+
|
|
348
354
|
## Contributing
|
|
349
355
|
|
|
350
356
|
1. **Fork** the repository. Committing directly against this repository is highly discouraged.
|
package/dist/Action.js
CHANGED
|
@@ -13,7 +13,7 @@ var _Field = _interopRequireDefault(require("./Field"));
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
16
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
16
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
17
17
|
|
|
18
18
|
function Action(action) {
|
|
19
19
|
var _this = this;
|
package/dist/Action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Action.js"],"names":["Action","action","JSON","stringify","name","href","Array","isArray","method","title","type","fields","_fieldsByName","_fieldsByClass","_fieldsByType","forEach","field","fieldInstance","Field","push","cls","prototype","toJSON","hasClass","hasField","fieldName","hasFieldByName","hasFieldByClass","fieldClass","hasFieldByType","fieldType","getField","getFieldByName","getFieldByClass","vals","undefined","getFieldsByClass","slice","getFieldByClasses","fieldClasses","length","getFieldsByClasses","getFieldByType","getFieldsByType"],"mappings":"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","sourcesContent":["import assert from './assert';\nimport {contains, getMatchingValue, getMatchingValuesByAll, hasProperty} from './util.js';\nimport Field from './Field';\n\nexport default function Action(action) {\n\tif (action instanceof Action) {\n\t\treturn action;\n\t}\n\tif (!(this instanceof Action)) {\n\t\treturn new Action(action);\n\t}\n\n\tassert('object' === typeof action, 'action must be an object, got ' + JSON.stringify(action));\n\tassert('string' === typeof action.name, 'action.name must be a string, got ' + JSON.stringify(action.name));\n\tassert('string' === typeof action.href, 'action.href must be a string, got ' + JSON.stringify(action.href));\n\tassert('undefined' === typeof action.class || Array.isArray(action.class),\n\t\t'action.class must be an array or undefined, got ' + JSON.stringify(action.class));\n\tassert('undefined' === typeof action.method || 'string' === typeof action.method,\n\t\t'action.method must be a string or undefined, got ' + JSON.stringify(action.method));\n\tassert('undefined' === typeof action.title || 'string' === typeof action.title,\n\t\t'action.title must be a string or undefined, got ' + JSON.stringify(action.title));\n\tassert('undefined' === typeof action.type || 'string' === typeof action.type,\n\t\t'action.type must be a string or undefined, got ' + JSON.stringify(action.type));\n\tassert('undefined' === typeof action.fields || Array.isArray(action.fields),\n\t\t'action.fields must be an array or undefined, got ' + JSON.stringify(action.fields));\n\n\tthis.name = action.name;\n\tthis.href = action.href;\n\n\tif (action.class) {\n\t\tthis.class = action.class;\n\t}\n\n\tthis.method = action.method || 'GET';\n\n\tif (action.title) {\n\t\tthis.title = action.title;\n\t}\n\n\tthis.type = action.type || 'application/x-www-form-urlencoded';\n\n\tthis._fieldsByName = {};\n\tthis._fieldsByClass = {};\n\tthis._fieldsByType = {};\n\tif (action.fields) {\n\t\tthis.fields = [];\n\n\t\taction.fields.forEach(field => {\n\t\t\tconst fieldInstance = new Field(field);\n\t\t\tthis.fields.push(fieldInstance);\n\n\t\t\tthis._fieldsByName[field.name] = fieldInstance;\n\n\t\t\tif (fieldInstance.type) {\n\t\t\t\tthis._fieldsByType[fieldInstance.type] = this._fieldsByType[fieldInstance.type] || [];\n\t\t\t\tthis._fieldsByType[fieldInstance.type].push(fieldInstance);\n\t\t\t}\n\n\t\t\tif (fieldInstance.class) {\n\t\t\t\tfieldInstance.class.forEach(cls => {\n\t\t\t\t\tthis._fieldsByClass[cls] = this._fieldsByClass[cls] || [];\n\t\t\t\t\tthis._fieldsByClass[cls].push(fieldInstance);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n\nAction.prototype.toJSON = function() {\n\treturn {\n\t\tname: this.name,\n\t\thref: this.href,\n\t\tclass: this.class,\n\t\tmethod: this.method,\n\t\ttitle: this.title,\n\t\ttype: this.type,\n\t\tfields: this.fields\n\t};\n};\n\nAction.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n\nAction.prototype.hasField = function(fieldName) {\n\treturn this.hasFieldByName(fieldName);\n};\n\nAction.prototype.hasFieldByName = function(fieldName) {\n\treturn hasProperty(this._fieldsByName, fieldName);\n};\n\nAction.prototype.hasFieldByClass = function(fieldClass) {\n\treturn hasProperty(this._fieldsByClass, fieldClass);\n};\n\nAction.prototype.hasFieldByType = function(fieldType) {\n\treturn hasProperty(this._fieldsByType, fieldType);\n};\n\nAction.prototype.getField = function(fieldName) {\n\treturn this.getFieldByName(fieldName);\n};\n\nAction.prototype.getFieldByName = function(fieldName) {\n\treturn getMatchingValue(this._fieldsByName, fieldName);\n};\n\nAction.prototype.getFieldByClass = function(fieldClass) {\n\tconst vals = getMatchingValue(this._fieldsByClass, fieldClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nAction.prototype.getFieldsByClass = function(fieldClass) {\n\tconst vals = getMatchingValue(this._fieldsByClass, fieldClass);\n\treturn vals ? vals.slice() : [];\n};\n\nAction.prototype.getFieldByClasses = function(fieldClasses) {\n\tconst vals = getMatchingValuesByAll(this.fields, fieldClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nAction.prototype.getFieldsByClasses = function(fieldClasses) {\n\tconst vals = getMatchingValuesByAll(this.fields, fieldClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nAction.prototype.getFieldByType = function(fieldType) {\n\tconst vals = getMatchingValue(this._fieldsByType, fieldType);\n\treturn vals ? vals[0] : undefined;\n};\n\nAction.prototype.getFieldsByType = function(fieldType) {\n\tconst vals = getMatchingValue(this._fieldsByType, fieldType);\n\treturn vals ? vals.slice() : [];\n};\n"],"file":"Action.js"}
|
|
1
|
+
{"version":3,"sources":["../src/Action.js"],"names":["Action","action","JSON","stringify","name","href","Array","isArray","method","title","type","fields","_fieldsByName","_fieldsByClass","_fieldsByType","forEach","field","fieldInstance","Field","push","cls","prototype","toJSON","hasClass","hasField","fieldName","hasFieldByName","hasFieldByClass","fieldClass","hasFieldByType","fieldType","getField","getFieldByName","getFieldByClass","vals","undefined","getFieldsByClass","slice","getFieldByClasses","fieldClasses","length","getFieldsByClasses","getFieldByType","getFieldsByType"],"mappings":"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","sourcesContent":["import assert from './assert';\nimport { contains, getMatchingValue, getMatchingValuesByAll, hasProperty } from './util.js';\nimport Field from './Field';\n\nexport default function Action(action) {\n\tif (action instanceof Action) {\n\t\treturn action;\n\t}\n\tif (!(this instanceof Action)) {\n\t\treturn new Action(action);\n\t}\n\n\tassert('object' === typeof action, 'action must be an object, got ' + JSON.stringify(action));\n\tassert('string' === typeof action.name, 'action.name must be a string, got ' + JSON.stringify(action.name));\n\tassert('string' === typeof action.href, 'action.href must be a string, got ' + JSON.stringify(action.href));\n\tassert('undefined' === typeof action.class || Array.isArray(action.class),\n\t\t'action.class must be an array or undefined, got ' + JSON.stringify(action.class));\n\tassert('undefined' === typeof action.method || 'string' === typeof action.method,\n\t\t'action.method must be a string or undefined, got ' + JSON.stringify(action.method));\n\tassert('undefined' === typeof action.title || 'string' === typeof action.title,\n\t\t'action.title must be a string or undefined, got ' + JSON.stringify(action.title));\n\tassert('undefined' === typeof action.type || 'string' === typeof action.type,\n\t\t'action.type must be a string or undefined, got ' + JSON.stringify(action.type));\n\tassert('undefined' === typeof action.fields || Array.isArray(action.fields),\n\t\t'action.fields must be an array or undefined, got ' + JSON.stringify(action.fields));\n\n\tthis.name = action.name;\n\tthis.href = action.href;\n\n\tif (action.class) {\n\t\tthis.class = action.class;\n\t}\n\n\tthis.method = action.method || 'GET';\n\n\tif (action.title) {\n\t\tthis.title = action.title;\n\t}\n\n\tthis.type = action.type || 'application/x-www-form-urlencoded';\n\n\tthis._fieldsByName = {};\n\tthis._fieldsByClass = {};\n\tthis._fieldsByType = {};\n\tif (action.fields) {\n\t\tthis.fields = [];\n\n\t\taction.fields.forEach(field => {\n\t\t\tconst fieldInstance = new Field(field);\n\t\t\tthis.fields.push(fieldInstance);\n\n\t\t\tthis._fieldsByName[field.name] = fieldInstance;\n\n\t\t\tif (fieldInstance.type) {\n\t\t\t\tthis._fieldsByType[fieldInstance.type] = this._fieldsByType[fieldInstance.type] || [];\n\t\t\t\tthis._fieldsByType[fieldInstance.type].push(fieldInstance);\n\t\t\t}\n\n\t\t\tif (fieldInstance.class) {\n\t\t\t\tfieldInstance.class.forEach(cls => {\n\t\t\t\t\tthis._fieldsByClass[cls] = this._fieldsByClass[cls] || [];\n\t\t\t\t\tthis._fieldsByClass[cls].push(fieldInstance);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n\nAction.prototype.toJSON = function() {\n\treturn {\n\t\tname: this.name,\n\t\thref: this.href,\n\t\tclass: this.class,\n\t\tmethod: this.method,\n\t\ttitle: this.title,\n\t\ttype: this.type,\n\t\tfields: this.fields\n\t};\n};\n\nAction.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n\nAction.prototype.hasField = function(fieldName) {\n\treturn this.hasFieldByName(fieldName);\n};\n\nAction.prototype.hasFieldByName = function(fieldName) {\n\treturn hasProperty(this._fieldsByName, fieldName);\n};\n\nAction.prototype.hasFieldByClass = function(fieldClass) {\n\treturn hasProperty(this._fieldsByClass, fieldClass);\n};\n\nAction.prototype.hasFieldByType = function(fieldType) {\n\treturn hasProperty(this._fieldsByType, fieldType);\n};\n\nAction.prototype.getField = function(fieldName) {\n\treturn this.getFieldByName(fieldName);\n};\n\nAction.prototype.getFieldByName = function(fieldName) {\n\treturn getMatchingValue(this._fieldsByName, fieldName);\n};\n\nAction.prototype.getFieldByClass = function(fieldClass) {\n\tconst vals = getMatchingValue(this._fieldsByClass, fieldClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nAction.prototype.getFieldsByClass = function(fieldClass) {\n\tconst vals = getMatchingValue(this._fieldsByClass, fieldClass);\n\treturn vals ? vals.slice() : [];\n};\n\nAction.prototype.getFieldByClasses = function(fieldClasses) {\n\tconst vals = getMatchingValuesByAll(this.fields, fieldClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nAction.prototype.getFieldsByClasses = function(fieldClasses) {\n\tconst vals = getMatchingValuesByAll(this.fields, fieldClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nAction.prototype.getFieldByType = function(fieldType) {\n\tconst vals = getMatchingValue(this._fieldsByType, fieldType);\n\treturn vals ? vals[0] : undefined;\n};\n\nAction.prototype.getFieldsByType = function(fieldType) {\n\tconst vals = getMatchingValue(this._fieldsByType, fieldType);\n\treturn vals ? vals.slice() : [];\n};\n"],"file":"Action.js"}
|
package/dist/Field.js
CHANGED
|
@@ -11,7 +11,7 @@ var _util = require("./util");
|
|
|
11
11
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
13
|
|
|
14
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
14
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
15
15
|
|
|
16
16
|
var VALID_TYPES = ['hidden', 'text', 'search', 'tel', 'url', 'email', 'password', 'datetime', 'date', 'month', 'week', 'time', 'datetime-local', 'number', 'range', 'color', 'checkbox', 'radio', 'file'];
|
|
17
17
|
|
|
@@ -29,6 +29,8 @@ function Field(field) {
|
|
|
29
29
|
(0, _assert["default"])('undefined' === typeof field["class"] || Array.isArray(field["class"]), 'field.class must be an array or undefined, got ' + JSON.stringify(field["class"]));
|
|
30
30
|
(0, _assert["default"])('undefined' === typeof field.type || 'string' === typeof field.type && VALID_TYPES.indexOf(field.type.toLowerCase()) > -1, 'field.type must be a valid field type string or undefined, got ' + JSON.stringify(field.type));
|
|
31
31
|
(0, _assert["default"])('undefined' === typeof field.title || 'string' === typeof field.title, 'field.title must be a string or undefined, got ' + JSON.stringify(field.title));
|
|
32
|
+
(0, _assert["default"])('undefined' === typeof field.min || 'number' === typeof field.min, 'field.min must be a number or undefined, got ' + JSON.stringify(field.min));
|
|
33
|
+
(0, _assert["default"])('undefined' === typeof field.max || 'number' === typeof field.max, 'field.max must be a number or undefined, got ' + JSON.stringify(field.max));
|
|
32
34
|
this.name = field.name;
|
|
33
35
|
|
|
34
36
|
if (field["class"]) {
|
|
@@ -39,13 +41,21 @@ function Field(field) {
|
|
|
39
41
|
this.type = field.type;
|
|
40
42
|
}
|
|
41
43
|
|
|
42
|
-
if (
|
|
44
|
+
if (Object.prototype.hasOwnProperty.call(field, 'value')) {
|
|
43
45
|
this.value = field.value;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
if (field.title) {
|
|
47
49
|
this.title = field.title;
|
|
48
50
|
}
|
|
51
|
+
|
|
52
|
+
if (typeof field.min === 'number') {
|
|
53
|
+
this.min = field.min;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (typeof field.max === 'number') {
|
|
57
|
+
this.max = field.max;
|
|
58
|
+
}
|
|
49
59
|
}
|
|
50
60
|
|
|
51
61
|
Field.prototype.toJSON = function () {
|
|
@@ -54,7 +64,9 @@ Field.prototype.toJSON = function () {
|
|
|
54
64
|
"class": this["class"],
|
|
55
65
|
type: this.type,
|
|
56
66
|
value: this.value,
|
|
57
|
-
title: this.title
|
|
67
|
+
title: this.title,
|
|
68
|
+
min: this.min,
|
|
69
|
+
max: this.max
|
|
58
70
|
};
|
|
59
71
|
};
|
|
60
72
|
|
package/dist/Field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Field.js"],"names":["VALID_TYPES","Field","field","JSON","stringify","name","Array","isArray","type","indexOf","toLowerCase","title","
|
|
1
|
+
{"version":3,"sources":["../src/Field.js"],"names":["VALID_TYPES","Field","field","JSON","stringify","name","Array","isArray","type","indexOf","toLowerCase","title","min","max","Object","prototype","hasOwnProperty","call","value","toJSON","hasClass","cls"],"mappings":"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","sourcesContent":["import assert from './assert';\nimport { contains } from './util';\n\nconst VALID_TYPES = [\n\t'hidden',\n\t'text',\n\t'search',\n\t'tel',\n\t'url',\n\t'email',\n\t'password',\n\t'datetime',\n\t'date',\n\t'month',\n\t'week',\n\t'time',\n\t'datetime-local',\n\t'number',\n\t'range',\n\t'color',\n\t'checkbox',\n\t'radio',\n\t'file'\n];\n\nexport default function Field(field) {\n\tif (field instanceof Field) {\n\t\treturn field;\n\t}\n\tif (!(this instanceof Field)) {\n\t\treturn new Field(field);\n\t}\n\n\tassert('object' === typeof field, 'field must be an object, got ' + JSON.stringify(field));\n\tassert('string' === typeof field.name, 'field.name must be a string, got ' + JSON.stringify(field.name));\n\tassert('undefined' === typeof field.class || Array.isArray(field.class),\n\t\t'field.class must be an array or undefined, got ' + JSON.stringify(field.class));\n\tassert('undefined' === typeof field.type || ('string' === typeof field.type && VALID_TYPES.indexOf(field.type.toLowerCase()) > -1),\n\t\t'field.type must be a valid field type string or undefined, got ' + JSON.stringify(field.type));\n\tassert('undefined' === typeof field.title || 'string' === typeof field.title,\n\t\t'field.title must be a string or undefined, got ' + JSON.stringify(field.title));\n\tassert('undefined' === typeof field.min || 'number' === typeof field.min,\n\t\t'field.min must be a number or undefined, got ' + JSON.stringify(field.min));\n\tassert('undefined' === typeof field.max || 'number' === typeof field.max,\n\t\t'field.max must be a number or undefined, got ' + JSON.stringify(field.max));\n\n\tthis.name = field.name;\n\n\tif (field.class) {\n\t\tthis.class = field.class;\n\t}\n\n\tif (field.type) {\n\t\tthis.type = field.type;\n\t}\n\n\tif (Object.prototype.hasOwnProperty.call(field, 'value')) {\n\t\tthis.value = field.value;\n\t}\n\n\tif (field.title) {\n\t\tthis.title = field.title;\n\t}\n\n\tif (typeof field.min === 'number') {\n\t\tthis.min = field.min;\n\t}\n\n\tif (typeof field.max === 'number') {\n\t\tthis.max = field.max;\n\t}\n}\n\nField.prototype.toJSON = function() {\n\treturn {\n\t\tname: this.name,\n\t\tclass: this.class,\n\t\ttype: this.type,\n\t\tvalue: this.value,\n\t\ttitle: this.title,\n\t\tmin: this.min,\n\t\tmax: this.max\n\t};\n};\n\nField.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n"],"file":"Field.js"}
|
package/dist/Link.js
CHANGED
|
@@ -11,7 +11,7 @@ var _util = require("./util");
|
|
|
11
11
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
13
|
|
|
14
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
14
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
15
15
|
|
|
16
16
|
function Link(link) {
|
|
17
17
|
if (link instanceof Link) {
|
package/dist/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Link.js"],"names":["Link","link","JSON","stringify","Array","isArray","rel","href","title","type","prototype","toJSON","hasClass","cls"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEe,SAASA,IAAT,CAAcC,IAAd,EAAoB;AAClC,MAAIA,IAAI,YAAYD,IAApB,EAA0B;AACzB,WAAOC,IAAP;AACA;;AACD,MAAI,EAAE,gBAAgBD,IAAlB,CAAJ,EAA6B;AAC5B,WAAO,IAAIA,IAAJ,CAASC,IAAT,CAAP;AACA;;AAED,0BAAO,qBAAoBA,IAApB,CAAP,EAAiC,iCAAiCC,IAAI,CAACC,SAAL,CAAeF,IAAf,CAAlE;AACA,0BAAOG,KAAK,CAACC,OAAN,CAAcJ,IAAI,CAACK,GAAnB,CAAP,EAAgC,oCAAoCJ,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACK,GAApB,CAApE;AACA,0BAAO,aAAa,OAAOL,IAAI,CAACM,IAAhC,EAAsC,qCAAqCL,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACM,IAApB,CAA3E;AACA,0BAAO,gBAAgB,OAAON,IAAI,SAA3B,IAAqCG,KAAK,CAACC,OAAN,CAAcJ,IAAI,SAAlB,CAA5C,EACC,mDAAmDC,IAAI,CAACC,SAAL,CAAeF,IAAI,SAAnB,CADpD;AAEA,0BAAO,gBAAgB,OAAOA,IAAI,CAACO,KAA5B,IAAqC,aAAa,OAAOP,IAAI,CAACO,KAArE,EACC,mDAAmDN,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACO,KAApB,CADpD;AAEA,0BAAO,gBAAgB,OAAOP,IAAI,CAACQ,IAA5B,IAAoC,aAAa,OAAOR,IAAI,CAACQ,IAApE,EACC,kDAAkDP,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACQ,IAApB,CADnD;AAGA,OAAKH,GAAL,GAAWL,IAAI,CAACK,GAAhB;AACA,OAAKC,IAAL,GAAYN,IAAI,CAACM,IAAjB;;AAEA,MAAIN,IAAI,SAAR,EAAgB;AACf,oBAAaA,IAAI,SAAjB;AACA;;AAED,MAAIA,IAAI,CAACO,KAAT,EAAgB;AACf,SAAKA,KAAL,GAAaP,IAAI,CAACO,KAAlB;AACA;;AAED,MAAIP,IAAI,CAACQ,IAAT,EAAe;AACd,SAAKA,IAAL,GAAYR,IAAI,CAACQ,IAAjB;AACA;AACD;;AAEDT,IAAI,CAACU,SAAL,CAAeC,MAAf,GAAwB,YAAW;AAClC,SAAO;AACNL,IAAAA,GAAG,EAAE,KAAKA,GADJ;AAENC,IAAAA,IAAI,EAAE,KAAKA,IAFL;AAGN,aAAO,aAHD;AAINC,IAAAA,KAAK,EAAE,KAAKA,KAJN;AAKNC,IAAAA,IAAI,EAAE,KAAKA;AALL,GAAP;AAOA,CARD;;AAUAT,IAAI,CAACU,SAAL,CAAeE,QAAf,GAA0B,UAASC,GAAT,EAAc;AACvC,SAAO,yBAAsBT,KAAtB,IAA+B,oBAAS,aAAT,EAAqBS,GAArB,CAAtC;AACA,CAFD","sourcesContent":["import assert from './assert';\nimport {contains} from './util';\n\nexport default function Link(link) {\n\tif (link instanceof Link) {\n\t\treturn link;\n\t}\n\tif (!(this instanceof Link)) {\n\t\treturn new Link(link);\n\t}\n\n\tassert('object' === typeof link, 'link must be an object, got ' + JSON.stringify(link));\n\tassert(Array.isArray(link.rel), 'link.rel must be an array, got ' + JSON.stringify(link.rel));\n\tassert('string' === typeof link.href, 'link.href must be a string, got ' + JSON.stringify(link.href));\n\tassert('undefined' === typeof link.class || Array.isArray(link.class),\n\t\t'link.class must be an array or undefined, got ' + JSON.stringify(link.class));\n\tassert('undefined' === typeof link.title || 'string' === typeof link.title,\n\t\t'link.title must be a string or undefined, got ' + JSON.stringify(link.title));\n\tassert('undefined' === typeof link.type || 'string' === typeof link.type,\n\t\t'link.type must be a string or undefined, got ' + JSON.stringify(link.type));\n\n\tthis.rel = link.rel;\n\tthis.href = link.href;\n\n\tif (link.class) {\n\t\tthis.class = link.class;\n\t}\n\n\tif (link.title) {\n\t\tthis.title = link.title;\n\t}\n\n\tif (link.type) {\n\t\tthis.type = link.type;\n\t}\n}\n\nLink.prototype.toJSON = function() {\n\treturn {\n\t\trel: this.rel,\n\t\thref: this.href,\n\t\tclass: this.class,\n\t\ttitle: this.title,\n\t\ttype: this.type\n\t};\n};\n\nLink.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n"],"file":"Link.js"}
|
|
1
|
+
{"version":3,"sources":["../src/Link.js"],"names":["Link","link","JSON","stringify","Array","isArray","rel","href","title","type","prototype","toJSON","hasClass","cls"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEe,SAASA,IAAT,CAAcC,IAAd,EAAoB;AAClC,MAAIA,IAAI,YAAYD,IAApB,EAA0B;AACzB,WAAOC,IAAP;AACA;;AACD,MAAI,EAAE,gBAAgBD,IAAlB,CAAJ,EAA6B;AAC5B,WAAO,IAAIA,IAAJ,CAASC,IAAT,CAAP;AACA;;AAED,0BAAO,qBAAoBA,IAApB,CAAP,EAAiC,iCAAiCC,IAAI,CAACC,SAAL,CAAeF,IAAf,CAAlE;AACA,0BAAOG,KAAK,CAACC,OAAN,CAAcJ,IAAI,CAACK,GAAnB,CAAP,EAAgC,oCAAoCJ,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACK,GAApB,CAApE;AACA,0BAAO,aAAa,OAAOL,IAAI,CAACM,IAAhC,EAAsC,qCAAqCL,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACM,IAApB,CAA3E;AACA,0BAAO,gBAAgB,OAAON,IAAI,SAA3B,IAAqCG,KAAK,CAACC,OAAN,CAAcJ,IAAI,SAAlB,CAA5C,EACC,mDAAmDC,IAAI,CAACC,SAAL,CAAeF,IAAI,SAAnB,CADpD;AAEA,0BAAO,gBAAgB,OAAOA,IAAI,CAACO,KAA5B,IAAqC,aAAa,OAAOP,IAAI,CAACO,KAArE,EACC,mDAAmDN,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACO,KAApB,CADpD;AAEA,0BAAO,gBAAgB,OAAOP,IAAI,CAACQ,IAA5B,IAAoC,aAAa,OAAOR,IAAI,CAACQ,IAApE,EACC,kDAAkDP,IAAI,CAACC,SAAL,CAAeF,IAAI,CAACQ,IAApB,CADnD;AAGA,OAAKH,GAAL,GAAWL,IAAI,CAACK,GAAhB;AACA,OAAKC,IAAL,GAAYN,IAAI,CAACM,IAAjB;;AAEA,MAAIN,IAAI,SAAR,EAAgB;AACf,oBAAaA,IAAI,SAAjB;AACA;;AAED,MAAIA,IAAI,CAACO,KAAT,EAAgB;AACf,SAAKA,KAAL,GAAaP,IAAI,CAACO,KAAlB;AACA;;AAED,MAAIP,IAAI,CAACQ,IAAT,EAAe;AACd,SAAKA,IAAL,GAAYR,IAAI,CAACQ,IAAjB;AACA;AACD;;AAEDT,IAAI,CAACU,SAAL,CAAeC,MAAf,GAAwB,YAAW;AAClC,SAAO;AACNL,IAAAA,GAAG,EAAE,KAAKA,GADJ;AAENC,IAAAA,IAAI,EAAE,KAAKA,IAFL;AAGN,aAAO,aAHD;AAINC,IAAAA,KAAK,EAAE,KAAKA,KAJN;AAKNC,IAAAA,IAAI,EAAE,KAAKA;AALL,GAAP;AAOA,CARD;;AAUAT,IAAI,CAACU,SAAL,CAAeE,QAAf,GAA0B,UAASC,GAAT,EAAc;AACvC,SAAO,yBAAsBT,KAAtB,IAA+B,oBAAS,aAAT,EAAqBS,GAArB,CAAtC;AACA,CAFD","sourcesContent":["import assert from './assert';\nimport { contains } from './util';\n\nexport default function Link(link) {\n\tif (link instanceof Link) {\n\t\treturn link;\n\t}\n\tif (!(this instanceof Link)) {\n\t\treturn new Link(link);\n\t}\n\n\tassert('object' === typeof link, 'link must be an object, got ' + JSON.stringify(link));\n\tassert(Array.isArray(link.rel), 'link.rel must be an array, got ' + JSON.stringify(link.rel));\n\tassert('string' === typeof link.href, 'link.href must be a string, got ' + JSON.stringify(link.href));\n\tassert('undefined' === typeof link.class || Array.isArray(link.class),\n\t\t'link.class must be an array or undefined, got ' + JSON.stringify(link.class));\n\tassert('undefined' === typeof link.title || 'string' === typeof link.title,\n\t\t'link.title must be a string or undefined, got ' + JSON.stringify(link.title));\n\tassert('undefined' === typeof link.type || 'string' === typeof link.type,\n\t\t'link.type must be a string or undefined, got ' + JSON.stringify(link.type));\n\n\tthis.rel = link.rel;\n\tthis.href = link.href;\n\n\tif (link.class) {\n\t\tthis.class = link.class;\n\t}\n\n\tif (link.title) {\n\t\tthis.title = link.title;\n\t}\n\n\tif (link.type) {\n\t\tthis.type = link.type;\n\t}\n}\n\nLink.prototype.toJSON = function() {\n\treturn {\n\t\trel: this.rel,\n\t\thref: this.href,\n\t\tclass: this.class,\n\t\ttitle: this.title,\n\t\ttype: this.type\n\t};\n};\n\nLink.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n"],"file":"Link.js"}
|
package/dist/chaiPlugin.js
CHANGED
|
@@ -15,7 +15,7 @@ var _Link = _interopRequireDefault(require("./Link"));
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
17
|
|
|
18
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
18
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
19
19
|
|
|
20
20
|
function _default(chai, utils) {
|
|
21
21
|
var Assertion = chai.Assertion; // .all.
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var _util = require("./util.js");
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
17
|
|
|
18
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
18
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
19
19
|
|
|
20
20
|
function Entity(entity) {
|
|
21
21
|
var _this = this;
|
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":";;;;;;;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"],"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":"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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"}
|
package/dist/superagent.js
CHANGED
|
@@ -42,7 +42,7 @@ function parse(res, fn) {
|
|
|
42
42
|
function flattenFields(fields) {
|
|
43
43
|
var fieldsObj = {};
|
|
44
44
|
fields.forEach(function (field) {
|
|
45
|
-
if (!
|
|
45
|
+
if (!Object.prototype.hasOwnProperty.call(fields, field.name)) {
|
|
46
46
|
fieldsObj[field.name] = field.value;
|
|
47
47
|
}
|
|
48
48
|
});
|
package/dist/superagent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/superagent.js"],"names":["parse","res","fn","Entity","text","setEncoding","on","chunk","err","body","e","flattenFields","fields","fieldsObj","forEach","field","hasOwnProperty","name","value","submitHelper","req","submit","Array","isArray","method","toUpperCase","query","send","perform","request","action","Action","toLowerCase","href","use","type"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;;;AAEO,SAASA,KAAT,CAAeC,GAAf,EAAoBC,EAApB,EAAwB;AAC9B,MAAI,aAAa,OAAOD,GAAxB,EAA6B;AAC5B,WAAO,IAAIE,iBAAJ,CAAWF,GAAX,CAAP;AACA;;AACDA,EAAAA,GAAG,CAACG,IAAJ,GAAW,EAAX;AACAH,EAAAA,GAAG,CAACI,WAAJ,CAAgB,MAAhB;AACAJ,EAAAA,GAAG,CAACK,EAAJ,CAAO,MAAP,EAAe,UAASC,KAAT,EAAgB;AAAEN,IAAAA,GAAG,CAACG,IAAJ,IAAYG,KAAZ;AAAoB,GAArD;AACAN,EAAAA,GAAG,CAACK,EAAJ,CAAO,KAAP,EAAc,YAAW;AACxB,QAAIE,GAAJ,EAASC,IAAT;;AACA,QAAI;AACHA,MAAAA,IAAI,GAAG,IAAIN,iBAAJ,CAAWF,GAAG,CAACG,IAAf,CAAP;AACA,KAFD,CAEE,OAAOM,CAAP,EAAU;AACXF,MAAAA,GAAG,GAAGE,CAAN;AACA,KAJD,SAIU;AACTR,MAAAA,EAAE,CAACM,GAAD,EAAMC,IAAN,CAAF;AACA;AACD,GATD;AAUA,C,CAED;AACA;;;AACA,SAASE,aAAT,CAAuBC,MAAvB,EAA+B;AAC9B,MAAMC,SAAS,GAAG,EAAlB;AACAD,EAAAA,MAAM,CAACE,OAAP,CAAe,UAASC,KAAT,EAAgB;AAC9B,QAAI,
|
|
1
|
+
{"version":3,"sources":["../src/superagent.js"],"names":["parse","res","fn","Entity","text","setEncoding","on","chunk","err","body","e","flattenFields","fields","fieldsObj","forEach","field","Object","prototype","hasOwnProperty","call","name","value","submitHelper","req","submit","Array","isArray","method","toUpperCase","query","send","perform","request","action","Action","toLowerCase","href","use","type"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;;;AAEO,SAASA,KAAT,CAAeC,GAAf,EAAoBC,EAApB,EAAwB;AAC9B,MAAI,aAAa,OAAOD,GAAxB,EAA6B;AAC5B,WAAO,IAAIE,iBAAJ,CAAWF,GAAX,CAAP;AACA;;AACDA,EAAAA,GAAG,CAACG,IAAJ,GAAW,EAAX;AACAH,EAAAA,GAAG,CAACI,WAAJ,CAAgB,MAAhB;AACAJ,EAAAA,GAAG,CAACK,EAAJ,CAAO,MAAP,EAAe,UAASC,KAAT,EAAgB;AAAEN,IAAAA,GAAG,CAACG,IAAJ,IAAYG,KAAZ;AAAoB,GAArD;AACAN,EAAAA,GAAG,CAACK,EAAJ,CAAO,KAAP,EAAc,YAAW;AACxB,QAAIE,GAAJ,EAASC,IAAT;;AACA,QAAI;AACHA,MAAAA,IAAI,GAAG,IAAIN,iBAAJ,CAAWF,GAAG,CAACG,IAAf,CAAP;AACA,KAFD,CAEE,OAAOM,CAAP,EAAU;AACXF,MAAAA,GAAG,GAAGE,CAAN;AACA,KAJD,SAIU;AACTR,MAAAA,EAAE,CAACM,GAAD,EAAMC,IAAN,CAAF;AACA;AACD,GATD;AAUA,C,CAED;AACA;;;AACA,SAASE,aAAT,CAAuBC,MAAvB,EAA+B;AAC9B,MAAMC,SAAS,GAAG,EAAlB;AACAD,EAAAA,MAAM,CAACE,OAAP,CAAe,UAASC,KAAT,EAAgB;AAC9B,QAAI,CAACC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCP,MAArC,EAA6CG,KAAK,CAACK,IAAnD,CAAL,EAA+D;AAC9DP,MAAAA,SAAS,CAACE,KAAK,CAACK,IAAP,CAAT,GAAwBL,KAAK,CAACM,KAA9B;AACA;AACD,GAJD;AAKA,SAAOR,SAAP;AACA;;AAED,SAASS,YAAT,CAAsBC,GAAtB,EAA2B;AAC1BA,EAAAA,GAAG,CAACC,MAAJ,GAAa,SAASA,MAAT,CAAgBZ,MAAhB,EAAwB;AACpC,QAAIa,KAAK,CAACC,OAAN,CAAcd,MAAd,CAAJ,EAA2B;AAC1BA,MAAAA,MAAM,GAAGD,aAAa,CAACC,MAAD,CAAtB;AACA;;AAED,YAAQ,KAAKe,MAAL,CAAYC,WAAZ,EAAR;AACC,WAAK,KAAL;AACA,WAAK,MAAL;AAAa;AACZ,iBAAO,KAAKC,KAAL,CAAWjB,MAAX,CAAP;AACA;;AACD;AAAS;AACR,iBAAO,KAAKkB,IAAL,CAAUlB,MAAV,CAAP;AACA;AAPF;AASA,GAdD;AAeA;;AAEM,SAASmB,OAAT,CAAiBC,OAAjB,EAA0BC,MAA1B,EAAkC;AACxC,0BAAOD,OAAP;AACA,0BAAOC,MAAM,YAAYC,kBAAzB;AACA,SAAOF,OAAO,CAACC,MAAM,CAACN,MAAP,CAAcQ,WAAd,EAAD,CAAP,CAAqCF,MAAM,CAACG,IAA5C,EACLC,GADK,CACDf,YADC,EAELgB,IAFK,CAEAL,MAAM,CAACK,IAFP,EAGLd,MAHK,CAGES,MAAM,CAACrB,MAAP,IAAiB,EAHnB,CAAP;AAIA","sourcesContent":["import assert from './assert';\nimport Action from './Action';\nimport Entity from './index';\n\nexport function parse(res, fn) {\n\tif ('string' === typeof res) {\n\t\treturn new Entity(res);\n\t}\n\tres.text = '';\n\tres.setEncoding('utf8');\n\tres.on('data', function(chunk) { res.text += chunk; });\n\tres.on('end', function() {\n\t\tlet err, body;\n\t\ttry {\n\t\t\tbody = new Entity(res.text);\n\t\t} catch (e) {\n\t\t\terr = e;\n\t\t} finally {\n\t\t\tfn(err, body);\n\t\t}\n\t});\n}\n\n// Siren doesn't specify what to do if there are any fields with the same name\n// (ie. radio buttons). If this happens, the first such field in the list will be chosen\nfunction flattenFields(fields) {\n\tconst fieldsObj = {};\n\tfields.forEach(function(field) {\n\t\tif (!Object.prototype.hasOwnProperty.call(fields, field.name)) {\n\t\t\tfieldsObj[field.name] = field.value;\n\t\t}\n\t});\n\treturn fieldsObj;\n}\n\nfunction submitHelper(req) {\n\treq.submit = function submit(fields) {\n\t\tif (Array.isArray(fields)) {\n\t\t\tfields = flattenFields(fields);\n\t\t}\n\n\t\tswitch (this.method.toUpperCase()) {\n\t\t\tcase 'GET':\n\t\t\tcase 'HEAD': {\n\t\t\t\treturn this.query(fields);\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\treturn this.send(fields);\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport function perform(request, action) {\n\tassert(request);\n\tassert(action instanceof Action);\n\treturn request[action.method.toLowerCase()](action.href)\n\t\t.use(submitHelper)\n\t\t.type(action.type)\n\t\t.submit(action.fields || []);\n}\n"],"file":"superagent.js"}
|
package/dist/util.js
CHANGED
|
@@ -9,25 +9,39 @@ exports.getMatchingValue = getMatchingValue;
|
|
|
9
9
|
exports.getMatchingValuesByAll = getMatchingValuesByAll;
|
|
10
10
|
|
|
11
11
|
function contains(arrayLike, stringOrRegex) {
|
|
12
|
+
if (!stringOrRegex) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
if ('string' === typeof stringOrRegex) {
|
|
13
17
|
return arrayLike.indexOf(stringOrRegex) > -1;
|
|
14
18
|
}
|
|
15
19
|
|
|
16
|
-
var match
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
var match;
|
|
21
|
+
|
|
22
|
+
for (var i = 0; i < arrayLike.length; i++) {
|
|
23
|
+
if (arrayLike[i].match(stringOrRegex)) {
|
|
24
|
+
match = arrayLike[i].match(stringOrRegex);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
19
29
|
return match !== undefined;
|
|
20
30
|
}
|
|
21
31
|
|
|
22
32
|
function hasProperty(objectLike, stringOrRegex) {
|
|
23
33
|
if ('string' === typeof stringOrRegex) {
|
|
24
|
-
return
|
|
34
|
+
return Object.prototype.hasOwnProperty.call(objectLike, stringOrRegex);
|
|
25
35
|
}
|
|
26
36
|
|
|
27
37
|
return contains(Object.keys(objectLike), stringOrRegex);
|
|
28
38
|
}
|
|
29
39
|
|
|
30
40
|
function getMatchingValue(objectLike, stringOrRegex) {
|
|
41
|
+
if (!stringOrRegex) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
31
45
|
if ('string' === typeof stringOrRegex) {
|
|
32
46
|
return objectLike[stringOrRegex];
|
|
33
47
|
}
|
|
@@ -44,7 +58,7 @@ function getMatchingValue(objectLike, stringOrRegex) {
|
|
|
44
58
|
}
|
|
45
59
|
|
|
46
60
|
function getMatchingValuesByAll(arrayLike, arrayOfStringOrRegex, propertyToMatch) {
|
|
47
|
-
if (!Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
|
|
61
|
+
if (!Array.isArray(arrayLike) || !Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
|
|
48
62
|
return [];
|
|
49
63
|
}
|
|
50
64
|
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/util.js"],"names":["contains","arrayLike","stringOrRegex","indexOf","match","
|
|
1
|
+
{"version":3,"sources":["../src/util.js"],"names":["contains","arrayLike","stringOrRegex","indexOf","match","i","length","undefined","hasProperty","objectLike","Object","prototype","hasOwnProperty","call","keys","getMatchingValue","key","getMatchingValuesByAll","arrayOfStringOrRegex","propertyToMatch","Array","isArray","results","like","val","every","y","push"],"mappings":";;;;;;;;;;AAAO,SAASA,QAAT,CAAkBC,SAAlB,EAA6BC,aAA7B,EAA4C;AAClD,MAAI,CAACA,aAAL,EAAoB;AACnB,WAAO,KAAP;AACA;;AAED,MAAI,aAAa,OAAOA,aAAxB,EAAuC;AACtC,WAAOD,SAAS,CAACE,OAAV,CAAkBD,aAAlB,IAAmC,CAAC,CAA3C;AACA;;AAED,MAAIE,KAAJ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAAS,CAACK,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AAC1C,QAAIJ,SAAS,CAACI,CAAD,CAAT,CAAaD,KAAb,CAAmBF,aAAnB,CAAJ,EAAuC;AACtCE,MAAAA,KAAK,GAAGH,SAAS,CAACI,CAAD,CAAT,CAAaD,KAAb,CAAmBF,aAAnB,CAAR;AACA;AACA;AACD;;AAED,SAAQE,KAAK,KAAKG,SAAlB;AACA;;AAEM,SAASC,WAAT,CAAqBC,UAArB,EAAiCP,aAAjC,EAAgD;AACtD,MAAI,aAAa,OAAOA,aAAxB,EAAuC;AACtC,WAAOQ,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,UAArC,EAAiDP,aAAjD,CAAP;AACA;;AAED,SAAOF,QAAQ,CAACU,MAAM,CAACI,IAAP,CAAYL,UAAZ,CAAD,EAA0BP,aAA1B,CAAf;AACA;;AAEM,SAASa,gBAAT,CAA0BN,UAA1B,EAAsCP,aAAtC,EAAqD;AAC3D,MAAI,CAACA,aAAL,EAAoB;AACnB;AACA;;AAED,MAAI,aAAa,OAAOA,aAAxB,EAAuC;AACtC,WAAOO,UAAU,CAACP,aAAD,CAAjB;AACA;;AAED,MAAMY,IAAI,GAAGJ,MAAM,CAACI,IAAP,CAAYL,UAAZ,CAAb;;AACA,OAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGS,IAAI,CAACR,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACrC,QAAMW,GAAG,GAAGF,IAAI,CAACT,CAAD,CAAhB;;AAEA,QAAIW,GAAG,CAACZ,KAAJ,CAAUF,aAAV,CAAJ,EAA8B;AAC7B,aAAOO,UAAU,CAACO,GAAD,CAAjB;AACA;AACD;AACD;;AAEM,SAASC,sBAAT,CAAgChB,SAAhC,EAA2CiB,oBAA3C,EAAiEC,eAAjE,EAAkF;AACxF,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcpB,SAAd,CAAD,IAA6B,CAACmB,KAAK,CAACC,OAAN,CAAcH,oBAAd,CAA9B,IAAqE,CAACC,eAA1E,EAA2F;AAC1F,WAAO,EAAP;AACA;;AAED,MAAMG,OAAO,GAAG,EAAhB;;AACA,OAAK,IAAIjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAAS,CAACK,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AAC1C,QAAIkB,IAAI,GAAGtB,SAAS,CAACI,CAAD,CAApB;AACA,QAAImB,GAAG,GAAGD,IAAI,CAACJ,eAAD,CAAd;;AAEA,QAAIK,GAAG,IAAIN,oBAAoB,CAACO,KAArB,CACV,UAASC,CAAT,EAAY;AACX,aAAO1B,QAAQ,CAACwB,GAAD,EAAME,CAAN,CAAf;AACA,KAHS,CAAX,EAIE;AACDJ,MAAAA,OAAO,CAACK,IAAR,CAAaJ,IAAb;AACA;AACD;;AAED,SAAOD,OAAP;AACA","sourcesContent":["export function contains(arrayLike, stringOrRegex) {\n\tif (!stringOrRegex) {\n\t\treturn false;\n\t}\n\n\tif ('string' === typeof stringOrRegex) {\n\t\treturn arrayLike.indexOf(stringOrRegex) > -1;\n\t}\n\n\tlet match;\n\tfor (let i = 0; i < arrayLike.length; i++) {\n\t\tif (arrayLike[i].match(stringOrRegex)) {\n\t\t\tmatch = arrayLike[i].match(stringOrRegex);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn (match !== undefined);\n}\n\nexport function hasProperty(objectLike, stringOrRegex) {\n\tif ('string' === typeof stringOrRegex) {\n\t\treturn Object.prototype.hasOwnProperty.call(objectLike, stringOrRegex);\n\t}\n\n\treturn contains(Object.keys(objectLike), stringOrRegex);\n}\n\nexport function getMatchingValue(objectLike, stringOrRegex) {\n\tif (!stringOrRegex) {\n\t\treturn;\n\t}\n\n\tif ('string' === typeof stringOrRegex) {\n\t\treturn objectLike[stringOrRegex];\n\t}\n\n\tconst keys = Object.keys(objectLike);\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\n\t\tif (key.match(stringOrRegex)) {\n\t\t\treturn objectLike[key];\n\t\t}\n\t}\n}\n\nexport function getMatchingValuesByAll(arrayLike, arrayOfStringOrRegex, propertyToMatch) {\n\tif (!Array.isArray(arrayLike) || !Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {\n\t\treturn [];\n\t}\n\n\tconst results = [];\n\tfor (var i = 0; i < arrayLike.length; i++) {\n\t\tvar like = arrayLike[i];\n\t\tvar val = like[propertyToMatch];\n\n\t\tif (val && arrayOfStringOrRegex.every(\n\t\t\tfunction(y) {\n\t\t\t\treturn contains(val, y);\n\t\t\t})\n\t\t) {\n\t\t\tresults.push(like);\n\t\t}\n\t}\n\n\treturn results;\n}\n"],"file":"util.js"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "siren-parser",
|
|
3
|
-
"version": "8.1
|
|
4
|
-
"description": "Pretty much the opposite of dominicbarnes/node-siren-writer",
|
|
3
|
+
"version": "8.5.1",
|
|
5
4
|
"main": "dist/index.js",
|
|
6
5
|
"module": "src/index.js",
|
|
7
6
|
"scripts": {
|
|
8
7
|
"build": "babel src --out-dir ./dist --source-maps --plugins=add-module-exports",
|
|
9
8
|
"lint": "eslint src test --ext .js",
|
|
10
9
|
"test": "npm run lint && npm run test:unit",
|
|
11
|
-
"test:unit": "
|
|
12
|
-
"report-cov": "istanbul report lcovonly && coveralls < ./coverage/lcov.info"
|
|
10
|
+
"test:unit": "nyc mocha"
|
|
13
11
|
},
|
|
14
12
|
"files": [
|
|
15
13
|
"/dist",
|
|
@@ -27,23 +25,22 @@
|
|
|
27
25
|
"url": "https://github.com/Brightspace/node-siren-parser/issues"
|
|
28
26
|
},
|
|
29
27
|
"devDependencies": {
|
|
30
|
-
"@babel/cli": "^7.
|
|
31
|
-
"@babel/core": "^7.
|
|
32
|
-
"@babel/node": "^7.
|
|
33
|
-
"@babel/preset-env": "^7.
|
|
34
|
-
"@babel/register": "^7.
|
|
35
|
-
"babel-plugin-add-module-exports": "^1.0.
|
|
36
|
-
"babel-plugin-istanbul": "^
|
|
37
|
-
"chai": "^4.
|
|
38
|
-
"
|
|
39
|
-
"eslint": "^
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"sinon": "^
|
|
45
|
-
"
|
|
46
|
-
"supertest": "^3.3.0"
|
|
28
|
+
"@babel/cli": "^7.12.16",
|
|
29
|
+
"@babel/core": "^7.12.16",
|
|
30
|
+
"@babel/node": "^7.12.16",
|
|
31
|
+
"@babel/preset-env": "^7.12.16",
|
|
32
|
+
"@babel/register": "^7.12.13",
|
|
33
|
+
"babel-plugin-add-module-exports": "^1.0.4",
|
|
34
|
+
"babel-plugin-istanbul": "^6.0.0",
|
|
35
|
+
"chai": "^4.3.0",
|
|
36
|
+
"eslint": "^7.20.0",
|
|
37
|
+
"eslint-config-brightspace": "^0.12.0",
|
|
38
|
+
"mocha": "^8.3.0",
|
|
39
|
+
"nock": "^13.0.7",
|
|
40
|
+
"nyc": "^15.1.0",
|
|
41
|
+
"sinon": "^9.2.4",
|
|
42
|
+
"sinon-chai": "^3.5.0",
|
|
43
|
+
"supertest": "^6.1.3"
|
|
47
44
|
},
|
|
48
45
|
"nyc": {
|
|
49
46
|
"require": [
|
package/src/Action.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from './assert';
|
|
2
|
-
import {contains, getMatchingValue, getMatchingValuesByAll, hasProperty} from './util.js';
|
|
2
|
+
import { contains, getMatchingValue, getMatchingValuesByAll, hasProperty } from './util.js';
|
|
3
3
|
import Field from './Field';
|
|
4
4
|
|
|
5
5
|
export default function Action(action) {
|
package/src/Field.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from './assert';
|
|
2
|
-
import {contains} from './util';
|
|
2
|
+
import { contains } from './util';
|
|
3
3
|
|
|
4
4
|
const VALID_TYPES = [
|
|
5
5
|
'hidden',
|
|
@@ -39,6 +39,10 @@ export default function Field(field) {
|
|
|
39
39
|
'field.type must be a valid field type string or undefined, got ' + JSON.stringify(field.type));
|
|
40
40
|
assert('undefined' === typeof field.title || 'string' === typeof field.title,
|
|
41
41
|
'field.title must be a string or undefined, got ' + JSON.stringify(field.title));
|
|
42
|
+
assert('undefined' === typeof field.min || 'number' === typeof field.min,
|
|
43
|
+
'field.min must be a number or undefined, got ' + JSON.stringify(field.min));
|
|
44
|
+
assert('undefined' === typeof field.max || 'number' === typeof field.max,
|
|
45
|
+
'field.max must be a number or undefined, got ' + JSON.stringify(field.max));
|
|
42
46
|
|
|
43
47
|
this.name = field.name;
|
|
44
48
|
|
|
@@ -50,13 +54,21 @@ export default function Field(field) {
|
|
|
50
54
|
this.type = field.type;
|
|
51
55
|
}
|
|
52
56
|
|
|
53
|
-
if (
|
|
57
|
+
if (Object.prototype.hasOwnProperty.call(field, 'value')) {
|
|
54
58
|
this.value = field.value;
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
if (field.title) {
|
|
58
62
|
this.title = field.title;
|
|
59
63
|
}
|
|
64
|
+
|
|
65
|
+
if (typeof field.min === 'number') {
|
|
66
|
+
this.min = field.min;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (typeof field.max === 'number') {
|
|
70
|
+
this.max = field.max;
|
|
71
|
+
}
|
|
60
72
|
}
|
|
61
73
|
|
|
62
74
|
Field.prototype.toJSON = function() {
|
|
@@ -65,7 +77,9 @@ Field.prototype.toJSON = function() {
|
|
|
65
77
|
class: this.class,
|
|
66
78
|
type: this.type,
|
|
67
79
|
value: this.value,
|
|
68
|
-
title: this.title
|
|
80
|
+
title: this.title,
|
|
81
|
+
min: this.min,
|
|
82
|
+
max: this.max
|
|
69
83
|
};
|
|
70
84
|
};
|
|
71
85
|
|
package/src/Link.js
CHANGED
package/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Action from './Action';
|
|
2
2
|
import assert from './assert';
|
|
3
3
|
import Link from './Link';
|
|
4
|
-
import {contains, getMatchingValue, getMatchingValuesByAll, hasProperty} from './util.js';
|
|
4
|
+
import { contains, getMatchingValue, getMatchingValuesByAll, hasProperty } from './util.js';
|
|
5
5
|
|
|
6
6
|
export default function Entity(entity) {
|
|
7
7
|
entity = entity || {};
|
package/src/superagent.js
CHANGED
|
@@ -26,7 +26,7 @@ export function parse(res, fn) {
|
|
|
26
26
|
function flattenFields(fields) {
|
|
27
27
|
const fieldsObj = {};
|
|
28
28
|
fields.forEach(function(field) {
|
|
29
|
-
if (!
|
|
29
|
+
if (!Object.prototype.hasOwnProperty.call(fields, field.name)) {
|
|
30
30
|
fieldsObj[field.name] = field.value;
|
|
31
31
|
}
|
|
32
32
|
});
|
package/src/util.js
CHANGED
|
@@ -1,24 +1,36 @@
|
|
|
1
1
|
export function contains(arrayLike, stringOrRegex) {
|
|
2
|
+
if (!stringOrRegex) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
|
|
2
6
|
if ('string' === typeof stringOrRegex) {
|
|
3
7
|
return arrayLike.indexOf(stringOrRegex) > -1;
|
|
4
8
|
}
|
|
5
9
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
let match;
|
|
11
|
+
for (let i = 0; i < arrayLike.length; i++) {
|
|
12
|
+
if (arrayLike[i].match(stringOrRegex)) {
|
|
13
|
+
match = arrayLike[i].match(stringOrRegex);
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
return (match !== undefined);
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
export function hasProperty(objectLike, stringOrRegex) {
|
|
14
22
|
if ('string' === typeof stringOrRegex) {
|
|
15
|
-
return
|
|
23
|
+
return Object.prototype.hasOwnProperty.call(objectLike, stringOrRegex);
|
|
16
24
|
}
|
|
17
25
|
|
|
18
26
|
return contains(Object.keys(objectLike), stringOrRegex);
|
|
19
27
|
}
|
|
20
28
|
|
|
21
29
|
export function getMatchingValue(objectLike, stringOrRegex) {
|
|
30
|
+
if (!stringOrRegex) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
22
34
|
if ('string' === typeof stringOrRegex) {
|
|
23
35
|
return objectLike[stringOrRegex];
|
|
24
36
|
}
|
|
@@ -34,7 +46,7 @@ export function getMatchingValue(objectLike, stringOrRegex) {
|
|
|
34
46
|
}
|
|
35
47
|
|
|
36
48
|
export function getMatchingValuesByAll(arrayLike, arrayOfStringOrRegex, propertyToMatch) {
|
|
37
|
-
if (!Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
|
|
49
|
+
if (!Array.isArray(arrayLike) || !Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
|
|
38
50
|
return [];
|
|
39
51
|
}
|
|
40
52
|
|