@gerege-systems/eid-mongolia-sdk 0.11.0 → 0.12.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/README.md CHANGED
@@ -218,7 +218,8 @@ import { ForbiddenError, ApiError, ON_BEHALF_ERROR_CODES } from "@gerege-systems
218
218
 
219
219
  // 1. Иргэн сүүлийн 24 цагт танай RP-ээр нэвтэрсэн байх ёстой.
220
220
  const { representations } = await eid.organization.getRepresentations("PNOMN-12345678");
221
- // → [{ orgEtsi: "NTRMN-6235972", orgName: "Гэрэгэ Системс ХХК", role: "ceo", rightType: "ADMIN", … }]
221
+ // → [{ orgEtsi: "NTRMN-6235972", orgName: "Гэрэгэ Системс ХХК", role: "ceo", roleLabel: "Гүйцэтгэх захирал",
222
+ // rightType: "ADMIN", … }]
222
223
 
223
224
  // 2. PDF (PAdES, CA угсарна) — санал болгох урсгал.
224
225
  try {
@@ -258,8 +259,12 @@ prepare 429 `PDF_PREPARE_BUSY`, 503 `LTV_UNAVAILABLE` / `TSA_UNAVAILABLE`; docum
258
259
  хүртэл уншина; хэтэрвэл `ResponseTooLargeError`. JSON хариу 4 MiB-ээс хэтэрвэл мөн `ResponseTooLargeError` (таслахгүй).
259
260
  `getRepresentations`-ийн `raw` — серверийн түүхий JSON.
260
261
 
262
+ **Албан тушаал харуулахдаа `roleLabel` ашигла** (representations болон session-ий `onBehalfOf`) — `role` нь машин
263
+ утга (`ceo` / `founder` / `stakeholder` эсвэл MANAGER-т бичсэн текст), өөрөө орчуулахгүй. Хэл: `new EidClient({ …,
264
+ language: "en" })` → дуудлага бүрд `Accept-Language`; анхдагч илгээхгүй (сервер mn). Хуучин CA-д `roleLabel` байхгүй.
265
+
261
266
  Олон талт гэрээ: А байгууллагын гаралтыг өөрчлөлтгүй Б-ийн `prepare`-д (`docID`, өөр `onBehalfOf`) илгээнэ.
262
- Session-ий `onBehalfOf` блок (`role`/`rightType`) нь хариу угсрах үеийн бүртгэл; `pdf.signer.onBehalfOf`/`claimedRole`
267
+ Session-ий `onBehalfOf` блок (`role`/`roleLabel`/`rightType`) нь хариу угсрах үеийн бүртгэл; `pdf.signer.onBehalfOf`/`claimedRole`
263
268
  нь баримтад бичигдсэн утга.
264
269
 
265
270
  ## 3b. Иргэний PKI самбар (`PKI_READ` эрх)
@@ -212,8 +212,16 @@ interface Representation {
212
212
  orgRegister: string;
213
213
  orgName: string;
214
214
  orgNameEn?: string;
215
- /** Бүртгэлийн албан тушаал (ХУР-аас холбогдсонд `ceo` / `founder`, MANAGER-т ADMIN-ий бичсэн текст). */
215
+ /**
216
+ * Албан тушаалын машин утга (ХУР-аас холбогдсонд `ceo` / `founder` / `stakeholder`, MANAGER-т ADMIN-ий бичсэн
217
+ * текст) — өөрөө орчуулахгүй, хүнд {@link Representation.roleLabel}-ийг харуулна.
218
+ */
216
219
  role?: string;
220
+ /**
221
+ * Албан тушаалын хүнд харуулах нэр (CA нэг газраас; хэл: `ClientConfig.language` → `Accept-Language`, анхдагч mn).
222
+ * Хуучин CA-д байхгүй.
223
+ */
224
+ roleLabel?: string;
217
225
  rightType: "ADMIN" | "MANAGER" | string;
218
226
  source: "REGISTRY" | "MANUAL" | string;
219
227
  /** ISO 8601. */
@@ -233,8 +241,10 @@ interface OrgResult {
233
241
  /** `NTRMN-<улсын бүртгэлийн дугаар>`. */
234
242
  orgEtsi: string;
235
243
  orgName: string | null;
236
- /** Албан тушаал (ж: "Захирал"). Эрх хураагдсан бол null. */
244
+ /** Албан тушаалын машин утга (`ceo`, MANUAL текст) — өөрөө орчуулахгүй. Эрх хураагдсан бол null. */
237
245
  role: string | null;
246
+ /** Албан тушаалын хүнд харуулах нэр ({@link Representation.roleLabel}). Эрх хураагдсан / хуучин CA бол байхгүй. */
247
+ roleLabel?: string;
238
248
  /** ADMIN | MANAGER. Эрх хураагдсан бол null. */
239
249
  rightType: string | null;
240
250
  }
@@ -212,8 +212,16 @@ interface Representation {
212
212
  orgRegister: string;
213
213
  orgName: string;
214
214
  orgNameEn?: string;
215
- /** Бүртгэлийн албан тушаал (ХУР-аас холбогдсонд `ceo` / `founder`, MANAGER-т ADMIN-ий бичсэн текст). */
215
+ /**
216
+ * Албан тушаалын машин утга (ХУР-аас холбогдсонд `ceo` / `founder` / `stakeholder`, MANAGER-т ADMIN-ий бичсэн
217
+ * текст) — өөрөө орчуулахгүй, хүнд {@link Representation.roleLabel}-ийг харуулна.
218
+ */
216
219
  role?: string;
220
+ /**
221
+ * Албан тушаалын хүнд харуулах нэр (CA нэг газраас; хэл: `ClientConfig.language` → `Accept-Language`, анхдагч mn).
222
+ * Хуучин CA-д байхгүй.
223
+ */
224
+ roleLabel?: string;
217
225
  rightType: "ADMIN" | "MANAGER" | string;
218
226
  source: "REGISTRY" | "MANUAL" | string;
219
227
  /** ISO 8601. */
@@ -233,8 +241,10 @@ interface OrgResult {
233
241
  /** `NTRMN-<улсын бүртгэлийн дугаар>`. */
234
242
  orgEtsi: string;
235
243
  orgName: string | null;
236
- /** Албан тушаал (ж: "Захирал"). Эрх хураагдсан бол null. */
244
+ /** Албан тушаалын машин утга (`ceo`, MANUAL текст) — өөрөө орчуулахгүй. Эрх хураагдсан бол null. */
237
245
  role: string | null;
246
+ /** Албан тушаалын хүнд харуулах нэр ({@link Representation.roleLabel}). Эрх хураагдсан / хуучин CA бол байхгүй. */
247
+ roleLabel?: string;
238
248
  /** ADMIN | MANAGER. Эрх хураагдсан бол null. */
239
249
  rightType: string | null;
240
250
  }
@@ -1 +1 @@
1
- export { f as DeviceLinkError, g as DeviceLinkInput, D as DeviceLinkSession, E as EidError, k as NavigatorLike, n as OpenOrShowQROptions, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR } from './browser-BVR6gtrx.cjs';
1
+ export { f as DeviceLinkError, g as DeviceLinkInput, D as DeviceLinkSession, E as EidError, k as NavigatorLike, n as OpenOrShowQROptions, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR } from './browser-B_xuB7Rt.cjs';
package/dist/browser.d.ts CHANGED
@@ -1 +1 @@
1
- export { f as DeviceLinkError, g as DeviceLinkInput, D as DeviceLinkSession, E as EidError, k as NavigatorLike, n as OpenOrShowQROptions, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR } from './browser-BVR6gtrx.js';
1
+ export { f as DeviceLinkError, g as DeviceLinkInput, D as DeviceLinkSession, E as EidError, k as NavigatorLike, n as OpenOrShowQROptions, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR } from './browser-B_xuB7Rt.js';
package/dist/index.cjs CHANGED
@@ -235,7 +235,8 @@ var Http = class {
235
235
  method,
236
236
  headers: {
237
237
  Authorization: `Bearer ${this.cfg.apiSecret}`,
238
- ...contentType ? { "Content-Type": contentType } : {}
238
+ ...contentType ? { "Content-Type": contentType } : {},
239
+ ...this.cfg.language ? { "Accept-Language": this.cfg.language } : {}
239
240
  },
240
241
  body,
241
242
  signal: AbortSignal.timeout(timeoutMs ?? this.cfg.timeoutMs ?? DEFAULT_TIMEOUT_MS)
@@ -645,10 +646,12 @@ function parseOrg(raw) {
645
646
  const o = asRecord(raw);
646
647
  const etsi = str(o.orgEtsi);
647
648
  if (!etsi) return null;
649
+ const roleLabel = str(o.roleLabel);
648
650
  return {
649
651
  orgEtsi: etsi,
650
652
  orgName: str(o.orgName),
651
653
  role: str(o.role),
654
+ ...roleLabel ? { roleLabel } : {},
652
655
  rightType: str(o.rightType)
653
656
  };
654
657
  }
@@ -1776,7 +1779,8 @@ var EidClient = class {
1776
1779
  apiSecret: cfg.credentials.apiSecret,
1777
1780
  timeoutMs: cfg.timeoutMs,
1778
1781
  dispatcher: cfg.dispatcher,
1779
- fetchImpl: cfg.fetchImpl
1782
+ fetchImpl: cfg.fetchImpl,
1783
+ language: cfg.language?.trim() || void 0
1780
1784
  });
1781
1785
  const level = cfg.defaultCertificateLevel ?? "QUALIFIED";
1782
1786
  this.auth = new AuthApi(http, cfg.credentials, { certificateLevel: level });
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as RpCredentials, C as CertificateLevel, I as Interaction, S as SignatureAlgorithm, H as HashAlgorithm, N as NotificationSession, D as DeviceLinkSession, a as SessionResult, P as PersonBlock, b as PdfSessionBlock, c as RepresentationsResponse, A as AcspContext, F as FlowType, E as EidError } from './browser-BVR6gtrx.cjs';
2
- export { d as ApiError, e as AuthenticationError, f as DeviceLinkError, g as DeviceLinkInput, h as EndResult, i as ForbiddenError, j as HttpErrorInit, k as NavigatorLike, l as NetworkError, O as ON_BEHALF_ERROR_CODES, m as OnBehalfErrorCode, n as OpenOrShowQROptions, o as OrgResult, p as PdfDocumentStatus, q as PdfSigner, r as RETRYABLE_ERROR_CODES, s as Representation, t as ResponseTooLargeError, u as RetryableErrorCode, v as SessionFailedError, w as SessionState, x as SignatureAlgorithmParameters, y as SignatureProtocol, T as TokenCertSessionBlock, z as TokenCertStatus, V as ValidationError, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR, K as parseRetryAfter } from './browser-BVR6gtrx.cjs';
1
+ import { R as RpCredentials, C as CertificateLevel, I as Interaction, S as SignatureAlgorithm, H as HashAlgorithm, N as NotificationSession, D as DeviceLinkSession, a as SessionResult, P as PersonBlock, b as PdfSessionBlock, c as RepresentationsResponse, A as AcspContext, F as FlowType, E as EidError } from './browser-B_xuB7Rt.cjs';
2
+ export { d as ApiError, e as AuthenticationError, f as DeviceLinkError, g as DeviceLinkInput, h as EndResult, i as ForbiddenError, j as HttpErrorInit, k as NavigatorLike, l as NetworkError, O as ON_BEHALF_ERROR_CODES, m as OnBehalfErrorCode, n as OpenOrShowQROptions, o as OrgResult, p as PdfDocumentStatus, q as PdfSigner, r as RETRYABLE_ERROR_CODES, s as Representation, t as ResponseTooLargeError, u as RetryableErrorCode, v as SessionFailedError, w as SessionState, x as SignatureAlgorithmParameters, y as SignatureProtocol, T as TokenCertSessionBlock, z as TokenCertStatus, V as ValidationError, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR, K as parseRetryAfter } from './browser-B_xuB7Rt.cjs';
3
3
  import { X509Certificate, KeyObject } from 'node:crypto';
4
4
 
5
5
  interface HttpConfig {
@@ -17,6 +17,8 @@ interface HttpConfig {
17
17
  dispatcher?: unknown;
18
18
  /** Тест/custom орчинд fetch-ийг орлуулах (default — global fetch). */
19
19
  fetchImpl?: typeof fetch;
20
+ /** `Accept-Language` header-ийн утга (ж: "en"); хоосон бол илгээхгүй. */
21
+ language?: string;
20
22
  }
21
23
  declare class Http {
22
24
  private readonly cfg;
@@ -806,6 +808,11 @@ interface ClientConfig {
806
808
  dispatcher?: unknown;
807
809
  /** fetch орлуулагч (тест). */
808
810
  fetchImpl?: typeof fetch;
811
+ /**
812
+ * Хүнд харуулах текстийн хэл (`roleLabel` г.м.) — дуудлага бүрд `Accept-Language` болж илгээгдэнэ (`"mn"` | `"en"`).
813
+ * Анхдагч: илгээхгүй (сервер mn).
814
+ */
815
+ language?: string;
809
816
  /** Trust anchor (Root CA) — validator-д. Production-д ЗААВАЛ. */
810
817
  trust?: TrustConfig;
811
818
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as RpCredentials, C as CertificateLevel, I as Interaction, S as SignatureAlgorithm, H as HashAlgorithm, N as NotificationSession, D as DeviceLinkSession, a as SessionResult, P as PersonBlock, b as PdfSessionBlock, c as RepresentationsResponse, A as AcspContext, F as FlowType, E as EidError } from './browser-BVR6gtrx.js';
2
- export { d as ApiError, e as AuthenticationError, f as DeviceLinkError, g as DeviceLinkInput, h as EndResult, i as ForbiddenError, j as HttpErrorInit, k as NavigatorLike, l as NetworkError, O as ON_BEHALF_ERROR_CODES, m as OnBehalfErrorCode, n as OpenOrShowQROptions, o as OrgResult, p as PdfDocumentStatus, q as PdfSigner, r as RETRYABLE_ERROR_CODES, s as Representation, t as ResponseTooLargeError, u as RetryableErrorCode, v as SessionFailedError, w as SessionState, x as SignatureAlgorithmParameters, y as SignatureProtocol, T as TokenCertSessionBlock, z as TokenCertStatus, V as ValidationError, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR, K as parseRetryAfter } from './browser-BVR6gtrx.js';
1
+ import { R as RpCredentials, C as CertificateLevel, I as Interaction, S as SignatureAlgorithm, H as HashAlgorithm, N as NotificationSession, D as DeviceLinkSession, a as SessionResult, P as PersonBlock, b as PdfSessionBlock, c as RepresentationsResponse, A as AcspContext, F as FlowType, E as EidError } from './browser-B_xuB7Rt.js';
2
+ export { d as ApiError, e as AuthenticationError, f as DeviceLinkError, g as DeviceLinkInput, h as EndResult, i as ForbiddenError, j as HttpErrorInit, k as NavigatorLike, l as NetworkError, O as ON_BEHALF_ERROR_CODES, m as OnBehalfErrorCode, n as OpenOrShowQROptions, o as OrgResult, p as PdfDocumentStatus, q as PdfSigner, r as RETRYABLE_ERROR_CODES, s as Representation, t as ResponseTooLargeError, u as RetryableErrorCode, v as SessionFailedError, w as SessionState, x as SignatureAlgorithmParameters, y as SignatureProtocol, T as TokenCertSessionBlock, z as TokenCertStatus, V as ValidationError, B as deviceLink, G as isMobileUserAgent, J as openOrShowQR, K as parseRetryAfter } from './browser-B_xuB7Rt.js';
3
3
  import { X509Certificate, KeyObject } from 'node:crypto';
4
4
 
5
5
  interface HttpConfig {
@@ -17,6 +17,8 @@ interface HttpConfig {
17
17
  dispatcher?: unknown;
18
18
  /** Тест/custom орчинд fetch-ийг орлуулах (default — global fetch). */
19
19
  fetchImpl?: typeof fetch;
20
+ /** `Accept-Language` header-ийн утга (ж: "en"); хоосон бол илгээхгүй. */
21
+ language?: string;
20
22
  }
21
23
  declare class Http {
22
24
  private readonly cfg;
@@ -806,6 +808,11 @@ interface ClientConfig {
806
808
  dispatcher?: unknown;
807
809
  /** fetch орлуулагч (тест). */
808
810
  fetchImpl?: typeof fetch;
811
+ /**
812
+ * Хүнд харуулах текстийн хэл (`roleLabel` г.м.) — дуудлага бүрд `Accept-Language` болж илгээгдэнэ (`"mn"` | `"en"`).
813
+ * Анхдагч: илгээхгүй (сервер mn).
814
+ */
815
+ language?: string;
809
816
  /** Trust anchor (Root CA) — validator-д. Production-д ЗААВАЛ. */
810
817
  trust?: TrustConfig;
811
818
  }
package/dist/index.js CHANGED
@@ -52,7 +52,8 @@ var Http = class {
52
52
  method,
53
53
  headers: {
54
54
  Authorization: `Bearer ${this.cfg.apiSecret}`,
55
- ...contentType ? { "Content-Type": contentType } : {}
55
+ ...contentType ? { "Content-Type": contentType } : {},
56
+ ...this.cfg.language ? { "Accept-Language": this.cfg.language } : {}
56
57
  },
57
58
  body,
58
59
  signal: AbortSignal.timeout(timeoutMs ?? this.cfg.timeoutMs ?? DEFAULT_TIMEOUT_MS)
@@ -462,10 +463,12 @@ function parseOrg(raw) {
462
463
  const o = asRecord(raw);
463
464
  const etsi = str(o.orgEtsi);
464
465
  if (!etsi) return null;
466
+ const roleLabel = str(o.roleLabel);
465
467
  return {
466
468
  orgEtsi: etsi,
467
469
  orgName: str(o.orgName),
468
470
  role: str(o.role),
471
+ ...roleLabel ? { roleLabel } : {},
469
472
  rightType: str(o.rightType)
470
473
  };
471
474
  }
@@ -1593,7 +1596,8 @@ var EidClient = class {
1593
1596
  apiSecret: cfg.credentials.apiSecret,
1594
1597
  timeoutMs: cfg.timeoutMs,
1595
1598
  dispatcher: cfg.dispatcher,
1596
- fetchImpl: cfg.fetchImpl
1599
+ fetchImpl: cfg.fetchImpl,
1600
+ language: cfg.language?.trim() || void 0
1597
1601
  });
1598
1602
  const level = cfg.defaultCertificateLevel ?? "QUALIFIED";
1599
1603
  this.auth = new AuthApi(http, cfg.credentials, { certificateLevel: level });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gerege-systems/eid-mongolia-sdk",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "e-ID Mongolia Relying Party SDK — иргэнээр утсаар нь нэвтрэлт ба хууль ёсны цахим гарын үсэг (RP-API v3, Smart-ID нийцтэй).",
5
5
  "license": "MIT",
6
6
  "type": "module",