@cobre-npm/library-response-catalog-node 0.3.0 → 0.6.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.
- package/dist/adapter/http/catalog-http-adapter.d.ts +41 -0
- package/dist/adapter/http/catalog-http-adapter.d.ts.map +1 -0
- package/dist/adapter/http/fallback-activation-recorder.d.ts +7 -0
- package/dist/adapter/http/fallback-activation-recorder.d.ts.map +1 -0
- package/dist/adapter/http/fallback-response.d.ts +14 -0
- package/dist/adapter/http/fallback-response.d.ts.map +1 -0
- package/dist/adapter/http/telemetry-fallback-activation-recorder.d.ts +9 -0
- package/dist/adapter/http/telemetry-fallback-activation-recorder.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type AxiosInstance } from 'axios';
|
|
2
|
+
import { CatalogPort } from '../../domain/ports/out/catalog-port';
|
|
3
|
+
import type { Response } from '../../domain/core/models/response';
|
|
4
|
+
import type { SupplierErrorContext } from '../../domain/core/models/supplier-error-context';
|
|
5
|
+
import type { CatalogAuthHeadersSource } from './catalog-auth-headers-source';
|
|
6
|
+
import type { FallbackActivationRecorder } from './fallback-activation-recorder';
|
|
7
|
+
import type { FallbackTokenResolver } from './fallback-token-resolver';
|
|
8
|
+
import { type ResiliencePolicies } from './resilience';
|
|
9
|
+
export declare const RESOLVE_PATH = "/v1/resolve";
|
|
10
|
+
export interface CatalogHttpAdapterDependencies {
|
|
11
|
+
readonly axiosClient: AxiosInstance;
|
|
12
|
+
readonly baseUrl: string;
|
|
13
|
+
readonly authHeadersSource: CatalogAuthHeadersSource;
|
|
14
|
+
readonly fallbackTokenResolver: FallbackTokenResolver;
|
|
15
|
+
readonly fallbackActivationRecorder: FallbackActivationRecorder;
|
|
16
|
+
readonly resilience?: ResiliencePolicies;
|
|
17
|
+
}
|
|
18
|
+
export declare class CatalogHttpAdapter extends CatalogPort {
|
|
19
|
+
private readonly axiosClient;
|
|
20
|
+
private readonly baseUrl;
|
|
21
|
+
private readonly authHeadersSource;
|
|
22
|
+
private readonly fallbackTokenResolver;
|
|
23
|
+
private readonly fallbackActivationRecorder;
|
|
24
|
+
private readonly resilience;
|
|
25
|
+
private readonly httpClientDuration;
|
|
26
|
+
constructor(dependencies: CatalogHttpAdapterDependencies);
|
|
27
|
+
fetchResponse(context: SupplierErrorContext): Promise<Response>;
|
|
28
|
+
private callCatalog;
|
|
29
|
+
private recordHttpDuration;
|
|
30
|
+
private requireBody;
|
|
31
|
+
private isUsable;
|
|
32
|
+
private buildUrl;
|
|
33
|
+
private mapResponseError;
|
|
34
|
+
private catalogErrorForStatus;
|
|
35
|
+
private mapNetworkError;
|
|
36
|
+
private mapUnexpectedError;
|
|
37
|
+
private activateFallback;
|
|
38
|
+
private logSuccess;
|
|
39
|
+
private contextAttributes;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=catalog-http-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-http-adapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/http/catalog-http-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,OAAO,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAE3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAG7E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAA;AAGrB,eAAO,MAAM,YAAY,gBAAgB,CAAA;AAOzC,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAA;IACpD,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAA;IACrD,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAA;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAA;CACzC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuB;IAC7D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA4B;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAK/B;gBAEQ,YAAY,EAAE,8BAA8B;IAUlD,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;YA4CvD,WAAW;IAgDzB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,iBAAiB;CAa1B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SupplierErrorContext } from '../../domain/core/models/supplier-error-context';
|
|
2
|
+
import type { CatalogUnavailableReason } from './catalog-unavailable-reason';
|
|
3
|
+
import type { ResolvedFallback } from './resolved-fallback';
|
|
4
|
+
export interface FallbackActivationRecorder {
|
|
5
|
+
record(context: SupplierErrorContext, fallback: ResolvedFallback, reason: CatalogUnavailableReason): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=fallback-activation-recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-activation-recorder.d.ts","sourceRoot":"","sources":["../../../src/adapter/http/fallback-activation-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAC3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,WAAW,0BAA0B;IACzC,MAAM,CACJ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,wBAAwB,GAC/B,IAAI,CAAA;CACR"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Response } from '../../domain/core/models/response';
|
|
2
|
+
import type { SupplierErrorContext } from '../../domain/core/models/supplier-error-context';
|
|
3
|
+
import type { ResolvedFallback } from './resolved-fallback';
|
|
4
|
+
/**
|
|
5
|
+
* Builds the degraded {@link Response} returned when the catalog is
|
|
6
|
+
* unavailable. `internal` and `api` are null because there is no catalog entry
|
|
7
|
+
* to populate them — see `docs/fallback.md`.
|
|
8
|
+
*
|
|
9
|
+
* @param context - The supplier error being resolved
|
|
10
|
+
* @param fallback - The locally resolved token
|
|
11
|
+
* @returns A response carrying the token as `resolvedMessage`
|
|
12
|
+
*/
|
|
13
|
+
export declare const createFallbackResponse: (context: SupplierErrorContext, fallback: ResolvedFallback) => Response;
|
|
14
|
+
//# sourceMappingURL=fallback-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-response.d.ts","sourceRoot":"","sources":["../../../src/adapter/http/fallback-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,oBAAoB,EAC7B,UAAU,gBAAgB,KACzB,QAWD,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FallbackActivationRecorder } from './fallback-activation-recorder';
|
|
2
|
+
/**
|
|
3
|
+
* Records fallback activations as an OpenTelemetry counter plus a warning log.
|
|
4
|
+
* The counter is created once, when the recorder is built, and closed over.
|
|
5
|
+
*
|
|
6
|
+
* @returns A recorder wired to the process meter provider
|
|
7
|
+
*/
|
|
8
|
+
export declare const createTelemetryFallbackActivationRecorder: () => FallbackActivationRecorder;
|
|
9
|
+
//# sourceMappingURL=telemetry-fallback-activation-recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-fallback-activation-recorder.d.ts","sourceRoot":"","sources":["../../../src/adapter/http/telemetry-fallback-activation-recorder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AA+BhF;;;;;GAKG;AACH,eAAO,MAAM,yCAAyC,QAAO,0BAmB5D,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cobre-npm/library-response-catalog-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"packageManager": "pnpm@10.27.0",
|
|
5
5
|
"description": "Node.js Cobre library for resolving supplier errors against the Response Catalog Read API",
|
|
6
6
|
"main": "dist/index.js",
|