@x12i/catalox-client 5.9.8

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.
@@ -0,0 +1,35 @@
1
+ import type { AppCatalogBootstrap, AppId, CatalogId, CatalogQueryOptions, CataloxClientError, CataloxResult, ItemId, NativeCatalogItemRecord, UnifiedCatalogItem } from "@x12i/catalox-contracts";
2
+ import { type RequestAuth } from "./http.js";
3
+ export type OutcomeResponse<T> = {
4
+ outcome: string;
5
+ result?: T;
6
+ error?: Record<string, unknown>;
7
+ };
8
+ export declare class CataloxClientBound {
9
+ private readonly baseUrl;
10
+ private readonly auth;
11
+ private readonly fetchFn?;
12
+ constructor(baseUrl: string, auth: RequestAuth, fetchFn?: typeof fetch | undefined);
13
+ private reqInit;
14
+ listAppCatalogs(appId: AppId): Promise<OutcomeResponse<{
15
+ catalogs: unknown[];
16
+ }>>;
17
+ getAppCatalogBootstrap(appId: AppId): Promise<OutcomeResponse<AppCatalogBootstrap>>;
18
+ listCatalogItems(catalogId: CatalogId, options?: CatalogQueryOptions): Promise<CataloxResult<{
19
+ items: UnifiedCatalogItem[];
20
+ total?: number;
21
+ }>>;
22
+ getCatalogItem(catalogId: CatalogId, itemId: ItemId): Promise<CataloxResult<UnifiedCatalogItem>>;
23
+ getCatalogItemByField(catalogId: CatalogId, fieldPath: string, value: string): Promise<CataloxResult<UnifiedCatalogItem>>;
24
+ getNativeCatalogItem(catalogId: CatalogId, itemId: ItemId): Promise<OutcomeResponse<{
25
+ record: NativeCatalogItemRecord;
26
+ }>>;
27
+ replaceNativeCatalogItem(catalogId: CatalogId, record: NativeCatalogItemRecord): Promise<OutcomeResponse<{
28
+ itemId: ItemId;
29
+ }>>;
30
+ searchCatalogItems(catalogId: CatalogId, query: string, limit?: number): Promise<OutcomeResponse<{
31
+ items: UnifiedCatalogItem[];
32
+ }>>;
33
+ }
34
+ export type { CataloxClientError, CataloxResult };
35
+ //# sourceMappingURL=bound-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bound-client.d.ts","sourceRoot":"","sources":["../src/bound-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,KAAK,EAGL,SAAS,EAET,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EAEb,MAAM,EACN,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AASjC,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAsBF,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,KAAK,YAAA;IAGzC,OAAO,CAAC,OAAO;IAIT,eAAe,CAAC,KAAK,EAAE,KAAK;kBAKyB,OAAO,EAAE;;IAG9D,sBAAsB,CAAC,KAAK,EAAE,KAAK;IAQnC,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA+BpE,cAAc,CAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IA2BvC,qBAAqB,CACzB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IA4BvC,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;gBAON,uBAAuB;;IAG1E,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB;gBAO3B,MAAM;;IAGzD,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;eAMpB,kBAAkB,EAAE;;CAE7E;AAED,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { cataloxClientErrorFromNetwork, formatCataloxErrorMessage, toCataloxResultFromGetItemByFieldWithOutcome, toCataloxResultFromGetItemWithOutcome, toCataloxResultFromListWithOutcome, } from "@x12i/catalox-contracts";
2
+ import { cataloxFetch } from "./http.js";
3
+ function resultContext(auth, extra) {
4
+ if (auth.mode === "open") {
5
+ return { ...auth.context, ...extra };
6
+ }
7
+ return { ...extra };
8
+ }
9
+ function failNetwork(message, ctx) {
10
+ const detail = cataloxClientErrorFromNetwork(message, ctx);
11
+ return { ok: false, error: formatCataloxErrorMessage(detail), errorDetail: detail };
12
+ }
13
+ async function readOutcomeJson(res) {
14
+ try {
15
+ return (await res.json());
16
+ }
17
+ catch {
18
+ return {};
19
+ }
20
+ }
21
+ export class CataloxClientBound {
22
+ baseUrl;
23
+ auth;
24
+ fetchFn;
25
+ constructor(baseUrl, auth, fetchFn) {
26
+ this.baseUrl = baseUrl;
27
+ this.auth = auth;
28
+ this.fetchFn = fetchFn;
29
+ }
30
+ reqInit(extra = {}) {
31
+ return this.fetchFn ? { ...extra, fetchImpl: this.fetchFn } : extra;
32
+ }
33
+ async listAppCatalogs(appId) {
34
+ const res = await cataloxFetch(this.baseUrl, `/v1/apps/${appId}/catalogs`, this.auth, {
35
+ method: "GET",
36
+ ...this.reqInit(),
37
+ });
38
+ return (await res.json());
39
+ }
40
+ async getAppCatalogBootstrap(appId) {
41
+ const res = await cataloxFetch(this.baseUrl, `/v1/apps/${appId}/bootstrap`, this.auth, {
42
+ method: "GET",
43
+ ...this.reqInit(),
44
+ });
45
+ return (await res.json());
46
+ }
47
+ async listCatalogItems(catalogId, options) {
48
+ const ctx = resultContext(this.auth, { catalogId });
49
+ const qs = new URLSearchParams();
50
+ if (options?.limit != null)
51
+ qs.set("limit", String(options.limit));
52
+ if (options?.offset != null)
53
+ qs.set("offset", String(options.offset));
54
+ const q = qs.toString();
55
+ let res;
56
+ try {
57
+ res = await cataloxFetch(this.baseUrl, `/v1/catalogs/${catalogId}/items${q ? `?${q}` : ""}`, this.auth, this.reqInit({ method: "GET" }));
58
+ }
59
+ catch (e) {
60
+ return failNetwork(e?.message ?? "Network request failed.", ctx);
61
+ }
62
+ const json = await readOutcomeJson(res);
63
+ if (!res.ok) {
64
+ const detail = cataloxClientErrorFromNetwork(String(json.error?.message ?? `HTTP ${res.status}`), ctx);
65
+ return { ok: false, error: formatCataloxErrorMessage(detail), errorDetail: detail };
66
+ }
67
+ const wrapped = (json.result ?? json);
68
+ return toCataloxResultFromListWithOutcome(wrapped, ctx);
69
+ }
70
+ async getCatalogItem(catalogId, itemId) {
71
+ const ctx = resultContext(this.auth, { catalogId, itemId });
72
+ let res;
73
+ try {
74
+ res = await cataloxFetch(this.baseUrl, `/v1/catalogs/${catalogId}/items/${itemId}`, this.auth, this.reqInit({ method: "GET" }));
75
+ }
76
+ catch (e) {
77
+ return failNetwork(e?.message ?? "Network request failed.", ctx);
78
+ }
79
+ const json = await readOutcomeJson(res);
80
+ if (!res.ok) {
81
+ const detail = cataloxClientErrorFromNetwork(String(json.error?.message ?? `HTTP ${res.status}`), ctx);
82
+ return { ok: false, error: formatCataloxErrorMessage(detail), errorDetail: detail };
83
+ }
84
+ const wrapped = (json.result ?? json);
85
+ return toCataloxResultFromGetItemWithOutcome(wrapped, ctx);
86
+ }
87
+ async getCatalogItemByField(catalogId, fieldPath, value) {
88
+ const ctx = resultContext(this.auth, { catalogId, fieldPath });
89
+ const qs = new URLSearchParams({ fieldPath, value });
90
+ let res;
91
+ try {
92
+ res = await cataloxFetch(this.baseUrl, `/v1/catalogs/${catalogId}/items/by-field?${qs.toString()}`, this.auth, this.reqInit({ method: "GET" }));
93
+ }
94
+ catch (e) {
95
+ return failNetwork(e?.message ?? "Network request failed.", ctx);
96
+ }
97
+ const json = await readOutcomeJson(res);
98
+ if (!res.ok) {
99
+ const detail = cataloxClientErrorFromNetwork(String(json.error?.message ?? `HTTP ${res.status}`), ctx);
100
+ return { ok: false, error: formatCataloxErrorMessage(detail), errorDetail: detail };
101
+ }
102
+ const wrapped = (json.result ?? json);
103
+ return toCataloxResultFromGetItemByFieldWithOutcome(wrapped, ctx);
104
+ }
105
+ async getNativeCatalogItem(catalogId, itemId) {
106
+ const res = await cataloxFetch(this.baseUrl, `/v1/catalogs/${catalogId}/items/${itemId}/native-record`, this.auth, this.reqInit({ method: "GET" }));
107
+ return (await res.json());
108
+ }
109
+ async replaceNativeCatalogItem(catalogId, record) {
110
+ const res = await cataloxFetch(this.baseUrl, `/v1/catalogs/${catalogId}/items/${record.itemId}/native-record`, this.auth, this.reqInit({ method: "PUT", body: JSON.stringify(record) }));
111
+ return (await res.json());
112
+ }
113
+ async searchCatalogItems(catalogId, query, limit) {
114
+ const res = await cataloxFetch(this.baseUrl, `/v1/catalogs/${catalogId}/search`, this.auth, {
115
+ method: "POST",
116
+ body: JSON.stringify({ query, limit }),
117
+ ...this.reqInit(),
118
+ });
119
+ return (await res.json());
120
+ }
121
+ }
122
+ //# sourceMappingURL=bound-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bound-client.js","sourceRoot":"","sources":["../src/bound-client.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import type { CataloxContext } from "@x12i/catalox-contracts";
2
+ export type RequestAuth = {
3
+ mode: "open";
4
+ context: CataloxContext;
5
+ } | {
6
+ mode: "authix";
7
+ token: string;
8
+ };
9
+ export type CataloxFetchInit = RequestInit & {
10
+ fetchImpl?: typeof fetch;
11
+ };
12
+ export declare function cataloxFetch(baseUrl: string, path: string, auth: RequestAuth, init?: CataloxFetchInit): Promise<Response>;
13
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAE,CAAC;AAE1E,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAcnB"}
package/dist/http.js ADDED
@@ -0,0 +1,15 @@
1
+ export async function cataloxFetch(baseUrl, path, auth, init = {}) {
2
+ const { fetchImpl, ...requestInit } = init;
3
+ const fetchFn = fetchImpl ?? fetch;
4
+ const headers = new Headers(requestInit.headers);
5
+ headers.set("content-type", "application/json");
6
+ if (auth.mode === "open") {
7
+ headers.set("x-catalox-context", JSON.stringify(auth.context));
8
+ }
9
+ else {
10
+ headers.set("authorization", `Bearer ${auth.token}`);
11
+ }
12
+ const url = `${baseUrl.replace(/\/$/, "")}${path}`;
13
+ return fetchFn(url, { ...requestInit, headers });
14
+ }
15
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,IAAY,EACZ,IAAiB,EACjB,OAAyB,EAAE;IAE3B,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;IACnD,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { CataloxContext } from "@x12i/catalox-contracts";
2
+ import { CataloxClientBound } from "./bound-client.js";
3
+ export type CreateCataloxClientOptions = {
4
+ baseUrl: string;
5
+ defaultContext?: CataloxContext;
6
+ getToken?: () => Promise<string>;
7
+ fetch?: typeof fetch;
8
+ };
9
+ export type CataloxClient = {
10
+ withContext(context: CataloxContext): CataloxClientBound;
11
+ withToken(token: string): CataloxClientBound;
12
+ };
13
+ export declare function createCataloxClient(opts: CreateCataloxClientOptions): CataloxClient;
14
+ export { CataloxClientBound, type OutcomeResponse, type CataloxClientError, type CataloxResult } from "./bound-client.js";
15
+ export type { CataloxResult as CataloxClientResult } from "./bound-client.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAC;IACzD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC;CAC9C,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,aAAa,CAYnF;AAED,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1H,YAAY,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ import { CataloxClientBound } from "./bound-client.js";
2
+ export function createCataloxClient(opts) {
3
+ const baseUrl = opts.baseUrl;
4
+ const fetchFn = opts.fetch;
5
+ return {
6
+ withContext(context) {
7
+ return new CataloxClientBound(baseUrl, { mode: "open", context }, fetchFn);
8
+ },
9
+ withToken(token) {
10
+ return new CataloxClientBound(baseUrl, { mode: "authix", token }, fetchFn);
11
+ },
12
+ };
13
+ }
14
+ export { CataloxClientBound } from "./bound-client.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAcvD,MAAM,UAAU,mBAAmB,CAAC,IAAgC;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;IAE3B,OAAO;QACL,WAAW,CAAC,OAAuB;YACjC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;QACD,SAAS,CAAC,KAAa;YACrB,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAqE,MAAM,mBAAmB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@x12i/catalox-client",
3
+ "version": "5.9.8",
4
+ "description": "HTTP client for Catalox API",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "main": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "files": ["dist"],
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json",
18
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
19
+ "test": "node --import tsx --test \"test/**/*.test.ts\""
20
+ },
21
+ "dependencies": {
22
+ "@x12i/catalox-contracts": "5.9.8"
23
+ },
24
+ "devDependencies": {
25
+ "@x12i/catalox-api": "5.9.8",
26
+ "@x12i/catalox-engine": "5.9.8",
27
+ "@types/node": "^22.0.0",
28
+ "tsx": "^4.0.0",
29
+ "typescript": "^5.0.0"
30
+ }
31
+ }