@opra/client 0.20.3 → 0.22.0

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 (35) hide show
  1. package/browser.js +79 -43
  2. package/cjs/{http/http-client.js → client.js} +42 -27
  3. package/cjs/{http/http-collection-node.js → collection-node.js} +1 -1
  4. package/cjs/{http/http-request-observable.js → http-request-observable.js} +9 -4
  5. package/cjs/{http/http-request.js → http-request.js} +5 -5
  6. package/cjs/{http/http-response.js → http-response.js} +3 -4
  7. package/cjs/index.js +8 -8
  8. package/cjs/{http/http-singleton-node.js → singleton-node.js} +1 -1
  9. package/cjs/types.js +44 -0
  10. package/esm/{http/http-client.js → client.js} +41 -26
  11. package/esm/{http/http-collection-node.js → collection-node.js} +1 -1
  12. package/esm/{http/http-request-observable.js → http-request-observable.js} +9 -4
  13. package/esm/{http/http-request.js → http-request.js} +6 -6
  14. package/esm/{http/http-response.js → http-response.js} +3 -4
  15. package/esm/index.js +8 -8
  16. package/esm/{http/http-singleton-node.js → singleton-node.js} +1 -1
  17. package/esm/types.js +41 -0
  18. package/package.json +2 -2
  19. package/types/{http/http-client.d.ts → client.d.ts} +7 -7
  20. package/types/{http/http-collection-node.d.ts → collection-node.d.ts} +23 -23
  21. package/types/{http/http-request-observable.d.ts → http-request-observable.d.ts} +5 -5
  22. package/types/{http/http-request.d.ts → http-request.d.ts} +24 -22
  23. package/types/{http/http-response.d.ts → http-response.d.ts} +4 -5
  24. package/types/{http/http-service-base.d.ts → http-service-base.d.ts} +1 -1
  25. package/types/index.d.ts +8 -8
  26. package/types/{http/http-singleton-node.d.ts → singleton-node.d.ts} +14 -14
  27. package/types/types.d.ts +111 -0
  28. package/cjs/http/http-types.js +0 -2
  29. package/esm/http/http-types.js +0 -1
  30. package/types/http/http-types.d.ts +0 -57
  31. /package/cjs/{http/batch-request.js → batch-request.js} +0 -0
  32. /package/cjs/{http/http-service-base.js → http-service-base.js} +0 -0
  33. /package/esm/{http/batch-request.js → batch-request.js} +0 -0
  34. /package/esm/{http/http-service-base.js → http-service-base.js} +0 -0
  35. /package/types/{http/batch-request.d.ts → batch-request.d.ts} +0 -0
package/browser.js CHANGED
@@ -6,6 +6,11 @@
6
6
  var __defProp = Object.defineProperty;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
8
 
9
+ // ../../build/client/esm/client.js
10
+ import { lastValueFrom as lastValueFrom2, Observable as Observable2 } from "rxjs";
11
+ import { isReadableStreamLike } from "rxjs/internal/util/isReadableStreamLike";
12
+ import { DocumentFactory, HttpHeaderCodes, HttpParams, isBlob, joinPath } from "@opra/common";
13
+
9
14
  // ../../build/client/esm/client-error.js
10
15
  var ClientError = class extends Error {
11
16
  static {
@@ -24,23 +29,18 @@ var ClientError = class extends Error {
24
29
  }
25
30
  };
26
31
 
27
- // ../../build/client/esm/http/http-client.js
28
- import { lastValueFrom as lastValueFrom2, Observable as Observable2 } from "rxjs";
29
- import { isReadableStreamLike } from "rxjs/internal/util/isReadableStreamLike";
30
- import { DocumentFactory, HttpHeaderCodes, HttpHeaders as HttpHeaders3, HttpParams, isBlob, joinPath } from "@opra/common";
31
-
32
32
  // ../../build/client/esm/constants.js
33
33
  var JSON_CONTENT_TYPE_PATTERN = /^application\/([\w-]+\+)?\bjson\b/i;
34
34
  var TEXT_CONTENT_TYPE_PATTERN = /^text\/.*$/i;
35
35
  var FORMDATA_CONTENT_TYPE_PATTERN = /^multipart\/\bform-data\b/i;
36
36
  var kHttpClientContext = Symbol("kContext");
37
37
 
38
- // ../../build/client/esm/http/http-request-observable.js
38
+ // ../../build/client/esm/http-request-observable.js
39
39
  import { lastValueFrom, Observable } from "rxjs";
40
40
  import { uid } from "@opra/common";
41
41
 
42
- // ../../build/client/esm/http/http-request.js
43
- import { HttpHeaders, OpraURL } from "@opra/common";
42
+ // ../../build/client/esm/http-request.js
43
+ import { OpraURL } from "@opra/common";
44
44
  var directCopyProperties = [
45
45
  "cache",
46
46
  "credentials",
@@ -61,7 +61,7 @@ var HttpRequest = class _HttpRequest {
61
61
  this.cache = init?.cache || "default";
62
62
  this.credentials = init?.credentials || "same-origin";
63
63
  this.destination = init?.destination || "";
64
- this.headers = new HttpHeaders(init?.headers);
64
+ this.headers = init?.headers instanceof Headers ? init.headers : new Headers(init?.headers);
65
65
  this.integrity = init?.integrity || "";
66
66
  this.keepalive = init?.keepalive ?? false;
67
67
  this.method = (init?.method || "GET").toUpperCase();
@@ -105,7 +105,7 @@ var HttpRequest = class _HttpRequest {
105
105
  this[k] = update[k];
106
106
  });
107
107
  if (update.headers) {
108
- const h = update.headers instanceof HttpHeaders ? update.headers : new HttpHeaders(update.headers);
108
+ const h = update.headers instanceof Headers ? update.headers : new Headers(update.headers);
109
109
  h.forEach((v, k) => {
110
110
  if (k.toLowerCase() === "set-cookie") {
111
111
  this.headers.append(k, v);
@@ -120,7 +120,7 @@ var HttpRequest = class _HttpRequest {
120
120
  this[k] = src[k];
121
121
  });
122
122
  if (src.headers) {
123
- const h = src.headers instanceof HttpHeaders ? src.headers : new HttpHeaders(src.headers);
123
+ const h = src.headers instanceof Headers ? src.headers : new Headers(src.headers);
124
124
  h.forEach((v, k) => {
125
125
  if (k.toLowerCase() === "set-cookie") {
126
126
  this.headers.append(k, v);
@@ -131,7 +131,24 @@ var HttpRequest = class _HttpRequest {
131
131
  }
132
132
  };
133
133
 
134
- // ../../build/client/esm/http/http-request-observable.js
134
+ // ../../build/client/esm/types.js
135
+ var HttpObserveType;
136
+ (function(HttpObserveType2) {
137
+ HttpObserveType2["Response"] = "response";
138
+ HttpObserveType2["Body"] = "body";
139
+ HttpObserveType2["Events"] = "events";
140
+ })(HttpObserveType || (HttpObserveType = {}));
141
+ var HttpEventType;
142
+ (function(HttpEventType2) {
143
+ HttpEventType2["Sent"] = "sent";
144
+ HttpEventType2["UploadProgress"] = "upload-progress";
145
+ HttpEventType2["ResponseHeader"] = "response-header";
146
+ HttpEventType2["DownloadProgress"] = "download-progress";
147
+ HttpEventType2["Response"] = "response";
148
+ HttpEventType2["Custom"] = "custom";
149
+ })(HttpEventType || (HttpEventType = {}));
150
+
151
+ // ../../build/client/esm/http-request-observable.js
135
152
  var kRequest = Symbol("kRequest");
136
153
  var HttpRequestObservable = class extends Observable {
137
154
  static {
@@ -139,14 +156,18 @@ var HttpRequestObservable = class extends Observable {
139
156
  }
140
157
  constructor(context, options) {
141
158
  super((subscriber) => {
142
- context.send(options?.observe || "body", this[kRequest]).subscribe(subscriber);
159
+ context.send(options?.observe || HttpObserveType.Body, this[kRequest]).subscribe(subscriber);
143
160
  });
144
161
  this[kHttpClientContext] = context;
145
162
  this[kRequest] = new HttpRequest(options?.http);
146
163
  this.contentId = uid(6);
147
164
  }
148
165
  header(name, value) {
149
- this[kRequest].headers.append(name, value);
166
+ const headers = this[kRequest].headers;
167
+ if (Array.isArray(value))
168
+ value.forEach((v) => headers.append(name, String(v)));
169
+ else
170
+ headers.append(name, value);
150
171
  return this;
151
172
  }
152
173
  param(name, value) {
@@ -154,7 +175,7 @@ var HttpRequestObservable = class extends Observable {
154
175
  return this;
155
176
  }
156
177
  async fetch(observe) {
157
- return lastValueFrom(this[kHttpClientContext].send(observe || "body", this[kRequest]));
178
+ return lastValueFrom(this[kHttpClientContext].send(observe || HttpObserveType.Body, this[kRequest]));
158
179
  }
159
180
  with(cb) {
160
181
  cb(this);
@@ -164,7 +185,7 @@ var HttpRequestObservable = class extends Observable {
164
185
  HttpRequestObservable.kContext = kHttpClientContext;
165
186
  HttpRequestObservable.kRequest = kRequest;
166
187
 
167
- // ../../build/client/esm/http/http-collection-node.js
188
+ // ../../build/client/esm/collection-node.js
168
189
  var HttpCollectionNode = class {
169
190
  static {
170
191
  __name(this, "HttpCollectionNode");
@@ -273,29 +294,28 @@ var HttpCollectionNode = class {
273
294
  }
274
295
  };
275
296
 
276
- // ../../build/client/esm/http/http-response.js
277
- import { HttpHeaders as HttpHeaders2 } from "@opra/common";
297
+ // ../../build/client/esm/http-response.js
278
298
  var HttpResponse = class _HttpResponse {
279
299
  static {
280
300
  __name(this, "HttpResponse");
281
301
  }
282
302
  constructor(init) {
283
303
  this.hasBody = false;
284
- this.headers = init?.headers instanceof HttpHeaders2 ? init?.headers : new HttpHeaders2(init?.headers);
304
+ this.headers = init?.headers instanceof Headers ? init?.headers : new Headers(init?.headers);
285
305
  this.status = init?.status || 200;
286
306
  this.statusText = init?.statusText || "OK";
287
307
  this.url = init?.url || null;
288
308
  this.ok = this.status >= 200 && this.status < 300;
289
309
  this.body = init?.body;
290
310
  this.hasBody = init?.body != null || !!init?.hasBody;
291
- this.totalMatches = init?.totalMatches;
311
+ this.totalCount = init?.totalCount;
292
312
  }
293
313
  clone(update) {
294
314
  return new _HttpResponse({ ...this, ...update });
295
315
  }
296
316
  };
297
317
 
298
- // ../../build/client/esm/http/http-singleton-node.js
318
+ // ../../build/client/esm/singleton-node.js
299
319
  var HttpSingletonNode = class {
300
320
  static {
301
321
  __name(this, "HttpSingletonNode");
@@ -357,7 +377,7 @@ var HttpSingletonNode = class {
357
377
  }
358
378
  };
359
379
 
360
- // ../../build/client/esm/http/http-client.js
380
+ // ../../build/client/esm/client.js
361
381
  var kAssets = Symbol("kAssets");
362
382
  var OpraHttpClient = class {
363
383
  static {
@@ -375,7 +395,7 @@ var OpraHttpClient = class {
375
395
  });
376
396
  this.defaults = {
377
397
  ...options?.defaults,
378
- headers: options?.defaults?.headers instanceof HttpHeaders3 ? options?.defaults?.headers : new HttpHeaders3(options?.defaults?.headers),
398
+ headers: options?.defaults?.headers instanceof Headers ? options?.defaults?.headers : new Headers(options?.defaults?.headers),
379
399
  params: options?.defaults?.params instanceof HttpParams ? options?.defaults?.params : new HttpParams(options?.defaults?.params)
380
400
  };
381
401
  }
@@ -389,10 +409,10 @@ var OpraHttpClient = class {
389
409
  if (promise) {
390
410
  return promise;
391
411
  }
392
- this[kAssets].metadataPromise = promise = lastValueFrom2(this._sendRequest("body", new HttpRequest({
412
+ this[kAssets].metadataPromise = promise = lastValueFrom2(this._sendRequest(HttpObserveType.Body, new HttpRequest({
393
413
  method: "GET",
394
414
  url: "$metadata",
395
- headers: new HttpHeaders3({ "accept": "application/json" })
415
+ headers: new Headers({ "accept": "application/json" })
396
416
  })));
397
417
  return await promise.then(async (body) => {
398
418
  const api = await DocumentFactory.createDocument(body);
@@ -463,12 +483,12 @@ var OpraHttpClient = class {
463
483
  } else if (Buffer.isBuffer(request.body)) {
464
484
  contentType = "application/octet-stream";
465
485
  body = request.body;
466
- request.headers.set("Content-Size", request.body.length);
486
+ request.headers.set("Content-Size", String(request.body.length));
467
487
  delete request.duplex;
468
488
  } else if (isBlob(request.body)) {
469
489
  contentType = request.body.type || "application/octet-stream";
470
490
  body = request.body;
471
- request.headers.set("Content-Size", request.body.length);
491
+ request.headers.set("Content-Size", String(request.body.length));
472
492
  delete request.duplex;
473
493
  } else {
474
494
  contentType = "application/json";
@@ -489,9 +509,13 @@ var OpraHttpClient = class {
489
509
  await interceptor(ctx, request);
490
510
  }
491
511
  }
492
- if (observe === "events")
493
- subscriber.next({ event: "sent", request });
494
- const response = await this._fetch(url, { ...request, headers: request.headers.toObject() });
512
+ if (observe === HttpObserveType.Events)
513
+ subscriber.next({
514
+ observe,
515
+ request,
516
+ event: HttpEventType.Sent
517
+ });
518
+ const response = await this._fetch(url, request);
495
519
  await this._handleResponse(observe, subscriber, request, response);
496
520
  })().catch((error) => subscriber.error(error));
497
521
  });
@@ -503,8 +527,8 @@ var OpraHttpClient = class {
503
527
  return new HttpResponse(init);
504
528
  }
505
529
  async _handleResponse(observe, subscriber, request, fetchResponse, ctx) {
506
- const headers = new HttpHeaders3(fetchResponse.headers);
507
- if (observe === "events") {
530
+ const headers = fetchResponse.headers;
531
+ if (observe === HttpObserveType.Events) {
508
532
  const response2 = this._createResponse({
509
533
  url: fetchResponse.url,
510
534
  headers,
@@ -512,17 +536,22 @@ var OpraHttpClient = class {
512
536
  statusText: fetchResponse.statusText,
513
537
  hasBody: !!fetchResponse.body
514
538
  });
515
- subscriber.next({ event: "headers-received", request, response: response2 });
539
+ subscriber.next({
540
+ observe,
541
+ request,
542
+ event: HttpEventType.ResponseHeader,
543
+ response: response2
544
+ });
516
545
  }
517
546
  let body;
518
547
  if (fetchResponse.body) {
519
- if (JSON_CONTENT_TYPE_PATTERN.test(fetchResponse.headers.get("Content-Type") || "")) {
548
+ if (JSON_CONTENT_TYPE_PATTERN.test(headers.get("Content-Type") || "")) {
520
549
  body = await fetchResponse.json();
521
550
  if (typeof body === "string")
522
551
  body = JSON.parse(body);
523
- } else if (TEXT_CONTENT_TYPE_PATTERN.test(fetchResponse.headers.get("Content-Type") || ""))
552
+ } else if (TEXT_CONTENT_TYPE_PATTERN.test(headers.get("Content-Type") || ""))
524
553
  body = await fetchResponse.text();
525
- else if (FORMDATA_CONTENT_TYPE_PATTERN.test(fetchResponse.headers.get("Content-Type") || ""))
554
+ else if (FORMDATA_CONTENT_TYPE_PATTERN.test(headers.get("Content-Type") || ""))
526
555
  body = await fetchResponse.formData();
527
556
  else {
528
557
  const buf = await fetchResponse.arrayBuffer();
@@ -530,7 +559,7 @@ var OpraHttpClient = class {
530
559
  body = buf;
531
560
  }
532
561
  }
533
- if (observe === "body" && fetchResponse.status >= 400 && fetchResponse.status < 600) {
562
+ if (observe === HttpObserveType.Body && fetchResponse.status >= 400 && fetchResponse.status < 600) {
534
563
  subscriber.error(new ClientError({
535
564
  message: fetchResponse.status + " " + fetchResponse.statusText,
536
565
  status: fetchResponse.status,
@@ -546,8 +575,8 @@ var OpraHttpClient = class {
546
575
  statusText: fetchResponse.statusText,
547
576
  body
548
577
  };
549
- if (fetchResponse.headers.has(HttpHeaderCodes.X_Opra_Total_Matches))
550
- responseInit.totalMatches = parseInt(fetchResponse.headers.get(HttpHeaderCodes.X_Opra_Total_Matches), 10);
578
+ if (fetchResponse.headers.has(HttpHeaderCodes.X_Total_Count))
579
+ responseInit.totalCount = parseInt(fetchResponse.headers.get(HttpHeaderCodes.X_Total_Count), 10);
551
580
  const response = this._createResponse(responseInit);
552
581
  if (ctx) {
553
582
  const responseInterceptors = [
@@ -558,11 +587,16 @@ var OpraHttpClient = class {
558
587
  await interceptor(ctx, observe, request);
559
588
  }
560
589
  }
561
- if (observe === "body") {
590
+ if (observe === HttpObserveType.Body) {
562
591
  subscriber.next(body);
563
592
  } else {
564
- if (observe === "events")
565
- subscriber.next({ event: "response", request, response });
593
+ if (observe === HttpObserveType.Events)
594
+ subscriber.next({
595
+ observe,
596
+ request,
597
+ event: HttpEventType.Response,
598
+ response
599
+ });
566
600
  else
567
601
  subscriber.next(response);
568
602
  }
@@ -571,7 +605,7 @@ var OpraHttpClient = class {
571
605
  };
572
606
  OpraHttpClient.kAssets = kAssets;
573
607
 
574
- // ../../build/client/esm/http/http-service-base.js
608
+ // ../../build/client/esm/http-service-base.js
575
609
  var HttpServiceBase = class {
576
610
  static {
577
611
  __name(this, "HttpServiceBase");
@@ -583,6 +617,8 @@ var HttpServiceBase = class {
583
617
  export {
584
618
  ClientError,
585
619
  HttpCollectionNode,
620
+ HttpEventType,
621
+ HttpObserveType,
586
622
  HttpRequest,
587
623
  HttpRequestObservable,
588
624
  HttpResponse,
@@ -4,12 +4,13 @@ exports.OpraHttpClient = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const isReadableStreamLike_1 = require("rxjs/internal/util/isReadableStreamLike");
6
6
  const common_1 = require("@opra/common");
7
- const client_error_js_1 = require("../client-error.js");
8
- const constants_js_1 = require("../constants.js");
9
- const http_collection_node_js_1 = require("./http-collection-node.js");
7
+ const client_error_js_1 = require("./client-error.js");
8
+ const collection_node_js_1 = require("./collection-node.js");
9
+ const constants_js_1 = require("./constants.js");
10
10
  const http_request_js_1 = require("./http-request.js");
11
11
  const http_response_js_1 = require("./http-response.js");
12
- const http_singleton_node_js_1 = require("./http-singleton-node.js");
12
+ const singleton_node_js_1 = require("./singleton-node.js");
13
+ const types_js_1 = require("./types.js");
13
14
  const kAssets = Symbol('kAssets');
14
15
  class OpraHttpClient {
15
16
  constructor(serviceUrl, options) {
@@ -24,8 +25,8 @@ class OpraHttpClient {
24
25
  });
25
26
  this.defaults = {
26
27
  ...options?.defaults,
27
- headers: options?.defaults?.headers instanceof common_1.HttpHeaders
28
- ? options?.defaults?.headers : new common_1.HttpHeaders(options?.defaults?.headers),
28
+ headers: options?.defaults?.headers instanceof Headers
29
+ ? options?.defaults?.headers : new Headers(options?.defaults?.headers),
29
30
  params: options?.defaults?.params instanceof common_1.HttpParams
30
31
  ? options?.defaults?.params : new common_1.HttpParams(options?.defaults?.params)
31
32
  };
@@ -40,10 +41,10 @@ class OpraHttpClient {
40
41
  if (promise) {
41
42
  return promise;
42
43
  }
43
- this[kAssets].metadataPromise = promise = (0, rxjs_1.lastValueFrom)(this._sendRequest('body', new http_request_js_1.HttpRequest({
44
+ this[kAssets].metadataPromise = promise = (0, rxjs_1.lastValueFrom)(this._sendRequest(types_js_1.HttpObserveType.Body, new http_request_js_1.HttpRequest({
44
45
  method: 'GET',
45
46
  url: '$metadata',
46
- headers: new common_1.HttpHeaders({ 'accept': 'application/json' })
47
+ headers: new Headers({ 'accept': 'application/json' })
47
48
  })));
48
49
  return await promise
49
50
  .then(async (body) => {
@@ -78,7 +79,7 @@ class OpraHttpClient {
78
79
  // ],
79
80
  responseInterceptors: []
80
81
  };
81
- return new http_collection_node_js_1.HttpCollectionNode(ctx);
82
+ return new collection_node_js_1.HttpCollectionNode(ctx);
82
83
  }
83
84
  singleton(resourceName) {
84
85
  // If name argument is a class, we extract name from the class
@@ -97,7 +98,7 @@ class OpraHttpClient {
97
98
  // ],
98
99
  responseInterceptors: []
99
100
  };
100
- return new http_singleton_node_js_1.HttpSingletonNode(ctx);
101
+ return new singleton_node_js_1.HttpSingletonNode(ctx);
101
102
  }
102
103
  _sendRequest(observe, request, ctx) {
103
104
  return new rxjs_1.Observable(subscriber => {
@@ -121,13 +122,13 @@ class OpraHttpClient {
121
122
  else if (Buffer.isBuffer(request.body)) {
122
123
  contentType = 'application/octet-stream';
123
124
  body = request.body;
124
- request.headers.set('Content-Size', request.body.length);
125
+ request.headers.set('Content-Size', String(request.body.length));
125
126
  delete request.duplex;
126
127
  }
127
128
  else if ((0, common_1.isBlob)(request.body)) {
128
129
  contentType = request.body.type || 'application/octet-stream';
129
130
  body = request.body;
130
- request.headers.set('Content-Size', request.body.length);
131
+ request.headers.set('Content-Size', String(request.body.length));
131
132
  delete request.duplex;
132
133
  }
133
134
  else {
@@ -149,9 +150,13 @@ class OpraHttpClient {
149
150
  await interceptor(ctx, request);
150
151
  }
151
152
  }
152
- if (observe === 'events')
153
- subscriber.next({ event: 'sent', request });
154
- const response = await this._fetch(url, { ...request, headers: request.headers.toObject() });
153
+ if (observe === types_js_1.HttpObserveType.Events)
154
+ subscriber.next({
155
+ observe,
156
+ request,
157
+ event: types_js_1.HttpEventType.Sent,
158
+ });
159
+ const response = await this._fetch(url, request);
155
160
  await this._handleResponse(observe, subscriber, request, response);
156
161
  })().catch(error => subscriber.error(error));
157
162
  });
@@ -163,8 +168,8 @@ class OpraHttpClient {
163
168
  return new http_response_js_1.HttpResponse(init);
164
169
  }
165
170
  async _handleResponse(observe, subscriber, request, fetchResponse, ctx) {
166
- const headers = new common_1.HttpHeaders(fetchResponse.headers);
167
- if (observe === 'events') {
171
+ const headers = fetchResponse.headers;
172
+ if (observe === types_js_1.HttpObserveType.Events) {
168
173
  const response = this._createResponse({
169
174
  url: fetchResponse.url,
170
175
  headers,
@@ -172,18 +177,23 @@ class OpraHttpClient {
172
177
  statusText: fetchResponse.statusText,
173
178
  hasBody: !!fetchResponse.body
174
179
  });
175
- subscriber.next({ event: 'headers-received', request, response });
180
+ subscriber.next({
181
+ observe,
182
+ request,
183
+ event: types_js_1.HttpEventType.ResponseHeader,
184
+ response
185
+ });
176
186
  }
177
187
  let body;
178
188
  if (fetchResponse.body) {
179
- if (constants_js_1.JSON_CONTENT_TYPE_PATTERN.test(fetchResponse.headers.get('Content-Type') || '')) {
189
+ if (constants_js_1.JSON_CONTENT_TYPE_PATTERN.test(headers.get('Content-Type') || '')) {
180
190
  body = await fetchResponse.json();
181
191
  if (typeof body === 'string')
182
192
  body = JSON.parse(body);
183
193
  }
184
- else if (constants_js_1.TEXT_CONTENT_TYPE_PATTERN.test(fetchResponse.headers.get('Content-Type') || ''))
194
+ else if (constants_js_1.TEXT_CONTENT_TYPE_PATTERN.test(headers.get('Content-Type') || ''))
185
195
  body = await fetchResponse.text();
186
- else if (constants_js_1.FORMDATA_CONTENT_TYPE_PATTERN.test(fetchResponse.headers.get('Content-Type') || ''))
196
+ else if (constants_js_1.FORMDATA_CONTENT_TYPE_PATTERN.test(headers.get('Content-Type') || ''))
187
197
  body = await fetchResponse.formData();
188
198
  else {
189
199
  const buf = await fetchResponse.arrayBuffer();
@@ -191,7 +201,7 @@ class OpraHttpClient {
191
201
  body = buf;
192
202
  }
193
203
  }
194
- if (observe === 'body' && fetchResponse.status >= 400 && fetchResponse.status < 600) {
204
+ if (observe === types_js_1.HttpObserveType.Body && fetchResponse.status >= 400 && fetchResponse.status < 600) {
195
205
  subscriber.error(new client_error_js_1.ClientError({
196
206
  message: fetchResponse.status + ' ' + fetchResponse.statusText,
197
207
  status: fetchResponse.status,
@@ -207,8 +217,8 @@ class OpraHttpClient {
207
217
  statusText: fetchResponse.statusText,
208
218
  body
209
219
  };
210
- if (fetchResponse.headers.has(common_1.HttpHeaderCodes.X_Opra_Total_Matches))
211
- responseInit.totalMatches = parseInt(fetchResponse.headers.get(common_1.HttpHeaderCodes.X_Opra_Total_Matches), 10);
220
+ if (fetchResponse.headers.has(common_1.HttpHeaderCodes.X_Total_Count))
221
+ responseInit.totalCount = parseInt(fetchResponse.headers.get(common_1.HttpHeaderCodes.X_Total_Count), 10);
212
222
  const response = this._createResponse(responseInit);
213
223
  if (ctx) {
214
224
  const responseInterceptors = [
@@ -219,12 +229,17 @@ class OpraHttpClient {
219
229
  await interceptor(ctx, observe, request);
220
230
  }
221
231
  }
222
- if (observe === 'body') {
232
+ if (observe === types_js_1.HttpObserveType.Body) {
223
233
  subscriber.next(body);
224
234
  }
225
235
  else {
226
- if (observe === 'events')
227
- subscriber.next({ event: 'response', request, response });
236
+ if (observe === types_js_1.HttpObserveType.Events)
237
+ subscriber.next({
238
+ observe,
239
+ request,
240
+ event: types_js_1.HttpEventType.Response,
241
+ response
242
+ });
228
243
  else
229
244
  subscriber.next(response);
230
245
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpCollectionNode = void 0;
4
- const constants_js_1 = require("../constants.js");
4
+ const constants_js_1 = require("./constants.js");
5
5
  const http_request_observable_js_1 = require("./http-request-observable.js");
6
6
  class HttpCollectionNode {
7
7
  constructor(context) {
@@ -3,20 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpRequestObservable = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const common_1 = require("@opra/common");
6
- const constants_js_1 = require("../constants.js");
6
+ const constants_js_1 = require("./constants.js");
7
7
  const http_request_js_1 = require("./http-request.js");
8
+ const types_js_1 = require("./types.js");
8
9
  const kRequest = Symbol('kRequest');
9
10
  class HttpRequestObservable extends rxjs_1.Observable {
10
11
  constructor(context, options) {
11
12
  super((subscriber) => {
12
- context.send(options?.observe || 'body', this[kRequest]).subscribe((subscriber));
13
+ context.send(options?.observe || types_js_1.HttpObserveType.Body, this[kRequest]).subscribe((subscriber));
13
14
  });
14
15
  this[constants_js_1.kHttpClientContext] = context;
15
16
  this[kRequest] = new http_request_js_1.HttpRequest(options?.http);
16
17
  this.contentId = (0, common_1.uid)(6);
17
18
  }
18
19
  header(name, value) {
19
- this[kRequest].headers.append(name, value);
20
+ const headers = this[kRequest].headers;
21
+ if (Array.isArray(value))
22
+ value.forEach(v => headers.append(name, String(v)));
23
+ else
24
+ headers.append(name, value);
20
25
  return this;
21
26
  }
22
27
  param(name, value) {
@@ -24,7 +29,7 @@ class HttpRequestObservable extends rxjs_1.Observable {
24
29
  return this;
25
30
  }
26
31
  async fetch(observe) {
27
- return (0, rxjs_1.lastValueFrom)(this[constants_js_1.kHttpClientContext].send(observe || 'body', this[kRequest]));
32
+ return (0, rxjs_1.lastValueFrom)(this[constants_js_1.kHttpClientContext].send(observe || types_js_1.HttpObserveType.Body, this[kRequest]));
28
33
  }
29
34
  with(cb) {
30
35
  cb(this);
@@ -10,7 +10,7 @@ class HttpRequest {
10
10
  this.cache = init?.cache || 'default';
11
11
  this.credentials = init?.credentials || 'same-origin';
12
12
  this.destination = init?.destination || '';
13
- this.headers = new common_1.HttpHeaders(init?.headers);
13
+ this.headers = init?.headers instanceof Headers ? init.headers : new Headers(init?.headers);
14
14
  this.integrity = init?.integrity || '';
15
15
  this.keepalive = init?.keepalive ?? false;
16
16
  this.method = (init?.method || 'GET').toUpperCase();
@@ -54,9 +54,9 @@ class HttpRequest {
54
54
  this[k] = update[k];
55
55
  });
56
56
  if (update.headers) {
57
- const h = update.headers instanceof common_1.HttpHeaders
57
+ const h = update.headers instanceof Headers
58
58
  ? update.headers
59
- : new common_1.HttpHeaders(update.headers);
59
+ : new Headers(update.headers);
60
60
  h.forEach((v, k) => {
61
61
  if (k.toLowerCase() === 'set-cookie') {
62
62
  this.headers.append(k, v);
@@ -72,9 +72,9 @@ class HttpRequest {
72
72
  this[k] = src[k];
73
73
  });
74
74
  if (src.headers) {
75
- const h = src.headers instanceof common_1.HttpHeaders
75
+ const h = src.headers instanceof Headers
76
76
  ? src.headers
77
- : new common_1.HttpHeaders(src.headers);
77
+ : new Headers(src.headers);
78
78
  h.forEach((v, k) => {
79
79
  if (k.toLowerCase() === 'set-cookie') {
80
80
  this.headers.append(k, v);
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpResponse = void 0;
4
- const common_1 = require("@opra/common");
5
4
  class HttpResponse {
6
5
  constructor(init) {
7
6
  /**
8
7
  * Returns true if response has body to be received
9
8
  */
10
9
  this.hasBody = false;
11
- this.headers = init?.headers instanceof common_1.HttpHeaders ? init?.headers
12
- : new common_1.HttpHeaders(init?.headers);
10
+ this.headers = init?.headers instanceof Headers ? init?.headers
11
+ : new Headers(init?.headers);
13
12
  this.status = init?.status || 200;
14
13
  this.statusText = init?.statusText || 'OK';
15
14
  this.url = init?.url || null;
16
15
  this.ok = this.status >= 200 && this.status < 300;
17
16
  this.body = init?.body;
18
17
  this.hasBody = init?.body != null || !!init?.hasBody;
19
- this.totalMatches = init?.totalMatches;
18
+ this.totalCount = init?.totalCount;
20
19
  }
21
20
  clone(update) {
22
21
  return new HttpResponse({ ...this, ...update });
package/cjs/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./client.js"), exports);
4
5
  tslib_1.__exportStar(require("./client-error.js"), exports);
5
- tslib_1.__exportStar(require("./http/http-client.js"), exports);
6
- tslib_1.__exportStar(require("./http/http-collection-node.js"), exports);
7
- tslib_1.__exportStar(require("./http/http-request.js"), exports);
8
- tslib_1.__exportStar(require("./http/http-request-observable.js"), exports);
9
- tslib_1.__exportStar(require("./http/http-response.js"), exports);
10
- tslib_1.__exportStar(require("./http/http-service-base.js"), exports);
11
- tslib_1.__exportStar(require("./http/http-singleton-node.js"), exports);
12
- tslib_1.__exportStar(require("./http/http-types.js"), exports);
6
+ tslib_1.__exportStar(require("./collection-node.js"), exports);
7
+ tslib_1.__exportStar(require("./http-request.js"), exports);
8
+ tslib_1.__exportStar(require("./http-request-observable.js"), exports);
9
+ tslib_1.__exportStar(require("./http-response.js"), exports);
10
+ tslib_1.__exportStar(require("./http-service-base.js"), exports);
11
+ tslib_1.__exportStar(require("./singleton-node.js"), exports);
12
+ tslib_1.__exportStar(require("./types.js"), exports);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpSingletonNode = void 0;
4
- const constants_js_1 = require("../constants.js");
4
+ const constants_js_1 = require("./constants.js");
5
5
  const http_request_observable_js_1 = require("./http-request-observable.js");
6
6
  class HttpSingletonNode {
7
7
  constructor(context) {