@innvoid/getmarket-sdk 0.2.4 → 0.2.6
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/{chunk-UK6LHHJQ.js → chunk-7KD7EQ2O.js} +118 -3
- package/dist/chunk-7KD7EQ2O.js.map +1 -0
- package/dist/clients/index.cjs +124 -1
- package/dist/clients/index.cjs.map +1 -1
- package/dist/clients/index.d.cts +29 -2
- package/dist/clients/index.d.ts +29 -2
- package/dist/clients/index.js +4 -1
- package/dist/index.cjs +132 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -2
- package/dist/index.d.ts +13 -2
- package/dist/index.js +24 -7
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/dist/chunk-UK6LHHJQ.js.map +0 -1
|
@@ -2,6 +2,9 @@ import {
|
|
|
2
2
|
TwoLevelCache,
|
|
3
3
|
createCacheProvider
|
|
4
4
|
} from "./chunk-QVPPDOXY.js";
|
|
5
|
+
import {
|
|
6
|
+
createHttpClient
|
|
7
|
+
} from "./chunk-5S2JP7PR.js";
|
|
5
8
|
import {
|
|
6
9
|
HEADER_BRANCH_UID,
|
|
7
10
|
HEADER_COMPANY_UID,
|
|
@@ -344,14 +347,96 @@ function createMdClient() {
|
|
|
344
347
|
// src/clients/fisClient.ts
|
|
345
348
|
function createFisClient() {
|
|
346
349
|
const env = readServiceEnv("FIS", { apiPrefix: "/internal/v1" });
|
|
350
|
+
const http = createHttpClient({
|
|
351
|
+
baseURL: `${env.baseURL}${env.apiPrefix}`,
|
|
352
|
+
timeoutMs: 8e3
|
|
353
|
+
});
|
|
347
354
|
const taxes = createBulkRefsClient({
|
|
348
355
|
namespace: "fis:tax",
|
|
349
356
|
baseURL: env.baseURL,
|
|
350
357
|
apiPrefix: env.apiPrefix,
|
|
351
358
|
path: "/refs/taxes"
|
|
352
359
|
});
|
|
360
|
+
const documents = createBulkRefsClient({
|
|
361
|
+
namespace: "fis:document",
|
|
362
|
+
baseURL: env.baseURL,
|
|
363
|
+
apiPrefix: env.apiPrefix,
|
|
364
|
+
path: "/refs/documents"
|
|
365
|
+
});
|
|
366
|
+
const submissions = createBulkRefsClient({
|
|
367
|
+
namespace: "fis:submission",
|
|
368
|
+
baseURL: env.baseURL,
|
|
369
|
+
apiPrefix: env.apiPrefix,
|
|
370
|
+
path: "/refs/submissions"
|
|
371
|
+
});
|
|
353
372
|
return {
|
|
354
|
-
|
|
373
|
+
// -----------------------------------------------------------------------
|
|
374
|
+
// Bulk refs
|
|
375
|
+
// -----------------------------------------------------------------------
|
|
376
|
+
taxesRefs: (uids, opts) => taxes.bulkRefs(uids, opts),
|
|
377
|
+
documentsRefs: (uids, opts) => documents.bulkRefs(uids, opts),
|
|
378
|
+
submissionsRefs: (uids, opts) => submissions.bulkRefs(uids, opts),
|
|
379
|
+
// -----------------------------------------------------------------------
|
|
380
|
+
// Fiscal calculation / build / lifecycle
|
|
381
|
+
// -----------------------------------------------------------------------
|
|
382
|
+
calculate: async (body) => {
|
|
383
|
+
const { data } = await http.post("/calculate", body);
|
|
384
|
+
return data;
|
|
385
|
+
},
|
|
386
|
+
buildDocument: async (body) => {
|
|
387
|
+
const { data } = await http.post("/documents/build", body);
|
|
388
|
+
return data;
|
|
389
|
+
},
|
|
390
|
+
signDocument: async (body) => {
|
|
391
|
+
const { data } = await http.post("/documents/sign", body);
|
|
392
|
+
return data;
|
|
393
|
+
},
|
|
394
|
+
submitDocument: async (body) => {
|
|
395
|
+
const { data } = await http.post("/documents/submit", body);
|
|
396
|
+
return data;
|
|
397
|
+
},
|
|
398
|
+
cancelDocument: async (body) => {
|
|
399
|
+
const { data } = await http.post("/documents/cancel", body);
|
|
400
|
+
return data;
|
|
401
|
+
},
|
|
402
|
+
// -----------------------------------------------------------------------
|
|
403
|
+
// Folios / series
|
|
404
|
+
// -----------------------------------------------------------------------
|
|
405
|
+
reserveFolio: async (body) => {
|
|
406
|
+
const { data } = await http.post("/folios/reserve", body);
|
|
407
|
+
return data;
|
|
408
|
+
},
|
|
409
|
+
consumeFolio: async (body) => {
|
|
410
|
+
const { data } = await http.post("/folios/consume", body);
|
|
411
|
+
return data;
|
|
412
|
+
},
|
|
413
|
+
// -----------------------------------------------------------------------
|
|
414
|
+
// Queries / detail
|
|
415
|
+
// -----------------------------------------------------------------------
|
|
416
|
+
queryDocuments: async (params) => {
|
|
417
|
+
const { data } = await http.get("/documents", { params });
|
|
418
|
+
return data;
|
|
419
|
+
},
|
|
420
|
+
getDocumentByUid: async (uid) => {
|
|
421
|
+
const { data } = await http.get(`/documents/${uid}`);
|
|
422
|
+
return data;
|
|
423
|
+
},
|
|
424
|
+
getSnapshotByUid: async (uid) => {
|
|
425
|
+
const { data } = await http.get(`/snapshots/${uid}`);
|
|
426
|
+
return data;
|
|
427
|
+
},
|
|
428
|
+
getSubmissionByUid: async (uid) => {
|
|
429
|
+
const { data } = await http.get(`/submissions/${uid}`);
|
|
430
|
+
return data;
|
|
431
|
+
},
|
|
432
|
+
getStatusEventsByDocumentUid: async (documentUid) => {
|
|
433
|
+
const { data } = await http.get(`/documents/${documentUid}/status-events`);
|
|
434
|
+
return data;
|
|
435
|
+
},
|
|
436
|
+
retrySubmission: async (body) => {
|
|
437
|
+
const { data } = await http.post("/submissions/retry", body);
|
|
438
|
+
return data;
|
|
439
|
+
}
|
|
355
440
|
};
|
|
356
441
|
}
|
|
357
442
|
|
|
@@ -397,6 +482,35 @@ function createMkpClient() {
|
|
|
397
482
|
};
|
|
398
483
|
}
|
|
399
484
|
|
|
485
|
+
// src/clients/payClient.ts
|
|
486
|
+
function createPayClient() {
|
|
487
|
+
const env = readServiceEnv("PAY", { apiPrefix: "/internal/v1" });
|
|
488
|
+
const http = createHttpClient({
|
|
489
|
+
baseURL: `${env.baseURL}${env.apiPrefix}`,
|
|
490
|
+
timeoutMs: 8e3
|
|
491
|
+
});
|
|
492
|
+
return {
|
|
493
|
+
async createIntent(body) {
|
|
494
|
+
const { data } = await http.post("/intents", body);
|
|
495
|
+
return data;
|
|
496
|
+
},
|
|
497
|
+
async startAttempt(body) {
|
|
498
|
+
const { data } = await http.post("/attempts", body);
|
|
499
|
+
return data;
|
|
500
|
+
},
|
|
501
|
+
async getAvailableMethods(params) {
|
|
502
|
+
const { data } = await http.get("/methods/available", {
|
|
503
|
+
params
|
|
504
|
+
});
|
|
505
|
+
return data;
|
|
506
|
+
},
|
|
507
|
+
async getIntentByUid(uid) {
|
|
508
|
+
const { data } = await http.get(`/intents/${uid}`);
|
|
509
|
+
return data;
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
|
|
400
514
|
export {
|
|
401
515
|
InternalHttpError,
|
|
402
516
|
buildInternalHeaders,
|
|
@@ -408,6 +522,7 @@ export {
|
|
|
408
522
|
createMdClient,
|
|
409
523
|
createFisClient,
|
|
410
524
|
createMediaClient,
|
|
411
|
-
createMkpClient
|
|
525
|
+
createMkpClient,
|
|
526
|
+
createPayClient
|
|
412
527
|
};
|
|
413
|
-
//# sourceMappingURL=chunk-
|
|
528
|
+
//# sourceMappingURL=chunk-7KD7EQ2O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clients/env.ts","../src/internalHttpClient.ts","../src/clients/cacheFactory.ts","../src/clients/bulkRefsClient.ts","../src/clients/platformClient.ts","../src/clients/resClient.ts","../src/clients/mdClient.ts","../src/clients/fisClient.ts","../src/clients/mediaClient.ts","../src/clients/mkpClient.ts","../src/clients/payClient.ts"],"sourcesContent":["// packages/sdk/src/clients/env.ts\nimport type {ServiceClientEnv} from \"./types\";\n\nfunction must(v: string | undefined, name: string): string {\n const s = (v || \"\").trim();\n if (!s) throw new Error(`Missing env var: ${name}`);\n return s;\n}\n\nexport function readServiceEnv(prefix: string, defaults?: Partial<ServiceClientEnv>): ServiceClientEnv {\n const baseURL = (process.env[`${prefix}_BASE_URL`] || defaults?.baseURL || \"\").trim();\n const apiPrefix = (process.env[`${prefix}_API_PREFIX`] || defaults?.apiPrefix || \"/internal/v1\").trim();\n\n return {\n baseURL: must(baseURL, `${prefix}_BASE_URL`),\n apiPrefix,\n };\n}\n","// packages/sdk/src/internalHttpClient.ts\nimport fs from \"fs\";\nimport {\n HEADER_INTERNAL_API_KEY,\n HEADER_REQUEST_ID,\n HEADER_COMPANY_UID,\n HEADER_BRANCH_UID,\n HEADER_EMPLOYEE_UID\n} from \"./headers\";\nimport type {RequestContext} from \"./headers\";\n\nexport type InternalHttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\nexport type InternalHttpClientOptions = {\n baseURL: string; // ej: http://platform:3010\n apiPrefix?: string; // ej: /internal/v1\n timeoutMs?: number; // default 15000\n retries?: number; // default 2\n retryDelayMs?: number; // default 250\n apiKey?: string | null; // override opcional\n};\n\nexport type InternalRequestOptions = {\n method: InternalHttpMethod;\n path: string; // \"/tenants/provision\"\n query?: Record<string, string | number | boolean | null | undefined>;\n body?: any; // JSON\n headers?: Record<string, string | undefined>;\n ctx?: RequestContext | null;\n\n idempotencyKey?: string | null;\n\n expectJson?: boolean; // default true\n};\n\nexport class InternalHttpError extends Error {\n status: number;\n code: string;\n details: any;\n\n constructor(status: number, code: string, message: string, details?: any) {\n super(message);\n this.status = status;\n this.code = code;\n this.details = details ?? null;\n }\n}\n\nfunction readSecretFile(path?: string): string | null {\n if (!path) return null;\n try {\n const v = fs.readFileSync(path, \"utf8\").trim();\n return v.length ? v : null;\n } catch {\n return null;\n }\n}\n\nfunction splitKeys(v?: string | null): string[] {\n if (!v) return [];\n return v.split(\",\").map((s) => s.trim()).filter(Boolean);\n}\n\n/**\n * ✅ MISMA lógica que internalAuth.ts:\n * - INTERNAL_API_KEY_FILE tiene prioridad\n * - fallback a INTERNAL_API_KEY\n * - permite CSV\n *\n * Nota: Para enviar, usamos la primera key disponible.\n */\nfunction getInternalApiKey(override?: string | null): string | null {\n if (override && override.trim()) return override.trim();\n\n const fileKey = readSecretFile(process.env.INTERNAL_API_KEY_FILE);\n const envKey = (process.env.INTERNAL_API_KEY || \"\").trim();\n const raw = fileKey || envKey;\n const keys = splitKeys(raw);\n return keys[0] || null;\n}\n\nfunction normalizeBaseURL(baseURL: string): string {\n const b = (baseURL || \"\").trim();\n if (!b) throw new Error(\"InternalHttpClient: baseURL is required\");\n return b.replace(/\\/+$/g, \"\");\n}\n\nfunction normalizePrefix(prefix?: string): string {\n const p = (prefix || \"\").trim();\n if (!p) return \"\";\n const withSlash = p.startsWith(\"/\") ? p : `/${p}`;\n return withSlash.replace(/\\/+$/g, \"\");\n}\n\nfunction buildQuery(query?: InternalRequestOptions[\"query\"]): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n for (const [k, v] of Object.entries(query)) {\n if (v === null || v === undefined) continue;\n params.set(k, String(v));\n }\n const s = params.toString();\n return s ? `?${s}` : \"\";\n}\n\n/**\n * ✅ Propaga contexto estándar (SDK)\n * - x-request-id\n * - x-company\n * - x-branch\n * - x-employee-uid\n */\nexport function buildInternalHeaders(\n ctx?: RequestContext | null,\n extra?: Record<string, string | undefined>,\n idempotencyKey?: string | null\n): Record<string, string> {\n const h: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (ctx?.requestId) h[HEADER_REQUEST_ID] = String(ctx.requestId);\n if (ctx?.company_uid) h[HEADER_COMPANY_UID] = String(ctx.company_uid);\n if (ctx?.branch_uid) h[HEADER_BRANCH_UID] = String(ctx.branch_uid);\n if (ctx?.employee_uid) h[HEADER_EMPLOYEE_UID] = String(ctx.employee_uid);\n\n if (idempotencyKey && idempotencyKey.trim()) {\n h[\"Idempotency-Key\"] = idempotencyKey.trim();\n }\n\n for (const [k, v] of Object.entries(extra || {})) {\n if (v === undefined) continue;\n const vv = String(v).trim();\n if (!vv) continue;\n h[k] = vv;\n }\n\n return h;\n}\n\nasync function sleep(ms: number) {\n await new Promise((r) => setTimeout(r, ms));\n}\n\nfunction shouldRetry(status: number | null, err: any): boolean {\n if (err?.name === \"AbortError\") return true;\n if (!status) return true;\n if (status >= 500) return true;\n if (status === 429) return true;\n return false;\n}\n\nasync function safeReadJson(res: Response): Promise<any> {\n const text = await res.text();\n if (!text) return null;\n try {\n return JSON.parse(text);\n } catch {\n return {raw: text};\n }\n}\n\n/**\n * Cliente interno universal (fetch)\n */\nexport function createInternalHttpClient(opts: InternalHttpClientOptions) {\n const baseURL = normalizeBaseURL(opts.baseURL);\n const apiPrefix = normalizePrefix(opts.apiPrefix);\n const timeoutMs = typeof opts.timeoutMs === \"number\" ? opts.timeoutMs : 15000;\n const retries = typeof opts.retries === \"number\" ? opts.retries : 2;\n const retryDelayMs = typeof opts.retryDelayMs === \"number\" ? opts.retryDelayMs : 250;\n\n const apiKey = getInternalApiKey(opts.apiKey ?? null);\n if (!apiKey) {\n throw new Error(\n \"InternalHttpClient: INTERNAL_API_KEY or INTERNAL_API_KEY_FILE is required to call internal endpoints.\"\n );\n }\n\n async function request<T = any>(r: InternalRequestOptions): Promise<T> {\n const path = (r.path || \"\").trim();\n if (!path.startsWith(\"/\")) {\n throw new Error(`InternalHttpClient: path must start with '/': ${path}`);\n }\n\n const url = `${baseURL}${apiPrefix}${path}${buildQuery(r.query)}`;\n\n const headers = buildInternalHeaders(r.ctx ?? null, r.headers, r.idempotencyKey ?? null);\n if (apiKey != null) {\n headers[HEADER_INTERNAL_API_KEY] = apiKey;\n }\n\n const method = r.method;\n const expectJson = r.expectJson !== false;\n\n const body =\n method === \"GET\" || method === \"DELETE\"\n ? undefined\n : r.body !== undefined\n ? JSON.stringify(r.body)\n : undefined;\n\n let attempt = 0;\n let lastErr: any = null;\n\n while (attempt <= retries) {\n attempt++;\n\n const ac = new AbortController();\n const to = setTimeout(() => ac.abort(), timeoutMs);\n\n try {\n const res = await fetch(url, {\n method,\n headers,\n body,\n signal: ac.signal,\n });\n\n clearTimeout(to);\n\n if (res.ok) {\n if (!expectJson) return (undefined as any) as T;\n const data = await safeReadJson(res);\n return data as T;\n }\n\n const errBody = await safeReadJson(res);\n const status = res.status;\n\n if (attempt <= retries && shouldRetry(status, null)) {\n lastErr = new InternalHttpError(\n status,\n \"INTERNAL_HTTP_RETRY\",\n `Retryable internal HTTP error (${status})`,\n {url, status, response: errBody, attempt}\n );\n await sleep(retryDelayMs * attempt);\n continue;\n }\n\n throw new InternalHttpError(\n status,\n \"INTERNAL_HTTP_ERROR\",\n `Internal HTTP error (${status})`,\n {url, status, response: errBody}\n );\n } catch (e: any) {\n clearTimeout(to);\n\n if (attempt <= retries && shouldRetry(null, e)) {\n lastErr = e;\n await sleep(retryDelayMs * attempt);\n continue;\n }\n\n if (e instanceof InternalHttpError) throw e;\n\n throw new InternalHttpError(\n 0,\n \"INTERNAL_HTTP_NETWORK_ERROR\",\n e?.message || \"Internal HTTP network error\",\n {url, attempt, error: String(e)}\n );\n }\n }\n\n throw lastErr || new InternalHttpError(0, \"INTERNAL_HTTP_FAILED\", \"Internal request failed\");\n }\n\n return {\n request,\n get: <T = any>(path: string, o?: Omit<InternalRequestOptions, \"method\" | \"path\">) =>\n request<T>({...(o || {}), method: \"GET\", path}),\n post: <T = any>(path: string, body?: any, o?: Omit<InternalRequestOptions, \"method\" | \"path\" | \"body\">) =>\n request<T>({...(o || {}), method: \"POST\", path, body}),\n put: <T = any>(path: string, body?: any, o?: Omit<InternalRequestOptions, \"method\" | \"path\" | \"body\">) =>\n request<T>({...(o || {}), method: \"PUT\", path, body}),\n patch: <T = any>(path: string, body?: any, o?: Omit<InternalRequestOptions, \"method\" | \"path\" | \"body\">) =>\n request<T>({...(o || {}), method: \"PATCH\", path, body}),\n del: <T = any>(path: string, o?: Omit<InternalRequestOptions, \"method\" | \"path\">) =>\n request<T>({...(o || {}), method: \"DELETE\", path}),\n };\n}\n","// packages/sdk/src/clients/cacheFactory.ts\nimport {TwoLevelCache} from \"../cache\";\nimport {createCacheProvider} from \"../cache/cacheProvider\";\n\n/**\n * Crea un TwoLevelCache por \"namespace\" (ej: \"res:variety\")\n * - L1: in-memory (TTL corto)\n * - L2: redis (TTL medio)\n *\n * Nota: createCacheProvider ya aplica REDIS_KEY_PREFIX desde env,\n * y además TwoLevelCache agrega namespace como prefijo lógico.\n */\nexport function makeRefsCache<T>(namespace: string) {\n const l2 = createCacheProvider(); // redis o noop según env\n return new TwoLevelCache<T>(l2, {\n namespace,\n ttlMsL1: 30_000,\n ttlMsL2: 300_000,\n negativeTtlMsL1: 30_000,\n negativeTtlMsL2: 30_000,\n });\n}\n","// packages/sdk/src/clients/bulkRefsClient.ts\nimport type {RequestContext} from \"../headers\";\nimport {createInternalHttpClient} from \"../internalHttpClient\";\nimport type {BulkRefsResponse, BulkUidsRequest, InternalBulkRefsOptions} from \"./types\";\nimport {makeRefsCache} from \"./cacheFactory\";\n\nfunction uniq(arr: string[]) {\n return Array.from(new Set(arr.filter(Boolean)));\n}\n\nexport function createBulkRefsClient<TRef extends { uid: string }>(args: {\n namespace: string; // cache namespace e.g. \"res:variety\"\n baseURL: string;\n apiPrefix: string;\n path: string; // e.g. \"/refs/varieties\"\n defaultTtlMsL1?: number;\n defaultTtlMsL2?: number;\n}) {\n const http = createInternalHttpClient({\n baseURL: args.baseURL,\n apiPrefix: args.apiPrefix,\n });\n\n // ✅ cache tipado\n const cache = makeRefsCache<TRef>(args.namespace);\n\n async function bulkRefs(\n uids: string[],\n opts?: InternalBulkRefsOptions\n ): Promise<BulkRefsResponse<TRef>> {\n const list = uniq(uids);\n if (list.length === 0) {\n return {ok: true, refs: [], meta: {requested: 0, returned: 0, missing: []}};\n }\n\n // 1) cache hits\n const hits: TRef[] = [];\n const missing: string[] = [];\n\n for (const uid of list) {\n const v = await cache.get(uid); // ✅ sin genéricos\n if (v) hits.push(v);\n else missing.push(uid);\n }\n\n // 2) fetch missing\n let fetched: TRef[] = [];\n if (missing.length) {\n const resp = await http.post<BulkRefsResponse<TRef>>(\n args.path,\n {uids: missing} as BulkUidsRequest,\n {\n ctx: (opts?.ctx ?? null) as RequestContext | null,\n }\n );\n\n const refs = (resp.refs ?? resp.items ?? []) as TRef[];\n fetched = refs;\n\n const ttlMsL1 = opts?.ttlMsL1 ?? args.defaultTtlMsL1;\n const ttlMsL2 = opts?.ttlMsL2 ?? args.defaultTtlMsL2;\n\n for (const ref of refs) {\n const uid = String(ref?.uid || \"\").trim();\n if (!uid) continue;\n\n await cache.set(uid, ref, {\n ttlMsL1,\n ttlMsL2,\n });\n }\n }\n\n const all = [...hits, ...fetched];\n\n // missing final (uids requested but not returned)\n const returnedSet = new Set(all.map((r) => String(r?.uid || \"\")));\n const missingFinal = list.filter((u) => !returnedSet.has(u));\n\n return {\n ok: true,\n refs: all,\n meta: {\n requested: list.length,\n returned: all.length,\n missing: missingFinal,\n },\n };\n }\n\n return {bulkRefs};\n}\n","// packages/sdk/src/clients/platformClient.ts\nimport type {PlatformResolveTenantResponse, PlatformServiceCode} from \"@innvoid/getmarket-contracts\";\nimport type {RequestContext} from \"../headers\";\nimport {createInternalHttpClient} from \"../internalHttpClient\";\nimport {makeRefsCache} from \"./cacheFactory\";\n\nexport function createPlatformClient(env: { baseURL: string; apiPrefix: string }) {\n const http = createInternalHttpClient(env);\n\n // ✅ cache tipado\n const cache = makeRefsCache<PlatformResolveTenantResponse>(\"platform:tenant\");\n\n async function resolveTenant(\n input: { company_uid: string; service: PlatformServiceCode },\n ctx?: RequestContext | null\n ) {\n const key = `${input.company_uid}:${input.service}`;\n\n const cached = await cache.get(key); // ✅ sin genéricos\n if (cached) return cached;\n\n const resp = await http.post<PlatformResolveTenantResponse>(\n \"/tenants/resolve\",\n input,\n {ctx: ctx ?? null}\n );\n\n await cache.set(key, resp);\n return resp;\n }\n\n return {resolveTenant};\n}\n","// packages/sdk/src/clients/resClient.ts\nimport type {ResVarietyRef, ResVarietiesRefsResponse} from \"@innvoid/getmarket-contracts\";\nimport {readServiceEnv} from \"./env\";\nimport {createBulkRefsClient} from \"./bulkRefsClient\";\n\nexport function createResClient() {\n const env = readServiceEnv(\"RES\", {apiPrefix: \"/internal/v1\"});\n\n const varieties = createBulkRefsClient<ResVarietyRef>({\n namespace: \"res:variety\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/varieties\",\n });\n\n return {\n varietiesRefs: (uids: string[], opts?: any) => varieties.bulkRefs(uids, opts) as Promise<ResVarietiesRefsResponse>,\n };\n}\n","// packages/sdk/src/clients/mdClient.ts\nimport type {\n MdMeasureRef,\n MdMeasuresRefsResponse,\n MdMeasureTypeRef,\n MdMeasureTypesRefsResponse,\n MdCountryRef,\n MdCountriesRefsResponse,\n} from \"@innvoid/getmarket-contracts\";\n\nimport {readServiceEnv} from \"./env\";\nimport {createBulkRefsClient} from \"./bulkRefsClient\";\n\nexport function createMdClient() {\n const env = readServiceEnv(\"MD\", {apiPrefix: \"/internal/v1\"});\n\n const measures = createBulkRefsClient<MdMeasureRef>({\n namespace: \"md:measure\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/measures\",\n });\n\n const measureTypes = createBulkRefsClient<MdMeasureTypeRef>({\n namespace: \"md:measure_type\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/measure-types\",\n });\n\n const countries = createBulkRefsClient<MdCountryRef>({\n namespace: \"md:country\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/countries\",\n });\n\n return {\n measuresRefs: (uids: string[], opts?: any) => measures.bulkRefs(uids, opts) as Promise<MdMeasuresRefsResponse>,\n measureTypesRefs: (uids: string[], opts?: any) => measureTypes.bulkRefs(uids, opts) as Promise<MdMeasureTypesRefsResponse>,\n countriesRefs: (uids: string[], opts?: any) => countries.bulkRefs(uids, opts) as Promise<MdCountriesRefsResponse>,\n };\n}\n","// packages/sdk/src/clients/fisClient.ts\nimport type {\n UID,\n Code,\n FisTaxRef,\n FisTaxesRefsResponse,\n FisDocumentRef,\n FisDocumentsRefsResponse,\n FisSubmissionRef,\n FisSubmissionsRefsResponse,\n FisCalculateRequest,\n FisCalculateResponse,\n FisBuildDocumentRequest,\n FisBuildDocumentResponse,\n FisSignDocumentRequest,\n FisSignDocumentResponse,\n FisSubmitDocumentRequest,\n FisSubmitDocumentResponse,\n FisCancelDocumentRequest,\n FisCancelDocumentResponse,\n FisReserveFolioRequest,\n FisReserveFolioResponse,\n FisConsumeFolioRequest,\n FisConsumeFolioResponse,\n FisDocumentsQueryRequest,\n FisDocumentsQueryResponse,\n FisSubmissionRetryRequest,\n FisSubmissionRetryResponse,\n FisDocumentResponse,\n FisSnapshotResponse,\n FisSubmissionResponse,\n FisStatusEventsResponse,\n} from \"@innvoid/getmarket-contracts\";\n\nimport {readServiceEnv} from \"./env\";\nimport {createBulkRefsClient} from \"./bulkRefsClient\";\nimport {createHttpClient, type HttpClient} from \"../core\";\n\nexport function createFisClient() {\n const env = readServiceEnv(\"FIS\", {apiPrefix: \"/internal/v1\"});\n const http: HttpClient = createHttpClient({\n baseURL: `${env.baseURL}${env.apiPrefix}`,\n timeoutMs: 8000,\n });\n\n const taxes = createBulkRefsClient<FisTaxRef>({\n namespace: \"fis:tax\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/taxes\",\n });\n\n const documents = createBulkRefsClient<FisDocumentRef>({\n namespace: \"fis:document\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/documents\",\n });\n\n const submissions = createBulkRefsClient<FisSubmissionRef>({\n namespace: \"fis:submission\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/submissions\",\n });\n\n return {\n // -----------------------------------------------------------------------\n // Bulk refs\n // -----------------------------------------------------------------------\n taxesRefs: (uids: string[], opts?: any) =>\n taxes.bulkRefs(uids, opts) as Promise<FisTaxesRefsResponse>,\n\n documentsRefs: (uids: string[], opts?: any) =>\n documents.bulkRefs(uids, opts) as Promise<FisDocumentsRefsResponse>,\n\n submissionsRefs: (uids: string[], opts?: any) =>\n submissions.bulkRefs(uids, opts) as Promise<FisSubmissionsRefsResponse>,\n\n // -----------------------------------------------------------------------\n // Fiscal calculation / build / lifecycle\n // -----------------------------------------------------------------------\n calculate: async (body: FisCalculateRequest): Promise<FisCalculateResponse> => {\n const {data} = await http.post(\"/calculate\", body);\n return data;\n },\n\n buildDocument: async (body: FisBuildDocumentRequest): Promise<FisBuildDocumentResponse> => {\n const {data} = await http.post(\"/documents/build\", body);\n return data;\n },\n\n signDocument: async (body: FisSignDocumentRequest): Promise<FisSignDocumentResponse> => {\n const {data} = await http.post(\"/documents/sign\", body);\n return data;\n },\n\n submitDocument: async (body: FisSubmitDocumentRequest): Promise<FisSubmitDocumentResponse> => {\n const {data} = await http.post(\"/documents/submit\", body);\n return data;\n },\n\n cancelDocument: async (body: FisCancelDocumentRequest): Promise<FisCancelDocumentResponse> => {\n const {data} = await http.post(\"/documents/cancel\", body);\n return data;\n },\n\n // -----------------------------------------------------------------------\n // Folios / series\n // -----------------------------------------------------------------------\n reserveFolio: async (body: FisReserveFolioRequest): Promise<FisReserveFolioResponse> => {\n const {data} = await http.post(\"/folios/reserve\", body);\n return data;\n },\n\n consumeFolio: async (body: FisConsumeFolioRequest): Promise<FisConsumeFolioResponse> => {\n const {data} = await http.post(\"/folios/consume\", body);\n return data;\n },\n\n // -----------------------------------------------------------------------\n // Queries / detail\n // -----------------------------------------------------------------------\n queryDocuments: async (params: FisDocumentsQueryRequest): Promise<FisDocumentsQueryResponse> => {\n const {data} = await http.get(\"/documents\", {params});\n return data;\n },\n\n getDocumentByUid: async (uid: UID): Promise<FisDocumentResponse> => {\n const {data} = await http.get(`/documents/${uid}`);\n return data;\n },\n\n getSnapshotByUid: async (uid: UID): Promise<FisSnapshotResponse> => {\n const {data} = await http.get(`/snapshots/${uid}`);\n return data;\n },\n\n getSubmissionByUid: async (uid: UID): Promise<FisSubmissionResponse> => {\n const {data} = await http.get(`/submissions/${uid}`);\n return data;\n },\n\n getStatusEventsByDocumentUid: async (documentUid: UID): Promise<FisStatusEventsResponse> => {\n const {data} = await http.get(`/documents/${documentUid}/status-events`);\n return data;\n },\n\n retrySubmission: async (body: FisSubmissionRetryRequest): Promise<FisSubmissionRetryResponse> => {\n const {data} = await http.post(\"/submissions/retry\", body);\n return data;\n },\n };\n}\n","// packages/sdk/src/clients/mediaClient.ts\nimport type {MediaFileRef, MediaFilesRefsResponse} from \"@innvoid/getmarket-contracts\";\nimport {readServiceEnv} from \"./env\";\nimport {createBulkRefsClient} from \"./bulkRefsClient\";\n\nexport function createMediaClient() {\n const env = readServiceEnv(\"MEDIA\", {apiPrefix: \"/internal/v1\"});\n\n const files = createBulkRefsClient<MediaFileRef>({\n namespace: \"media:file\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/files\",\n });\n\n return {\n filesRefs: (uids: string[], opts?: any) =>\n files.bulkRefs(uids, opts) as Promise<MediaFilesRefsResponse>,\n };\n}\n","// packages/sdk/src/clients/mkpClient.ts\nimport type {\n MkpPublicationRef,\n MkpPublicationsRefsResponse,\n MkpEventRef,\n MkpEventsRefsResponse,\n MkpPromotionRef,\n MkpPromotionsRefsResponse,\n} from \"@innvoid/getmarket-contracts\";\n\nimport {readServiceEnv} from \"./env\";\nimport {createBulkRefsClient} from \"./bulkRefsClient\";\n\nexport function createMkpClient() {\n const env = readServiceEnv(\"MKP\", {apiPrefix: \"/internal/v1\"});\n\n const publications = createBulkRefsClient<MkpPublicationRef>({\n namespace: \"mkp:publication\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/publications\",\n });\n\n const events = createBulkRefsClient<MkpEventRef>({\n namespace: \"mkp:event\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/events\",\n });\n\n const promotions = createBulkRefsClient<MkpPromotionRef>({\n namespace: \"mkp:promotion\",\n baseURL: env.baseURL,\n apiPrefix: env.apiPrefix,\n path: \"/refs/promotions\",\n });\n\n return {\n publicationsRefs: (uids: string[], opts?: any) =>\n publications.bulkRefs(uids, opts) as Promise<MkpPublicationsRefsResponse>,\n\n eventsRefs: (uids: string[], opts?: any) =>\n events.bulkRefs(uids, opts) as Promise<MkpEventsRefsResponse>,\n\n promotionsRefs: (uids: string[], opts?: any) =>\n promotions.bulkRefs(uids, opts) as Promise<MkpPromotionsRefsResponse>,\n };\n}\n","import type {\n UID,\n Code,\n PayMethodAvailabilityRef,\n PayCreateIntentRequest,\n PayCreateIntentResponse,\n PayStartAttemptRequest,\n PayStartAttemptResponse,\n PayIntentResponse,\n PayMethodsAvailabilityResponse,\n} from \"@innvoid/getmarket-contracts\";\n\nimport {readServiceEnv} from \"./env\";\nimport {createHttpClient, type HttpClient} from \"../core\";\n\nexport function createPayClient() {\n const env = readServiceEnv(\"PAY\", {apiPrefix: \"/internal/v1\"});\n\n const http: HttpClient = createHttpClient({\n baseURL: `${env.baseURL}${env.apiPrefix}`,\n timeoutMs: 8000,\n });\n\n return {\n async createIntent(body: PayCreateIntentRequest): Promise<PayCreateIntentResponse> {\n const {data} = await http.post<PayCreateIntentResponse>(\"/intents\", body);\n return data;\n },\n\n async startAttempt(body: PayStartAttemptRequest): Promise<PayStartAttemptResponse> {\n const {data} = await http.post<PayStartAttemptResponse>(\"/attempts\", body);\n return data;\n },\n\n async getAvailableMethods(params: {\n md_country_uid: UID;\n currency_code: Code;\n auth_company_uid?: UID;\n auth_branch_uid?: UID;\n }): Promise<PayMethodsAvailabilityResponse> {\n const {data} = await http.get<PayMethodsAvailabilityResponse>(\"/methods/available\", {\n params,\n });\n return data;\n },\n\n async getIntentByUid(uid: UID): Promise<PayIntentResponse> {\n const {data} = await http.get<PayIntentResponse>(`/intents/${uid}`);\n return data;\n },\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/clients/index.cjs
CHANGED
|
@@ -35,6 +35,7 @@ __export(clients_exports, {
|
|
|
35
35
|
createMdClient: () => createMdClient,
|
|
36
36
|
createMediaClient: () => createMediaClient,
|
|
37
37
|
createMkpClient: () => createMkpClient,
|
|
38
|
+
createPayClient: () => createPayClient,
|
|
38
39
|
createPlatformClient: () => createPlatformClient,
|
|
39
40
|
createResClient: () => createResClient,
|
|
40
41
|
readServiceEnv: () => readServiceEnv
|
|
@@ -630,17 +631,109 @@ function createMdClient() {
|
|
|
630
631
|
};
|
|
631
632
|
}
|
|
632
633
|
|
|
634
|
+
// src/core/http.ts
|
|
635
|
+
var import_axios = __toESM(require("axios"), 1);
|
|
636
|
+
function createHttpClient(opts) {
|
|
637
|
+
return import_axios.default.create({
|
|
638
|
+
baseURL: opts.baseURL.replace(/\/+$/, ""),
|
|
639
|
+
timeout: opts.timeoutMs ?? 8e3,
|
|
640
|
+
headers: opts.headers ?? {}
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
|
|
633
644
|
// src/clients/fisClient.ts
|
|
634
645
|
function createFisClient() {
|
|
635
646
|
const env = readServiceEnv("FIS", { apiPrefix: "/internal/v1" });
|
|
647
|
+
const http = createHttpClient({
|
|
648
|
+
baseURL: `${env.baseURL}${env.apiPrefix}`,
|
|
649
|
+
timeoutMs: 8e3
|
|
650
|
+
});
|
|
636
651
|
const taxes = createBulkRefsClient({
|
|
637
652
|
namespace: "fis:tax",
|
|
638
653
|
baseURL: env.baseURL,
|
|
639
654
|
apiPrefix: env.apiPrefix,
|
|
640
655
|
path: "/refs/taxes"
|
|
641
656
|
});
|
|
657
|
+
const documents = createBulkRefsClient({
|
|
658
|
+
namespace: "fis:document",
|
|
659
|
+
baseURL: env.baseURL,
|
|
660
|
+
apiPrefix: env.apiPrefix,
|
|
661
|
+
path: "/refs/documents"
|
|
662
|
+
});
|
|
663
|
+
const submissions = createBulkRefsClient({
|
|
664
|
+
namespace: "fis:submission",
|
|
665
|
+
baseURL: env.baseURL,
|
|
666
|
+
apiPrefix: env.apiPrefix,
|
|
667
|
+
path: "/refs/submissions"
|
|
668
|
+
});
|
|
642
669
|
return {
|
|
643
|
-
|
|
670
|
+
// -----------------------------------------------------------------------
|
|
671
|
+
// Bulk refs
|
|
672
|
+
// -----------------------------------------------------------------------
|
|
673
|
+
taxesRefs: (uids, opts) => taxes.bulkRefs(uids, opts),
|
|
674
|
+
documentsRefs: (uids, opts) => documents.bulkRefs(uids, opts),
|
|
675
|
+
submissionsRefs: (uids, opts) => submissions.bulkRefs(uids, opts),
|
|
676
|
+
// -----------------------------------------------------------------------
|
|
677
|
+
// Fiscal calculation / build / lifecycle
|
|
678
|
+
// -----------------------------------------------------------------------
|
|
679
|
+
calculate: async (body) => {
|
|
680
|
+
const { data } = await http.post("/calculate", body);
|
|
681
|
+
return data;
|
|
682
|
+
},
|
|
683
|
+
buildDocument: async (body) => {
|
|
684
|
+
const { data } = await http.post("/documents/build", body);
|
|
685
|
+
return data;
|
|
686
|
+
},
|
|
687
|
+
signDocument: async (body) => {
|
|
688
|
+
const { data } = await http.post("/documents/sign", body);
|
|
689
|
+
return data;
|
|
690
|
+
},
|
|
691
|
+
submitDocument: async (body) => {
|
|
692
|
+
const { data } = await http.post("/documents/submit", body);
|
|
693
|
+
return data;
|
|
694
|
+
},
|
|
695
|
+
cancelDocument: async (body) => {
|
|
696
|
+
const { data } = await http.post("/documents/cancel", body);
|
|
697
|
+
return data;
|
|
698
|
+
},
|
|
699
|
+
// -----------------------------------------------------------------------
|
|
700
|
+
// Folios / series
|
|
701
|
+
// -----------------------------------------------------------------------
|
|
702
|
+
reserveFolio: async (body) => {
|
|
703
|
+
const { data } = await http.post("/folios/reserve", body);
|
|
704
|
+
return data;
|
|
705
|
+
},
|
|
706
|
+
consumeFolio: async (body) => {
|
|
707
|
+
const { data } = await http.post("/folios/consume", body);
|
|
708
|
+
return data;
|
|
709
|
+
},
|
|
710
|
+
// -----------------------------------------------------------------------
|
|
711
|
+
// Queries / detail
|
|
712
|
+
// -----------------------------------------------------------------------
|
|
713
|
+
queryDocuments: async (params) => {
|
|
714
|
+
const { data } = await http.get("/documents", { params });
|
|
715
|
+
return data;
|
|
716
|
+
},
|
|
717
|
+
getDocumentByUid: async (uid) => {
|
|
718
|
+
const { data } = await http.get(`/documents/${uid}`);
|
|
719
|
+
return data;
|
|
720
|
+
},
|
|
721
|
+
getSnapshotByUid: async (uid) => {
|
|
722
|
+
const { data } = await http.get(`/snapshots/${uid}`);
|
|
723
|
+
return data;
|
|
724
|
+
},
|
|
725
|
+
getSubmissionByUid: async (uid) => {
|
|
726
|
+
const { data } = await http.get(`/submissions/${uid}`);
|
|
727
|
+
return data;
|
|
728
|
+
},
|
|
729
|
+
getStatusEventsByDocumentUid: async (documentUid) => {
|
|
730
|
+
const { data } = await http.get(`/documents/${documentUid}/status-events`);
|
|
731
|
+
return data;
|
|
732
|
+
},
|
|
733
|
+
retrySubmission: async (body) => {
|
|
734
|
+
const { data } = await http.post("/submissions/retry", body);
|
|
735
|
+
return data;
|
|
736
|
+
}
|
|
644
737
|
};
|
|
645
738
|
}
|
|
646
739
|
|
|
@@ -685,6 +778,35 @@ function createMkpClient() {
|
|
|
685
778
|
promotionsRefs: (uids, opts) => promotions.bulkRefs(uids, opts)
|
|
686
779
|
};
|
|
687
780
|
}
|
|
781
|
+
|
|
782
|
+
// src/clients/payClient.ts
|
|
783
|
+
function createPayClient() {
|
|
784
|
+
const env = readServiceEnv("PAY", { apiPrefix: "/internal/v1" });
|
|
785
|
+
const http = createHttpClient({
|
|
786
|
+
baseURL: `${env.baseURL}${env.apiPrefix}`,
|
|
787
|
+
timeoutMs: 8e3
|
|
788
|
+
});
|
|
789
|
+
return {
|
|
790
|
+
async createIntent(body) {
|
|
791
|
+
const { data } = await http.post("/intents", body);
|
|
792
|
+
return data;
|
|
793
|
+
},
|
|
794
|
+
async startAttempt(body) {
|
|
795
|
+
const { data } = await http.post("/attempts", body);
|
|
796
|
+
return data;
|
|
797
|
+
},
|
|
798
|
+
async getAvailableMethods(params) {
|
|
799
|
+
const { data } = await http.get("/methods/available", {
|
|
800
|
+
params
|
|
801
|
+
});
|
|
802
|
+
return data;
|
|
803
|
+
},
|
|
804
|
+
async getIntentByUid(uid) {
|
|
805
|
+
const { data } = await http.get(`/intents/${uid}`);
|
|
806
|
+
return data;
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
}
|
|
688
810
|
// Annotate the CommonJS export names for ESM import in node:
|
|
689
811
|
0 && (module.exports = {
|
|
690
812
|
createBulkRefsClient,
|
|
@@ -692,6 +814,7 @@ function createMkpClient() {
|
|
|
692
814
|
createMdClient,
|
|
693
815
|
createMediaClient,
|
|
694
816
|
createMkpClient,
|
|
817
|
+
createPayClient,
|
|
695
818
|
createPlatformClient,
|
|
696
819
|
createResClient,
|
|
697
820
|
readServiceEnv
|