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 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;
@@ -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 (field.hasOwnProperty('value')) {
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","hasOwnProperty","value","prototype","toJSON","hasClass","cls"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,WAAW,GAAG,CACnB,QADmB,EAEnB,MAFmB,EAGnB,QAHmB,EAInB,KAJmB,EAKnB,KALmB,EAMnB,OANmB,EAOnB,UAPmB,EAQnB,UARmB,EASnB,MATmB,EAUnB,OAVmB,EAWnB,MAXmB,EAYnB,MAZmB,EAanB,gBAbmB,EAcnB,QAdmB,EAenB,OAfmB,EAgBnB,OAhBmB,EAiBnB,UAjBmB,EAkBnB,OAlBmB,EAmBnB,MAnBmB,CAApB;;AAsBe,SAASC,KAAT,CAAeC,KAAf,EAAsB;AACpC,MAAIA,KAAK,YAAYD,KAArB,EAA4B;AAC3B,WAAOC,KAAP;AACA;;AACD,MAAI,EAAE,gBAAgBD,KAAlB,CAAJ,EAA8B;AAC7B,WAAO,IAAIA,KAAJ,CAAUC,KAAV,CAAP;AACA;;AAED,0BAAO,qBAAoBA,KAApB,CAAP,EAAkC,kCAAkCC,IAAI,CAACC,SAAL,CAAeF,KAAf,CAApE;AACA,0BAAO,aAAa,OAAOA,KAAK,CAACG,IAAjC,EAAuC,sCAAsCF,IAAI,CAACC,SAAL,CAAeF,KAAK,CAACG,IAArB,CAA7E;AACA,0BAAO,gBAAgB,OAAOH,KAAK,SAA5B,IAAsCI,KAAK,CAACC,OAAN,CAAcL,KAAK,SAAnB,CAA7C,EACC,oDAAoDC,IAAI,CAACC,SAAL,CAAeF,KAAK,SAApB,CADrD;AAEA,0BAAO,gBAAgB,OAAOA,KAAK,CAACM,IAA7B,IAAsC,aAAa,OAAON,KAAK,CAACM,IAA1B,IAAkCR,WAAW,CAACS,OAAZ,CAAoBP,KAAK,CAACM,IAAN,CAAWE,WAAX,EAApB,IAAgD,CAAC,CAAhI,EACC,oEAAoEP,IAAI,CAACC,SAAL,CAAeF,KAAK,CAACM,IAArB,CADrE;AAEA,0BAAO,gBAAgB,OAAON,KAAK,CAACS,KAA7B,IAAsC,aAAa,OAAOT,KAAK,CAACS,KAAvE,EACC,oDAAoDR,IAAI,CAACC,SAAL,CAAeF,KAAK,CAACS,KAArB,CADrD;AAGA,OAAKN,IAAL,GAAYH,KAAK,CAACG,IAAlB;;AAEA,MAAIH,KAAK,SAAT,EAAiB;AAChB,oBAAaA,KAAK,SAAlB;AACA;;AAED,MAAIA,KAAK,CAACM,IAAV,EAAgB;AACf,SAAKA,IAAL,GAAYN,KAAK,CAACM,IAAlB;AACA;;AAED,MAAIN,KAAK,CAACU,cAAN,CAAqB,OAArB,CAAJ,EAAmC;AAClC,SAAKC,KAAL,GAAaX,KAAK,CAACW,KAAnB;AACA;;AAED,MAAIX,KAAK,CAACS,KAAV,EAAiB;AAChB,SAAKA,KAAL,GAAaT,KAAK,CAACS,KAAnB;AACA;AACD;;AAEDV,KAAK,CAACa,SAAN,CAAgBC,MAAhB,GAAyB,YAAW;AACnC,SAAO;AACNV,IAAAA,IAAI,EAAE,KAAKA,IADL;AAEN,aAAO,aAFD;AAGNG,IAAAA,IAAI,EAAE,KAAKA,IAHL;AAINK,IAAAA,KAAK,EAAE,KAAKA,KAJN;AAKNF,IAAAA,KAAK,EAAE,KAAKA;AALN,GAAP;AAOA,CARD;;AAUAV,KAAK,CAACa,SAAN,CAAgBE,QAAhB,GAA2B,UAASC,GAAT,EAAc;AACxC,SAAO,yBAAsBX,KAAtB,IAA+B,oBAAS,aAAT,EAAqBW,GAArB,CAAtC;AACA,CAFD","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\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 (field.hasOwnProperty('value')) {\n\t\tthis.value = field.value;\n\t}\n\n\tif (field.title) {\n\t\tthis.title = field.title;\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};\n};\n\nField.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n"],"file":"Field.js"}
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"}
@@ -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":"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","sourcesContent":["import Action from './Action';\nimport assert from './assert';\nimport Link from './Link';\nimport {contains, getMatchingValue, getMatchingValuesByAll, hasProperty} from './util.js';\n\nexport default function Entity(entity) {\n\tentity = entity || {};\n\n\tif (entity instanceof Entity) {\n\t\treturn entity;\n\t}\n\tif (!(this instanceof Entity)) {\n\t\treturn new Entity(entity);\n\t}\n\n\tif ('object' !== typeof entity) {\n\t\tentity = JSON.parse(entity);\n\t}\n\n\tassert('undefined' === typeof entity.rel || Array.isArray(entity.rel),\n\t\t'entity.rel must be an array or undefined, got ' + JSON.stringify(entity.rel));\n\tassert('undefined' === typeof entity.title || 'string' === typeof entity.title,\n\t\t'entity.title must be a string or undefined, got ' + JSON.stringify(entity.title));\n\tassert('undefined' === typeof entity.type || 'string' === typeof entity.type,\n\t\t'entity.type must be a string or undefined, got ' + JSON.stringify(entity.type));\n\tassert('undefined' === typeof entity.properties || 'object' === typeof entity.properties,\n\t\t'entity.properties must be an object or undefined, got ' + JSON.stringify(entity.properties));\n\tassert('undefined' === typeof entity.class || Array.isArray(entity.class),\n\t\t'entity.class must be an array or undefined, got ' + JSON.stringify(entity.class));\n\tassert('undefined' === typeof entity.actions || Array.isArray(entity.actions),\n\t\t'entity.actions must be an array or undefined, got ' + JSON.stringify(entity.actions));\n\tassert('undefined' === typeof entity.links || Array.isArray(entity.links),\n\t\t'entity.links must be an array or undefined, got ' + JSON.stringify(entity.links));\n\tassert('undefined' === typeof entity.entities || Array.isArray(entity.entities),\n\t\t'entity.entities must be an array or undefined, got ' + JSON.stringify(entity.entities));\n\n\tif (entity.rel) {\n\t\t// Only applies to sub-entities (required for them)\n\t\tthis.rel = entity.rel;\n\t}\n\n\tif (entity.title) {\n\t\tthis.title = entity.title;\n\t}\n\n\tif (entity.type) {\n\t\tthis.type = entity.type;\n\t}\n\n\tif (entity.properties) {\n\t\tthis.properties = entity.properties;\n\t}\n\n\tif (entity.class) {\n\t\tthis.class = entity.class;\n\t}\n\n\tthis._actionsByName = {};\n\tthis._actionsByClass = {};\n\tthis._actionsByMethod = {};\n\tthis._actionsByType = {};\n\tif (entity.actions) {\n\t\tthis.actions = [];\n\t\tentity.actions.forEach(action => {\n\t\t\tconst actionInstance = new Action(action);\n\t\t\tthis.actions.push(actionInstance);\n\t\t\tthis._actionsByName[actionInstance.name] = actionInstance;\n\n\t\t\tif (actionInstance.method) {\n\t\t\t\tthis._actionsByMethod[actionInstance.method] = this._actionsByMethod[actionInstance.method] || [];\n\t\t\t\tthis._actionsByMethod[actionInstance.method].push(actionInstance);\n\t\t\t}\n\n\t\t\tif (actionInstance.type) {\n\t\t\t\tthis._actionsByType[actionInstance.type] = this._actionsByType[actionInstance.type] || [];\n\t\t\t\tthis._actionsByType[actionInstance.type].push(actionInstance);\n\t\t\t}\n\n\t\t\tif (actionInstance.class) {\n\t\t\t\tactionInstance.class.forEach(cls => {\n\t\t\t\t\tthis._actionsByClass[cls] = this._actionsByClass[cls] || [];\n\t\t\t\t\tthis._actionsByClass[cls].push(actionInstance);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tthis._linksByRel = {};\n\tthis._linksByClass = {};\n\tthis._linksByType = {};\n\tif (entity.links) {\n\t\tthis.links = [];\n\t\tentity.links.forEach(link => {\n\t\t\tconst linkInstance = new Link(link);\n\t\t\tthis.links.push(linkInstance);\n\n\t\t\tlinkInstance.rel.forEach(rel => {\n\t\t\t\tthis._linksByRel[rel] = this._linksByRel[rel] || [];\n\t\t\t\tthis._linksByRel[rel].push(linkInstance);\n\t\t\t});\n\n\t\t\tif (linkInstance.class) {\n\t\t\t\tlinkInstance.class.forEach(cls => {\n\t\t\t\t\tthis._linksByClass[cls] = this._linksByClass[cls] || [];\n\t\t\t\t\tthis._linksByClass[cls].push(linkInstance);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (linkInstance.type) {\n\t\t\t\tthis._linksByType[linkInstance.type] = this._linksByType[linkInstance.type] || [];\n\t\t\t\tthis._linksByType[linkInstance.type].push(linkInstance);\n\t\t\t}\n\t\t});\n\t}\n\n\tthis._entitiesByRel = {};\n\tthis._entitiesByClass = {};\n\tthis._entitiesByType = {};\n\tif (entity.entities) {\n\t\tthis.entities = [];\n\t\tentity.entities.forEach(subEntity => {\n\t\t\t// Subentities must have a rel array\n\t\t\tassert(Array.isArray(subEntity.rel),\n\t\t\t\t'sub-entities must have a rel array, got ' + JSON.stringify(subEntity.rel));\n\n\t\t\tlet subEntityInstance;\n\t\t\tif ('string' === typeof subEntity.href) {\n\t\t\t\tsubEntityInstance = new Link(subEntity);\n\t\t\t} else {\n\t\t\t\tsubEntityInstance = new Entity(subEntity);\n\t\t\t}\n\t\t\tthis.entities.push(subEntityInstance);\n\n\t\t\tsubEntityInstance.rel.forEach(rel => {\n\t\t\t\tthis._entitiesByRel[rel] = this._entitiesByRel[rel] || [];\n\t\t\t\tthis._entitiesByRel[rel].push(subEntityInstance);\n\t\t\t});\n\n\t\t\tif (subEntityInstance.class) {\n\t\t\t\tsubEntityInstance.class.forEach(cls => {\n\t\t\t\t\tthis._entitiesByClass[cls] = this._entitiesByClass[cls] || [];\n\t\t\t\t\tthis._entitiesByClass[cls].push(subEntityInstance);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (subEntityInstance.type) {\n\t\t\t\tthis._entitiesByType[subEntityInstance.type] = this._entitiesByType[subEntityInstance.type] || [];\n\t\t\t\tthis._entitiesByType[subEntityInstance.type].push(subEntityInstance);\n\t\t\t}\n\t\t});\n\t}\n}\n\nEntity.prototype.toJSON = function() {\n\treturn {\n\t\trel: this.rel,\n\t\ttitle: this.title,\n\t\ttype: this.type,\n\t\tproperties: this.properties,\n\t\tclass: this.class,\n\t\tactions: this.actions,\n\t\tlinks: this.links,\n\t\tentities: this.entities\n\t};\n};\n\nEntity.prototype.hasAction = function(actionName) {\n\treturn this.hasActionByName(actionName);\n};\n\nEntity.prototype.hasActionByName = function(actionName) {\n\treturn hasProperty(this._actionsByName, actionName);\n};\n\nEntity.prototype.hasActionByClass = function(actionClass) {\n\treturn hasProperty(this._actionsByClass, actionClass);\n};\n\nEntity.prototype.hasActionByMethod = function(actionMethod) {\n\treturn hasProperty(this._actionsByMethod, actionMethod);\n};\n\nEntity.prototype.hasActionByType = function(actionType) {\n\treturn hasProperty(this._actionsByType, actionType);\n};\n\nEntity.prototype.hasClass = function(cls) {\n\treturn this.class instanceof Array && contains(this.class, cls);\n};\n\nEntity.prototype.hasEntity = function(entityRel) {\n\treturn this.hasSubEntityByRel(entityRel);\n};\n\nEntity.prototype.hasEntityByRel = function(entityRel) {\n\treturn this.hasSubEntityByRel(entityRel);\n};\n\nEntity.prototype.hasSubEntityByRel = function(entityRel) {\n\treturn hasProperty(this._entitiesByRel, entityRel);\n};\n\nEntity.prototype.hasEntityByClass = function(entityClass) {\n\treturn this.hasSubEntityByClass(entityClass);\n};\n\nEntity.prototype.hasSubEntityByClass = function(entityClass) {\n\treturn hasProperty(this._entitiesByClass, entityClass);\n};\n\nEntity.prototype.hasEntityByType = function(entityType) {\n\treturn this.hasSubEntityByType(entityType);\n};\n\nEntity.prototype.hasSubEntityByType = function(entityType) {\n\treturn hasProperty(this._entitiesByType, entityType);\n};\n\nEntity.prototype.hasLink = function(linkRel) {\n\treturn this.hasLinkByRel(linkRel);\n};\n\nEntity.prototype.hasLinkByRel = function(linkRel) {\n\treturn hasProperty(this._linksByRel, linkRel);\n};\n\nEntity.prototype.hasLinkByClass = function(linkClass) {\n\treturn hasProperty(this._linksByClass, linkClass);\n};\n\nEntity.prototype.hasLinkByType = function(linkType) {\n\treturn hasProperty(this._linksByType, linkType);\n};\n\nEntity.prototype.hasProperty = function(property) {\n\treturn hasProperty(this, 'properties') && hasProperty(this.properties, property);\n};\n\nEntity.prototype.getAction = function(actionName) {\n\treturn this.getActionByName(actionName);\n};\n\nEntity.prototype.getActionByName = function(actionName) {\n\treturn getMatchingValue(this._actionsByName, actionName);\n};\n\nEntity.prototype.getActionByClass = function(actionClass) {\n\tconst vals = getMatchingValue(this._actionsByClass, actionClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByClass = function(actionClass) {\n\tconst vals = getMatchingValue(this._actionsByClass, actionClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByClasses = function(actionClasses) {\n\tconst vals = getMatchingValuesByAll(this.actions, actionClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByClasses = function(actionClasses) {\n\tconst vals = getMatchingValuesByAll(this.actions, actionClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByMethod = function(actionMethod) {\n\tconst vals = getMatchingValue(this._actionsByMethod, actionMethod);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByMethod = function(actionMethod) {\n\tconst vals = getMatchingValue(this._actionsByMethod, actionMethod);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getActionByType = function(actionType) {\n\tconst vals = getMatchingValue(this._actionsByType, actionType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getActionsByType = function(actionType) {\n\tconst vals = getMatchingValue(this._actionsByType, actionType);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLink = function(linkRel) {\n\treturn this.getLinkByRel(linkRel);\n};\n\nEntity.prototype.getLinks = function(linkRel) {\n\treturn this.getLinksByRel(linkRel);\n};\n\nEntity.prototype.getLinkByRel = function(linkRel) {\n\tconst vals = getMatchingValue(this._linksByRel, linkRel);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByRel = function(linkRel) {\n\tconst vals = getMatchingValue(this._linksByRel, linkRel);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByRels = function(linkRels) {\n\tconst vals = getMatchingValuesByAll(this.links, linkRels, 'rel');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByRels = function(linkRels) {\n\tconst vals = getMatchingValuesByAll(this.links, linkRels, 'rel');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByClass = function(linkClass) {\n\tconst vals = getMatchingValue(this._linksByClass, linkClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByClass = function(linkClass) {\n\tconst vals = getMatchingValue(this._linksByClass, linkClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByClasses = function(linkClasses) {\n\tconst vals = getMatchingValuesByAll(this.links, linkClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByClasses = function(linkClasses) {\n\tconst vals = getMatchingValuesByAll(this.links, linkClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getLinkByType = function(linkType) {\n\tconst vals = getMatchingValue(this._linksByType, linkType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getLinksByType = function(linkType) {\n\tconst vals = getMatchingValue(this._linksByType, linkType);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntity = function(entityRel) {\n\treturn this.getSubEntityByRel(entityRel);\n};\n\nEntity.prototype.getSubEntities = function(entityRel) {\n\treturn this.getSubEntitiesByRel(entityRel);\n};\n\nEntity.prototype.getSubEntityByRel = function(entityRel) {\n\tconst vals = getMatchingValue(this._entitiesByRel, entityRel);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByRel = function(entityRel) {\n\tconst vals = getMatchingValue(this._entitiesByRel, entityRel);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByRels = function(entityRels) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityRels, 'rel');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByRels = function(entityRels) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityRels, 'rel');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByClass = function(entityClass) {\n\tconst vals = getMatchingValue(this._entitiesByClass, entityClass);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByClass = function(entityClass) {\n\tconst vals = getMatchingValue(this._entitiesByClass, entityClass);\n\treturn vals ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByClasses = function(entityClasses) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityClasses, 'class');\n\treturn vals && vals.length > 0 ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByClasses = function(entityClasses) {\n\tconst vals = getMatchingValuesByAll(this.entities, entityClasses, 'class');\n\treturn vals && vals.length > 0 ? vals.slice() : [];\n};\n\nEntity.prototype.getSubEntityByType = function(entityType) {\n\tconst vals = getMatchingValue(this._entitiesByType, entityType);\n\treturn vals ? vals[0] : undefined;\n};\n\nEntity.prototype.getSubEntitiesByType = function(entityType) {\n\tconst vals = getMatchingValue(this._entitiesByType, entityType);\n\treturn vals ? vals.slice() : [];\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["Entity","entity","JSON","parse","rel","Array","isArray","stringify","title","type","properties","actions","links","entities","_actionsByName","_actionsByClass","_actionsByMethod","_actionsByType","forEach","action","actionInstance","Action","push","name","method","cls","_linksByRel","_linksByClass","_linksByType","link","linkInstance","Link","_entitiesByRel","_entitiesByClass","_entitiesByType","subEntity","subEntityInstance","href","prototype","toJSON","hasAction","actionName","hasActionByName","hasActionByClass","actionClass","hasActionByMethod","actionMethod","hasActionByType","actionType","hasClass","hasEntity","entityRel","hasSubEntityByRel","hasEntityByRel","hasEntityByClass","entityClass","hasSubEntityByClass","hasEntityByType","entityType","hasSubEntityByType","hasLink","linkRel","hasLinkByRel","hasLinkByClass","linkClass","hasLinkByType","linkType","hasProperty","property","getAction","getActionByName","getActionByClass","vals","undefined","getActionsByClass","slice","getActionByClasses","actionClasses","length","getActionsByClasses","getActionByMethod","getActionsByMethod","getActionByType","getActionsByType","getLink","getLinkByRel","getLinks","getLinksByRel","getLinkByRels","linkRels","getLinksByRels","getLinkByClass","getLinksByClass","getLinkByClasses","linkClasses","getLinksByClasses","getLinkByType","getLinksByType","getSubEntity","getSubEntityByRel","getSubEntities","getSubEntitiesByRel","getSubEntityByRels","entityRels","getSubEntitiesByRels","getSubEntityByClass","getSubEntitiesByClass","getSubEntityByClasses","entityClasses","getSubEntitiesByClasses","getSubEntityByType","getSubEntitiesByType"],"mappings":"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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"}
@@ -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 (!fields.hasOwnProperty(field.name)) {
45
+ if (!Object.prototype.hasOwnProperty.call(fields, field.name)) {
46
46
  fieldsObj[field.name] = field.value;
47
47
  }
48
48
  });
@@ -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,CAACH,MAAM,CAACI,cAAP,CAAsBD,KAAK,CAACE,IAA5B,CAAL,EAAwC;AACvCJ,MAAAA,SAAS,CAACE,KAAK,CAACE,IAAP,CAAT,GAAwBF,KAAK,CAACG,KAA9B;AACA;AACD,GAJD;AAKA,SAAOL,SAAP;AACA;;AAED,SAASM,YAAT,CAAsBC,GAAtB,EAA2B;AAC1BA,EAAAA,GAAG,CAACC,MAAJ,GAAa,SAASA,MAAT,CAAgBT,MAAhB,EAAwB;AACpC,QAAIU,KAAK,CAACC,OAAN,CAAcX,MAAd,CAAJ,EAA2B;AAC1BA,MAAAA,MAAM,GAAGD,aAAa,CAACC,MAAD,CAAtB;AACA;;AAED,YAAQ,KAAKY,MAAL,CAAYC,WAAZ,EAAR;AACC,WAAK,KAAL;AACA,WAAK,MAAL;AAAa;AACZ,iBAAO,KAAKC,KAAL,CAAWd,MAAX,CAAP;AACA;;AACD;AAAS;AACR,iBAAO,KAAKe,IAAL,CAAUf,MAAV,CAAP;AACA;AAPF;AASA,GAdD;AAeA;;AAEM,SAASgB,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,CAAClB,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 (!fields.hasOwnProperty(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"}
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 = arrayLike.find(function (item) {
17
- return item.match(stringOrRegex);
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 objectLike.hasOwnProperty(stringOrRegex);
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","find","item","undefined","hasProperty","objectLike","hasOwnProperty","Object","keys","getMatchingValue","i","length","key","getMatchingValuesByAll","arrayOfStringOrRegex","propertyToMatch","Array","isArray","results","like","val","every","y","push"],"mappings":";;;;;;;;;;AAAO,SAASA,QAAT,CAAkBC,SAAlB,EAA6BC,aAA7B,EAA4C;AAClD,MAAI,aAAa,OAAOA,aAAxB,EAAuC;AACtC,WAAOD,SAAS,CAACE,OAAV,CAAkBD,aAAlB,IAAmC,CAAC,CAA3C;AACA;;AAED,MAAME,KAAK,GAAGH,SAAS,CAACI,IAAV,CAAe,UAASC,IAAT,EAAe;AAC3C,WAAOA,IAAI,CAACF,KAAL,CAAWF,aAAX,CAAP;AACA,GAFa,CAAd;AAIA,SAAQE,KAAK,KAAKG,SAAlB;AACA;;AAEM,SAASC,WAAT,CAAqBC,UAArB,EAAiCP,aAAjC,EAAgD;AACtD,MAAI,aAAa,OAAOA,aAAxB,EAAuC;AACtC,WAAOO,UAAU,CAACC,cAAX,CAA0BR,aAA1B,CAAP;AACA;;AAED,SAAOF,QAAQ,CAACW,MAAM,CAACC,IAAP,CAAYH,UAAZ,CAAD,EAA0BP,aAA1B,CAAf;AACA;;AAEM,SAASW,gBAAT,CAA0BJ,UAA1B,EAAsCP,aAAtC,EAAqD;AAC3D,MAAI,aAAa,OAAOA,aAAxB,EAAuC;AACtC,WAAOO,UAAU,CAACP,aAAD,CAAjB;AACA;;AAED,MAAMU,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYH,UAAZ,CAAb;;AACA,OAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,IAAI,CAACG,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACrC,QAAME,GAAG,GAAGJ,IAAI,CAACE,CAAD,CAAhB;;AAEA,QAAIE,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,CAAcH,oBAAd,CAAD,IAAwC,CAACC,eAA7C,EAA8D;AAC7D,WAAO,EAAP;AACA;;AAED,MAAMG,OAAO,GAAG,EAAhB;;AACA,OAAK,IAAIR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGb,SAAS,CAACc,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AAC1C,QAAIS,IAAI,GAAGtB,SAAS,CAACa,CAAD,CAApB;AACA,QAAIU,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 ('string' === typeof stringOrRegex) {\n\t\treturn arrayLike.indexOf(stringOrRegex) > -1;\n\t}\n\n\tconst match = arrayLike.find(function(item) {\n\t\treturn item.match(stringOrRegex);\n\t});\n\n\treturn (match !== undefined);\n}\n\nexport function hasProperty(objectLike, stringOrRegex) {\n\tif ('string' === typeof stringOrRegex) {\n\t\treturn objectLike.hasOwnProperty(stringOrRegex);\n\t}\n\n\treturn contains(Object.keys(objectLike), stringOrRegex);\n}\n\nexport function getMatchingValue(objectLike, stringOrRegex) {\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(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"}
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.0",
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": "cross-env NODE_ENV=test nyc mocha",
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.1.2",
31
- "@babel/core": "^7.1.2",
32
- "@babel/node": "^7.0.0",
33
- "@babel/preset-env": "^7.1.0",
34
- "@babel/register": "^7.0.0",
35
- "babel-plugin-add-module-exports": "^1.0.0",
36
- "babel-plugin-istanbul": "^5.1.0",
37
- "chai": "^4.2.0",
38
- "cross-env": "^5.2.0",
39
- "eslint": "^5.8.0",
40
- "eslint-config-brightspace": "^0.4.1",
41
- "mocha": "^5.2.0",
42
- "nock": "^10.0.2",
43
- "nyc": "^13.1.0",
44
- "sinon": "^7.1.1",
45
- "sinon-chai": "^3.2.0",
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 (field.hasOwnProperty('value')) {
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
@@ -1,5 +1,5 @@
1
1
  import assert from './assert';
2
- import {contains} from './util';
2
+ import { contains } from './util';
3
3
 
4
4
  export default function Link(link) {
5
5
  if (link instanceof Link) {
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 (!fields.hasOwnProperty(field.name)) {
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
- const match = arrayLike.find(function(item) {
7
- return item.match(stringOrRegex);
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 objectLike.hasOwnProperty(stringOrRegex);
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