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 +3 -3
- package/docs/assets/js/main.js +51 -0
- package/endpoints/Endpoint.js +1 -1
- package/endpoints/Endpoint.test.ts +4 -2
- package/endpoints/_doc.js +7 -0
- package/endpoints/_doc.ts +5 -0
- package/endpoints/generic/CollectionEndpoint.test.ts +17 -3
- package/endpoints/generic/ETagEndpointBase.js +1 -1
- package/endpoints/generic/ElementEndpoint.js +16 -10
- package/endpoints/generic/ElementEndpoint.ts +14 -8
- package/endpoints/generic/GenericCollectionEndpoint.js +17 -5
- package/endpoints/generic/GenericCollectionEndpoint.ts +17 -6
- package/endpoints/generic/_doc.js +6 -0
- package/endpoints/generic/_doc.ts +4 -0
- package/endpoints/raw/_doc.js +6 -0
- package/endpoints/raw/_doc.ts +4 -0
- package/endpoints/rpc/_doc.js +6 -0
- package/endpoints/rpc/_doc.ts +4 -0
- package/errors/DefaultErrorHandler.js +16 -22
- package/errors/DefaultErrorHandler.ts +18 -22
- package/errors/Errors.js +34 -31
- package/errors/Errors.ts +38 -42
- package/errors/_doc.js +7 -0
- package/errors/_doc.ts +5 -0
- package/http/HttpStatusCode.js +1 -2
- package/http/HttpStatusCode.ts +1 -2
- package/http/ResponseCache.js +1 -1
- package/http/_doc.js +6 -0
- package/http/_doc.ts +4 -0
- package/links/HalLinkExtractor.js +1 -1
- package/links/HeaderLinkExtractor.js +1 -1
- package/links/_doc.js +7 -0
- package/links/_doc.ts +5 -0
- package/package.json +8 -7
- package/serializers/_doc.js +6 -0
- package/serializers/_doc.ts +4 -0
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(
|
|
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(
|
|
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})}]);
|
package/endpoints/Endpoint.js
CHANGED
|
@@ -210,4 +210,4 @@ class Endpoint {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
exports.Endpoint = Endpoint;
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
|
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==
|
|
@@ -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
|
|
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,
|
|
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* () {
|
|
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,
|
|
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() {
|
|
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
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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,
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJpY0NvbGxlY3Rpb25FbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdlbmVyaWNDb2xsZWN0aW9uRW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQXNEO0FBR3RELHFDQUFtRTtBQUVuRTs7Ozs7R0FLRztBQUNILE1BQWEseUJBQXNGLFNBQVEsbUJBQWdCO0lBQ3ZIOzs7OztPQUtHO0lBQ0gsWUFBWSxRQUFrQixFQUFFLFdBQXlCLEVBQW1CLGVBQXVFO1FBQy9JLEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFEMkMsb0JBQWUsR0FBZixlQUFlLENBQXdEO1FBRS9JLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxPQUEyQjtRQUMzQixJQUFJLE9BQU8sSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRWpGLElBQUksRUFBVSxDQUFDO1FBQ2YsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0gsRUFBRSxHQUFJLE9BQWUsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxFQUFFLEtBQUssU0FBUztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsT0FBTyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQzdGO1FBQ0QsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRTlFLE9BQU8sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRTs7Ozs7OztPQU9HO0lBQ0csT0FBTyxDQUFDLE1BQW9COztZQUM5QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFZLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7S0FBQTtJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckU7Ozs7Ozs7Ozs7T0FVRztJQUNHLE1BQU0sQ0FBQyxNQUFlLEVBQUUsTUFBb0I7O1lBQzlDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ3RELENBQUMsaUJBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQzthQUNuRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUUzRCxJQUFJLGVBQWlDLENBQUM7WUFDdEMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsdURBQXVEO2dCQUN2RCxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDekU7aUJBQU07Z0JBQ0gsSUFBSTtvQkFDQSw0Q0FBNEM7b0JBQzVDLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDMUY7Z0JBQUMsV0FBTTtvQkFDSixzQkFBc0I7b0JBQ3RCLE9BQU8sU0FBUyxDQUFDO2lCQUNwQjthQUNKO1lBRUEsZUFBbUMsQ0FBQyxhQUFhLEdBQUcsTUFBTSxvQkFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RixPQUFPLGVBQWUsQ0FBQztRQUMzQixDQUFDO0tBQUE7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekU7Ozs7Ozs7OztPQVNHO0lBQ0csU0FBUyxDQUFDLFFBQW1CLEVBQUUsTUFBb0I7O1lBQ3JELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBQ3RDLENBQUMsaUJBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQzthQUNuRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQztLQUFBO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksYUFBYSxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwRTs7Ozs7Ozs7T0FRRztJQUNHLE1BQU0sQ0FBQyxRQUFtQjs4REFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQUE7SUFFdEU7Ozs7OztPQU1HO0lBQ0gsUUFBUSxDQUFDLE9BQTJCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RTs7Ozs7Ozs7O09BU0c7SUFDSCxHQUFHLENBQUMsT0FBZ0IsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRTs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsT0FBZ0IsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwRTs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLE9BQTJCLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztDQUM3RTtBQS9LRCw4REErS0MifQ==
|
|
@@ -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
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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,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,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
|
|
@@ -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
|
-
|
|
45
|
-
?
|
|
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
|
|
44
|
+
static errorType(status) {
|
|
49
45
|
switch (status) {
|
|
50
46
|
case http_1.HttpStatusCode.BadRequest:
|
|
51
|
-
return
|
|
47
|
+
return _1.BadRequestError;
|
|
52
48
|
case http_1.HttpStatusCode.Unauthorized:
|
|
53
|
-
return
|
|
49
|
+
return _1.AuthenticationError;
|
|
54
50
|
case http_1.HttpStatusCode.Forbidden:
|
|
55
|
-
return
|
|
51
|
+
return _1.AuthorizationError;
|
|
56
52
|
case http_1.HttpStatusCode.NotFound:
|
|
57
53
|
case http_1.HttpStatusCode.Gone:
|
|
58
|
-
return
|
|
54
|
+
return _1.NotFoundError;
|
|
59
55
|
case http_1.HttpStatusCode.RequestTimeout:
|
|
60
|
-
return
|
|
56
|
+
return _1.TimeoutError;
|
|
61
57
|
case http_1.HttpStatusCode.Conflict:
|
|
62
|
-
return
|
|
58
|
+
return _1.ConflictError;
|
|
63
59
|
case http_1.HttpStatusCode.PreconditionFailed:
|
|
64
|
-
return
|
|
65
|
-
case http_1.HttpStatusCode.RequestedRangeNotSatisfiable:
|
|
66
|
-
return new _1.RangeError(message, status);
|
|
60
|
+
return _1.ConcurrencyError;
|
|
67
61
|
default:
|
|
68
|
-
return
|
|
62
|
+
return _1.HttpError;
|
|
69
63
|
}
|
|
70
64
|
}
|
|
71
65
|
}
|
|
72
66
|
exports.DefaultErrorHandler = DefaultErrorHandler;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQW9LO0FBQ3BLLGtDQUFxRDtBQUVyRDs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOzs7Ozs7Ozs7OztPQVdHO0lBQ0csTUFBTSxDQUFDLFFBQWtCOzs7WUFDM0IsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsTUFBSSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUM7Z0JBQzVGLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFaEIsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLElBQUksU0FBUyxDQUNmLE1BQUEsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxtQ0FBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxtQ0FBSSxRQUFRLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUMxRixRQUFRLENBQUMsTUFBTSxFQUNmLFFBQVEsQ0FBQyxDQUFDOztLQUNqQjtJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBc0I7UUFDM0MsUUFBUSxNQUFNLEVBQUU7WUFDWixLQUFLLHFCQUFjLENBQUMsVUFBVTtnQkFDMUIsT0FBTyxrQkFBZSxDQUFDO1lBQzNCLEtBQUsscUJBQWMsQ0FBQyxZQUFZO2dCQUM1QixPQUFPLHNCQUFtQixDQUFDO1lBQy9CLEtBQUsscUJBQWMsQ0FBQyxTQUFTO2dCQUN6QixPQUFPLHFCQUFrQixDQUFDO1lBQzlCLEtBQUsscUJBQWMsQ0FBQyxRQUFRLENBQUM7WUFDN0IsS0FBSyxxQkFBYyxDQUFDLElBQUk7Z0JBQ3BCLE9BQU8sZ0JBQWEsQ0FBQztZQUN6QixLQUFLLHFCQUFjLENBQUMsY0FBYztnQkFDOUIsT0FBTyxlQUFZLENBQUM7WUFDeEIsS0FBSyxxQkFBYyxDQUFDLFFBQVE7Z0JBQ3hCLE9BQU8sZ0JBQWEsQ0FBQztZQUN6QixLQUFLLHFCQUFjLENBQUMsa0JBQWtCO2dCQUNsQyxPQUFPLG1CQUFnQixDQUFDO1lBQzVCO2dCQUNJLE9BQU8sWUFBUyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztDQUNKO0FBakRELGtEQWlEQyJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ErrorHandler, HttpError, BadRequestError, AuthenticationError, AuthorizationError, NotFoundError, TimeoutError, ConflictError, ConcurrencyError
|
|
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
|
-
|
|
33
|
-
?
|
|
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
|
|
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
|
|
38
|
+
return BadRequestError;
|
|
41
39
|
case HttpStatusCode.Unauthorized:
|
|
42
|
-
return
|
|
40
|
+
return AuthenticationError;
|
|
43
41
|
case HttpStatusCode.Forbidden:
|
|
44
|
-
return
|
|
42
|
+
return AuthorizationError;
|
|
45
43
|
case HttpStatusCode.NotFound:
|
|
46
44
|
case HttpStatusCode.Gone:
|
|
47
|
-
return
|
|
45
|
+
return NotFoundError;
|
|
48
46
|
case HttpStatusCode.RequestTimeout:
|
|
49
|
-
return
|
|
47
|
+
return TimeoutError;
|
|
50
48
|
case HttpStatusCode.Conflict:
|
|
51
|
-
return
|
|
49
|
+
return ConflictError;
|
|
52
50
|
case HttpStatusCode.PreconditionFailed:
|
|
53
|
-
return
|
|
54
|
-
case HttpStatusCode.RequestedRangeNotSatisfiable:
|
|
55
|
-
return new RangeError(message, status)
|
|
51
|
+
return ConcurrencyError;
|
|
56
52
|
default:
|
|
57
|
-
return
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
package/http/HttpStatusCode.js
CHANGED
|
@@ -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,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFN0YXR1c0NvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJIdHRwU3RhdHVzQ29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDdEIsaURBQVEsQ0FBQTtJQUNSLDJEQUFhLENBQUE7SUFDYiw2REFBYyxDQUFBO0lBQ2QsbUVBQWlCLENBQUE7SUFDakIsaUVBQWdCLENBQUE7SUFDaEIscUVBQWtCLENBQUE7SUFDbEIsK0RBQWUsQ0FBQTtJQUNmLDZEQUFjLENBQUE7SUFDZCx5RUFBb0IsQ0FBQTtJQUNwQiw2REFBYyxDQUFBO0lBQ2QscURBQVUsQ0FBQTtJQUNWLGlGQUF3QixDQUFBO0FBQzVCLENBQUMsRUFiVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQWF6QiJ9
|
package/http/HttpStatusCode.ts
CHANGED
package/http/ResponseCache.js
CHANGED
|
@@ -37,4 +37,4 @@ class ResponseCache {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
exports.ResponseCache = ResponseCache;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
@@ -54,4 +54,4 @@ class HalLinkExtractor {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
exports.HalLinkExtractor = HalLinkExtractor;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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,
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typedrest",
|
|
3
|
-
"version": "0.3.
|
|
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": "
|
|
38
|
-
"jest": "
|
|
38
|
+
"@types/jest": "27.0.3",
|
|
39
|
+
"jest": "27.4.5",
|
|
39
40
|
"jest-fetch-mock": "3.0.3",
|
|
40
|
-
"ts-jest": "
|
|
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.
|
|
44
|
-
"typescript": "4.
|
|
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.
|
|
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
|