siren-parser 8.4.0 → 8.5.2

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
@@ -347,6 +347,10 @@ There are two helper `superagent` methods included with this module, under `./su
347
347
  npm test
348
348
  ```
349
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
+
350
354
  ## Contributing
351
355
 
352
356
  1. **Fork** the repository. Committing directly against this repository is highly discouraged.
@@ -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
@@ -41,7 +41,7 @@ function Field(field) {
41
41
  this.type = field.type;
42
42
  }
43
43
 
44
- if (field.hasOwnProperty('value')) {
44
+ if (Object.prototype.hasOwnProperty.call(field, 'value')) {
45
45
  this.value = field.value;
46
46
  }
47
47
 
@@ -49,11 +49,11 @@ function Field(field) {
49
49
  this.title = field.title;
50
50
  }
51
51
 
52
- if (field.min) {
52
+ if (typeof field.min === 'number') {
53
53
  this.min = field.min;
54
54
  }
55
55
 
56
- if (field.max) {
56
+ if (typeof field.max === 'number') {
57
57
  this.max = field.max;
58
58
  }
59
59
  }
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","min","max","hasOwnProperty","value","prototype","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 (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\tif (field.min) {\n\t\tthis.min = field.min;\n\t}\n\n\tif (field.max) {\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"}
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":";;;;;;;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;AAEA,0BAAO,gBAAgB,OAAOT,KAAK,CAACU,GAA7B,IAAoC,aAAa,OAAOV,KAAK,CAACU,GAArE,EACC,kDAAkDT,IAAI,CAACC,SAAL,CAAeF,KAAK,CAACU,GAArB,CADnD;AAEA,0BAAO,gBAAgB,OAAOV,KAAK,CAACW,GAA7B,IAAoC,aAAa,OAAOX,KAAK,CAACW,GAArE,EACC,kDAAkDV,IAAI,CAACC,SAAL,CAAeF,KAAK,CAACW,GAArB,CADnD;AAGA,OAAKR,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,MAAIM,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCf,KAArC,EAA4C,OAA5C,CAAJ,EAA0D;AACzD,SAAKgB,KAAL,GAAahB,KAAK,CAACgB,KAAnB;AACA;;AAED,MAAIhB,KAAK,CAACS,KAAV,EAAiB;AAChB,SAAKA,KAAL,GAAaT,KAAK,CAACS,KAAnB;AACA;;AAED,MAAI,OAAOT,KAAK,CAACU,GAAb,KAAqB,QAAzB,EAAmC;AAClC,SAAKA,GAAL,GAAWV,KAAK,CAACU,GAAjB;AACA;;AAED,MAAI,OAAOV,KAAK,CAACW,GAAb,KAAqB,QAAzB,EAAmC;AAClC,SAAKA,GAAL,GAAWX,KAAK,CAACW,GAAjB;AACA;AACD;;AAEDZ,KAAK,CAACc,SAAN,CAAgBI,MAAhB,GAAyB,YAAW;AACnC,SAAO;AACNd,IAAAA,IAAI,EAAE,KAAKA,IADL;AAEN,aAAO,aAFD;AAGNG,IAAAA,IAAI,EAAE,KAAKA,IAHL;AAINU,IAAAA,KAAK,EAAE,KAAKA,KAJN;AAKNP,IAAAA,KAAK,EAAE,KAAKA,KALN;AAMNC,IAAAA,GAAG,EAAE,KAAKA,GANJ;AAONC,IAAAA,GAAG,EAAE,KAAKA;AAPJ,GAAP;AASA,CAVD;;AAYAZ,KAAK,CAACc,SAAN,CAAgBK,QAAhB,GAA2B,UAASC,GAAT,EAAc;AACxC,SAAO,yBAAsBf,KAAtB,IAA+B,oBAAS,aAAT,EAAqBe,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\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.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/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"}
@@ -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,6 +9,10 @@ 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
  }
@@ -27,13 +31,17 @@ function contains(arrayLike, stringOrRegex) {
27
31
 
28
32
  function hasProperty(objectLike, stringOrRegex) {
29
33
  if ('string' === typeof stringOrRegex) {
30
- return objectLike.hasOwnProperty(stringOrRegex);
34
+ return Object.prototype.hasOwnProperty.call(objectLike, stringOrRegex);
31
35
  }
32
36
 
33
37
  return contains(Object.keys(objectLike), stringOrRegex);
34
38
  }
35
39
 
36
40
  function getMatchingValue(objectLike, stringOrRegex) {
41
+ if (!stringOrRegex) {
42
+ return;
43
+ }
44
+
37
45
  if ('string' === typeof stringOrRegex) {
38
46
  return objectLike[stringOrRegex];
39
47
  }
@@ -50,7 +58,7 @@ function getMatchingValue(objectLike, stringOrRegex) {
50
58
  }
51
59
 
52
60
  function getMatchingValuesByAll(arrayLike, arrayOfStringOrRegex, propertyToMatch) {
53
- if (!Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
61
+ if (!Array.isArray(arrayLike) || !Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
54
62
  return [];
55
63
  }
56
64
 
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util.js"],"names":["contains","arrayLike","stringOrRegex","indexOf","match","i","length","undefined","hasProperty","objectLike","hasOwnProperty","Object","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,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,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,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGO,IAAI,CAACN,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACrC,QAAMS,GAAG,GAAGF,IAAI,CAACP,CAAD,CAAhB;;AAEA,QAAIS,GAAG,CAACV,KAAJ,CAAUF,aAAV,CAAJ,EAA8B;AAC7B,aAAOO,UAAU,CAACK,GAAD,CAAjB;AACA;AACD;AACD;;AAEM,SAASC,sBAAT,CAAgCd,SAAhC,EAA2Ce,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,IAAIf,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAAS,CAACK,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AAC1C,QAAIgB,IAAI,GAAGpB,SAAS,CAACI,CAAD,CAApB;AACA,QAAIiB,GAAG,GAAGD,IAAI,CAACJ,eAAD,CAAd;;AAEA,QAAIK,GAAG,IAAIN,oBAAoB,CAACO,KAArB,CACV,UAASC,CAAT,EAAY;AACX,aAAOxB,QAAQ,CAACsB,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\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 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.4.0",
4
- "description": "Pretty much the opposite of dominicbarnes/node-siren-writer",
3
+ "version": "8.5.2",
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": "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,22 +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
- "eslint": "^5.8.0",
39
- "eslint-config-brightspace": "^0.4.1",
40
- "mocha": "^5.2.0",
41
- "nock": "^10.0.2",
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",
42
40
  "nyc": "^15.1.0",
43
- "sinon": "^7.1.1",
44
- "sinon-chai": "^3.2.0",
45
- "supertest": "^3.3.0"
41
+ "sinon": "^9.2.4",
42
+ "sinon-chai": "^3.5.0",
43
+ "supertest": "^6.1.3"
46
44
  },
47
45
  "nyc": {
48
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',
@@ -54,7 +54,7 @@ export default function Field(field) {
54
54
  this.type = field.type;
55
55
  }
56
56
 
57
- if (field.hasOwnProperty('value')) {
57
+ if (Object.prototype.hasOwnProperty.call(field, 'value')) {
58
58
  this.value = field.value;
59
59
  }
60
60
 
@@ -62,11 +62,11 @@ export default function Field(field) {
62
62
  this.title = field.title;
63
63
  }
64
64
 
65
- if (field.min) {
65
+ if (typeof field.min === 'number') {
66
66
  this.min = field.min;
67
67
  }
68
68
 
69
- if (field.max) {
69
+ if (typeof field.max === 'number') {
70
70
  this.max = field.max;
71
71
  }
72
72
  }
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,4 +1,8 @@
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
  }
@@ -16,13 +20,17 @@ export function contains(arrayLike, stringOrRegex) {
16
20
 
17
21
  export function hasProperty(objectLike, stringOrRegex) {
18
22
  if ('string' === typeof stringOrRegex) {
19
- return objectLike.hasOwnProperty(stringOrRegex);
23
+ return Object.prototype.hasOwnProperty.call(objectLike, stringOrRegex);
20
24
  }
21
25
 
22
26
  return contains(Object.keys(objectLike), stringOrRegex);
23
27
  }
24
28
 
25
29
  export function getMatchingValue(objectLike, stringOrRegex) {
30
+ if (!stringOrRegex) {
31
+ return;
32
+ }
33
+
26
34
  if ('string' === typeof stringOrRegex) {
27
35
  return objectLike[stringOrRegex];
28
36
  }
@@ -38,7 +46,7 @@ export function getMatchingValue(objectLike, stringOrRegex) {
38
46
  }
39
47
 
40
48
  export function getMatchingValuesByAll(arrayLike, arrayOfStringOrRegex, propertyToMatch) {
41
- if (!Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
49
+ if (!Array.isArray(arrayLike) || !Array.isArray(arrayOfStringOrRegex) || !propertyToMatch) {
42
50
  return [];
43
51
  }
44
52