typedrest 0.3.4 → 0.3.7

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.
Files changed (75) hide show
  1. package/endpoints/Endpoint.js +13 -13
  2. package/endpoints/Endpoint.ts +13 -13
  3. package/endpoints/EntryEndpoint.js +12 -12
  4. package/endpoints/EntryEndpoint.ts +9 -9
  5. package/endpoints/generic/CollectionEndpoint.js +5 -4
  6. package/endpoints/generic/CollectionEndpoint.ts +2 -1
  7. package/endpoints/generic/ETagEndpointBase.js +20 -20
  8. package/endpoints/generic/ETagEndpointBase.ts +21 -21
  9. package/endpoints/generic/ElementEndpoint.js +33 -33
  10. package/endpoints/generic/ElementEndpoint.ts +31 -31
  11. package/endpoints/generic/GenericCollectionEndpoint.js +39 -39
  12. package/endpoints/generic/GenericCollectionEndpoint.ts +38 -37
  13. package/endpoints/generic/IndexerEndpoint.js +1 -1
  14. package/endpoints/generic/IndexerEndpoint.ts +1 -1
  15. package/endpoints/generic/index.js +6 -2
  16. package/endpoints/index.js +6 -2
  17. package/endpoints/raw/BlobEndpoint.js +22 -19
  18. package/endpoints/raw/BlobEndpoint.ts +21 -18
  19. package/endpoints/raw/UploadEndpoint.js +9 -6
  20. package/endpoints/raw/UploadEndpoint.ts +8 -5
  21. package/endpoints/raw/index.js +6 -2
  22. package/endpoints/rpc/ActionEndpoint.js +7 -7
  23. package/endpoints/rpc/ActionEndpoint.ts +5 -5
  24. package/endpoints/rpc/ConsumerEndpoint.js +7 -7
  25. package/endpoints/rpc/ConsumerEndpoint.ts +5 -5
  26. package/endpoints/rpc/FunctionEndpoint.js +7 -7
  27. package/endpoints/rpc/FunctionEndpoint.ts +5 -5
  28. package/endpoints/rpc/ProducerEndpoint.js +7 -7
  29. package/endpoints/rpc/ProducerEndpoint.ts +5 -5
  30. package/endpoints/rpc/RpcEndpointBase.js +4 -4
  31. package/endpoints/rpc/RpcEndpointBase.ts +4 -4
  32. package/endpoints/rpc/index.js +6 -2
  33. package/errors/DefaultErrorHandler.js +18 -18
  34. package/errors/DefaultErrorHandler.ts +10 -9
  35. package/errors/ErrorHandler.ts +1 -1
  36. package/errors/Errors.js +8 -9
  37. package/errors/Errors.ts +7 -9
  38. package/errors/index.js +6 -2
  39. package/http/FetchHttpClient.js +3 -3
  40. package/http/FetchHttpClient.ts +4 -3
  41. package/http/HttpClient.ts +1 -1
  42. package/http/ResponseCache.js +3 -3
  43. package/http/ResponseCache.ts +1 -1
  44. package/http/index.js +6 -2
  45. package/index.js +6 -2
  46. package/jest.config.js +12 -0
  47. package/links/AggregateLinkExtractor.js +2 -2
  48. package/links/AggregateLinkExtractor.ts +3 -2
  49. package/links/HalLinkExtractor.js +4 -4
  50. package/links/HalLinkExtractor.ts +3 -2
  51. package/links/HeaderLinkExtractor.js +4 -4
  52. package/links/HeaderLinkExtractor.ts +3 -2
  53. package/links/LinkExtractor.ts +1 -1
  54. package/links/index.js +6 -2
  55. package/package.json +9 -17
  56. package/serializers/JsonSerializer.js +3 -3
  57. package/serializers/JsonSerializer.ts +4 -4
  58. package/serializers/index.js +6 -2
  59. package/docs/assets/js/main.js +0 -51
  60. package/endpoints/_doc.js +0 -7
  61. package/endpoints/_doc.ts +0 -5
  62. package/endpoints/generic/_doc.js +0 -6
  63. package/endpoints/generic/_doc.ts +0 -4
  64. package/endpoints/raw/_doc.js +0 -6
  65. package/endpoints/raw/_doc.ts +0 -4
  66. package/endpoints/rpc/_doc.js +0 -6
  67. package/endpoints/rpc/_doc.ts +0 -4
  68. package/errors/_doc.js +0 -7
  69. package/errors/_doc.ts +0 -5
  70. package/http/_doc.js +0 -6
  71. package/http/_doc.ts +0 -4
  72. package/links/_doc.js +0 -7
  73. package/links/_doc.ts +0 -5
  74. package/serializers/_doc.js +0 -6
  75. package/serializers/_doc.ts +0 -4
@@ -15,8 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.Endpoint = void 0;
16
16
  const http_1 = require("../http");
17
17
  const errors_1 = require("../errors");
18
- const urijs_1 = __importDefault(require("urijs"));
19
- require("urijs/src/URITemplate");
18
+ const url_template_1 = __importDefault(require("url-template"));
20
19
  class Endpoint {
21
20
  /**
22
21
  * Creates a new endpoint.
@@ -89,7 +88,7 @@ class Endpoint {
89
88
  * @param signal Used to cancel the request.
90
89
  * @param headers The HTTP headers to set.
91
90
  * @param body The body to send.
92
- * @throws {@link HttpError}
91
+ * @throws {@link errors!HttpError}
93
92
  */
94
93
  send(method, signal, headers, body) {
95
94
  return __awaiter(this, void 0, void 0, function* () {
@@ -101,7 +100,7 @@ class Endpoint {
101
100
  /**
102
101
  * Handles various cross-cutting concerns regarding a response message such as discovering links and handling errors.
103
102
  * @param response The response to process.
104
- * @throws {@link HttpError}
103
+ * @throws {@link errors!HttpError}
105
104
  */
106
105
  handle(response) {
107
106
  return __awaiter(this, void 0, void 0, function* () {
@@ -129,8 +128,8 @@ class Endpoint {
129
128
  * Registers a default link template for a specific relation type.
130
129
  * This template is used when no template with this relation type is provided by the server.
131
130
  * This should only be called during initial setup of the endpoint.
132
- * @param rel
133
- * @param href
131
+ * @param rel The relation type of the link to add.
132
+ * @param href The templates href relative to this endpoint's URI. Leave unspecified to remove any previous entries for the relation type.
134
133
  */
135
134
  setDefaultLinkTemplate(rel, href) {
136
135
  if (href) {
@@ -159,33 +158,34 @@ class Endpoint {
159
158
  /**
160
159
  * Resolves a single link with a specific relation type. Uses cached data from last response.
161
160
  * @param rel The relation type of the link to look for.
162
- * @throws {@link NotFoundError}: No link with the specified `rel` could be found.
161
+ * @throws {@link errors!NotFoundError}: No link with the specified `rel` could be found.
163
162
  */
164
163
  link(rel) {
165
164
  const links = this.getLinks(rel);
166
165
  if (links.length === 0)
167
- throw new errors_1.NotFoundError(`No link with rel=${rel} provided by endpoint ${this.uri}.`, 0);
166
+ throw new errors_1.NotFoundError(`No link with rel=${rel} provided by endpoint ${this.uri}.`, http_1.HttpStatusCode.NotFound);
168
167
  return links[0].uri;
169
168
  }
170
169
  /**
171
170
  * Resolves a link template with a specific relation type. Uses cached data from last response.
172
171
  * @param rel The relation type of the link template to look for.
173
172
  * @param variables Variables for resolving the template.
174
- * @throws {@link NotFoundError}: No link template with the specified `rel` could be found.
173
+ * @throws {@link errors!NotFoundError}: No link template with the specified `rel` could be found.
175
174
  */
176
175
  linkTemplate(rel, variables) {
177
- return this.join(urijs_1.default.expand(this.getLinkTemplate(rel), variables).toString());
176
+ const tmpl = url_template_1.default.parse(this.getLinkTemplate(rel));
177
+ return new URL(this.join(tmpl.expand(variables)));
178
178
  }
179
179
  /**
180
180
  * Retrieves a link template with a specific relation type. Uses cached data from last response. Prefer {@link linkTemplate} when possible.
181
181
  * @param rel The relation type of the link template to look for.
182
- * @throws {@link NotFoundError}: No link template with the specified `rel` could be found.
182
+ * @throws {@link errors!NotFoundError}: No link template with the specified `rel` could be found.
183
183
  */
184
184
  getLinkTemplate(rel) {
185
185
  var _a, _b;
186
186
  const template = (_b = (_a = this.links.find(x => x.templated && x.rel === rel)) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : this.defaultLinkTemplates.get(rel);
187
187
  if (!template)
188
- throw new errors_1.NotFoundError(`No link template with rel=${rel} provided by endpoint ${this.uri}.`, 0);
188
+ throw new errors_1.NotFoundError(`No link template with rel=${rel} provided by endpoint ${this.uri}.`, http_1.HttpStatusCode.NotFound);
189
189
  return template;
190
190
  }
191
191
  /**
@@ -210,4 +210,4 @@ class Endpoint {
210
210
  }
211
211
  }
212
212
  exports.Endpoint = Endpoint;
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FBNkQ7QUFFN0Qsc0NBQXdEO0FBRXhELGtEQUF3QjtBQUN4QixpQ0FBK0I7QUFFL0IsTUFBYSxRQUFRO0lBMEJqQjs7Ozs7Ozs7T0FRRztJQUNILFlBQ0ksUUFBOEIsRUFDOUIsR0FBaUIsRUFDakIsVUFBdUIsRUFDdkIsWUFBMkIsRUFDM0IsYUFBNkIsRUFDN0IsVUFBdUI7UUE4RTNCLG9GQUFvRjtRQUM1RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDREQUE0RDtRQUNwRCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFDdEMseUJBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUEwRnpELG9GQUFvRjtRQUM1RSxtQkFBYyxHQUFpQixFQUFFLENBQUM7UUE3S3RDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDaEUsSUFBSSxVQUFVO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDdEMsSUFBSSxZQUFZO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDMUMsSUFBSSxhQUFhO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxh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
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FBNkU7QUFFN0Usc0NBQXdEO0FBRXhELGdFQUFvQztBQUVwQyxNQUFhLFFBQVE7SUEwQmpCOzs7Ozs7OztPQVFHO0lBQ0gsWUFDSSxRQUE4QixFQUM5QixHQUFpQixFQUNqQixVQUF1QixFQUN2QixZQUEyQixFQUMzQixhQUE2QixFQUM3QixVQUF1QjtRQThFM0Isb0ZBQW9GO1FBQzVFLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFM0IsNERBQTREO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUN0Qyx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQTJGekQsb0ZBQW9GO1FBQzVFLG1CQUFjLEdBQWlCLEVBQUUsQ0FBQztRQTlLdEMsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoRSxJQUFJLFVBQVU7Z0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUN0QyxJQUFJLFlBQVk7Z0JBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUMxQyxJQUFJLGFBQWE7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1lBQ3pGLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUM1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
@@ -1,9 +1,8 @@
1
- import { HttpMethod, HttpHeader, HttpClient } from "../http";
1
+ import { HttpMethod, HttpHeader, HttpStatusCode, HttpClient } from "../http";
2
2
  import { Serializer } from "../serializers";
3
3
  import { ErrorHandler, NotFoundError } from "../errors";
4
4
  import { LinkExtractor, Link } from "../links";
5
- import URI from "urijs";
6
- import "urijs/src/URITemplate";
5
+ import template from 'url-template';
7
6
 
8
7
  export class Endpoint {
9
8
  /**
@@ -105,7 +104,7 @@ export class Endpoint {
105
104
  * @param signal Used to cancel the request.
106
105
  * @param headers The HTTP headers to set.
107
106
  * @param body The body to send.
108
- * @throws {@link HttpError}
107
+ * @throws {@link errors!HttpError}
109
108
  */
110
109
  protected async send(method: HttpMethod, signal?: AbortSignal, headers?: HeadersInit, body?: BodyInit): Promise<Response> {
111
110
  const response = await this.httpClient.send(this.uri, method, signal, headers, body);
@@ -116,7 +115,7 @@ export class Endpoint {
116
115
  /**
117
116
  * Handles various cross-cutting concerns regarding a response message such as discovering links and handling errors.
118
117
  * @param response The response to process.
119
- * @throws {@link HttpError}
118
+ * @throws {@link errors!HttpError}
120
119
  */
121
120
  protected async handle(response: Response) {
122
121
  this.links = await this.linkExtractor.getLinks(response);
@@ -150,8 +149,8 @@ export class Endpoint {
150
149
  * Registers a default link template for a specific relation type.
151
150
  * This template is used when no template with this relation type is provided by the server.
152
151
  * This should only be called during initial setup of the endpoint.
153
- * @param rel
154
- * @param href
152
+ * @param rel The relation type of the link to add.
153
+ * @param href The templates href relative to this endpoint's URI. Leave unspecified to remove any previous entries for the relation type.
155
154
  */
156
155
  setDefaultLinkTemplate(rel: string, href?: string) {
157
156
  if (href) {
@@ -183,13 +182,13 @@ export class Endpoint {
183
182
  /**
184
183
  * Resolves a single link with a specific relation type. Uses cached data from last response.
185
184
  * @param rel The relation type of the link to look for.
186
- * @throws {@link NotFoundError}: No link with the specified `rel` could be found.
185
+ * @throws {@link errors!NotFoundError}: No link with the specified `rel` could be found.
187
186
  */
188
187
  link(rel: string): URL {
189
188
  const links = this.getLinks(rel);
190
189
 
191
190
  if (links.length === 0)
192
- throw new NotFoundError(`No link with rel=${rel} provided by endpoint ${this.uri}.`, 0);
191
+ throw new NotFoundError(`No link with rel=${rel} provided by endpoint ${this.uri}.`, HttpStatusCode.NotFound);
193
192
 
194
193
  return links[0].uri;
195
194
  }
@@ -198,23 +197,24 @@ export class Endpoint {
198
197
  * Resolves a link template with a specific relation type. Uses cached data from last response.
199
198
  * @param rel The relation type of the link template to look for.
200
199
  * @param variables Variables for resolving the template.
201
- * @throws {@link NotFoundError}: No link template with the specified `rel` could be found.
200
+ * @throws {@link errors!NotFoundError}: No link template with the specified `rel` could be found.
202
201
  */
203
202
  linkTemplate(rel: string, variables: { [key: string]: any; }): URL {
204
- return this.join(URI.expand!(this.getLinkTemplate(rel), variables).toString());
203
+ const tmpl = template.parse(this.getLinkTemplate(rel))
204
+ return new URL(this.join(tmpl.expand(variables)))
205
205
  }
206
206
 
207
207
  /**
208
208
  * Retrieves a link template with a specific relation type. Uses cached data from last response. Prefer {@link linkTemplate} when possible.
209
209
  * @param rel The relation type of the link template to look for.
210
- * @throws {@link NotFoundError}: No link template with the specified `rel` could be found.
210
+ * @throws {@link errors!NotFoundError}: No link template with the specified `rel` could be found.
211
211
  */
212
212
  getLinkTemplate(rel: string) {
213
213
  const template = this.links.find(x => x.templated && x.rel === rel)?.href
214
214
  ?? this.defaultLinkTemplates.get(rel);
215
215
 
216
216
  if (!template)
217
- throw new NotFoundError(`No link template with rel=${rel} provided by endpoint ${this.uri}.`, 0);
217
+ throw new NotFoundError(`No link template with rel=${rel} provided by endpoint ${this.uri}.`, HttpStatusCode.NotFound);
218
218
 
219
219
  return template;
220
220
  }
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.EntryEndpoint = void 0;
13
- const _1 = require(".");
13
+ const Endpoint_1 = require("./Endpoint");
14
14
  const http_1 = require("../http");
15
15
  const serializers_1 = require("../serializers");
16
16
  const errors_1 = require("../errors");
@@ -18,17 +18,17 @@ const links_1 = require("../links");
18
18
  /**
19
19
  * Represent the top-level URI of an API. Derive from this class and add your own set of child-{@link Endpoint}s as properties.
20
20
  */
21
- class EntryEndpoint extends _1.Endpoint {
21
+ class EntryEndpoint extends Endpoint_1.Endpoint {
22
22
  /**
23
23
  * Creates a new entry endpoint.
24
24
  * @param uri The base URI of the REST API.<br>Missing trailing slash will be appended automatically.
25
- * @param serializer Controls the serialization of entities sent to and received from the server.<br>Defaults to {@link JsonSerializer} if undefined.
26
- * @param errorHandler Handles errors in HTTP responses.<br>Defaults to {@link DefaultErrorHandler} if undefined.
27
- * @param linkExtractor Detects links in HTTP responses.<br>Defaults to {@link HeaderLinkExtractor} and {@link HalLinkExtractor} combined via {@link AggregateLinkExtractor} if undefined.
28
- * @param httpClient The HTTP client used to communicate with the REST API.<br>Defaults to {@link FetchHttpClient} if undefined.
25
+ * @param serializer Controls the serialization of entities sent to and received from the server.<br>Defaults to {@link serializers!JsonSerializer} if undefined.
26
+ * @param errorHandler Handles errors in HTTP responses.<br>Defaults to {@link errors!DefaultErrorHandler} if undefined.
27
+ * @param linkExtractor Detects links in HTTP responses.<br>Defaults to {@link links!HeaderLinkExtractor} and {@link links!HalLinkExtractor} combined via {@link links!AggregateLinkExtractor} if undefined.
28
+ * @param httpClient The HTTP client used to communicate with the REST API.<br>Defaults to {@link http!FetchHttpClient} if undefined.
29
29
  */
30
30
  constructor(uri, serializer, errorHandler, linkExtractor, httpClient) {
31
- super(undefined, _1.Endpoint.ensureTrailingSlash(uri), serializer !== null && serializer !== void 0 ? serializer : new serializers_1.JsonSerializer(), errorHandler !== null && errorHandler !== void 0 ? errorHandler : new errors_1.DefaultErrorHandler(), linkExtractor !== null && linkExtractor !== void 0 ? linkExtractor : new links_1.AggregateLinkExtractor(new links_1.HeaderLinkExtractor(), new links_1.HalLinkExtractor()), httpClient !== null && httpClient !== void 0 ? httpClient : new http_1.FetchHttpClient());
31
+ super(undefined, Endpoint_1.Endpoint.ensureTrailingSlash(uri), serializer !== null && serializer !== void 0 ? serializer : new serializers_1.JsonSerializer(), errorHandler !== null && errorHandler !== void 0 ? errorHandler : new errors_1.DefaultErrorHandler(), linkExtractor !== null && linkExtractor !== void 0 ? linkExtractor : new links_1.AggregateLinkExtractor(new links_1.HeaderLinkExtractor(), new links_1.HalLinkExtractor()), httpClient !== null && httpClient !== void 0 ? httpClient : new http_1.FetchHttpClient());
32
32
  for (const mediaType of this.serializer.supportedMediaTypes) {
33
33
  this.httpClient.defaultHeaders.append(http_1.HttpHeader.Accept, mediaType);
34
34
  }
@@ -36,10 +36,10 @@ class EntryEndpoint extends _1.Endpoint {
36
36
  /**
37
37
  * Fetches meta data such as links from the server.
38
38
  * @param signal Used to cancel the request.
39
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
40
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
41
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
42
- * @throws {@link HttpError}: Other non-success status code
39
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
40
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
41
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
42
+ * @throws {@link errors!HttpError}: Other non-success status code
43
43
  */
44
44
  readMeta(signal) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
@@ -48,4 +48,4 @@ class EntryEndpoint extends _1.Endpoint {
48
48
  }
49
49
  }
50
50
  exports.EntryEndpoint = EntryEndpoint;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW50cnlFbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVudHJ5RW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0JBQTZCO0FBQzdCLGtDQUE4RTtBQUM5RSxnREFBNEQ7QUFDNUQsc0NBQThEO0FBQzlELG9DQUF3RztBQUV4Rzs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLFdBQVE7SUFDdkM7Ozs7Ozs7T0FPRztJQUNILFlBQ0ksR0FBaUIsRUFDakIsVUFBdUIsRUFDdkIsWUFBMkIsRUFDM0IsYUFBNkIsRUFDN0IsVUFBdUI7UUFDdkIsS0FBSyxDQUFDLFNBQVMsRUFDWCxXQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQ2pDLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLElBQUksNEJBQWMsRUFBRSxFQUNsQyxZQUFZLGFBQVosWUFBWSxjQUFaLFlBQVksR0FBSSxJQUFJLDRCQUFtQixFQUFFLEVBQ3pDLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLElBQUksOEJBQXNCLENBQUMsSUFBSSwyQkFBbUIsRUFBRSxFQUFFLElBQUksd0JBQWdCLEVBQUUsQ0FBQyxFQUM5RixVQUFVLGFBQVYsVUFBVSxjQUFWLFVBQVUsR0FBSSxJQUFJLHNCQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRTtZQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsaUJBQVUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNHLFFBQVEsQ0FBQyxNQUFvQjs7WUFDL0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLENBQUM7S0FBQTtDQUNKO0FBdENELHNDQXNDQyJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW50cnlFbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVudHJ5RW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXNDO0FBQ3RDLGtDQUE4RTtBQUM5RSxnREFBNEQ7QUFDNUQsc0NBQThEO0FBQzlELG9DQUF3RztBQUV4Rzs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLG1CQUFRO0lBQ3ZDOzs7Ozs7O09BT0c7SUFDSCxZQUNJLEdBQWlCLEVBQ2pCLFVBQXVCLEVBQ3ZCLFlBQTJCLEVBQzNCLGFBQTZCLEVBQzdCLFVBQXVCO1FBQ3ZCLEtBQUssQ0FBQyxTQUFTLEVBQ1gsbUJBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFDakMsVUFBVSxhQUFWLFVBQVUsY0FBVixVQUFVLEdBQUksSUFBSSw0QkFBYyxFQUFFLEVBQ2xDLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLElBQUksNEJBQW1CLEVBQUUsRUFDekMsYUFBYSxhQUFiLGFBQWEsY0FBYixhQUFhLEdBQUksSUFBSSw4QkFBc0IsQ0FBQyxJQUFJLDJCQUFtQixFQUFFLEVBQUUsSUFBSSx3QkFBZ0IsRUFBRSxDQUFDLEVBQzlGLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLElBQUksc0JBQWUsRUFBRSxDQUFDLENBQUM7UUFFekMsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFO1lBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0csUUFBUSxDQUFDLE1BQW9COztZQUMvQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUMsQ0FBQztLQUFBO0NBQ0o7QUF0Q0Qsc0NBc0NDIn0=
@@ -1,4 +1,4 @@
1
- import { Endpoint } from ".";
1
+ import { Endpoint } from "./Endpoint";
2
2
  import { HttpMethod, HttpClient, FetchHttpClient, HttpHeader } from "../http";
3
3
  import { Serializer, JsonSerializer } from "../serializers";
4
4
  import { ErrorHandler, DefaultErrorHandler } from "../errors";
@@ -11,10 +11,10 @@ export class EntryEndpoint extends Endpoint {
11
11
  /**
12
12
  * Creates a new entry endpoint.
13
13
  * @param uri The base URI of the REST API.<br>Missing trailing slash will be appended automatically.
14
- * @param serializer Controls the serialization of entities sent to and received from the server.<br>Defaults to {@link JsonSerializer} if undefined.
15
- * @param errorHandler Handles errors in HTTP responses.<br>Defaults to {@link DefaultErrorHandler} if undefined.
16
- * @param linkExtractor Detects links in HTTP responses.<br>Defaults to {@link HeaderLinkExtractor} and {@link HalLinkExtractor} combined via {@link AggregateLinkExtractor} if undefined.
17
- * @param httpClient The HTTP client used to communicate with the REST API.<br>Defaults to {@link FetchHttpClient} if undefined.
14
+ * @param serializer Controls the serialization of entities sent to and received from the server.<br>Defaults to {@link serializers!JsonSerializer} if undefined.
15
+ * @param errorHandler Handles errors in HTTP responses.<br>Defaults to {@link errors!DefaultErrorHandler} if undefined.
16
+ * @param linkExtractor Detects links in HTTP responses.<br>Defaults to {@link links!HeaderLinkExtractor} and {@link links!HalLinkExtractor} combined via {@link links!AggregateLinkExtractor} if undefined.
17
+ * @param httpClient The HTTP client used to communicate with the REST API.<br>Defaults to {@link http!FetchHttpClient} if undefined.
18
18
  */
19
19
  constructor(
20
20
  uri: URL | string,
@@ -37,10 +37,10 @@ export class EntryEndpoint extends Endpoint {
37
37
  /**
38
38
  * Fetches meta data such as links from the server.
39
39
  * @param signal Used to cancel the request.
40
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
41
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
42
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
43
- * @throws {@link HttpError}: Other non-success status code
40
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
41
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
42
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
43
+ * @throws {@link errors!HttpError}: Other non-success status code
44
44
  */
45
45
  async readMeta(signal?: AbortSignal) {
46
46
  await this.send(HttpMethod.Get, signal);
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CollectionEndpoint = void 0;
4
- const _1 = require(".");
4
+ const GenericCollectionEndpoint_1 = require("./GenericCollectionEndpoint");
5
+ const ElementEndpoint_1 = require("./ElementEndpoint");
5
6
  /**
6
7
  * Endpoint for a collection of `TEntity`s addressable as `ElementEndpoint<TEntity>`s.<br>
7
8
  * Use {@link GenericCollectionEndpoint} instead if you wish to customize the element endpoint type.
8
9
  * @typeParam TEntity The type of individual elements in the collection.
9
10
  */
10
- class CollectionEndpoint extends _1.GenericCollectionEndpoint {
11
+ class CollectionEndpoint extends GenericCollectionEndpoint_1.GenericCollectionEndpoint {
11
12
  /**
12
13
  * Creates a new collection endpoint.
13
14
  * @param referrer The endpoint used to navigate to this one.
14
15
  * @param relativeUri The URI of this endpoint relative to the `referrer`'s. Add a `./` prefix here to imply a trailing slash in the `referrer`'s URI.
15
16
  */
16
17
  constructor(referrer, relativeUri) {
17
- super(referrer, relativeUri, _1.ElementEndpoint);
18
+ super(referrer, relativeUri, ElementEndpoint_1.ElementEndpoint);
18
19
  }
19
20
  }
20
21
  exports.CollectionEndpoint = CollectionEndpoint;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sbGVjdGlvbkVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29sbGVjdGlvbkVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdCQUErRDtBQUcvRDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBNEIsU0FBUSw0QkFBNEQ7SUFDekc7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxrQkFBZSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNKO0FBVEQsZ0RBU0MifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sbGVjdGlvbkVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29sbGVjdGlvbkVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJFQUF3RTtBQUN4RSx1REFBb0Q7QUFHcEQ7Ozs7R0FJRztBQUNILE1BQWEsa0JBQTRCLFNBQVEscURBQTREO0lBQ3pHOzs7O09BSUc7SUFDSCxZQUFZLFFBQWtCLEVBQUUsV0FBeUI7UUFDckQsS0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsaUNBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDSjtBQVRELGdEQVNDIn0=
@@ -1,4 +1,5 @@
1
- import { GenericCollectionEndpoint, ElementEndpoint } from ".";
1
+ import { GenericCollectionEndpoint } from "./GenericCollectionEndpoint";
2
+ import { ElementEndpoint } from "./ElementEndpoint";
2
3
  import { Endpoint } from "../Endpoint";
3
4
 
4
5
  /**
@@ -25,13 +25,13 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
25
25
  super(referrer, relativeUri);
26
26
  }
27
27
  /**
28
- * Performs an {@link HttpMethod.Put} request on the {@link uri} and caches the response if the server sends an {@link HttpHeader.ETag}.
28
+ * Performs an {@link http!HttpMethod.Put} request on the {@link uri} and caches the response if the server sends an {@link http!HttpHeader.ETag}.
29
29
  * @param signal Used to cancel the request.
30
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
31
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
32
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
33
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
34
- * @throws {@link HttpError}: Other non-success status code
30
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
31
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
32
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
33
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
34
+ * @throws {@link errors!HttpError}: Other non-success status code
35
35
  */
36
36
  getContent(signal) {
37
37
  var _a, _b;
@@ -48,14 +48,14 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
48
48
  });
49
49
  }
50
50
  /**
51
- * Performs an {@link HttpMethod.Put} request on the {@link uri}. Sets {@link HttpHeader.IfMatch} if there is a cached {@link HttpHeader.ETag} to detect lost updates.
51
+ * Performs an {@link http!HttpMethod.Put} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
52
52
  * @param signal Used to cancel the request.
53
- * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
54
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
55
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
56
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
57
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
58
- * @throws {@link HttpError}: Other non-success status code
53
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
54
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
55
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
56
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
57
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
58
+ * @throws {@link errors!HttpError}: Other non-success status code
59
59
  */
60
60
  putContent(content, signal) {
61
61
  var _a;
@@ -69,14 +69,14 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
69
69
  });
70
70
  }
71
71
  /**
72
- * Performs an {@link HttpMethod.Delete} request on the {@link uri}. Sets {@link HttpHeader.IfMatch} if there is a cached {@link HttpHeader.ETag} to detect lost updates.
72
+ * Performs an {@link http!HttpMethod.Delete} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
73
73
  * @param signal Used to cancel the request.
74
- * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
75
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
76
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
77
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
78
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
79
- * @throws {@link HttpError}: Other non-success status code
74
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
75
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
76
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
77
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
78
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
79
+ * @throws {@link errors!HttpError}: Other non-success status code
80
80
  */
81
81
  deleteContent(signal) {
82
82
  var _a;
@@ -16,18 +16,18 @@ export class ETagEndpointBase extends Endpoint implements CachingEndpoint {
16
16
  }
17
17
 
18
18
  /**
19
- * @inheritdoc
19
+ * @inheritDoc
20
20
  */
21
21
  public responseCache?: ResponseCache;
22
22
 
23
23
  /**
24
- * Performs an {@link HttpMethod.Put} request on the {@link uri} and caches the response if the server sends an {@link HttpHeader.ETag}.
24
+ * Performs an {@link http!HttpMethod.Put} request on the {@link uri} and caches the response if the server sends an {@link http!HttpHeader.ETag}.
25
25
  * @param signal Used to cancel the request.
26
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
27
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
28
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
29
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
30
- * @throws {@link HttpError}: Other non-success status code
26
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
27
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
28
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
29
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
30
+ * @throws {@link errors!HttpError}: Other non-success status code
31
31
  */
32
32
  protected async getContent(signal?: AbortSignal): Promise<string> {
33
33
  const headers = new Headers();
@@ -43,14 +43,14 @@ export class ETagEndpointBase extends Endpoint implements CachingEndpoint {
43
43
  }
44
44
 
45
45
  /**
46
- * Performs an {@link HttpMethod.Put} request on the {@link uri}. Sets {@link HttpHeader.IfMatch} if there is a cached {@link HttpHeader.ETag} to detect lost updates.
46
+ * Performs an {@link http!HttpMethod.Put} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
47
47
  * @param signal Used to cancel the request.
48
- * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
49
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
50
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
51
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
52
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
53
- * @throws {@link HttpError}: Other non-success status code
48
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
49
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
50
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
51
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
52
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
53
+ * @throws {@link errors!HttpError}: Other non-success status code
54
54
  */
55
55
  protected async putContent(content: any, signal?: AbortSignal): Promise<Response> {
56
56
  const headers = new Headers();
@@ -62,14 +62,14 @@ export class ETagEndpointBase extends Endpoint implements CachingEndpoint {
62
62
  }
63
63
 
64
64
  /**
65
- * Performs an {@link HttpMethod.Delete} request on the {@link uri}. Sets {@link HttpHeader.IfMatch} if there is a cached {@link HttpHeader.ETag} to detect lost updates.
65
+ * Performs an {@link http!HttpMethod.Delete} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
66
66
  * @param signal Used to cancel the request.
67
- * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
68
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
69
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
70
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
71
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
72
- * @throws {@link HttpError}: Other non-success status code
67
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
68
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
69
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
70
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
71
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
72
+ * @throws {@link errors!HttpError}: Other non-success status code
73
73
  */
74
74
  protected async deleteContent(signal?: AbortSignal): Promise<Response> {
75
75
  const headers = new Headers();
@@ -10,14 +10,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ElementEndpoint = void 0;
13
- const _1 = require(".");
13
+ const ETagEndpointBase_1 = require("./ETagEndpointBase");
14
14
  const http_1 = require("../../http");
15
15
  const errors_1 = require("../../errors");
16
16
  /**
17
17
  * Endpoint for an individual resource.
18
18
  * @typeParam TEntity The type of entity the endpoint represents.
19
19
  */
20
- class ElementEndpoint extends _1.ETagEndpointBase {
20
+ class ElementEndpoint extends ETagEndpointBase_1.ETagEndpointBase {
21
21
  /**
22
22
  * Creates a new element endpoint.
23
23
  * @param referrer The endpoint used to navigate to this one.
@@ -37,10 +37,10 @@ class ElementEndpoint extends _1.ETagEndpointBase {
37
37
  /**
38
38
  * Returns the `TEntity`.
39
39
  * @param signal Used to cancel the request.
40
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
41
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
42
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
43
- * @throws {@link HttpError}: Other non-success status code
40
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
41
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
42
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
43
+ * @throws {@link errors!HttpError}: Other non-success status code
44
44
  */
45
45
  read(signal) {
46
46
  return __awaiter(this, void 0, void 0, function* () {
@@ -50,9 +50,9 @@ class ElementEndpoint extends _1.ETagEndpointBase {
50
50
  /**
51
51
  * Determines whether the element currently exists.
52
52
  * @param signal Used to cancel the request.
53
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
54
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
55
- * @throws {@link HttpError}: Other non-success status code
53
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
54
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
55
+ * @throws {@link errors!HttpError}: Other non-success status code
56
56
  */
57
57
  exists(signal) {
58
58
  return __awaiter(this, void 0, void 0, function* () {
@@ -76,12 +76,12 @@ class ElementEndpoint extends _1.ETagEndpointBase {
76
76
  * @param entity The new `TEntity`.
77
77
  * @param signal Used to cancel the request.
78
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.
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.
80
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
81
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
82
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
83
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
84
- * @throws {@link HttpError}: Other non-success status code
79
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
80
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
81
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
82
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
83
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
84
+ * @throws {@link errors!HttpError}: Other non-success status code
85
85
  */
86
86
  set(entity, signal) {
87
87
  return __awaiter(this, void 0, void 0, function* () {
@@ -103,12 +103,12 @@ class ElementEndpoint extends _1.ETagEndpointBase {
103
103
  * @param entity The `TEntity` data to merge with the existing element.
104
104
  * @param signal Used to cancel the request.
105
105
  * @returns The `TEntity` as returned by the server, possibly with additional fields set. undefined if the server does not respond with a result entity.
106
- * @throws {@link ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
107
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
108
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
109
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
110
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
111
- * @throws {@link HttpError}: Other non-success status code
106
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
107
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
108
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
109
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
110
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
111
+ * @throws {@link errors!HttpError}: Other non-success status code
112
112
  */
113
113
  merge(entity, signal) {
114
114
  return __awaiter(this, void 0, void 0, function* () {
@@ -128,12 +128,12 @@ class ElementEndpoint extends _1.ETagEndpointBase {
128
128
  * @param maxRetries The maximum number of retries to perform for optimistic concurrency before giving up.
129
129
  * @param signal Used to cancel the request.
130
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.
131
- * @throws {@link ConcurrencyError}: The maximum number of retries to perform for optimistic concurrency before giving up.
132
- * @throws {@link BadRequestError}: {@link HttpStatusCode.BadRequest}
133
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
134
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
135
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
136
- * @throws {@link HttpError}: Other non-success status code
131
+ * @throws {@link errors!ConcurrencyError}: The maximum number of retries to perform for optimistic concurrency before giving up.
132
+ * @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
133
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
134
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
135
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
136
+ * @throws {@link errors!HttpError}: Other non-success status code
137
137
  */
138
138
  update(updateAction, maxRetries = 3, signal) {
139
139
  return __awaiter(this, void 0, void 0, function* () {
@@ -160,11 +160,11 @@ class ElementEndpoint extends _1.ETagEndpointBase {
160
160
  /**
161
161
  * Deletes the element.
162
162
  * @param signal Used to cancel the request.
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.
164
- * @throws {@link AuthenticationError}: {@link HttpStatusCode.Unauthorized}
165
- * @throws {@link AuthorizationError}: {@link HttpStatusCode.Forbidden}
166
- * @throws {@link NotFoundError}: {@link HttpStatusCode.NotFound} or {@link HttpStatusCode.Gone}
167
- * @throws {@link HttpError}: Other non-success status code
163
+ * @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link read}. Your changes were rejected to prevent a lost update.
164
+ * @throws {@link errors!AuthenticationError}: {@link http!HttpStatusCode.Unauthorized}
165
+ * @throws {@link errors!AuthorizationError}: {@link http!HttpStatusCode.Forbidden}
166
+ * @throws {@link errors!NotFoundError}: {@link http!HttpStatusCode.NotFound} or {@link http!HttpStatusCode.Gone}
167
+ * @throws {@link errors!HttpError}: Other non-success status code
168
168
  */
169
169
  delete(signal) {
170
170
  return __awaiter(this, void 0, void 0, function* () {
@@ -173,4 +173,4 @@ class ElementEndpoint extends _1.ETagEndpointBase {
173
173
  }
174
174
  }
175
175
  exports.ElementEndpoint = ElementEndpoint;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudEVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWxlbWVudEVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHdCQUFxQztBQUVyQyxxQ0FBb0U7QUFDcEUseUNBQWdEO0FBRWhEOzs7R0FHRztBQUNILE1BQWEsZUFBeUIsU0FBUSxtQkFBZ0I7SUFDMUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWE7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDRyxJQUFJLENBQUMsTUFBb0I7O1lBQzNCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQVUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQztLQUFBO0lBRUQ7Ozs7OztPQU1HO0lBQ0csTUFBTSxDQUFDLE1BQW9COztZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0UsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUsscUJBQWMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxxQkFBYyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxLQUFL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
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudEVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWxlbWVudEVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlEQUFzRDtBQUV0RCxxQ0FBb0U7QUFDcEUseUNBQWdEO0FBRWhEOzs7R0FHRztBQUNILE1BQWEsZUFBeUIsU0FBUSxtQ0FBZ0I7SUFDMUQ7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWE7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDRyxJQUFJLENBQUMsTUFBb0I7O1lBQzNCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQVUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQztLQUFBO0lBRUQ7Ozs7OztPQU1HO0lBQ0csTUFBTSxDQUFDLE1BQW9COztZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0UsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM3QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUsscUJBQWMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxxQkFBYyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxLQUFL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