typedrest 0.3.0 → 0.3.4

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
@@ -12,14 +12,14 @@ const client = new MyClient(new URL("http://example.com/"));
12
12
  const contactList: Contact[] = await client.contacts.readAll();
13
13
 
14
14
  // POST /contacts -> Location: /contacts/1337
15
- const smith: ContactEndpoint = await client.contacts.create(new Contact("Smith"));
15
+ const smith: ContactEndpoint = await client.contacts.create({name: "Smith"});
16
16
  //const smith: ContactEndpoint = client.contacts.get("1337");
17
17
 
18
18
  // GET /contacts/1337
19
- contact: Contact = await smith.read();
19
+ const contact: Contact = await smith.read();
20
20
 
21
21
  // PUT /contacts/1337/note
22
- await smith.note.set(new Note("some note"));
22
+ await smith.note.set({content: "some note"});
23
23
 
24
24
  // GET /contacts/1337/note
25
25
  const note: Note = await smith.note.read();
@@ -0,0 +1,51 @@
1
+ !function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=2)}([function(e,t,r){var n,i;
2
+ /**
3
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
4
+ * Copyright (C) 2020 Oliver Nightingale
5
+ * @license MIT
6
+ */!function(){var s,o,a,u,l,c,h,d,f,p,y,m,v,g,x,w,L,E,b,S,k,Q,O,P,T,_,C=function(e){var t=new C.Builder;return t.pipeline.add(C.trimmer,C.stopWordFilter,C.stemmer),t.searchPipeline.add(C.stemmer),e.call(t,t),t.build()};C.version="2.3.9"
7
+ /*!
8
+ * lunr.utils
9
+ * Copyright (C) 2020 Oliver Nightingale
10
+ */,C.utils={},C.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),C.utils.asString=function(e){return null==e?"":e.toString()},C.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),n=0;n<r.length;n++){var i=r[n],s=e[i];if(Array.isArray(s))t[i]=s.slice();else{if("string"!=typeof s&&"number"!=typeof s&&"boolean"!=typeof s)throw new TypeError("clone is not deep and does not support nested objects");t[i]=s}}return t},C.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r},C.FieldRef.joiner="/",C.FieldRef.fromString=function(e){var t=e.indexOf(C.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var r=e.slice(0,t),n=e.slice(t+1);return new C.FieldRef(n,r,e)},C.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+C.FieldRef.joiner+this.docRef),this._stringValue}
11
+ /*!
12
+ * lunr.Set
13
+ * Copyright (C) 2020 Oliver Nightingale
14
+ */,C.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},C.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},C.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},C.Set.prototype.contains=function(e){return!!this.elements[e]},C.Set.prototype.intersect=function(e){var t,r,n,i=[];if(e===C.Set.complete)return this;if(e===C.Set.empty)return e;this.length<e.length?(t=this,r=e):(t=e,r=this),n=Object.keys(t.elements);for(var s=0;s<n.length;s++){var o=n[s];o in r.elements&&i.push(o)}return new C.Set(i)},C.Set.prototype.union=function(e){return e===C.Set.complete?C.Set.complete:e===C.Set.empty?this:new C.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},C.idf=function(e,t){var r=0;for(var n in e)"_index"!=n&&(r+=Object.keys(e[n]).length);var i=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(i))},C.Token=function(e,t){this.str=e||"",this.metadata=t||{}},C.Token.prototype.toString=function(){return this.str},C.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},C.Token.prototype.clone=function(e){return e=e||function(e){return e},new C.Token(e(this.str,this.metadata),this.metadata)}
15
+ /*!
16
+ * lunr.tokenizer
17
+ * Copyright (C) 2020 Oliver Nightingale
18
+ */,C.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new C.Token(C.utils.asString(e).toLowerCase(),C.utils.clone(t))}));for(var r=e.toString().toLowerCase(),n=r.length,i=[],s=0,o=0;s<=n;s++){var a=s-o;if(r.charAt(s).match(C.tokenizer.separator)||s==n){if(a>0){var u=C.utils.clone(t)||{};u.position=[o,a],u.index=i.length,i.push(new C.Token(r.slice(o,s),u))}o=s+1}}return i},C.tokenizer.separator=/[\s\-]+/
19
+ /*!
20
+ * lunr.Pipeline
21
+ * Copyright (C) 2020 Oliver Nightingale
22
+ */,C.Pipeline=function(){this._stack=[]},C.Pipeline.registeredFunctions=Object.create(null),C.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&C.utils.warn("Overwriting existing registered function: "+t),e.label=t,C.Pipeline.registeredFunctions[e.label]=e},C.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||C.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},C.Pipeline.load=function(e){var t=new C.Pipeline;return e.forEach((function(e){var r=C.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},C.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){C.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},C.Pipeline.prototype.after=function(e,t){C.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},C.Pipeline.prototype.before=function(e,t){C.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},C.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},C.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r<t;r++){for(var n=this._stack[r],i=[],s=0;s<e.length;s++){var o=n(e[s],s,e);if(null!=o&&""!==o)if(Array.isArray(o))for(var a=0;a<o.length;a++)i.push(o[a]);else i.push(o)}e=i}return e},C.Pipeline.prototype.runString=function(e,t){var r=new C.Token(e,t);return this.run([r]).map((function(e){return e.toString()}))},C.Pipeline.prototype.reset=function(){this._stack=[]},C.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return C.Pipeline.warnIfFunctionNotRegistered(e),e.label}))}
23
+ /*!
24
+ * lunr.Vector
25
+ * Copyright (C) 2020 Oliver Nightingale
26
+ */,C.Vector=function(e){this._magnitude=0,this.elements=e||[]},C.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,n=r-t,i=Math.floor(n/2),s=this.elements[2*i];n>1&&(s<e&&(t=i),s>e&&(r=i),s!=e);)n=r-t,i=t+Math.floor(n/2),s=this.elements[2*i];return s==e||s>e?2*i:s<e?2*(i+1):void 0},C.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},C.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var n=this.positionForIndex(e);this.elements[n]==e?this.elements[n+1]=r(this.elements[n+1],t):this.elements.splice(n,0,e,t)},C.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;r<t;r+=2){var n=this.elements[r];e+=n*n}return this._magnitude=Math.sqrt(e)},C.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,n=e.elements,i=r.length,s=n.length,o=0,a=0,u=0,l=0;u<i&&l<s;)(o=r[u])<(a=n[l])?u+=2:o>a?l+=2:o==a&&(t+=r[u+1]*n[l+1],u+=2,l+=2);return t},C.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},C.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t<this.elements.length;t+=2,r++)e[r]=this.elements[t];return e},C.Vector.prototype.toJSON=function(){return this.elements}
27
+ /*!
28
+ * lunr.stemmer
29
+ * Copyright (C) 2020 Oliver Nightingale
30
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
31
+ */,C.stemmer=(o={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},a={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},u="[aeiouy]",l="[^aeiou][^aeiouy]*",c=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),h=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),d=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),f=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),p=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,m=/^(.+?)eed$/,v=/^(.+?)(ed|ing)$/,g=/.$/,x=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),L=new RegExp("^"+l+u+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,S=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,k=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,Q=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,T=new RegExp("^"+l+u+"[^aeiouwxy]$"),_=function(e){var t,r,n,i,s,u,l;if(e.length<3)return e;if("y"==(n=e.substr(0,1))&&(e=n.toUpperCase()+e.substr(1)),s=y,(i=p).test(e)?e=e.replace(i,"$1$2"):s.test(e)&&(e=e.replace(s,"$1$2")),s=v,(i=m).test(e)){var _=i.exec(e);(i=c).test(_[1])&&(i=g,e=e.replace(i,""))}else s.test(e)&&(t=(_=s.exec(e))[1],(s=f).test(t)&&(u=w,l=L,(s=x).test(e=t)?e+="e":u.test(e)?(i=g,e=e.replace(i,"")):l.test(e)&&(e+="e")));return(i=E).test(e)&&(e=(t=(_=i.exec(e))[1])+"i"),(i=b).test(e)&&(t=(_=i.exec(e))[1],r=_[2],(i=c).test(t)&&(e=t+o[r])),(i=S).test(e)&&(t=(_=i.exec(e))[1],r=_[2],(i=c).test(t)&&(e=t+a[r])),s=Q,(i=k).test(e)?(t=(_=i.exec(e))[1],(i=h).test(t)&&(e=t)):s.test(e)&&(t=(_=s.exec(e))[1]+_[2],(s=h).test(t)&&(e=t)),(i=O).test(e)&&(t=(_=i.exec(e))[1],s=d,u=T,((i=h).test(t)||s.test(t)&&!u.test(t))&&(e=t)),s=h,(i=P).test(e)&&s.test(e)&&(i=g,e=e.replace(i,"")),"y"==n&&(e=n.toLowerCase()+e.substr(1)),e},function(e){return e.update(_)}),C.Pipeline.registerFunction(C.stemmer,"stemmer")
32
+ /*!
33
+ * lunr.stopWordFilter
34
+ * Copyright (C) 2020 Oliver Nightingale
35
+ */,C.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},C.stopWordFilter=C.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),C.Pipeline.registerFunction(C.stopWordFilter,"stopWordFilter")
36
+ /*!
37
+ * lunr.trimmer
38
+ * Copyright (C) 2020 Oliver Nightingale
39
+ */,C.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},C.Pipeline.registerFunction(C.trimmer,"trimmer")
40
+ /*!
41
+ * lunr.TokenSet
42
+ * Copyright (C) 2020 Oliver Nightingale
43
+ */,C.TokenSet=function(){this.final=!1,this.edges={},this.id=C.TokenSet._nextId,C.TokenSet._nextId+=1},C.TokenSet._nextId=1,C.TokenSet.fromArray=function(e){for(var t=new C.TokenSet.Builder,r=0,n=e.length;r<n;r++)t.insert(e[r]);return t.finish(),t.root},C.TokenSet.fromClause=function(e){return"editDistance"in e?C.TokenSet.fromFuzzyString(e.term,e.editDistance):C.TokenSet.fromString(e.term)},C.TokenSet.fromFuzzyString=function(e,t){for(var r=new C.TokenSet,n=[{node:r,editsRemaining:t,str:e}];n.length;){var i=n.pop();if(i.str.length>0){var s,o=i.str.charAt(0);o in i.node.edges?s=i.node.edges[o]:(s=new C.TokenSet,i.node.edges[o]=s),1==i.str.length&&(s.final=!0),n.push({node:s,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new C.TokenSet;i.node.edges["*"]=a}if(0==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new C.TokenSet;i.node.edges["*"]=u}1==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var l,c=i.str.charAt(0),h=i.str.charAt(1);h in i.node.edges?l=i.node.edges[h]:(l=new C.TokenSet,i.node.edges[h]=l),1==i.str.length&&(l.final=!0),n.push({node:l,editsRemaining:i.editsRemaining-1,str:c+i.str.slice(2)})}}}return r},C.TokenSet.fromString=function(e){for(var t=new C.TokenSet,r=t,n=0,i=e.length;n<i;n++){var s=e[n],o=n==i-1;if("*"==s)t.edges[s]=t,t.final=o;else{var a=new C.TokenSet;a.final=o,t.edges[s]=a,t=a}}return r},C.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var r=t.pop(),n=Object.keys(r.node.edges),i=n.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var s=0;s<i;s++){var o=n[s];t.push({prefix:r.prefix.concat(o),node:r.node.edges[o]})}}return e},C.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),r=t.length,n=0;n<r;n++){var i=t[n];e=e+i+this.edges[i].id}return e},C.TokenSet.prototype.intersect=function(e){for(var t=new C.TokenSet,r=void 0,n=[{qNode:e,output:t,node:this}];n.length;){r=n.pop();for(var i=Object.keys(r.qNode.edges),s=i.length,o=Object.keys(r.node.edges),a=o.length,u=0;u<s;u++)for(var l=i[u],c=0;c<a;c++){var h=o[c];if(h==l||"*"==l){var d=r.node.edges[h],f=r.qNode.edges[l],p=d.final&&f.final,y=void 0;h in r.output.edges?(y=r.output.edges[h]).final=y.final||p:((y=new C.TokenSet).final=p,r.output.edges[h]=y),n.push({qNode:f,output:y,node:d})}}}return t},C.TokenSet.Builder=function(){this.previousWord="",this.root=new C.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},C.TokenSet.Builder.prototype.insert=function(e){var t,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var n=0;n<e.length&&n<this.previousWord.length&&e[n]==this.previousWord[n];n++)r++;this.minimize(r),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(n=r;n<e.length;n++){var i=new C.TokenSet,s=e[n];t.edges[s]=i,this.uncheckedNodes.push({parent:t,char:s,child:i}),t=i}t.final=!0,this.previousWord=e},C.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},C.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}}
44
+ /*!
45
+ * lunr.Index
46
+ * Copyright (C) 2020 Oliver Nightingale
47
+ */,C.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},C.Index.prototype.search=function(e){return this.query((function(t){new C.QueryParser(e,t).parse()}))},C.Index.prototype.query=function(e){for(var t=new C.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a<this.fields.length;a++)n[this.fields[a]]=new C.Vector;e.call(t,t);for(a=0;a<t.clauses.length;a++){var u=t.clauses[a],l=null,c=C.Set.empty;l=u.usePipeline?this.pipeline.runString(u.term,{fields:u.fields}):[u.term];for(var h=0;h<l.length;h++){var d=l[h];u.term=d;var f=C.TokenSet.fromClause(u),p=this.tokenSet.intersect(f).toArray();if(0===p.length&&u.presence===C.Query.presence.REQUIRED){for(var y=0;y<u.fields.length;y++){s[R=u.fields[y]]=C.Set.empty}break}for(var m=0;m<p.length;m++){var v=p[m],g=this.invertedIndex[v],x=g._index;for(y=0;y<u.fields.length;y++){var w=g[R=u.fields[y]],L=Object.keys(w),E=v+"/"+R,b=new C.Set(L);if(u.presence==C.Query.presence.REQUIRED&&(c=c.union(b),void 0===s[R]&&(s[R]=C.Set.complete)),u.presence!=C.Query.presence.PROHIBITED){if(n[R].upsert(x,u.boost,(function(e,t){return e+t})),!i[E]){for(var S=0;S<L.length;S++){var k,Q=L[S],O=new C.FieldRef(Q,R),P=w[Q];void 0===(k=r[O])?r[O]=new C.MatchData(v,R,P):k.add(v,R,P)}i[E]=!0}}else void 0===o[R]&&(o[R]=C.Set.empty),o[R]=o[R].union(b)}}}if(u.presence===C.Query.presence.REQUIRED)for(y=0;y<u.fields.length;y++){s[R=u.fields[y]]=s[R].intersect(c)}}var T=C.Set.complete,_=C.Set.empty;for(a=0;a<this.fields.length;a++){var R;s[R=this.fields[a]]&&(T=T.intersect(s[R])),o[R]&&(_=_.union(o[R]))}var I=Object.keys(r),j=[],F=Object.create(null);if(t.isNegated()){I=Object.keys(this.fieldVectors);for(a=0;a<I.length;a++){O=I[a];var N=C.FieldRef.fromString(O);r[O]=new C.MatchData}}for(a=0;a<I.length;a++){var D=(N=C.FieldRef.fromString(I[a])).docRef;if(T.contains(D)&&!_.contains(D)){var A,z=this.fieldVectors[N],q=n[N.fieldName].similarity(z);if(void 0!==(A=F[D]))A.score+=q,A.matchData.combine(r[N]);else{var V={ref:D,score:q,matchData:r[N]};F[D]=V,j.push(V)}}}return j.sort((function(e,t){return t.score-e.score}))},C.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:C.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},C.Index.load=function(e){var t={},r={},n=e.fieldVectors,i=Object.create(null),s=e.invertedIndex,o=new C.TokenSet.Builder,a=C.Pipeline.load(e.pipeline);e.version!=C.version&&C.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+C.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<n.length;u++){var l=(h=n[u])[0],c=h[1];r[l]=new C.Vector(c)}for(u=0;u<s.length;u++){var h,d=(h=s[u])[0],f=h[1];o.insert(d),i[d]=f}return o.finish(),t.fields=e.fields,t.fieldVectors=r,t.invertedIndex=i,t.tokenSet=o.root,t.pipeline=a,new C.Index(t)}
48
+ /*!
49
+ * lunr.Builder
50
+ * Copyright (C) 2020 Oliver Nightingale
51
+ */,C.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=C.tokenizer,this.pipeline=new C.Pipeline,this.searchPipeline=new C.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},C.Builder.prototype.ref=function(e){this._ref=e},C.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},C.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},C.Builder.prototype.k1=function(e){this._k1=e},C.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i<n.length;i++){var s=n[i],o=this._fields[s].extractor,a=o?o(e):e[s],u=this.tokenizer(a,{fields:[s]}),l=this.pipeline.run(u),c=new C.FieldRef(r,s),h=Object.create(null);this.fieldTermFrequencies[c]=h,this.fieldLengths[c]=0,this.fieldLengths[c]+=l.length;for(var d=0;d<l.length;d++){var f=l[d];if(null==h[f]&&(h[f]=0),h[f]+=1,null==this.invertedIndex[f]){var p=Object.create(null);p._index=this.termIndex,this.termIndex+=1;for(var y=0;y<n.length;y++)p[n[y]]=Object.create(null);this.invertedIndex[f]=p}null==this.invertedIndex[f][s][r]&&(this.invertedIndex[f][s][r]=Object.create(null));for(var m=0;m<this.metadataWhitelist.length;m++){var v=this.metadataWhitelist[m],g=f.metadata[v];null==this.invertedIndex[f][s][r][v]&&(this.invertedIndex[f][s][r][v]=[]),this.invertedIndex[f][s][r][v].push(g)}}}},C.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,r={},n={},i=0;i<t;i++){var s=C.FieldRef.fromString(e[i]),o=s.fieldName;n[o]||(n[o]=0),n[o]+=1,r[o]||(r[o]=0),r[o]+=this.fieldLengths[s]}var a=Object.keys(this._fields);for(i=0;i<a.length;i++){var u=a[i];r[u]=r[u]/n[u]}this.averageFieldLength=r},C.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),r=t.length,n=Object.create(null),i=0;i<r;i++){for(var s=C.FieldRef.fromString(t[i]),o=s.fieldName,a=this.fieldLengths[s],u=new C.Vector,l=this.fieldTermFrequencies[s],c=Object.keys(l),h=c.length,d=this._fields[o].boost||1,f=this._documents[s.docRef].boost||1,p=0;p<h;p++){var y,m,v,g=c[p],x=l[g],w=this.invertedIndex[g]._index;void 0===n[g]?(y=C.idf(this.invertedIndex[g],this.documentCount),n[g]=y):y=n[g],m=y*((this._k1+1)*x)/(this._k1*(1-this._b+this._b*(a/this.averageFieldLength[o]))+x),m*=d,m*=f,v=Math.round(1e3*m)/1e3,u.insert(w,v)}e[s]=u}this.fieldVectors=e},C.Builder.prototype.createTokenSet=function(){this.tokenSet=C.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},C.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new C.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},C.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},C.MatchData=function(e,t,r){for(var n=Object.create(null),i=Object.keys(r||{}),s=0;s<i.length;s++){var o=i[s];n[o]=r[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=n)},C.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),r=0;r<t.length;r++){var n=t[r],i=Object.keys(e.metadata[n]);null==this.metadata[n]&&(this.metadata[n]=Object.create(null));for(var s=0;s<i.length;s++){var o=i[s],a=Object.keys(e.metadata[n][o]);null==this.metadata[n][o]&&(this.metadata[n][o]=Object.create(null));for(var u=0;u<a.length;u++){var l=a[u];null==this.metadata[n][o][l]?this.metadata[n][o][l]=e.metadata[n][o][l]:this.metadata[n][o][l]=this.metadata[n][o][l].concat(e.metadata[n][o][l])}}}},C.MatchData.prototype.add=function(e,t,r){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=r);if(t in this.metadata[e])for(var n=Object.keys(r),i=0;i<n.length;i++){var s=n[i];s in this.metadata[e][t]?this.metadata[e][t][s]=this.metadata[e][t][s].concat(r[s]):this.metadata[e][t][s]=r[s]}else this.metadata[e][t]=r},C.Query=function(e){this.clauses=[],this.allFields=e},C.Query.wildcard=new String("*"),C.Query.wildcard.NONE=0,C.Query.wildcard.LEADING=1,C.Query.wildcard.TRAILING=2,C.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},C.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=C.Query.wildcard.NONE),e.wildcard&C.Query.wildcard.LEADING&&e.term.charAt(0)!=C.Query.wildcard&&(e.term="*"+e.term),e.wildcard&C.Query.wildcard.TRAILING&&e.term.slice(-1)!=C.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=C.Query.presence.OPTIONAL),this.clauses.push(e),this},C.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=C.Query.presence.PROHIBITED)return!1;return!0},C.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,C.utils.clone(t))}),this),this;var r=t||{};return r.term=e.toString(),this.clause(r),this},C.QueryParseError=function(e,t,r){this.name="QueryParseError",this.message=e,this.start=t,this.end=r},C.QueryParseError.prototype=new Error,C.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},C.QueryLexer.prototype.run=function(){for(var e=C.QueryLexer.lexText;e;)e=e(this)},C.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,n=0;n<this.escapeCharPositions.length;n++)r=this.escapeCharPositions[n],e.push(this.str.slice(t,r)),t=r+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},C.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},C.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},C.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return C.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},C.QueryLexer.prototype.width=function(){return this.pos-this.start},C.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},C.QueryLexer.prototype.backup=function(){this.pos-=1},C.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=C.QueryLexer.EOS&&this.backup()},C.QueryLexer.prototype.more=function(){return this.pos<this.length},C.QueryLexer.EOS="EOS",C.QueryLexer.FIELD="FIELD",C.QueryLexer.TERM="TERM",C.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",C.QueryLexer.BOOST="BOOST",C.QueryLexer.PRESENCE="PRESENCE",C.QueryLexer.lexField=function(e){return e.backup(),e.emit(C.QueryLexer.FIELD),e.ignore(),C.QueryLexer.lexText},C.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(C.QueryLexer.TERM)),e.ignore(),e.more())return C.QueryLexer.lexText},C.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(C.QueryLexer.EDIT_DISTANCE),C.QueryLexer.lexText},C.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(C.QueryLexer.BOOST),C.QueryLexer.lexText},C.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(C.QueryLexer.TERM)},C.QueryLexer.termSeparator=C.tokenizer.separator,C.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==C.QueryLexer.EOS)return C.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return C.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(C.QueryLexer.TERM),C.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(C.QueryLexer.TERM),C.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(C.QueryLexer.PRESENCE),C.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(C.QueryLexer.PRESENCE),C.QueryLexer.lexText;if(t.match(C.QueryLexer.termSeparator))return C.QueryLexer.lexTerm}else e.escapeCharacter()}},C.QueryParser=function(e,t){this.lexer=new C.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},C.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=C.QueryParser.parseClause;e;)e=e(this);return this.query},C.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},C.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},C.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},C.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case C.QueryLexer.PRESENCE:return C.QueryParser.parsePresence;case C.QueryLexer.FIELD:return C.QueryParser.parseField;case C.QueryLexer.TERM:return C.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new C.QueryParseError(r,t.start,t.end)}},C.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=C.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=C.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new C.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new C.QueryParseError(r,t.start,t.end)}switch(n.type){case C.QueryLexer.FIELD:return C.QueryParser.parseField;case C.QueryLexer.TERM:return C.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new C.QueryParseError(r,n.start,n.end)}}},C.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new C.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new C.QueryParseError(n,t.start,t.end)}switch(i.type){case C.QueryLexer.TERM:return C.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new C.QueryParseError(n,i.start,i.end)}}},C.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case C.QueryLexer.TERM:return e.nextClause(),C.QueryParser.parseTerm;case C.QueryLexer.FIELD:return e.nextClause(),C.QueryParser.parseField;case C.QueryLexer.EDIT_DISTANCE:return C.QueryParser.parseEditDistance;case C.QueryLexer.BOOST:return C.QueryParser.parseBoost;case C.QueryLexer.PRESENCE:return e.nextClause(),C.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new C.QueryParseError(n,r.start,r.end)}else e.nextClause()}},C.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new C.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case C.QueryLexer.TERM:return e.nextClause(),C.QueryParser.parseTerm;case C.QueryLexer.FIELD:return e.nextClause(),C.QueryParser.parseField;case C.QueryLexer.EDIT_DISTANCE:return C.QueryParser.parseEditDistance;case C.QueryLexer.BOOST:return C.QueryParser.parseBoost;case C.QueryLexer.PRESENCE:return e.nextClause(),C.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new C.QueryParseError(n,i.start,i.end)}else e.nextClause()}},C.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new C.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case C.QueryLexer.TERM:return e.nextClause(),C.QueryParser.parseTerm;case C.QueryLexer.FIELD:return e.nextClause(),C.QueryParser.parseField;case C.QueryLexer.EDIT_DISTANCE:return C.QueryParser.parseEditDistance;case C.QueryLexer.BOOST:return C.QueryParser.parseBoost;case C.QueryLexer.PRESENCE:return e.nextClause(),C.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new C.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return C})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t,r){},function(e,t,r){"use strict";r.r(t);var n=[];function i(e,t){n.push({selector:t,constructor:e})}var s,o,a=function(){function e(){this.createComponents(document.body)}return e.prototype.createComponents=function(e){n.forEach((function(t){e.querySelectorAll(t.selector).forEach((function(e){e.dataset.hasInstance||(new t.constructor({el:e}),e.dataset.hasInstance=String(!0))}))}))},e}(),u=function(e){this.el=e.el},l=r(0),c=(s=function(e,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});!function(e){e[e.Idle=0]="Idle",e[e.Loading=1]="Loading",e[e.Ready=2]="Ready",e[e.Failure=3]="Failure"}(o||(o={}));var h=function(e){function t(t){var r=e.call(this,t)||this;r.query="",r.loadingState=o.Idle,r.hasFocus=!1,r.preventPress=!1,r.data=null,r.index=null,r.resultClicked=!1;var n=document.querySelector("#tsd-search-field"),i=document.querySelector(".results");if(!n||!i)throw new Error("The input field or the result list wrapper are not found");return r.field=n,r.results=i,r.base=r.el.dataset.base+"/",r.bindEvents(),r}return c(t,e),t.prototype.loadIndex=function(){var e=this;if(this.loadingState==o.Idle&&!this.data){setTimeout((function(){e.loadingState==o.Idle&&e.setLoadingState(o.Loading)}),500);var t=this.el.dataset.index;t?fetch(t).then((function(e){if(!e.ok)throw new Error("The search index is missing");return e.json()})).then((function(t){e.data=t,e.index=l.Index.load(t.index),e.setLoadingState(o.Ready)})).catch((function(t){console.error(t),e.setLoadingState(o.Failure)})):this.setLoadingState(o.Failure)}},t.prototype.updateResults=function(){if(this.loadingState==o.Ready&&(this.results.textContent="",this.query&&this.index&&this.data)){var e=this.index.search("*"+this.query+"*");0===e.length&&(e=this.index.search("*"+this.query+"~1*"));for(var t=0,r=Math.min(10,e.length);t<r;t++){var n=this.data.rows[Number(e[t].ref)],i=n.name.replace(new RegExp(this.query,"i"),(function(e){return"<b>"+e+"</b>"})),s=n.parent||"";(s=s.replace(new RegExp(this.query,"i"),(function(e){return"<b>"+e+"</b>"})))&&(i='<span class="parent">'+s+".</span>"+i);var a=document.createElement("li");a.classList.value=n.classes,a.innerHTML='\n <a href="'+(this.base+n.url)+'" class="tsd-kind-icon">'+i+"</a>\n ",this.results.appendChild(a)}}},t.prototype.setLoadingState=function(e){this.loadingState!=e&&(this.el.classList.remove(o[this.loadingState].toLowerCase()),this.loadingState=e,this.el.classList.add(o[this.loadingState].toLowerCase()),this.updateResults())},t.prototype.setHasFocus=function(e){this.hasFocus!=e&&(this.hasFocus=e,this.el.classList.toggle("has-focus"),e?(this.setQuery(""),this.field.value=""):this.field.value=this.query)},t.prototype.setQuery=function(e){this.query=e.trim(),this.updateResults()},t.prototype.setCurrentResult=function(e){var t=this.results.querySelector(".current");if(t){var r=1==e?t.nextElementSibling:t.previousElementSibling;r&&(t.classList.remove("current"),r.classList.add("current"))}else(t=this.results.querySelector(1==e?"li:first-child":"li:last-child"))&&t.classList.add("current")},t.prototype.gotoCurrentResult=function(){var e=this.results.querySelector(".current");if(e||(e=this.results.querySelector("li:first-child")),e){var t=e.querySelector("a");t&&(window.location.href=t.href),this.field.blur()}},t.prototype.bindEvents=function(){var e=this;this.results.addEventListener("mousedown",(function(){e.resultClicked=!0})),this.results.addEventListener("mouseup",(function(){e.resultClicked=!1,e.setHasFocus(!1)})),this.field.addEventListener("focusin",(function(){e.setHasFocus(!0),e.loadIndex()})),this.field.addEventListener("focusout",(function(){e.resultClicked?e.resultClicked=!1:setTimeout((function(){return e.setHasFocus(!1)}),100)})),this.field.addEventListener("input",(function(){e.setQuery(e.field.value)})),this.field.addEventListener("keydown",(function(t){13==t.keyCode||27==t.keyCode||38==t.keyCode||40==t.keyCode?(e.preventPress=!0,t.preventDefault(),13==t.keyCode?e.gotoCurrentResult():27==t.keyCode?e.field.blur():38==t.keyCode?e.setCurrentResult(-1):40==t.keyCode&&e.setCurrentResult(1)):e.preventPress=!1})),this.field.addEventListener("keypress",(function(t){e.preventPress&&t.preventDefault()})),document.body.addEventListener("keydown",(function(t){t.altKey||t.ctrlKey||t.metaKey||!e.hasFocus&&t.keyCode>47&&t.keyCode<112&&e.field.focus()}))},t}(u),d=function(){function e(){this.listeners={}}return e.prototype.addEventListener=function(e,t){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(t)},e.prototype.removeEventListener=function(e,t){if(e in this.listeners)for(var r=this.listeners[e],n=0,i=r.length;n<i;n++)if(r[n]===t)return void r.splice(n,1)},e.prototype.dispatchEvent=function(e){if(!(e.type in this.listeners))return!0;for(var t=this.listeners[e.type].slice(),r=0,n=t.length;r<n;r++)t[r].call(this,e);return!e.defaultPrevented},e}(),f=function(e,t){void 0===t&&(t=100);var r=Date.now();return function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];r+t-Date.now()<0&&(e.apply(void 0,n),r=Date.now())}},p=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),y=function(e){function t(){var t=e.call(this)||this;return t.scrollTop=0,t.lastY=0,t.width=0,t.height=0,t.showToolbar=!0,t.toolbar=document.querySelector(".tsd-page-toolbar"),t.secondaryNav=document.querySelector(".tsd-navigation.secondary"),window.addEventListener("scroll",f((function(){return t.onScroll()}),10)),window.addEventListener("resize",f((function(){return t.onResize()}),10)),t.onResize(),t.onScroll(),t}return p(t,e),t.prototype.triggerResize=function(){var e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)},t.prototype.onResize=function(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;var e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)},t.prototype.onScroll=function(){this.scrollTop=window.scrollY||0;var e=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(e),this.hideShowToolbar()},t.prototype.hideShowToolbar=function(){var e=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||0===this.scrollTop,e!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.secondaryNav.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop},t.instance=new t,t}(d),m=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),v=function(e){function t(t){var r=e.call(this,t)||this;return r.anchors=[],r.index=-1,y.instance.addEventListener("resize",(function(){return r.onResize()})),y.instance.addEventListener("scroll",(function(e){return r.onScroll(e)})),r.createAnchors(),r}return m(t,e),t.prototype.createAnchors=function(){var e=this,t=window.location.href;-1!=t.indexOf("#")&&(t=t.substr(0,t.indexOf("#"))),this.el.querySelectorAll("a").forEach((function(r){var n=r.href;if(-1!=n.indexOf("#")&&n.substr(0,t.length)==t){var i=n.substr(n.indexOf("#")+1),s=document.querySelector("a.tsd-anchor[name="+i+"]"),o=r.parentNode;s&&o&&e.anchors.push({link:o,anchor:s,position:0})}})),this.onResize()},t.prototype.onResize=function(){for(var e,t=0,r=this.anchors.length;t<r;t++){var n=(e=this.anchors[t]).anchor.getBoundingClientRect();e.position=n.top+document.body.scrollTop}this.anchors.sort((function(e,t){return e.position-t.position}));var i=new CustomEvent("scroll",{detail:{scrollTop:y.instance.scrollTop}});this.onScroll(i)},t.prototype.onScroll=function(e){for(var t=e.detail.scrollTop+5,r=this.anchors,n=r.length-1,i=this.index;i>-1&&r[i].position>t;)i-=1;for(;i<n&&r[i+1].position<t;)i+=1;this.index!=i&&(this.index>-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=i,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))},t}(u),g=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),x=function(){function e(e,t){this.signature=e,this.description=t}return e.prototype.addClass=function(e){return this.signature.classList.add(e),this.description.classList.add(e),this},e.prototype.removeClass=function(e){return this.signature.classList.remove(e),this.description.classList.remove(e),this},e}(),w=function(e){function t(t){var r=e.call(this,t)||this;return r.groups=[],r.index=-1,r.createGroups(),r.container&&(r.el.classList.add("active"),Array.from(r.el.children).forEach((function(e){e.addEventListener("touchstart",(function(e){return r.onClick(e)})),e.addEventListener("click",(function(e){return r.onClick(e)}))})),r.container.classList.add("active"),r.setIndex(0)),r}return g(t,e),t.prototype.setIndex=function(e){if(e<0&&(e=0),e>this.groups.length-1&&(e=this.groups.length-1),this.index!=e){var t=this.groups[e];if(this.index>-1){var r=this.groups[this.index];r.removeClass("current").addClass("fade-out"),t.addClass("current"),t.addClass("fade-in"),y.instance.triggerResize(),setTimeout((function(){r.removeClass("fade-out"),t.removeClass("fade-in")}),300)}else t.addClass("current"),y.instance.triggerResize();this.index=e}},t.prototype.createGroups=function(){var e=this.el.children;if(!(e.length<2)){this.container=this.el.nextElementSibling;var t=this.container.children;this.groups=[];for(var r=0;r<e.length;r++)this.groups.push(new x(e[r],t[r]))}},t.prototype.onClick=function(e){var t=this;this.groups.forEach((function(r,n){r.signature===e.currentTarget&&t.setIndex(n)}))},t}(u),L="mousedown",E="mousemove",b="mouseup",S={x:0,y:0},k=!1,Q=!1,O=!1,P=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(P?"is-mobile":"not-mobile"),P&&"ontouchstart"in document.documentElement&&(!0,L="touchstart",E="touchmove",b="touchend"),document.addEventListener(L,(function(e){Q=!0,O=!1;var t="touchstart"==L?e.targetTouches[0]:e;S.y=t.pageY||0,S.x=t.pageX||0})),document.addEventListener(E,(function(e){if(Q&&!O){var t="touchstart"==L?e.targetTouches[0]:e,r=S.x-(t.pageX||0),n=S.y-(t.pageY||0);O=Math.sqrt(r*r+n*n)>10}})),document.addEventListener(b,(function(){Q=!1})),document.addEventListener("click",(function(e){k&&(e.preventDefault(),e.stopImmediatePropagation(),k=!1)}));var T=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),_=function(e){function t(t){var r=e.call(this,t)||this;return r.className=r.el.dataset.toggle||"",r.el.addEventListener(b,(function(e){return r.onPointerUp(e)})),r.el.addEventListener("click",(function(e){return e.preventDefault()})),document.addEventListener(L,(function(e){return r.onDocumentPointerDown(e)})),document.addEventListener(b,(function(e){return r.onDocumentPointerUp(e)})),r}return T(t,e),t.prototype.setActive=function(e){if(this.active!=e){this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);var t=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(t),setTimeout((function(){return document.documentElement.classList.remove(t)}),500)}},t.prototype.onPointerUp=function(e){O||(this.setActive(!0),e.preventDefault())},t.prototype.onDocumentPointerDown=function(e){if(this.active){if(e.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}},t.prototype.onDocumentPointerUp=function(e){var t=this;if(!O&&this.active&&e.target.closest(".col-menu")){var r=e.target.closest("a");if(r){var n=window.location.href;-1!=n.indexOf("#")&&(n=n.substr(0,n.indexOf("#"))),r.href.substr(0,n.length)==n&&setTimeout((function(){return t.setActive(!1)}),250)}}},t}(u),C=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),R=function(){function e(e,t){this.key=e,this.value=t,this.defaultValue=t,this.initialize(),window.localStorage[this.key]&&this.setValue(this.fromLocalStorage(window.localStorage[this.key]))}return e.prototype.initialize=function(){},e.prototype.setValue=function(e){if(this.value!=e){var t=this.value;this.value=e,window.localStorage[this.key]=this.toLocalStorage(e),this.handleValueChange(t,e)}},e}(),I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return C(t,e),t.prototype.initialize=function(){var e=this,t=document.querySelector("#tsd-filter-"+this.key);t&&(this.checkbox=t,this.checkbox.addEventListener("change",(function(){e.setValue(e.checkbox.checked)})))},t.prototype.handleValueChange=function(e,t){this.checkbox&&(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))},t.prototype.fromLocalStorage=function(e){return"true"==e},t.prototype.toLocalStorage=function(e){return e?"true":"false"},t}(R),j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return C(t,e),t.prototype.initialize=function(){var e=this;document.documentElement.classList.add("toggle-"+this.key+this.value);var t=document.querySelector("#tsd-filter-"+this.key);if(t){this.select=t;var r=function(){e.select.classList.add("active")};this.select.addEventListener(L,r),this.select.addEventListener("mouseover",r),this.select.addEventListener("mouseleave",(function(){e.select.classList.remove("active")})),this.select.querySelectorAll("li").forEach((function(r){r.addEventListener(b,(function(r){t.classList.remove("active"),e.setValue(r.target.dataset.value||"")}))})),document.addEventListener(L,(function(t){e.select.contains(t.target)||e.select.classList.remove("active")}))}},t.prototype.handleValueChange=function(e,t){this.select.querySelectorAll("li.selected").forEach((function(e){e.classList.remove("selected")}));var r=this.select.querySelector('li[data-value="'+t+'"]'),n=this.select.querySelector(".tsd-select-label");r&&n&&(r.classList.add("selected"),n.textContent=r.textContent),document.documentElement.classList.remove("toggle-"+e),document.documentElement.classList.add("toggle-"+t)},t.prototype.fromLocalStorage=function(e){return e},t.prototype.toLocalStorage=function(e){return e},t}(R),F=function(e){function t(t){var r=e.call(this,t)||this;return r.optionVisibility=new j("visibility","private"),r.optionInherited=new I("inherited",!0),r.optionExternals=new I("externals",!0),r.optionOnlyExported=new I("only-exported",!1),r}return C(t,e),t.isSupported=function(){try{return void 0!==window.localStorage}catch(e){return!1}},t}(u);r(1);i(h,"#tsd-search"),i(v,".menu-highlight"),i(w,".tsd-signatures"),i(_,"a[data-toggle]"),F.isSupported()?i(F,"#tsd-filter"):document.documentElement.classList.add("no-filter");var N=new a;Object.defineProperty(window,"app",{value:N})}]);
@@ -210,4 +210,4 @@ class Endpoint {
210
210
  }
211
211
  }
212
212
  exports.Endpoint = Endpoint;
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FBNkQ7QUFFN0Qsc0NBQXdEO0FBRXhELGtEQUF3QjtBQUN4QixpQ0FBK0I7QUFFL0IsTUFBYSxRQUFRO0lBMEJqQjs7Ozs7Ozs7T0FRRztJQUNILFlBQ0ksUUFBOEIsRUFDOUIsR0FBaUIsRUFDakIsVUFBdUIsRUFDdkIsWUFBMkIsRUFDM0IsYUFBNkIsRUFDN0IsVUFBdUI7UUE4RTNCLG9GQUFvRjtRQUM1RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDREQUE0RDtRQUNwRCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFDdEMseUJBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUEwRnpELG9GQUFvRjtRQUM1RSxtQkFBYyxHQUFpQixFQUFFLENBQUM7UUE3S3RDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDaEUsSUFBSSxVQUFVO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDdEMsSUFBSSxZQUFZO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDMUMsSUFBSSxhQUFhO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxh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
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FBNkQ7QUFFN0Qsc0NBQXdEO0FBRXhELGtEQUF3QjtBQUN4QixpQ0FBK0I7QUFFL0IsTUFBYSxRQUFRO0lBMEJqQjs7Ozs7Ozs7T0FRRztJQUNILFlBQ0ksUUFBOEIsRUFDOUIsR0FBaUIsRUFDakIsVUFBdUIsRUFDdkIsWUFBMkIsRUFDM0IsYUFBNkIsRUFDN0IsVUFBdUI7UUE4RTNCLG9GQUFvRjtRQUM1RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDREQUE0RDtRQUNwRCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFDdEMseUJBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUEwRnpELG9GQUFvRjtRQUM1RSxtQkFBYyxHQUFpQixFQUFFLENBQUM7UUE3S3RDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDaEUsSUFBSSxVQUFVO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDdEMsSUFBSSxZQUFZO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDMUMsSUFBSSxhQUFhO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxh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
@@ -242,7 +242,7 @@ test('errorHandlingWithNoContent', async () => {
242
242
 
243
243
  test('errorHandlingWithMessage', async () => {
244
244
  fetchMock.mockOnceIf('http://localhost/endpoint',
245
- '{"message":"my message"}',
245
+ '{"message":"my message","extra":"info"}',
246
246
  {
247
247
  status: HttpStatusCode.Conflict,
248
248
  headers: {
@@ -254,7 +254,9 @@ test('errorHandlingWithMessage', async () => {
254
254
  try {
255
255
  await endpoint.get();
256
256
  } catch (err) {
257
- errorThrown = err instanceof ConflictError && err.message === 'my message';
257
+ errorThrown = err instanceof ConflictError
258
+ && err.message === 'my message'
259
+ && err.data.extra === 'info';
258
260
  }
259
261
  expect(errorThrown).toBe(true);
260
262
  });
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Endpoints represent URIs that provides methods for operating on specific resources.
4
+ * See [documentation](https://typedrest.net/endpoints/).
5
+ * @packageDocumentation
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUcifQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Endpoints represent URIs that provides methods for operating on specific resources.
3
+ * See [documentation](https://typedrest.net/endpoints/).
4
+ * @packageDocumentation
5
+ */
@@ -129,8 +129,8 @@ test('create', async () => {
129
129
  }
130
130
  );
131
131
 
132
- const element = await endpoint.create(new MockEntity(0, 'test'));
133
- expect(element.response).toEqual(new MockEntity(5, 'test'));
132
+ const element = (await endpoint.create(new MockEntity(0, 'test')))!;
133
+ expect(element!.response).toEqual(new MockEntity(5, 'test'));
134
134
  expect(element.uri).toEqual(new URL('http://localhost/endpoint/5'));
135
135
  });
136
136
 
@@ -149,11 +149,25 @@ test('createLocation', async () => {
149
149
  }
150
150
  );
151
151
 
152
- const element = await endpoint.create(new MockEntity(0, 'test'));
152
+ const element = (await endpoint.create(new MockEntity(0, 'test')))!;
153
153
  expect(element.response).toEqual(new MockEntity(5, 'test'));
154
154
  expect(element.uri).toEqual(new URL('http://localhost/endpoint/new'));
155
155
  });
156
156
 
157
+ test('createUndefined', async () => {
158
+ fetchMock.mockOnceIf(
159
+ req => req.method === HttpMethod.Post && req.url === 'http://localhost/endpoint',
160
+ async req => {
161
+ expect(req.headers.get(HttpHeader.ContentType)).toBe('application/json');
162
+ expect(await req.text()).toBe('{"id":0,"name":"test"}');
163
+ return { status: HttpStatusCode.Accepted };
164
+ }
165
+ );
166
+
167
+ const element = (await endpoint.create(new MockEntity(0, 'test')));
168
+ expect(element).toBeUndefined();
169
+ });
170
+
157
171
  test('createAll', async () => {
158
172
  fetchMock.mockOnceIf(
159
173
  req => req.method === HttpMethod.Patch && req.url === 'http://localhost/endpoint',
@@ -90,4 +90,4 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
90
90
  }
91
91
  }
92
92
  exports.ETagEndpointBase = ETagEndpointBase;
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRVRhZ0VuZHBvaW50QmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVUYWdFbmRwb2ludEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXVDO0FBRXZDLHFDQUFtRjtBQUVuRjs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVE7SUFDMUM7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFPRDs7Ozs7Ozs7T0FRRztJQUNhLFVBQVUsQ0FBQyxNQUFvQjs7O1lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDOUIsVUFBSSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU5RixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDcEcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLHFCQUFjLENBQUMsV0FBVyxJQUFJLFFBQUMsSUFBSSxDQUFDLGFBQWEsMENBQUUsT0FBTyxDQUFBLEVBQUU7Z0JBQ2hGLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLG9CQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNEO1lBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQzs7S0FDckM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDYSxVQUFVLENBQUMsT0FBWSxFQUFFLE1BQW9COzs7WUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM5RSxVQUFJLElBQUksQ0FBQyxhQUFhLDBDQUFFLElBQUk7Z0JBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTFGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7O0tBQ3pGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ2EsYUFBYSxDQUFDLE1BQW9COzs7WUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM5QixVQUFJLElBQUksQ0FBQyxhQUFhLDBDQUFFLElBQUk7Z0JBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTFGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7O0tBQ3hEO0NBQ0o7QUF6RUQsNENBeUVDIn0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRVRhZ0VuZHBvaW50QmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVUYWdFbmRwb2ludEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXVDO0FBRXZDLHFDQUFtRjtBQUVuRjs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVE7SUFDMUM7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFPRDs7Ozs7Ozs7T0FRRztJQUNhLFVBQVUsQ0FBQyxNQUFvQjs7O1lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLElBQUk7Z0JBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTlGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUsscUJBQWMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsT0FBTyxDQUFBLEVBQUU7Z0JBQ2hGLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLG9CQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNEO1lBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQzs7S0FDckM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDYSxVQUFVLENBQUMsT0FBWSxFQUFFLE1BQW9COzs7WUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM5RSxJQUFJLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsSUFBSTtnQkFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFMUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzs7S0FDekY7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDYSxhQUFhLENBQUMsTUFBb0I7OztZQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzlCLElBQUksTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUxRixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDOztLQUN4RDtDQUNKO0FBekVELDRDQXlFQyJ9
@@ -49,13 +49,14 @@ class ElementEndpoint extends _1.ETagEndpointBase {
49
49
  }
50
50
  /**
51
51
  * Determines whether the element currently exists.
52
+ * @param signal Used to cancel the request.
52
53
  * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
53
54
  * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
54
55
  * @throws {@link HttpError}: Other non-success status code
55
56
  */
56
- exists() {
57
+ exists(signal) {
57
58
  return __awaiter(this, void 0, void 0, function* () {
58
- const response = yield this.httpClient.send(this.uri, http_1.HttpMethod.Head);
59
+ const response = yield this.httpClient.send(this.uri, http_1.HttpMethod.Head, signal);
59
60
  if (response.ok)
60
61
  return true;
61
62
  if (response.status === http_1.HttpStatusCode.NotFound || response.status === http_1.HttpStatusCode.Gone)
@@ -73,6 +74,7 @@ class ElementEndpoint extends _1.ETagEndpointBase {
73
74
  /**
74
75
  * Sets/replaces the `TEntity`.
75
76
  * @param entity The new `TEntity`.
77
+ * @param signal Used to cancel the request.
76
78
  * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
77
79
  * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
78
80
  * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
@@ -81,9 +83,9 @@ class ElementEndpoint extends _1.ETagEndpointBase {
81
83
  * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
82
84
  * @throws {@link HttpError}: Other non-success status code
83
85
  */
84
- set(entity) {
86
+ set(entity, signal) {
85
87
  return __awaiter(this, void 0, void 0, function* () {
86
- const response = yield this.putContent(entity);
88
+ const response = yield this.putContent(entity, signal);
87
89
  const text = yield response.text();
88
90
  if (text) {
89
91
  return this.serializer.deserialize(text);
@@ -124,6 +126,7 @@ class ElementEndpoint extends _1.ETagEndpointBase {
124
126
  * Reads the current state of the entity, applies a change to it and stores the result. Applies optimistic concurrency using automatic retries.
125
127
  * @param updateAction A callback that takes the current state of the entity and applies the desired modifications.
126
128
  * @param maxRetries The maximum number of retries to perform for optimistic concurrency before giving up.
129
+ * @param signal Used to cancel the request.
127
130
  * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
128
131
  * @throws {@link ConcurrencyError}: The maximum number of retries to perform for optimistic concurrency before giving up.
129
132
  * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
@@ -132,14 +135,14 @@ class ElementEndpoint extends _1.ETagEndpointBase {
132
135
  * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
133
136
  * @throws {@link HttpError}: Other non-success status code
134
137
  */
135
- update(updateAction, maxRetries = 3) {
138
+ update(updateAction, maxRetries = 3, signal) {
136
139
  return __awaiter(this, void 0, void 0, function* () {
137
140
  let retryCounter = 0;
138
141
  while (true) {
139
- const entity = yield this.read();
142
+ const entity = yield this.read(signal);
140
143
  updateAction(entity);
141
144
  try {
142
- return yield this.set(entity);
145
+ return yield this.set(entity, signal);
143
146
  }
144
147
  catch (err) {
145
148
  if (retryCounter++ >= maxRetries || !(err instanceof errors_1.ConcurrencyError))
@@ -156,15 +159,18 @@ class ElementEndpoint extends _1.ETagEndpointBase {
156
159
  get deleteAllowed() { return this.isMethodAllowed(http_1.HttpMethod.Delete); }
157
160
  /**
158
161
  * Deletes the element.
162
+ * @param signal Used to cancel the request.
159
163
  * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
160
164
  * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
161
165
  * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
162
166
  * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
163
167
  * @throws {@link HttpError}: Other non-success status code
164
168
  */
165
- delete() {
166
- return __awaiter(this, void 0, void 0, function* () { yield this.deleteContent(); });
169
+ delete(signal) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ yield this.deleteContent(signal);
172
+ });
167
173
  }
168
174
  }
169
175
  exports.ElementEndpoint = ElementEndpoint;
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudEVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWxlbWVudEVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHdCQUFxQztBQUVyQyxxQ0FBb0U7QUFDcEUseUNBQWdEO0FBRWhEOzs7R0FHRztBQUNILE1BQWEsZUFBeUIsU0FBUSxtQkFBZ0I7SUFDMUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWE7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDRyxJQUFJLENBQUMsTUFBb0I7O1lBQzNCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQVUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQztLQUFBO0lBRUQ7Ozs7O09BS0c7SUFDRyxNQUFNOztZQUNSLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLElBQUksUUFBUSxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDN0IsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLHFCQUFjLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUsscUJBQWMsQ0FBQyxJQUFJO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRXpHLE1BQU0sSUFBSSxD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
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudEVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWxlbWVudEVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHdCQUFxQztBQUVyQyxxQ0FBb0U7QUFDcEUseUNBQWdEO0FBRWhEOzs7R0FHRztBQUNILE1BQWEsZUFBeUIsU0FBUSxtQkFBZ0I7SUFDMUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWE7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDRyxJQUFJLENBQUMsTUFBb0I7O1lBQzNCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQVUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQztLQUFBO0lBRUQ7Ozs7OztPQU1HO0lBQ0csTUFBTSxDQUFDLE1BQW9COztZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0UsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUsscUJBQWMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxxQkFBYyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxLQUFL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
@@ -40,12 +40,13 @@ export class ElementEndpoint<TEntity> extends ETagEndpointBase {
40
40
 
41
41
  /**
42
42
  * Determines whether the element currently exists.
43
+ * @param signal Used to cancel the request.
43
44
  * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
44
45
  * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
45
46
  * @throws {@link HttpError}: Other non-success status code
46
47
  */
47
- async exists() {
48
- const response = await this.httpClient.send(this.uri, HttpMethod.Head);
48
+ async exists(signal?: AbortSignal) {
49
+ const response = await this.httpClient.send(this.uri, HttpMethod.Head, signal);
49
50
  if (response.ok) return true;
50
51
  if (response.status === HttpStatusCode.NotFound || response.status === HttpStatusCode.Gone) return false;
51
52
 
@@ -63,6 +64,7 @@ export class ElementEndpoint<TEntity> extends ETagEndpointBase {
63
64
  /**
64
65
  * Sets/replaces the `TEntity`.
65
66
  * @param entity The new `TEntity`.
67
+ * @param signal Used to cancel the request.
66
68
  * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
67
69
  * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
68
70
  * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
@@ -71,8 +73,8 @@ export class ElementEndpoint<TEntity> extends ETagEndpointBase {
71
73
  * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
72
74
  * @throws {@link HttpError}: Other non-success status code
73
75
  */
74
- async set(entity: TEntity): Promise<(TEntity | undefined)> {
75
- const response = await this.putContent(entity);
76
+ async set(entity: TEntity, signal?: AbortSignal): Promise<(TEntity | undefined)> {
77
+ const response = await this.putContent(entity, signal);
76
78
  const text = await response.text();
77
79
  if (text) {
78
80
  return this.serializer.deserialize<TEntity>(text);
@@ -114,6 +116,7 @@ export class ElementEndpoint<TEntity> extends ETagEndpointBase {
114
116
  * Reads the current state of the entity, applies a change to it and stores the result. Applies optimistic concurrency using automatic retries.
115
117
  * @param updateAction A callback that takes the current state of the entity and applies the desired modifications.
116
118
  * @param maxRetries The maximum number of retries to perform for optimistic concurrency before giving up.
119
+ * @param signal Used to cancel the request.
117
120
  * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
118
121
  * @throws {@link ConcurrencyError}: The maximum number of retries to perform for optimistic concurrency before giving up.
119
122
  * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
@@ -122,13 +125,13 @@ export class ElementEndpoint<TEntity> extends ETagEndpointBase {
122
125
  * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
123
126
  * @throws {@link HttpError}: Other non-success status code
124
127
  */
125
- async update(updateAction: (entity: TEntity) => void, maxRetries: number = 3): Promise<(TEntity | undefined)> {
128
+ async update(updateAction: (entity: TEntity) => void, maxRetries: number = 3, signal?: AbortSignal): Promise<(TEntity | undefined)> {
126
129
  let retryCounter = 0;
127
130
  while (true) {
128
- const entity = await this.read();
131
+ const entity = await this.read(signal);
129
132
  updateAction(entity);
130
133
  try {
131
- return await this.set(entity);
134
+ return await this.set(entity, signal);
132
135
  } catch (err) {
133
136
  if (retryCounter++ >= maxRetries || !(err instanceof ConcurrencyError))
134
137
  throw err;
@@ -145,11 +148,14 @@ export class ElementEndpoint<TEntity> extends ETagEndpointBase {
145
148
 
146
149
  /**
147
150
  * Deletes the element.
151
+ * @param signal Used to cancel the request.
148
152
  * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
149
153
  * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
150
154
  * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
151
155
  * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
152
156
  * @throws {@link HttpError}: Other non-success status code
153
157
  */
154
- async delete() { await this.deleteContent(); }
158
+ async delete(signal?: AbortSignal) {
159
+ await this.deleteContent(signal);
160
+ }
155
161
  }
@@ -79,7 +79,7 @@ class GenericCollectionEndpoint extends _1.ETagEndpointBase {
79
79
  * Adds a `TEntity` as a new element to the collection.
80
80
  * @param entity The new `TEntity`.
81
81
  * @param signal Used to cancel the request.
82
- * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
82
+ * @returns An endpoint for the newly created entity; `undefined` if the server returned neither a "Location" header nor an entity with an ID in the response body.
83
83
  * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
84
84
  * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
85
85
  * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
@@ -92,9 +92,21 @@ class GenericCollectionEndpoint extends _1.ETagEndpointBase {
92
92
  [http_1.HttpHeader.ContentType]: this.serializer.supportedMediaTypes[0]
93
93
  }, this.serializer.serialize(entity));
94
94
  const location = response.headers.get(http_1.HttpHeader.Location);
95
- const elementEndpoint = location
96
- ? new this.elementEndpoint(this, this.join(location))
97
- : this.get(this.serializer.deserialize(yield response.clone().text()));
95
+ let elementEndpoint;
96
+ if (location) {
97
+ // Explicit element endpoint URL from "Location" header
98
+ elementEndpoint = new this.elementEndpoint(this, this.join(location));
99
+ }
100
+ else {
101
+ try {
102
+ // Infer URL from entity ID in response body
103
+ elementEndpoint = this.get(this.serializer.deserialize(yield response.clone().text()));
104
+ }
105
+ catch (_a) {
106
+ // No element endpoint
107
+ return undefined;
108
+ }
109
+ }
98
110
  elementEndpoint.responseCache = yield http_1.ResponseCache.from(response);
99
111
  return elementEndpoint;
100
112
  });
@@ -181,4 +193,4 @@ class GenericCollectionEndpoint extends _1.ETagEndpointBase {
181
193
  delete(element) { return this.get(element).delete(); }
182
194
  }
183
195
  exports.GenericCollectionEndpoint = GenericCollectionEndpoint;
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJpY0NvbGxlY3Rpb25FbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdlbmVyaWNDb2xsZWN0aW9uRW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXNEO0FBR3RELHFDQUFtRTtBQUVuRTs7Ozs7R0FLRztBQUNILE1BQWEseUJBQXNGLFNBQVEsbUJBQWdCO0lBQ3ZIOzs7OztPQUtHO0lBQ0gsWUFBWSxRQUFrQixFQUFFLFdBQXlCLEVBQW1CLGVBQXVFO1FBQy9JLEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFEMkMsb0JBQWUsR0FBZixlQUFlLENBQXdEO1FBRS9JLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxPQUEyQjtRQUMzQixJQUFJLE9BQU8sSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRWpGLElBQUksRUFBVSxDQUFDO1FBQ2YsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0gsRUFBRSxHQUFJLE9BQWUsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxFQUFFLEtBQUssU0FBUztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsT0FBTyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQzdGO1FBQ0QsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRTlFLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENB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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJpY0NvbGxlY3Rpb25FbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdlbmVyaWNDb2xsZWN0aW9uRW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXNEO0FBR3RELHFDQUFtRTtBQUVuRTs7Ozs7R0FLRztBQUNILE1BQWEseUJBQXNGLFNBQVEsbUJBQWdCO0lBQ3ZIOzs7OztPQUtHO0lBQ0gsWUFBWSxRQUFrQixFQUFFLFdBQXlCLEVBQW1CLGVBQXVFO1FBQy9JLEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFEMkMsb0JBQWUsR0FBZixlQUFlLENBQXdEO1FBRS9JLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxPQUEyQjtRQUMzQixJQUFJLE9BQU8sSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRWpGLElBQUksRUFBVSxDQUFDO1FBQ2YsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0gsRUFBRSxHQUFJLE9BQWUsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxFQUFFLEtBQUssU0FBUztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsT0FBTyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQzdGO1FBQ0QsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRTlFLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENB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
@@ -70,22 +70,33 @@ export class GenericCollectionEndpoint<TEntity, TElementEndpoint extends Element
70
70
  * Adds a `TEntity` as a new element to the collection.
71
71
  * @param entity The new `TEntity`.
72
72
  * @param signal Used to cancel the request.
73
- * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
73
+ * @returns An endpoint for the newly created entity; `undefined` if the server returned neither a "Location" header nor an entity with an ID in the response body.
74
74
  * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
75
75
  * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
76
76
  * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
77
77
  * @throws {@link ConflictError}: {@link HttpStatusCode.Conflict}
78
78
  * @throws {@link HttpError}: Other non-success status code
79
79
  */
80
- async create(entity: TEntity, signal?: AbortSignal): Promise<TElementEndpoint> {
80
+ async create(entity: TEntity, signal?: AbortSignal): Promise<TElementEndpoint | undefined> {
81
81
  const response = await this.send(HttpMethod.Post, signal, {
82
82
  [HttpHeader.ContentType]: this.serializer.supportedMediaTypes[0]
83
83
  }, this.serializer.serialize(entity));
84
-
85
84
  const location = response.headers.get(HttpHeader.Location);
86
- const elementEndpoint = location
87
- ? new this.elementEndpoint(this, this.join(location))
88
- : this.get(this.serializer.deserialize(await response.clone().text()));
85
+
86
+ let elementEndpoint: TElementEndpoint;
87
+ if (location) {
88
+ // Explicit element endpoint URL from "Location" header
89
+ elementEndpoint = new this.elementEndpoint(this, this.join(location));
90
+ } else {
91
+ try {
92
+ // Infer URL from entity ID in response body
93
+ elementEndpoint = this.get(this.serializer.deserialize(await response.clone().text()));
94
+ } catch {
95
+ // No element endpoint
96
+ return undefined;
97
+ }
98
+ }
99
+
89
100
  (elementEndpoint as CachingEndpoint).responseCache = await ResponseCache.from(response);
90
101
  return elementEndpoint;
91
102
  }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Generic endpoints allow you to model collections and elements.
4
+ * @packageDocumentation
5
+ */
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRyJ9
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generic endpoints allow you to model collections and elements.
3
+ * @packageDocumentation
4
+ */
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Raw endpoints allow you to transmit binary data rather than serialized objects.
4
+ * @packageDocumentation
5
+ */
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRyJ9
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Raw endpoints allow you to transmit binary data rather than serialized objects.
3
+ * @packageDocumentation
4
+ */
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * RPC endpoints allow you to interact with non-RESTful resources that act like callable functions.
4
+ * @packageDocumentation
5
+ */
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRyJ9
@@ -0,0 +1,4 @@
1
+ /**
2
+ * RPC endpoints allow you to interact with non-RESTful resources that act like callable functions.
3
+ * @packageDocumentation
4
+ */
@@ -26,48 +26,42 @@ class DefaultErrorHandler {
26
26
  * @throws {@link TimeoutError}: {@link HttpStatusCode.RequestTimeout}
27
27
  * @throws {@link ConflictError}: {@link HttpStatusCode.Conflict}
28
28
  * @throws {@link ConcurrencyError}: {@link HttpStatusCode.PreconditionFailed}
29
- * @throws {@link RangeError}: {@link HttpStatusCode.RequestedRangeNotSatisfiable}
30
29
  * @throws {@link HttpError}: Other non-success status code
31
30
  */
32
31
  handle(response) {
32
+ var _a, _b;
33
33
  return __awaiter(this, void 0, void 0, function* () {
34
34
  if (response.ok)
35
35
  return;
36
- const message = yield this.extractJsonMessage(response);
37
- throw DefaultErrorHandler.mapToError(response.status, message !== null && message !== void 0 ? message : `HTTP ${response.status} ${response.statusText}`);
38
- });
39
- }
40
- extractJsonMessage(response) {
41
- var _a;
42
- return __awaiter(this, void 0, void 0, function* () {
43
36
  const contentType = response.headers.get(http_1.HttpHeader.ContentType);
44
- return ((contentType === null || contentType === void 0 ? void 0 : contentType.startsWith("application/json")) || (contentType === null || contentType === void 0 ? void 0 : contentType.includes("+json")))
45
- ? (_a = (yield response.json())) === null || _a === void 0 ? void 0 : _a.message : undefined;
37
+ const jsonBody = ((contentType === null || contentType === void 0 ? void 0 : contentType.startsWith("application/json")) || (contentType === null || contentType === void 0 ? void 0 : contentType.includes("+json")))
38
+ ? yield response.json()
39
+ : undefined;
40
+ const errorType = DefaultErrorHandler.errorType(response.status);
41
+ throw new errorType((_b = (_a = jsonBody === null || jsonBody === void 0 ? void 0 : jsonBody.message) !== null && _a !== void 0 ? _a : jsonBody === null || jsonBody === void 0 ? void 0 : jsonBody.details) !== null && _b !== void 0 ? _b : `HTTP ${response.status} ${response.statusText}`, response.status, jsonBody);
46
42
  });
47
43
  }
48
- static mapToError(status, message) {
44
+ static errorType(status) {
49
45
  switch (status) {
50
46
  case http_1.HttpStatusCode.BadRequest:
51
- return new _1.BadRequestError(message, status);
47
+ return _1.BadRequestError;
52
48
  case http_1.HttpStatusCode.Unauthorized:
53
- return new _1.AuthenticationError(message, status);
49
+ return _1.AuthenticationError;
54
50
  case http_1.HttpStatusCode.Forbidden:
55
- return new _1.AuthorizationError(message, status);
51
+ return _1.AuthorizationError;
56
52
  case http_1.HttpStatusCode.NotFound:
57
53
  case http_1.HttpStatusCode.Gone:
58
- return new _1.NotFoundError(message, status);
54
+ return _1.NotFoundError;
59
55
  case http_1.HttpStatusCode.RequestTimeout:
60
- return new _1.TimeoutError(message, status);
56
+ return _1.TimeoutError;
61
57
  case http_1.HttpStatusCode.Conflict:
62
- return new _1.ConflictError(message, status);
58
+ return _1.ConflictError;
63
59
  case http_1.HttpStatusCode.PreconditionFailed:
64
- return new _1.ConcurrencyError(message, status);
65
- case http_1.HttpStatusCode.RequestedRangeNotSatisfiable:
66
- return new _1.RangeError(message, status);
60
+ return _1.ConcurrencyError;
67
61
  default:
68
- return new _1.HttpError(message, status);
62
+ return _1.HttpError;
69
63
  }
70
64
  }
71
65
  }
72
66
  exports.DefaultErrorHandler = DefaultErrorHandler;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQWdMO0FBQ2hMLGtDQUFxRDtBQUVyRDs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOzs7Ozs7Ozs7Ozs7T0FZRztJQUNHLE1BQU0sQ0FBQyxRQUFrQjs7WUFDM0IsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sbUJBQW1CLENBQUMsVUFBVSxDQUNoQyxRQUFRLENBQUMsTUFBTSxFQUNmLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLFFBQVEsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDO0tBQUE7SUFFYSxrQkFBa0IsQ0FBQyxRQUFrQjs7O1lBQy9DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakUsT0FBTyxDQUFDLENBQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFVBQVUsQ0FBQyxrQkFBa0IsT0FBSyxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsUUFBUSxDQUFDLE9BQU8sRUFBQyxDQUFDO2dCQUNsRixDQUFDLE9BQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQywwQ0FBRSxPQUFPLENBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUM7O0tBQ25CO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFzQixFQUFFLE9BQWU7UUFDN0QsUUFBUSxNQUFNLEVBQUU7WUFDWixLQUFLLHFCQUFjLENBQUMsVUFBVTtnQkFDMUIsT0FBTyxJQUFJLGtCQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQy9DLEtBQUsscUJBQWMsQ0FBQyxZQUFZO2dCQUM1QixPQUFPLElBQUksc0JBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ25ELEtBQUsscUJBQWMsQ0FBQyxTQUFTO2dCQUN6QixPQUFPLElBQUkscUJBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ2xELEtBQUsscUJBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0IsS0FBSyxxQkFBYyxDQUFDLElBQUk7Z0JBQ3BCLE9BQU8sSUFBSSxnQkFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUM3QyxLQUFLLHFCQUFjLENBQUMsY0FBYztnQkFDOUIsT0FBTyxJQUFJLGVBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDNUMsS0FBSyxxQkFBYyxDQUFDLFFBQVE7Z0JBQ3hCLE9BQU8sSUFBSSxnQkFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUM3QyxLQUFLLHFCQUFjLENBQUMsa0JBQWtCO2dCQUNsQyxPQUFPLElBQUksbUJBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ2hELEtBQUsscUJBQWMsQ0FBQyw0QkFBNEI7Z0JBQzVDLE9BQU8sSUFBSSxhQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQzFDO2dCQUNJLE9BQU8sSUFBSSxZQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO0lBQ0wsQ0FBQztDQUNKO0FBckRELGtEQXFEQyJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQW9LO0FBQ3BLLGtDQUFxRDtBQUVyRDs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOzs7Ozs7Ozs7OztPQVdHO0lBQ0csTUFBTSxDQUFDLFFBQWtCOzs7WUFDM0IsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsTUFBSSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQzVGLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFaEIsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLElBQUksU0FBUyxDQUNmLE1BQUEsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxtQ0FBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxtQ0FBSSxRQUFRLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUMxRixRQUFRLENBQUMsTUFBTSxFQUNmLFFBQVEsQ0FBQyxDQUFDOztLQUNqQjtJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBc0I7UUFDM0MsUUFBUSxNQUFNLEVBQUU7WUFDWixLQUFLLHFCQUFjLENBQUMsVUFBVTtnQkFDMUIsT0FBTyxrQkFBZSxDQUFDO1lBQzNCLEtBQUsscUJBQWMsQ0FBQyxZQUFZO2dCQUM1QixPQUFPLHNCQUFtQixDQUFDO1lBQy9CLEtBQUsscUJBQWMsQ0FBQyxTQUFTO2dCQUN6QixPQUFPLHFCQUFrQixDQUFDO1lBQzlCLEtBQUsscUJBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0IsS0FBSyxxQkFBYyxDQUFDLElBQUk7Z0JBQ3BCLE9BQU8sZ0JBQWEsQ0FBQztZQUN6QixLQUFLLHFCQUFjLENBQUMsY0FBYztnQkFDOUIsT0FBTyxlQUFZLENBQUM7WUFDeEIsS0FBSyxxQkFBYyxDQUFDLFFBQVE7Z0JBQ3hCLE9BQU8sZ0JBQWEsQ0FBQztZQUN6QixLQUFLLHFCQUFjLENBQUMsa0JBQWtCO2dCQUNsQyxPQUFPLG1CQUFnQixDQUFDO1lBQzVCO2dCQUNJLE9BQU8sWUFBUyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztDQUNKO0FBakRELGtEQWlEQyJ9
@@ -1,4 +1,4 @@
1
- import { ErrorHandler, HttpError, BadRequestError, AuthenticationError, AuthorizationError, NotFoundError, TimeoutError, ConflictError, ConcurrencyError, RangeError } from ".";
1
+ import { ErrorHandler, HttpError, BadRequestError, AuthenticationError, AuthorizationError, NotFoundError, TimeoutError, ConflictError, ConcurrencyError } from ".";
2
2
  import { HttpStatusCode, HttpHeader } from "../http";
3
3
 
4
4
  /**
@@ -15,46 +15,42 @@ export class DefaultErrorHandler implements ErrorHandler {
15
15
  * @throws {@link TimeoutError}: {@link HttpStatusCode.RequestTimeout}
16
16
  * @throws {@link ConflictError}: {@link HttpStatusCode.Conflict}
17
17
  * @throws {@link ConcurrencyError}: {@link HttpStatusCode.PreconditionFailed}
18
- * @throws {@link RangeError}: {@link HttpStatusCode.RequestedRangeNotSatisfiable}
19
18
  * @throws {@link HttpError}: Other non-success status code
20
19
  */
21
20
  async handle(response: Response) {
22
21
  if (response.ok) return;
23
22
 
24
- const message = await this.extractJsonMessage(response);
25
- throw DefaultErrorHandler.mapToError(
26
- response.status,
27
- message ?? `HTTP ${response.status} ${response.statusText}`);
28
- }
29
-
30
- private async extractJsonMessage(response: Response) {
31
23
  const contentType = response.headers.get(HttpHeader.ContentType);
32
- return (contentType?.startsWith("application/json") || contentType?.includes("+json"))
33
- ? (await response.json())?.message
24
+ const jsonBody = (contentType?.startsWith("application/json") || contentType?.includes("+json"))
25
+ ? await response.json()
34
26
  : undefined;
27
+
28
+ const errorType = DefaultErrorHandler.errorType(response.status);
29
+ throw new errorType(
30
+ jsonBody?.message ?? jsonBody?.details ?? `HTTP ${response.status} ${response.statusText}`,
31
+ response.status,
32
+ jsonBody);
35
33
  }
36
34
 
37
- private static mapToError(status: HttpStatusCode, message: string) {
35
+ private static errorType(status: HttpStatusCode): new (message: string, status: HttpStatusCode, data?: any) => Error {
38
36
  switch (status) {
39
37
  case HttpStatusCode.BadRequest:
40
- return new BadRequestError(message, status)
38
+ return BadRequestError;
41
39
  case HttpStatusCode.Unauthorized:
42
- return new AuthenticationError(message, status)
40
+ return AuthenticationError;
43
41
  case HttpStatusCode.Forbidden:
44
- return new AuthorizationError(message, status)
42
+ return AuthorizationError;
45
43
  case HttpStatusCode.NotFound:
46
44
  case HttpStatusCode.Gone:
47
- return new NotFoundError(message, status)
45
+ return NotFoundError;
48
46
  case HttpStatusCode.RequestTimeout:
49
- return new TimeoutError(message, status)
47
+ return TimeoutError;
50
48
  case HttpStatusCode.Conflict:
51
- return new ConflictError(message, status)
49
+ return ConflictError;
52
50
  case HttpStatusCode.PreconditionFailed:
53
- return new ConcurrencyError(message, status)
54
- case HttpStatusCode.RequestedRangeNotSatisfiable:
55
- return new RangeError(message, status)
51
+ return ConcurrencyError;
56
52
  default:
57
- return new HttpError(message, status);
53
+ return HttpError;
58
54
  }
59
55
  }
60
56
  }
package/errors/Errors.js CHANGED
@@ -1,61 +1,64 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RangeError = exports.ConcurrencyError = exports.ConflictError = exports.TimeoutError = exports.NotFoundError = exports.AuthorizationError = exports.AuthenticationError = exports.BadRequestError = exports.HttpError = void 0;
4
- const http_1 = require("../http");
3
+ exports.ConcurrencyError = exports.ConflictError = exports.TimeoutError = exports.NotFoundError = exports.AuthorizationError = exports.AuthenticationError = exports.BadRequestError = exports.HttpError = void 0;
5
4
  /* tslint:disable:max-classes-per-file */
5
+ /**
6
+ * Thrown on HTTP response with a non-successful status code (4xx or 5xx).
7
+ */
6
8
  class HttpError extends Error {
7
- constructor(message, status) {
9
+ /**
10
+ * Creates a new HTTP error.
11
+ * @param message The error message.
12
+ * @param status The HTTP status code.
13
+ * @param data Additional error data.
14
+ */
15
+ constructor(message, status, data) {
8
16
  super(message);
9
17
  this.status = status;
18
+ this.data = data;
10
19
  }
11
20
  }
12
21
  exports.HttpError = HttpError;
22
+ /**
23
+ * Thrown on HTTP response for a bad request (usually {@link HttpStatusCode.BadRequest}).
24
+ */
13
25
  class BadRequestError extends HttpError {
14
- constructor(message, status = http_1.HttpStatusCode.BadRequest) {
15
- super(message, status);
16
- }
17
26
  }
18
27
  exports.BadRequestError = BadRequestError;
28
+ /**
29
+ * Thrown on HTTP response for an unauthenticated request, i.e. missing credentials (usually {@link HttpStatusCode.Unauthorized}).
30
+ */
19
31
  class AuthenticationError extends HttpError {
20
- constructor(message, status = http_1.HttpStatusCode.Unauthorized) {
21
- super(message, status);
22
- }
23
32
  }
24
33
  exports.AuthenticationError = AuthenticationError;
34
+ /**
35
+ * Thrown on HTTP response for an unauthorized request, i.e. missing permissions (usually {@link HttpStatusCode.Forbidden}).
36
+ */
25
37
  class AuthorizationError extends HttpError {
26
- constructor(message, status = http_1.HttpStatusCode.Forbidden) {
27
- super(message, status);
28
- }
29
38
  }
30
39
  exports.AuthorizationError = AuthorizationError;
40
+ /**
41
+ * Thrown on HTTP response for a missing resource (usually {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}).
42
+ */
31
43
  class NotFoundError extends HttpError {
32
- constructor(message, status = http_1.HttpStatusCode.NotFound) {
33
- super(message, status);
34
- }
35
44
  }
36
45
  exports.NotFoundError = NotFoundError;
46
+ /**
47
+ * Thrown on HTTP response for a timed-out operation (usually {@link HttpStatusCode.Timeout}).
48
+ */
37
49
  class TimeoutError extends HttpError {
38
- constructor(message, status = http_1.HttpStatusCode.RequestTimeout) {
39
- super(message, status);
40
- }
41
50
  }
42
51
  exports.TimeoutError = TimeoutError;
52
+ /**
53
+ * Thrown on HTTP response for a resource conflict (usually {@link HttpStatusCode.Conflict}).
54
+ */
43
55
  class ConflictError extends HttpError {
44
- constructor(message, status = http_1.HttpStatusCode.Conflict) {
45
- super(message, status);
46
- }
47
56
  }
48
57
  exports.ConflictError = ConflictError;
58
+ /**
59
+ * Thrown on HTTP response for a failed precondition or mid-air collision (usually {@link HttpStatusCode.PreconditionFailed}).
60
+ */
49
61
  class ConcurrencyError extends HttpError {
50
- constructor(message, status = http_1.HttpStatusCode.PreconditionFailed) {
51
- super(message, status);
52
- }
53
62
  }
54
63
  exports.ConcurrencyError = ConcurrencyError;
55
- class RangeError extends HttpError {
56
- constructor(message, status = http_1.HttpStatusCode.RequestedRangeNotSatisfiable) {
57
- super(message, status);
58
- }
59
- }
60
- exports.RangeError = RangeError;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtDQUF5QztBQUV6Qyx5Q0FBeUM7QUFFekMsTUFBYSxTQUFVLFNBQVEsS0FBSztJQUNoQyxZQUFZLE9BQWUsRUFBUyxNQUFzQjtRQUN0RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEaUIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFFMUQsQ0FBQztDQUNKO0FBSkQsOEJBSUM7QUFFRCxNQUFhLGVBQWdCLFNBQVEsU0FBUztJQUMxQyxZQUFZLE9BQWUsRUFBRSxNQUFNLEdBQUcscUJBQWMsQ0FBQyxVQUFVO1FBQzNELEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBSkQsMENBSUM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLFNBQVM7SUFDOUMsWUFBWSxPQUFlLEVBQUUsTUFBTSxHQUFHLHFCQUFjLENBQUMsWUFBWTtRQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQUpELGtEQUlDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxTQUFTO0lBQzdDLFlBQVksT0FBZSxFQUFFLE1BQU0sR0FBRyxxQkFBYyxDQUFDLFNBQVM7UUFDMUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUFKRCxnREFJQztBQUVELE1BQWEsYUFBYyxTQUFRLFNBQVM7SUFDeEMsWUFBWSxPQUFlLEVBQUUsTUFBTSxHQUFHLHFCQUFjLENBQUMsUUFBUTtRQUN6RCxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQUpELHNDQUlDO0FBRUQsTUFBYSxZQUFhLFNBQVEsU0FBUztJQUN2QyxZQUFZLE9BQWUsRUFBRSxNQUFNLEdBQUcscUJBQWMsQ0FBQyxjQUFjO1FBQy9ELEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBSkQsb0NBSUM7QUFFRCxNQUFhLGFBQWMsU0FBUSxTQUFTO0lBQ3hDLFlBQVksT0FBZSxFQUFFLE1BQU0sR0FBRyxxQkFBYyxDQUFDLFFBQVE7UUFDekQsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUFKRCxzQ0FJQztBQUVELE1BQWEsZ0JBQWlCLFNBQVEsU0FBUztJQUMzQyxZQUFZLE9BQWUsRUFBRSxNQUFNLEdBQUcscUJBQWMsQ0FBQyxrQkFBa0I7UUFDbkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUFKRCw0Q0FJQztBQUVELE1BQWEsVUFBVyxTQUFRLFNBQVM7SUFDckMsWUFBWSxPQUFlLEVBQUUsTUFBTSxHQUFHLHFCQUFjLENBQUMsNEJBQTRCO1FBQzdFLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBSkQsZ0NBSUMifQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHlDQUF5QztBQUV6Qzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLEtBQUs7SUFDaEM7Ozs7O09BS0c7SUFDSCxZQUFZLE9BQWUsRUFBUyxNQUFzQixFQUFTLElBQVU7UUFDekUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRGlCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUU3RSxDQUFDO0NBQ0o7QUFWRCw4QkFVQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLFNBQVM7Q0FBRztBQUFqRCwwQ0FBaUQ7QUFFakQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLFNBQVM7Q0FBRztBQUFyRCxrREFBcUQ7QUFFckQ7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLFNBQVM7Q0FBRztBQUFwRCxnREFBb0Q7QUFFcEQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxTQUFTO0NBQUc7QUFBL0Msc0NBQStDO0FBRS9DOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsU0FBUztDQUFHO0FBQTlDLG9DQUE4QztBQUU5Qzs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLFNBQVM7Q0FBRztBQUEvQyxzQ0FBK0M7QUFFL0M7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLFNBQVM7Q0FBRztBQUFsRCw0Q0FBa0QifQ==
package/errors/Errors.ts CHANGED
@@ -2,56 +2,52 @@ import { HttpStatusCode } from "../http";
2
2
 
3
3
  /* tslint:disable:max-classes-per-file */
4
4
 
5
+ /**
6
+ * Thrown on HTTP response with a non-successful status code (4xx or 5xx).
7
+ */
5
8
  export class HttpError extends Error {
6
- constructor(message: string, public status: HttpStatusCode) {
9
+ /**
10
+ * Creates a new HTTP error.
11
+ * @param message The error message.
12
+ * @param status The HTTP status code.
13
+ * @param data Additional error data.
14
+ */
15
+ constructor(message: string, public status: HttpStatusCode, public data?: any) {
7
16
  super(message);
8
17
  }
9
18
  }
10
19
 
11
- export class BadRequestError extends HttpError {
12
- constructor(message: string, status = HttpStatusCode.BadRequest) {
13
- super(message, status);
14
- }
15
- }
20
+ /**
21
+ * Thrown on HTTP response for a bad request (usually {@link HttpStatusCode.BadRequest}).
22
+ */
23
+ export class BadRequestError extends HttpError {}
16
24
 
17
- export class AuthenticationError extends HttpError {
18
- constructor(message: string, status = HttpStatusCode.Unauthorized) {
19
- super(message, status);
20
- }
21
- }
25
+ /**
26
+ * Thrown on HTTP response for an unauthenticated request, i.e. missing credentials (usually {@link HttpStatusCode.Unauthorized}).
27
+ */
28
+ export class AuthenticationError extends HttpError {}
22
29
 
23
- export class AuthorizationError extends HttpError {
24
- constructor(message: string, status = HttpStatusCode.Forbidden) {
25
- super(message, status);
26
- }
27
- }
30
+ /**
31
+ * Thrown on HTTP response for an unauthorized request, i.e. missing permissions (usually {@link HttpStatusCode.Forbidden}).
32
+ */
33
+ export class AuthorizationError extends HttpError {}
28
34
 
29
- export class NotFoundError extends HttpError {
30
- constructor(message: string, status = HttpStatusCode.NotFound) {
31
- super(message, status);
32
- }
33
- }
35
+ /**
36
+ * Thrown on HTTP response for a missing resource (usually {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}).
37
+ */
38
+ export class NotFoundError extends HttpError {}
34
39
 
35
- export class TimeoutError extends HttpError {
36
- constructor(message: string, status = HttpStatusCode.RequestTimeout) {
37
- super(message, status);
38
- }
39
- }
40
-
41
- export class ConflictError extends HttpError {
42
- constructor(message: string, status = HttpStatusCode.Conflict) {
43
- super(message, status);
44
- }
45
- }
40
+ /**
41
+ * Thrown on HTTP response for a timed-out operation (usually {@link HttpStatusCode.Timeout}).
42
+ */
43
+ export class TimeoutError extends HttpError {}
46
44
 
47
- export class ConcurrencyError extends HttpError {
48
- constructor(message: string, status = HttpStatusCode.PreconditionFailed) {
49
- super(message, status);
50
- }
51
- }
45
+ /**
46
+ * Thrown on HTTP response for a resource conflict (usually {@link HttpStatusCode.Conflict}).
47
+ */
48
+ export class ConflictError extends HttpError {}
52
49
 
53
- export class RangeError extends HttpError {
54
- constructor(message: string, status = HttpStatusCode.RequestedRangeNotSatisfiable) {
55
- super(message, status);
56
- }
57
- }
50
+ /**
51
+ * Thrown on HTTP response for a failed precondition or mid-air collision (usually {@link HttpStatusCode.PreconditionFailed}).
52
+ */
53
+ export class ConcurrencyError extends HttpError {}
package/errors/_doc.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Handling errors in HTTP responses.
4
+ * See [documentation](https://typedrest.net/error-handling/).
5
+ * @packageDocumentation
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUcifQ==
package/errors/_doc.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Handling errors in HTTP responses.
3
+ * See [documentation](https://typedrest.net/error-handling/).
4
+ * @packageDocumentation
5
+ */
@@ -15,6 +15,5 @@ var HttpStatusCode;
15
15
  HttpStatusCode[HttpStatusCode["Conflict"] = 409] = "Conflict";
16
16
  HttpStatusCode[HttpStatusCode["Gone"] = 410] = "Gone";
17
17
  HttpStatusCode[HttpStatusCode["PreconditionFailed"] = 412] = "PreconditionFailed";
18
- HttpStatusCode[HttpStatusCode["RequestedRangeNotSatisfiable"] = 416] = "RequestedRangeNotSatisfiable";
19
18
  })(HttpStatusCode = exports.HttpStatusCode || (exports.HttpStatusCode = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFN0YXR1c0NvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJIdHRwU3RhdHVzQ29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGNBY1g7QUFkRCxXQUFZLGNBQWM7SUFDdEIsaURBQVEsQ0FBQTtJQUNSLDJEQUFhLENBQUE7SUFDYiw2REFBYyxDQUFBO0lBQ2QsbUVBQWlCLENBQUE7SUFDakIsaUVBQWdCLENBQUE7SUFDaEIscUVBQWtCLENBQUE7SUFDbEIsK0RBQWUsQ0FBQTtJQUNmLDZEQUFjLENBQUE7SUFDZCx5RUFBb0IsQ0FBQTtJQUNwQiw2REFBYyxDQUFBO0lBQ2QscURBQVUsQ0FBQTtJQUNWLGlGQUF3QixDQUFBO0lBQ3hCLHFHQUFrQyxDQUFBO0FBQ3RDLENBQUMsRUFkVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQWN6QiJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFN0YXR1c0NvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJIdHRwU3RhdHVzQ29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDdEIsaURBQVEsQ0FBQTtJQUNSLDJEQUFhLENBQUE7SUFDYiw2REFBYyxDQUFBO0lBQ2QsbUVBQWlCLENBQUE7SUFDakIsaUVBQWdCLENBQUE7SUFDaEIscUVBQWtCLENBQUE7SUFDbEIsK0RBQWUsQ0FBQTtJQUNmLDZEQUFjLENBQUE7SUFDZCx5RUFBb0IsQ0FBQTtJQUNwQiw2REFBYyxDQUFBO0lBQ2QscURBQVUsQ0FBQTtJQUNWLGlGQUF3QixDQUFBO0FBQzVCLENBQUMsRUFiVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQWF6QiJ9
@@ -10,6 +10,5 @@ export enum HttpStatusCode {
10
10
  RequestTimeout = 408,
11
11
  Conflict = 409,
12
12
  Gone = 410,
13
- PreconditionFailed = 412,
14
- RequestedRangeNotSatisfiable = 416
13
+ PreconditionFailed = 412
15
14
  }
@@ -37,4 +37,4 @@ class ResponseCache {
37
37
  }
38
38
  }
39
39
  exports.ResponseCache = ResponseCache;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2VDYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlJlc3BvbnNlQ2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQStCO0FBRS9COztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ3RCOzs7OztPQUtHO0lBQ0gsWUFBNEIsT0FBZSxFQUFrQixXQUFvQixFQUFrQixJQUFhO1FBQXBGLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBa0IsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBUztJQUNoSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQU8sSUFBSSxDQUFDLFFBQWtCOzs7WUFDaEMsT0FBTyxJQUFJLGFBQWEsQ0FDcEIsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQ3JCLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQVUsQ0FBQyxXQUFXLENBQUMsbUNBQUksU0FBUyxRQUN6RCxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFVLENBQUMsSUFBSSxDQUFDLG1DQUFJLFNBQVMsQ0FBQyxDQUFDOztLQUMzRDtDQUNKO0FBbkJELHNDQW1CQyJ9
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2VDYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlJlc3BvbnNlQ2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQStCO0FBRS9COztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ3RCOzs7OztPQUtHO0lBQ0gsWUFBNEIsT0FBZSxFQUFrQixXQUFvQixFQUFrQixJQUFhO1FBQXBGLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBa0IsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBUztJQUNoSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQU8sSUFBSSxDQUFDLFFBQWtCOzs7WUFDaEMsT0FBTyxJQUFJLGFBQWEsQ0FDcEIsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQ3JCLE1BQUEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBVSxDQUFDLFdBQVcsQ0FBQyxtQ0FBSSxTQUFTLEVBQ3pELE1BQUEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBVSxDQUFDLElBQUksQ0FBQyxtQ0FBSSxTQUFTLENBQUMsQ0FBQzs7S0FDM0Q7Q0FDSjtBQW5CRCxzQ0FtQkMifQ==
package/http/_doc.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Helper methods and structures for performing HTTP requests.
4
+ * @packageDocumentation
5
+ */
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRyJ9
package/http/_doc.ts ADDED
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Helper methods and structures for performing HTTP requests.
3
+ * @packageDocumentation
4
+ */
@@ -54,4 +54,4 @@ class HalLinkExtractor {
54
54
  }
55
55
  }
56
56
  exports.HalLinkExtractor = HalLinkExtractor;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFsTGlua0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhhbExpbmtFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdDO0FBQ3hDLGtDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQ3pCOztPQUVHO0lBQ0csUUFBUSxDQUFDLFFBQWtCOztZQUM3QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pFLElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFVBQVUsQ0FBQyxzQkFBc0IsR0FBRztnQkFDakQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDNUQ7aUJBQU07Z0JBQ0gsT0FBTyxFQUFFLENBQUM7YUFDYjtRQUNMLENBQUM7S0FBQTtJQUVPLGFBQWEsQ0FBQyxJQUFTO1FBQzNCLE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztRQUV6QixNQUFNLGFBQWEsR0FBNEIsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzRCxJQUFJLGFBQWEsRUFBRTtZQUNmLEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFO2dCQUM3QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ3pDO2lCQUNKO3FCQUFNO29CQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdkQ7YUFDSjtTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFXLEVBQUUsR0FBUTtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDOUUsT0FBTyxJQUFJLE9BQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNKO0FBckNELDRDQXFDQyJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFsTGlua0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhhbExpbmtFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdDO0FBQ3hDLGtDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQ3pCOztPQUVHO0lBQ0csUUFBUSxDQUFDLFFBQWtCOztZQUM3QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pFLElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUM1RDtpQkFBTTtnQkFDSCxPQUFPLEVBQUUsQ0FBQzthQUNiO1FBQ0wsQ0FBQztLQUFBO0lBRU8sYUFBYSxDQUFDLElBQVM7UUFDM0IsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFDO1FBRXpCLE1BQU0sYUFBYSxHQUE0QixJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNELElBQUksYUFBYSxFQUFFO1lBQ2YsS0FBSyxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7Z0JBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDbkMsS0FBSyxNQUFNLElBQUksSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDekM7aUJBQ0o7cUJBQU07b0JBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2RDthQUNKO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sU0FBUyxDQUFDLEdBQVcsRUFBRSxHQUFRO1FBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUM5RSxPQUFPLElBQUksT0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RSxDQUFDO0NBQ0o7QUFyQ0QsNENBcUNDIn0=
@@ -65,4 +65,4 @@ class HeaderLinkExtractor {
65
65
  }
66
66
  }
67
67
  exports.HeaderLinkExtractor = HeaderLinkExtractor;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTGlua0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhlYWRlckxpbmtFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdDO0FBQ3hDLGtDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOztPQUVHO0lBQ0csUUFBUSxDQUFDLFFBQWtCOzs7WUFDN0IseUJBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVUsQ0FBQyxJQUFJLENBQUMsMENBQ3RDLEtBQUssQ0FBQyxxR0FBcUcsMkNBQzNHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG9DQUNqQyxFQUFFLENBQUM7O0tBQ2I7SUFFTyxTQUFTLENBQUMsS0FBYTs7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUF1QixDQUFDO1FBQzVCLElBQUksS0FBeUIsQ0FBQztRQUM5QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsTUFBQSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQywwQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0csTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDM0IsR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDMUI7aUJBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDcEMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM5QyxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDaEQ7YUFDSjtpQkFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUN2RSxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxFQUFFO1FBRUgsSUFBSSxDQUFDLEdBQUc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLE9BQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sS0FBSyxDQUFDLEdBQVcsRUFBRSxTQUFpQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUMvRDtZQUNELENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDZixLQUFLLEVBQUUsRUFBRTthQUNaLENBQUM7SUFDVixDQUFDO0NBQ0o7QUFoREQsa0RBZ0RDIn0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTGlua0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhlYWRlckxpbmtFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXdDO0FBQ3hDLGtDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOztPQUVHO0lBQ0csUUFBUSxDQUFDLFFBQWtCOzs7WUFDN0IsT0FBTyxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBVSxDQUFDLElBQUksQ0FBQywwQ0FDdEMsS0FBSyxDQUFDLHFHQUFxRyxDQUFDLDBDQUM1RyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1DQUNsQyxFQUFFLENBQUM7O0tBQ2I7SUFFTyxTQUFTLENBQUMsS0FBYTs7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUF1QixDQUFDO1FBQzVCLElBQUksS0FBeUIsQ0FBQztRQUM5QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsTUFBQSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQywwQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0csTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDM0IsR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDMUI7aUJBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDcEMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM5QyxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDaEQ7YUFDSjtpQkFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUN2RSxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUNuRixPQUFPLElBQUksT0FBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxLQUFLLENBQUMsR0FBVyxFQUFFLFNBQWlCO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7Z0JBQ0UsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQy9EO1lBQ0QsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEtBQUssRUFBRSxFQUFFO2FBQ1osQ0FBQztJQUNWLENBQUM7Q0FDSjtBQWhERCxrREFnREMifQ==
package/links/_doc.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Handling links between HTTP resources.
4
+ * See [documentation](https://typedrest.net/link-handling/).
5
+ * @packageDocumentation
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUcifQ==
package/links/_doc.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Handling links between HTTP resources.
3
+ * See [documentation](https://typedrest.net/link-handling/).
4
+ * @packageDocumentation
5
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typedrest",
3
- "version": "0.3.0",
3
+ "version": "0.3.4",
4
4
  "author": "Bastian Eicher",
5
5
  "license": "MIT",
6
6
  "description": "TypedRest helps you build type-safe fluent-style REST API clients.",
@@ -29,22 +29,23 @@
29
29
  "docs": "typedoc"
30
30
  },
31
31
  "jest": {
32
+ "testEnvironment": "jsdom",
32
33
  "transform": {
33
34
  "\\.ts$": "ts-jest"
34
35
  }
35
36
  },
36
37
  "devDependencies": {
37
- "@types/jest": "26.0.14",
38
- "jest": "26.4.2",
38
+ "@types/jest": "27.0.3",
39
+ "jest": "27.4.5",
39
40
  "jest-fetch-mock": "3.0.3",
40
- "ts-jest": "26.4.0",
41
+ "ts-jest": "27.1.2",
41
42
  "tslint": "6.1.3",
42
43
  "typedoc": "0.19.2",
43
- "typedoc-plugin-external-module-name": "4.0.3",
44
- "typescript": "4.0.3"
44
+ "typedoc-plugin-external-module-name": "4.0.5",
45
+ "typescript": "4.5.4"
45
46
  },
46
47
  "dependencies": {
47
48
  "@types/urijs": "^1.19.10",
48
- "urijs": "^1.19.2"
49
+ "urijs": "^1.19.6"
49
50
  }
50
51
  }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Serialization of entities sent to and received from the server.
4
+ * @packageDocumentation
5
+ */
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIl9kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRyJ9
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Serialization of entities sent to and received from the server.
3
+ * @packageDocumentation
4
+ */