@equinor/fusion-framework-module-http 8.0.2 → 8.0.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.
Files changed (111) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/esm/configurator.js +7 -1
  3. package/dist/esm/configurator.js.map +1 -1
  4. package/dist/esm/errors/ClientNotFoundException.js +10 -0
  5. package/dist/esm/errors/ClientNotFoundException.js.map +1 -0
  6. package/dist/esm/errors/HttpJsonResponseError.js +26 -0
  7. package/dist/esm/errors/HttpJsonResponseError.js.map +1 -0
  8. package/dist/esm/errors/HttpResponseError.js +19 -0
  9. package/dist/esm/errors/HttpResponseError.js.map +1 -0
  10. package/dist/esm/errors/ServerSentEventResponseError.js +25 -0
  11. package/dist/esm/errors/ServerSentEventResponseError.js.map +1 -0
  12. package/dist/esm/errors/index.js +5 -0
  13. package/dist/esm/errors/index.js.map +1 -0
  14. package/dist/esm/index.js +2 -1
  15. package/dist/esm/index.js.map +1 -1
  16. package/dist/esm/lib/client/client-msal.js +1 -0
  17. package/dist/esm/lib/client/client-msal.js.map +1 -1
  18. package/dist/esm/lib/client/client.js +40 -4
  19. package/dist/esm/lib/client/client.js.map +1 -1
  20. package/dist/esm/lib/operators/{http-request-handler.js → HttpRequestHandler.js} +3 -3
  21. package/dist/esm/lib/operators/HttpRequestHandler.js.map +1 -0
  22. package/dist/esm/lib/operators/{http-response-handler.js → HttpResponseHandler.js} +2 -2
  23. package/dist/esm/lib/operators/HttpResponseHandler.js.map +1 -0
  24. package/dist/esm/lib/operators/{process-operators.js → ProcessOperators.js} +4 -1
  25. package/dist/esm/lib/operators/ProcessOperators.js.map +1 -0
  26. package/dist/esm/lib/operators/{capitalize-request-method.operator.js → capitalize-request-method-operator.js} +4 -2
  27. package/dist/esm/lib/operators/capitalize-request-method-operator.js.map +1 -0
  28. package/dist/esm/lib/operators/{fetch-request.schema.js → fetch-request.schemas.js} +1 -1
  29. package/dist/esm/lib/operators/fetch-request.schemas.js.map +1 -0
  30. package/dist/esm/lib/operators/index.js +6 -6
  31. package/dist/esm/lib/operators/index.js.map +1 -1
  32. package/dist/esm/lib/operators/{request-validation.operator.js → request-validation-operator.js} +3 -2
  33. package/dist/esm/lib/operators/{request-validation.operator.js.map → request-validation-operator.js.map} +1 -1
  34. package/dist/esm/lib/operators/{sse.operator.js → sse-map.operator.js} +5 -3
  35. package/dist/esm/lib/operators/sse-map.operator.js.map +1 -0
  36. package/dist/esm/lib/selectors/blob-selector.js +3 -2
  37. package/dist/esm/lib/selectors/blob-selector.js.map +1 -1
  38. package/dist/esm/lib/selectors/{sse-selector.js → create-sse-selector.js} +20 -5
  39. package/dist/esm/lib/selectors/create-sse-selector.js.map +1 -0
  40. package/dist/esm/lib/selectors/index.js +1 -1
  41. package/dist/esm/lib/selectors/index.js.map +1 -1
  42. package/dist/esm/lib/selectors/json-selector.js +1 -1
  43. package/dist/esm/lib/selectors/json-selector.js.map +1 -1
  44. package/dist/esm/module.js +4 -1
  45. package/dist/esm/module.js.map +1 -1
  46. package/dist/esm/provider.js +14 -8
  47. package/dist/esm/provider.js.map +1 -1
  48. package/dist/esm/version.js +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/dist/types/configurator.d.ts +5 -1
  51. package/dist/types/errors/ClientNotFoundException.d.ts +9 -0
  52. package/dist/types/errors/HttpJsonResponseError.d.ts +23 -0
  53. package/dist/types/errors/HttpResponseError.d.ts +15 -0
  54. package/dist/types/errors/ServerSentEventResponseError.d.ts +23 -0
  55. package/dist/types/errors/index.d.ts +4 -0
  56. package/dist/types/index.d.ts +2 -1
  57. package/dist/types/lib/client/client-msal.d.ts +1 -0
  58. package/dist/types/lib/client/client.d.ts +33 -3
  59. package/dist/types/lib/operators/{http-request-handler.d.ts → HttpRequestHandler.d.ts} +1 -1
  60. package/dist/types/lib/operators/{http-response-handler.d.ts → HttpResponseHandler.d.ts} +1 -1
  61. package/dist/types/lib/operators/index.d.ts +6 -6
  62. package/dist/types/lib/operators/{sse.operator.d.ts → sse-map.operator.d.ts} +1 -1
  63. package/dist/types/lib/selectors/index.d.ts +2 -2
  64. package/dist/types/provider.d.ts +7 -8
  65. package/dist/types/version.d.ts +1 -1
  66. package/package.json +7 -7
  67. package/src/configurator.ts +7 -1
  68. package/src/errors/ClientNotFoundException.ts +9 -0
  69. package/src/errors/HttpJsonResponseError.ts +31 -0
  70. package/src/errors/HttpResponseError.ts +21 -0
  71. package/src/errors/ServerSentEventResponseError.ts +30 -0
  72. package/src/errors/index.ts +4 -0
  73. package/src/index.ts +2 -1
  74. package/src/lib/client/client-msal.ts +1 -0
  75. package/src/lib/client/client.ts +40 -4
  76. package/src/lib/operators/{http-request-handler.ts → HttpRequestHandler.ts} +2 -2
  77. package/src/lib/operators/{http-response-handler.ts → HttpResponseHandler.ts} +1 -1
  78. package/src/lib/operators/{process-operators.ts → ProcessOperators.ts} +3 -0
  79. package/src/lib/operators/{capitalize-request-method.operator.ts → capitalize-request-method-operator.ts} +3 -1
  80. package/src/lib/operators/index.ts +6 -6
  81. package/src/lib/operators/{request-validation.operator.ts → request-validation-operator.ts} +2 -1
  82. package/src/lib/operators/{sse.operator.ts → sse-map.operator.ts} +2 -1
  83. package/src/lib/operators/types.ts +1 -0
  84. package/src/lib/selectors/blob-selector.ts +3 -2
  85. package/src/lib/selectors/{sse-selector.ts → create-sse-selector.ts} +34 -17
  86. package/src/lib/selectors/index.ts +2 -2
  87. package/src/lib/selectors/json-selector.ts +1 -1
  88. package/src/module.ts +4 -1
  89. package/src/provider.ts +14 -8
  90. package/src/version.ts +1 -1
  91. package/tests/HttpClient.test.ts +2 -2
  92. package/tests/operators.test.ts +5 -1
  93. package/tests/sse.selector.test.ts +34 -21
  94. package/vitest.config.ts +1 -1
  95. package/dist/esm/errors.js +0 -58
  96. package/dist/esm/errors.js.map +0 -1
  97. package/dist/esm/lib/operators/capitalize-request-method.operator.js.map +0 -1
  98. package/dist/esm/lib/operators/fetch-request.schema.js.map +0 -1
  99. package/dist/esm/lib/operators/http-request-handler.js.map +0 -1
  100. package/dist/esm/lib/operators/http-response-handler.js.map +0 -1
  101. package/dist/esm/lib/operators/process-operators.js.map +0 -1
  102. package/dist/esm/lib/operators/sse.operator.js.map +0 -1
  103. package/dist/esm/lib/selectors/sse-selector.js.map +0 -1
  104. package/dist/types/errors.d.ts +0 -51
  105. package/src/errors.ts +0 -69
  106. package/dist/types/lib/operators/{process-operators.d.ts → ProcessOperators.d.ts} +0 -0
  107. package/dist/types/lib/operators/{capitalize-request-method.operator.d.ts → capitalize-request-method-operator.d.ts} +0 -0
  108. package/dist/types/lib/operators/{fetch-request.schema.d.ts → fetch-request.schemas.d.ts} +26 -26
  109. /package/dist/types/lib/operators/{request-validation.operator.d.ts → request-validation-operator.d.ts} +0 -0
  110. /package/dist/types/lib/selectors/{sse-selector.d.ts → create-sse-selector.d.ts} +0 -0
  111. /package/src/lib/operators/{fetch-request.schema.ts → fetch-request.schemas.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Change Log
2
2
 
3
+ ## 8.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 80c3e4a: Internal: resolve `noConfusingVoidType` Biome warning on the `ProcessOperator` callback type with an explanatory `biome-ignore` comment, since the `| void` relies on TypeScript's void-callback leniency for operator functions that don't transform the request. No public API or behavior change.
8
+ - 80c3e4a: Internal: add required fusion-lint intent comments explaining `as unknown as T` casts in the HTTP client configurator, provider, and low-level fetch client. No behavior change.
9
+ - 80c3e4a: Internal: resolve remaining `fusion-lint` warnings across the module (TSDoc, intent comments, `no-todo-without-issue`). Also reorganizes the error classes into `src/errors/` (one class per file, `HttpResponseError.ts`, `HttpJsonResponseError.ts`, `ServerSentEventResponseError.ts`, `ClientNotFoundException.ts`) and additionally exposes them as an `Errors` namespace:
10
+
11
+ ```typescript
12
+ // Still works, unchanged
13
+ import { ClientNotFoundException } from '@equinor/fusion-framework-module-http';
14
+
15
+ // New alternative
16
+ import { Errors } from '@equinor/fusion-framework-module-http';
17
+ new Errors.ClientNotFoundException(...);
18
+ ```
19
+
20
+ The existing named exports and the `./errors` subpath export (`dist/esm/errors/index.js` / `dist/types/errors/index.d.ts`) both continue to work — no breaking change for consumers.
21
+
22
+ ## 8.0.3
23
+
24
+ ### Patch Changes
25
+
26
+ - @equinor/fusion-framework-module-msal@10.0.0
27
+
3
28
  ## 8.0.2
4
29
 
5
30
  ### Patch Changes
@@ -2,7 +2,11 @@ import { capitalizeRequestMethodOperator, requestValidationOperator, HttpRequest
2
2
  /** @inheritdoc */
3
3
  export class HttpClientConfigurator {
4
4
  _clients = {};
5
- /** Gets a shallow clone of all named client configurations. */
5
+ /**
6
+ * Gets a shallow clone of all named client configurations.
7
+ *
8
+ * @returns A shallow clone of the named client configurations.
9
+ */
6
10
  get clients() {
7
11
  return { ...this._clients };
8
12
  }
@@ -30,6 +34,8 @@ export class HttpClientConfigurator {
30
34
  configureClient(name, args) {
31
35
  const argFn = typeof args === 'string' ? { baseUri: args } : args;
32
36
  const options = typeof argFn === 'function' ? { onCreate: argFn } : argFn;
37
+ // `options` is `HttpClientOptions<T>` (this call's generic), but `_clients` is keyed by the
38
+ // configurator's own `TClient` — callers are expected to keep the two in sync.
33
39
  this._clients[name] = {
34
40
  ...this._clients[name],
35
41
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAmJzB,kBAAkB;AAClB,MAAM,OAAO,sBAAsB;IAGvB,QAAQ,GAA+C,EAAE,CAAC;IAEpE,+DAA+D;IAC/D,IAAW,OAAO;QAChB,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,oFAAoF;IAC3E,qBAAqB,CAAiC;IAE/D,iFAAiF;IACxE,yBAAyB,GAAG,IAAI,kBAAkB,CAAqC;QAC9F,2CAA2C;QAC3C,mBAAmB,EAAE,+BAA+B,EAAE;QACtD,8BAA8B;QAC9B,oBAAoB,EAAE,yBAAyB,EAAE;KAClD,CAAC,CAAC;IAEH;;;OAGG;IACH,YAAY,MAAsC;QAChD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,IAAY;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;IAClB,eAAe,CACb,IAAY,EACZ,IAAsE;QAEtE,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,IAAI,EAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;YACpB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAI,OAAiD;SACtD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAmJzB,kBAAkB;AAClB,MAAM,OAAO,sBAAsB;IAGvB,QAAQ,GAA+C,EAAE,CAAC;IAEpE;;;;OAIG;IACH,IAAW,OAAO;QAChB,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,oFAAoF;IAC3E,qBAAqB,CAAiC;IAE/D,iFAAiF;IACxE,yBAAyB,GAAG,IAAI,kBAAkB,CAAqC;QAC9F,2CAA2C;QAC3C,mBAAmB,EAAE,+BAA+B,EAAE;QACtD,8BAA8B;QAC9B,oBAAoB,EAAE,yBAAyB,EAAE;KAClD,CAAC,CAAC;IAEH;;;OAGG;IACH,YAAY,MAAsC;QAChD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACtC,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,IAAY;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;IAClB,eAAe,CACb,IAAY,EACZ,IAAsE;QAEtE,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,EAAE,OAAO,EAAE,IAAI,EAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,4FAA4F;QAC5F,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;YACpB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAI,OAAiD;SACtD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Thrown when `createClient(name)` is called with an unknown client key.
3
+ *
4
+ * This is only used when the provided string is neither a registered client name
5
+ * nor an absolute `http:` or `https:` URL.
6
+ */
7
+ export class ClientNotFoundException extends Error {
8
+ }
9
+ export default ClientNotFoundException;
10
+ //# sourceMappingURL=ClientNotFoundException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientNotFoundException.js","sourceRoot":"","sources":["../../../src/errors/ClientNotFoundException.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG;AAErD,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { HttpResponseError } from './HttpResponseError.js';
2
+ /**
3
+ * Represents an error that occurs when handling a JSON response in an HTTP request.
4
+ * Extends the base `HttpResponseError` class.
5
+ *
6
+ * @template TType - The type of the data associated with the error.
7
+ * @template TResponse - The type of the HTTP response.
8
+ */
9
+ export class HttpJsonResponseError extends HttpResponseError {
10
+ static Name = 'HttpJsonResponseError';
11
+ data;
12
+ /**
13
+ * Creates a new instance of `HttpJsonResponseError`.
14
+ *
15
+ * @param message - The error message.
16
+ * @param response - The HTTP response associated with the error.
17
+ * @param options - Additional options for the error, including the associated data.
18
+ */
19
+ constructor(message, response, options) {
20
+ super(message, response, options);
21
+ this.name = HttpJsonResponseError.Name;
22
+ this.data = options?.data;
23
+ }
24
+ }
25
+ export default HttpJsonResponseError;
26
+ //# sourceMappingURL=HttpJsonResponseError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpJsonResponseError.js","sourceRoot":"","sources":["../../../src/errors/HttpJsonResponseError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,OAAO,qBAGX,SAAQ,iBAA4B;IACpC,MAAM,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtB,IAAI,CAAS;IAE7B;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,QAAmB,EAAE,OAAyC;QACzF,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;IAC5B,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Represents an error that occurs when handling an HTTP response.
3
+ * @template TResponse The type of the HTTP response.
4
+ */
5
+ export class HttpResponseError extends Error {
6
+ response;
7
+ static Name = 'HttpResponseError';
8
+ /**
9
+ * @param message - The error message.
10
+ * @param response - The HTTP response associated with the error.
11
+ * @param options - Additional error options.
12
+ */
13
+ constructor(message, response, options) {
14
+ super(message, options);
15
+ this.response = response;
16
+ }
17
+ }
18
+ export default HttpResponseError;
19
+ //# sourceMappingURL=HttpResponseError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpResponseError.js","sourceRoot":"","sources":["../../../src/errors/HttpResponseError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,iBAAwC,SAAQ,KAAK;IAS9C,QAAQ;IAR1B,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC;;;;OAIG;IACH,YACE,OAAe,EACC,QAAmB,EACnC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAHR,QAAQ;IAI1B,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { HttpResponseError } from './HttpResponseError.js';
2
+ /**
3
+ * Represents an error that occurs when handling a server-sent event (SSE) HTTP response.
4
+ *
5
+ * @template TType - The type of additional data associated with the error.
6
+ * @template TResponse - The type of the HTTP response object.
7
+ *
8
+ * @extends HttpResponseError<TResponse>
9
+ */
10
+ export class ServerSentEventResponseError extends HttpResponseError {
11
+ static Name = 'ServerSentEventResponseError';
12
+ /**
13
+ * Creates a new instance of the error.
14
+ *
15
+ * @param message - The error message describing the cause of the error.
16
+ * @param response - The HTTP response associated with the error.
17
+ * @param options - Optional error options, which may include additional data of type `TType`.
18
+ */
19
+ constructor(message, response, options) {
20
+ super(message, response, options);
21
+ this.name = ServerSentEventResponseError.Name;
22
+ }
23
+ }
24
+ export default ServerSentEventResponseError;
25
+ //# sourceMappingURL=ServerSentEventResponseError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerSentEventResponseError.js","sourceRoot":"","sources":["../../../src/errors/ServerSentEventResponseError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,OAAO,4BAGX,SAAQ,iBAA4B;IACpC,MAAM,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAE7C;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,QAAmB,EAAE,OAAyC;QACzF,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC,IAAI,CAAC;IAChD,CAAC;CACF;AAED,eAAe,4BAA4B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './HttpResponseError.js';
2
+ export * from './HttpJsonResponseError.js';
3
+ export * from './ServerSentEventResponseError.js';
4
+ export * from './ClientNotFoundException.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC"}
package/dist/esm/index.js CHANGED
@@ -5,6 +5,7 @@
5
5
  export * from './configurator';
6
6
  export * from './provider';
7
7
  export * from './module';
8
- export * from './errors';
8
+ export * as Errors from './errors/index.js';
9
+ export * from './errors/index.js';
9
10
  export { default } from './module';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,cAAc,UAAU,CAAC;AAIzB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
@@ -28,6 +28,7 @@ export class HttpClientMsal extends HttpClient {
28
28
  *
29
29
  * @overrides HttpClient.fetch$
30
30
  *
31
+ * @template T - The expected response type.
31
32
  * @param path - The path to the resource to fetch.
32
33
  * @param init - An optional `MsalFetchRequestInit` object that can include the `scopes` property.
33
34
  * @returns An `Observable` that emits the fetched resource.
@@ -1 +1 @@
1
- {"version":3,"file":"client-msal.js","sourceRoot":"","sources":["../../../../src/lib/client/client-msal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAsBtC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,cAGX,SAAQ,UAA+B;IACvC;;;OAGG;IACI,aAAa,GAAa,EAAE,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACI,MAAM,CACX,IAAY,EACZ,IAAmD;QAEnD;;;WAGG;QACH,MAAM,IAAI,GAAG;YACX,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SACV,CAAC;QAE9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"client-msal.js","sourceRoot":"","sources":["../../../../src/lib/client/client-msal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAsBtC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,cAGX,SAAQ,UAA+B;IACvC;;;OAGG;IACI,aAAa,GAAa,EAAE,CAAC;IAEpC;;;;;;;;;;;;;OAaG;IACI,MAAM,CACX,IAAY,EACZ,IAAmD;QAEnD;;;WAGG;QACH,MAAM,IAAI,GAAG;YACX,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SACV,CAAC;QAE9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,eAAe,cAAc,CAAC"}
@@ -3,8 +3,8 @@ import { switchMap, takeUntil, tap } from 'rxjs/operators';
3
3
  import { fromFetch } from 'rxjs/fetch';
4
4
  import { HttpRequestHandler, HttpResponseHandler } from '../operators';
5
5
  import { blobSelector, jsonSelector } from '../selectors';
6
- import { HttpResponseError } from '../../errors';
7
- import { createSseSelector, } from '../selectors/sse-selector';
6
+ import { HttpResponseError } from '../../errors/index.js';
7
+ import { createSseSelector, } from '../selectors/create-sse-selector';
8
8
  /** Base http client for executing requests */
9
9
  export class HttpClient {
10
10
  uri;
@@ -35,16 +35,23 @@ export class HttpClient {
35
35
  _abort$ = new Subject();
36
36
  /**
37
37
  * A stream of requests that are about to be executed.
38
+ * @returns An `Observable` that emits each request before it is executed.
38
39
  */
39
40
  get request$() {
40
41
  return this._request$.asObservable();
41
42
  }
42
43
  /**
43
44
  * A stream of responses that have been received.
45
+ * @returns An `Observable` that emits each response as it is received.
44
46
  */
45
47
  get response$() {
46
48
  return this._response$.asObservable();
47
49
  }
50
+ /**
51
+ * Creates a new `HttpClient`.
52
+ * @param uri - The base URI used to resolve relative request paths.
53
+ * @param options - Optional request and response handlers.
54
+ */
48
55
  constructor(uri, options) {
49
56
  this.uri = uri;
50
57
  this.requestHandler = new HttpRequestHandler(options?.requestHandler);
@@ -63,6 +70,7 @@ export class HttpClient {
63
70
  /**
64
71
  * Fetches data from the specified path and returns a stream response.
65
72
  *
73
+ * @template T - The expected shape of the fetched data.
66
74
  * @param path - The path to fetch data from.
67
75
  * @param args - Optional request initialization options, including a custom selector function.
68
76
  * @returns A stream response containing the fetched data.
@@ -73,6 +81,7 @@ export class HttpClient {
73
81
  /**
74
82
  * Fetches data from the specified path and returns a Promise containing the fetched data.
75
83
  *
84
+ * @template T - The expected shape of the fetched data.
76
85
  * @param path - The path to fetch data from.
77
86
  * @param args - Optional request initialization options, including a custom selector function.
78
87
  * @returns A Promise containing the fetched data.
@@ -80,13 +89,20 @@ export class HttpClient {
80
89
  fetch(path, args) {
81
90
  return firstValueFrom(this.fetch$(path, args));
82
91
  }
83
- /** @deprecated */
92
+ /**
93
+ * @deprecated Use {@link fetch} instead.
94
+ * @template T - The expected shape of the fetched data.
95
+ * @param path - The path to fetch data from.
96
+ * @param args - Optional request initialization options, including a custom selector function.
97
+ * @returns A Promise containing the fetched data.
98
+ */
84
99
  fetchAsync(path, args) {
85
100
  return this.fetch(path, args);
86
101
  }
87
102
  /**
88
103
  * Fetches data from the specified path and returns a stream response containing the data in JSON format.
89
104
  *
105
+ * @template T - The expected shape of the parsed JSON data.
90
106
  * @param path - The path to fetch the data from.
91
107
  * @param args - Optional request initialization options, including a custom selector function and request body.
92
108
  * - `body`: The request body, which will be automatically serialized to JSON if it's an object.
@@ -110,6 +126,7 @@ export class HttpClient {
110
126
  /**
111
127
  * Fetches data from the specified path and returns a Promise containing the fetched data in JSON format.
112
128
  *
129
+ * @template T - The expected shape of the parsed JSON data.
113
130
  * @param path - The path to fetch the data from.
114
131
  * @param args - Optional request initialization options, including a custom selector function and request body.
115
132
  * - `body`: The request body, which will be automatically serialized to JSON if it's an object.
@@ -123,6 +140,7 @@ export class HttpClient {
123
140
  /**
124
141
  * Fetches a blob resource from the specified path and returns a stream response.
125
142
  *
143
+ * @template T - The expected shape of the fetched blob data.
126
144
  * @param path - The path to the blob resource.
127
145
  * @param args - Optional request initialization options, including a custom selector function.
128
146
  * @returns A stream response containing the fetched blob data.
@@ -141,6 +159,7 @@ export class HttpClient {
141
159
  /**
142
160
  * Fetches a blob from the specified path and returns a Promise that resolves to the blob result.
143
161
  *
162
+ * @template T - The expected shape of the fetched blob data.
144
163
  * @param path - The path to fetch the blob from.
145
164
  * @param args - Optional arguments for the fetch request, including request body, headers, and response type.
146
165
  * @returns A Promise that resolves to the blob result.
@@ -182,13 +201,21 @@ export class HttpClient {
182
201
  // Call the fetch$ method with the provided path and the constructed init object
183
202
  return this._fetch$(path, { selector, ...args, headers });
184
203
  }
185
- /** @deprecated */
204
+ /**
205
+ * @deprecated Use {@link json} instead.
206
+ * @template T - The expected shape of the parsed JSON data.
207
+ * @param path - The path to fetch the data from.
208
+ * @param args - Optional request initialization options, including a custom selector function and request body.
209
+ * @returns A Promise containing the fetched data in JSON format.
210
+ */
186
211
  jsonAsync(path, args) {
187
212
  return this.json(path, args);
188
213
  }
189
214
  /**
190
215
  * Executes an HTTP request using the specified method and path.
191
216
  *
217
+ * @template T - The expected shape of the result.
218
+ * @template TMethod - The name of the `IHttpClient` method to invoke.
192
219
  * @param method - The HTTP method to use for the request, such as 'fetch', 'json', or 'blob'.
193
220
  * @param path - The path to the resource to fetch.
194
221
  * @param init - Optional request initialization options, including request body, headers, and response type.
@@ -208,10 +235,13 @@ export class HttpClient {
208
235
  /**
209
236
  * Fetches data from the specified path and returns an Observable that emits the response.
210
237
  *
238
+ * @template T - The expected shape of the emitted data.
211
239
  * @param path - The path to fetch the data from.
212
240
  * @param args - Optional arguments for the fetch request, including a response selector function, request body, headers, and response type.
213
241
  * @returns {Observable<T>} An Observable that emits the response data.
214
242
  *
243
+ * @throws {HttpResponseError} When the optional `selector` throws while transforming the response.
244
+ *
215
245
  * This method handles the following steps:
216
246
  * 1. Resolves the full URL by combining the base URI and the provided path.
217
247
  * 2. Prepares the request by passing it through the `requestHandler.process()` method.
@@ -222,6 +252,9 @@ export class HttpClient {
222
252
  */
223
253
  _fetch$(path, args) {
224
254
  const { selector, ...options } = args || {};
255
+ // `fromFetch` yields the raw fetch `Response`, but `responseHandler.process()` (called via
256
+ // `_prepareResponse`) expects the pipeline's generic `TResponse` shape — cast through
257
+ // `unknown` since the two are only compatible after that processing step.
225
258
  const response$ = of({
226
259
  ...options,
227
260
  path,
@@ -239,6 +272,7 @@ export class HttpClient {
239
272
  tap((x) => this._response$.next(x)),
240
273
  /** execute selector */
241
274
  switchMap((response) => {
275
+ // only run the selector when one was provided; otherwise pass the response through untouched
242
276
  if (selector) {
243
277
  try {
244
278
  return selector(response);
@@ -253,6 +287,8 @@ export class HttpClient {
253
287
  }),
254
288
  /** cancel request on abort signal */
255
289
  takeUntil(this._abort$));
290
+ // The pipe above resolves to the per-call generic `T` (via the optional `selector`), but
291
+ // the observable's static type tracks the class-level `TResponse` — cast to the caller's `T`.
256
292
  return response$;
257
293
  }
258
294
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/lib/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/lib/client/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ProcessOperators } from './process-operators';
1
+ import { ProcessOperators } from './ProcessOperators';
2
2
  import { requestOperatorHeader } from './request-operator-header';
3
3
  /**
4
4
  * Extends the `ProcessOperators` class to handle HTTP requests.
@@ -19,8 +19,8 @@ export class HttpRequestHandler extends ProcessOperators {
19
19
  */
20
20
  setHeader(key, value) {
21
21
  const operator = requestOperatorHeader(key, value);
22
- return this.set('header-' + key, operator);
22
+ return this.set(`header-${key}`, operator);
23
23
  }
24
24
  }
25
25
  export default HttpRequestHandler;
26
- //# sourceMappingURL=http-request-handler.js.map
26
+ //# sourceMappingURL=HttpRequestHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpRequestHandler.js","sourceRoot":"","sources":["../../../../src/lib/operators/HttpRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIlE;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAA0D,SAAQ,gBAAmB;IAChG;;;;;;OAMG;IACH,SAAS,CAAC,GAAW,EAAE,KAAa;QAClC,MAAM,QAAQ,GAAG,qBAAqB,CAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,QAAQ,CAA0B,CAAC;IACtE,CAAC;CACF;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ProcessOperators } from './process-operators';
1
+ import { ProcessOperators } from './ProcessOperators';
2
2
  /**
3
3
  * The `HttpResponseHandler` class extends the `ProcessOperators` class and is responsible for handling HTTP responses.
4
4
  * It provides a common interface for processing HTTP responses, allowing for consistent error handling and response transformation.
@@ -8,4 +8,4 @@ import { ProcessOperators } from './process-operators';
8
8
  export class HttpResponseHandler extends ProcessOperators {
9
9
  }
10
10
  export default HttpResponseHandler;
11
- //# sourceMappingURL=http-response-handler.js.map
11
+ //# sourceMappingURL=HttpResponseHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpResponseHandler.js","sourceRoot":"","sources":["../../../../src/lib/operators/HttpResponseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,OAAO,mBAAkC,SAAQ,gBAAmB;CAAG;AAE7E,eAAe,mBAAmB,CAAC"}
@@ -27,6 +27,7 @@ export class ProcessOperators {
27
27
  * It can be either an instance of IProcessOperators<T> or a record of string keys and ProcessOperator<T> values.
28
28
  */
29
29
  constructor(operators) {
30
+ // accept either a raw operators record or another IProcessOperators instance to clone from
30
31
  if (operators && 'operators' in operators) {
31
32
  this._operators = { ...operators.operators };
32
33
  }
@@ -42,6 +43,7 @@ export class ProcessOperators {
42
43
  * @throws Error if an operator with the same key already exists.
43
44
  */
44
45
  add(key, operator) {
46
+ // guard against silently overwriting an existing operator under the same key
45
47
  if (Object.keys(this._operators).includes(key))
46
48
  throw Error(`Operator [${key}] already defined`);
47
49
  return this.set(key, operator);
@@ -85,6 +87,7 @@ export class ProcessOperators {
85
87
  if (!operators.length) {
86
88
  return of(request);
87
89
  }
90
+ // feed the request through each operator sequentially, keeping the previous value when one returns void
88
91
  return from(Object.values(this._operators)).pipe(mergeScan(
89
92
  // resolve current operator and return result or previous if void
90
93
  (value, operator) => Promise.resolve(operator(value)).then((x) => x ?? value),
@@ -96,4 +99,4 @@ export class ProcessOperators {
96
99
  last());
97
100
  }
98
101
  }
99
- //# sourceMappingURL=process-operators.js.map
102
+ //# sourceMappingURL=ProcessOperators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessOperators.js","sourceRoot":"","sources":["../../../../src/lib/operators/ProcessOperators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;;;OAIG;IACO,UAAU,CAAqC;IAEzD;;;OAGG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,YAAY,SAAqE;QAC/E,2FAA2F;QAC3F,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,GAAW,EAAE,QAA4B;QAC3C,6EAA6E;QAC7E,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC5C,MAAM,KAAK,CAAC,aAAa,GAAG,mBAAmB,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,QAA4B;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAU;QAChB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,mEAAmE;QACnE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QACD,wGAAwG;QACxG,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAC9C,SAAS;QACP,iEAAiE;QACjE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;QAC7E,gBAAgB;QAChB,OAAO;QACP,yCAAyC;QACzC,CAAC,CACF;QACD,iCAAiC;QACjC,IAAI,EAAE,CACP,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { requestMethodCasing } from './fetch-request.schema';
1
+ import { requestMethodCasing } from './fetch-request.schemas';
2
2
  /**
3
3
  * Ensures that the HTTP method of the given request is in uppercase.
4
4
  *
@@ -8,11 +8,13 @@ import { requestMethodCasing } from './fetch-request.schema';
8
8
  export const capitalizeRequestMethodOperator = (options) => (request) => {
9
9
  const { error, success, data } = requestMethodCasing().safeParse(request.method);
10
10
  request.method = success ? data : request.method?.toUpperCase();
11
+ // surface schema validation issues as warnings when not running silently
11
12
  if (error && !options?.silent) {
13
+ // one warning per issue so callers can see exactly what failed to validate
12
14
  for (const e of error.issues) {
13
15
  console.warn(e.message);
14
16
  }
15
17
  }
16
18
  return request;
17
19
  };
18
- //# sourceMappingURL=capitalize-request-method.operator.js.map
20
+ //# sourceMappingURL=capitalize-request-method-operator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capitalize-request-method-operator.js","sourceRoot":"","sources":["../../../../src/lib/operators/capitalize-request-method-operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,CAAwB,OAA8B,EAAsB,EAAE,CAC9E,CAAC,OAAO,EAAK,EAAE;IACb,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,mBAAmB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjF,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAEhE,yEAAyE;IACzE,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC9B,2EAA2E;QAC3E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -96,4 +96,4 @@ export const fetchRequestSchema = requestInitSchema.extend({
96
96
  uri: z.string(),
97
97
  path: z.string().optional(),
98
98
  });
99
- //# sourceMappingURL=fetch-request.schema.js.map
99
+ //# sourceMappingURL=fetch-request.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-request.schemas.js","sourceRoot":"","sources":["../../../../src/lib/operators/fetch-request.schemas.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- export { HttpRequestHandler } from './http-request-handler';
2
- export { HttpResponseHandler } from './http-response-handler';
3
- export { ProcessOperators } from './process-operators';
4
- export { capitalizeRequestMethodOperator } from './capitalize-request-method.operator';
5
- export { requestValidationOperator } from './request-validation.operator';
6
- export { sseMap } from './sse.operator';
1
+ export { HttpRequestHandler } from './HttpRequestHandler';
2
+ export { HttpResponseHandler } from './HttpResponseHandler';
3
+ export { ProcessOperators } from './ProcessOperators';
4
+ export { capitalizeRequestMethodOperator } from './capitalize-request-method-operator';
5
+ export { requestValidationOperator } from './request-validation-operator';
6
+ export { sseMap } from './sse-map.operator';
7
7
  export * from './types';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/operators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/operators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,cAAc,SAAS,CAAC"}
@@ -1,4 +1,4 @@
1
- import { fetchRequestSchema } from './fetch-request.schema';
1
+ import { fetchRequestSchema } from './fetch-request.schemas';
2
2
  /**
3
3
  * Validates the given request using the `requestInitSchema`.
4
4
  *
@@ -20,10 +20,11 @@ export const requestValidationOperator = (options) => (request) => {
20
20
  return parse ? result : void 0;
21
21
  }
22
22
  catch (error) {
23
+ // re-throw so callers relying on `parse` can react to validation failures directly
23
24
  if (parse) {
24
25
  throw error;
25
26
  }
26
27
  console.error('Invalid request options', error.message);
27
28
  }
28
29
  };
29
- //# sourceMappingURL=request-validation.operator.js.map
30
+ //# sourceMappingURL=request-validation-operator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-validation.operator.js","sourceRoot":"","sources":["../../../../src/lib/operators/request-validation.operator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,CAAyB,OAiBxB,EAAsB,EAAE,CACzB,CAAC,OAAO,EAAE,EAAE;IACV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,KAAoB,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"request-validation-operator.js","sourceRoot":"","sources":["../../../../src/lib/operators/request-validation-operator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,CAAyB,OAiBxB,EAAsB,EAAE,CACzB,CAAC,OAAO,EAAE,EAAE;IACV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;QAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mFAAmF;QACnF,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,KAAoB,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { switchMap } from 'rxjs/operators';
2
- import { createSseSelector, } from '../selectors/sse-selector';
2
+ import { createSseSelector, } from '../selectors/create-sse-selector';
3
3
  /**
4
4
  * An operator function for handling Server-Sent Events (SSE) in an RxJS pipeline.
5
5
  *
@@ -28,6 +28,8 @@ import { createSseSelector, } from '../selectors/sse-selector';
28
28
  * });
29
29
  * ```
30
30
  */
31
- export const sseMap = (options) => (source) => source.pipe(switchMap(createSseSelector(options)));
31
+ export const sseMap = (options) => (source) =>
32
+ // parse each raw Response into a stream of typed server-sent events
33
+ source.pipe(switchMap(createSseSelector(options)));
32
34
  export default sseMap;
33
- //# sourceMappingURL=sse.operator.js.map
35
+ //# sourceMappingURL=sse-map.operator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-map.operator.js","sourceRoot":"","sources":["../../../../src/lib/operators/sse-map.operator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,MAAM,GACjB,CACE,OAA+B,EACU,EAAE,CAC7C,CAAC,MAAM,EAAE,EAAE;AACT,oEAAoE;AACpE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7D,eAAe,MAAM,CAAC"}
@@ -6,8 +6,8 @@
6
6
  * @throws {Error} If the response is not successful or if there is an error parsing the response.
7
7
  */
8
8
  export const blobSelector = async (response) => {
9
+ // treat any non-2xx response as a failure rather than attempting to read its body
9
10
  if (!response.ok) {
10
- // Throw an error if the network response is not successful
11
11
  throw new Error('network response was not OK');
12
12
  }
13
13
  // Status code 204 indicates no content, so throw an error
@@ -15,6 +15,7 @@ export const blobSelector = async (response) => {
15
15
  throw new Error('no content');
16
16
  }
17
17
  // Extract the filename from the 'content-disposition' header
18
+ // locate the segment carrying the filename directive; other directives (e.g. inline/attachment) are ignored
18
19
  const filename = response.headers
19
20
  .get('content-disposition')
20
21
  ?.split(';')
@@ -26,7 +27,7 @@ export const blobSelector = async (response) => {
26
27
  const blob = await response.blob();
27
28
  return { filename, blob };
28
29
  }
29
- catch (err) {
30
+ catch (_err) {
30
31
  // Throw an error if there's a problem parsing the response
31
32
  throw Error('failed to parse response');
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"blob-selector.js","sourceRoot":"","sources":["../../../../src/lib/selectors/blob-selector.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAqB,KAAK,EACjD,QAAmB,EACE,EAAE;IACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,2DAA2D;QAC3D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,0DAA0D;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO;SAC9B,GAAG,CAAC,qBAAqB,CAAC;QAC3B,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,EAAE,IAAI,EAAE,CAAC;IAEX,IAAI,CAAC;QACH,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2DAA2D;QAC3D,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"blob-selector.js","sourceRoot":"","sources":["../../../../src/lib/selectors/blob-selector.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAqB,KAAK,EACjD,QAAmB,EACE,EAAE;IACvB,kFAAkF;IAClF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,0DAA0D;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,6DAA6D;IAC7D,4GAA4G;IAC5G,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO;SAC9B,GAAG,CAAC,qBAAqB,CAAC;QAC3B,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,EAAE,IAAI,EAAE,CAAC;IAEX,IAAI,CAAC;QACH,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,2DAA2D;QAC3D,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}