@gerege-systems/eid-mongolia-sdk 0.2.0 → 0.4.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 +40 -2
- package/dist/browser-BS8JwSQk.d.cts +223 -0
- package/dist/browser-BS8JwSQk.d.ts +223 -0
- package/dist/browser.cjs +89 -0
- package/dist/browser.d.cts +1 -0
- package/dist/browser.d.ts +1 -0
- package/dist/browser.js +14 -0
- package/dist/chunk-Q5TQMCJC.js +89 -0
- package/dist/index.cjs +76 -2
- package/dist/index.d.cts +13 -172
- package/dist/index.d.ts +13 -172
- package/dist/index.js +39 -33
- package/package.json +7 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
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, A as AcspContext, F as FlowType } from './browser-BS8JwSQk.js';
|
|
2
|
+
export { b as ApiError, c as AuthenticationError, d as DeviceLinkError, e as DeviceLinkInput, E as EidError, f as EndResult, g as ForbiddenError, h as NavigatorLike, i as NetworkError, O as OpenOrShowQROptions, j as SessionFailedError, k as SessionState, l as SignatureAlgorithmParameters, m as SignatureProtocol, V as ValidationError, n as deviceLink, o as isMobileUserAgent, p as openOrShowQR } from './browser-BS8JwSQk.js';
|
|
1
3
|
import { X509Certificate, KeyObject } from 'node:crypto';
|
|
2
4
|
|
|
3
5
|
interface HttpConfig {
|
|
4
|
-
/** RP-API суурь URL
|
|
6
|
+
/** RP-API-ийн бүтэн суурь URL. Ж: https://rp.eidmongolia.mn */
|
|
5
7
|
baseUrl: string;
|
|
6
8
|
/** API secret (rp_sk_…) — Authorization: Bearer-д орно. */
|
|
7
9
|
apiSecret: string;
|
|
@@ -24,139 +26,6 @@ declare class Http {
|
|
|
24
26
|
private request;
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
/** Сертификатын баталгаажуулалтын түвшин (eIDAS LoA). QUALIFIED — хууль ёсны гарын үсэгт. */
|
|
28
|
-
type CertificateLevel = "ADVANCED" | "QUALIFIED" | "QSCD";
|
|
29
|
-
/** Гарын үсгийн протокол: auth → ACSP_V2, sign → RAW_DIGEST_SIGNATURE (Smart-ID v3). */
|
|
30
|
-
type SignatureProtocol = "ACSP_V2" | "RAW_DIGEST_SIGNATURE";
|
|
31
|
-
/** Гарын үсгийн алгоритм. rsassa-pss анхдагч; ecdsa-with-SHA256 — хуучин threshold-ECDSA cert. */
|
|
32
|
-
type SignatureAlgorithm = "rsassa-pss" | "sha256WithRSAEncryption" | "sha384WithRSAEncryption" | "sha512WithRSAEncryption" | "ecdsa-with-SHA256";
|
|
33
|
-
/** Hash алгоритм (Smart-ID v3 нэршил). Хуучин "SHA256" нэршил SDK-д БАЙХГҮЙ. */
|
|
34
|
-
type HashAlgorithm = "SHA-256" | "SHA-384" | "SHA-512";
|
|
35
|
-
/** Урсгалын төрөл — хариуны signature.flowType; RP өөрийн санал болгосонтой тулгана. */
|
|
36
|
-
type FlowType = "QR" | "App2App" | "Web2App" | "Notification";
|
|
37
|
-
/** rsassa-pss хариуны параметр (signature.signatureAlgorithmParameters). */
|
|
38
|
-
interface SignatureAlgorithmParameters {
|
|
39
|
-
hashAlgorithm: HashAlgorithm | string;
|
|
40
|
-
maskGenAlgorithm?: {
|
|
41
|
-
algorithm: string;
|
|
42
|
-
parameters?: {
|
|
43
|
-
hashAlgorithm: string;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
saltLength?: number;
|
|
47
|
-
trailerField?: string;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Auth session-ийн ACSP_V2 контекст — RP ХҮСЭЛТЭД илгээсэн утгууд. validator энэ + хариугаар
|
|
51
|
-
* payload-ийг дахин угсарна. Session эхлүүлэхэд SDK өөрөө бөглөнө; RP үүнийг хадгална.
|
|
52
|
-
*/
|
|
53
|
-
interface AcspContext {
|
|
54
|
-
rpChallenge: string;
|
|
55
|
-
relyingPartyName: string;
|
|
56
|
-
brokeredRpName: string;
|
|
57
|
-
/** Илгээсэн base64 МӨР (дахин serialize хийхгүй). */
|
|
58
|
-
interactions: string;
|
|
59
|
-
initialCallbackUrl: string;
|
|
60
|
-
/** RP-ийн санал болгосон урсгалууд — хариуны flowType эдгээрийн нэг байх ёстой. */
|
|
61
|
-
flowTypes: FlowType[];
|
|
62
|
-
signatureAlgorithm: SignatureAlgorithm;
|
|
63
|
-
hashAlgorithm: HashAlgorithm;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Interaction — иргэний утсан дээр харагдах харилцан үйлдэл. displayTextAndPIN нь PIN асууж
|
|
67
|
-
* текст харуулна (хамгийн түгээмэл). text60 — 60 тэмдэгт хүртэл; text200 — 200 хүртэл.
|
|
68
|
-
*/
|
|
69
|
-
interface Interaction {
|
|
70
|
-
type: "displayTextAndPIN" | "confirmationMessage" | "confirmationMessageAndVerificationCodeChoice";
|
|
71
|
-
displayText60?: string;
|
|
72
|
-
displayText200?: string;
|
|
73
|
-
}
|
|
74
|
-
/** Session-ийн төлөв. RUNNING — иргэн хариу өгөөгүй; COMPLETE — дууссан (endResult-ыг үз). */
|
|
75
|
-
type SessionState = "RUNNING" | "COMPLETE";
|
|
76
|
-
/**
|
|
77
|
-
* endResult — COMPLETE session-ийн эцсийн үр дүн.
|
|
78
|
-
* OK — амжилттай (signature/cert бэлэн)
|
|
79
|
-
* USER_REFUSED* — иргэн татгалзсан
|
|
80
|
-
* TIMEOUT — иргэн хугацаанд хариу өгөөгүй
|
|
81
|
-
* DOCUMENT_UNUSABLE — гэрчилгээ/төхөөрөмж ашиглах боломжгүй
|
|
82
|
-
* WRONG_VC — баталгаажуулах код таарсангүй
|
|
83
|
-
*/
|
|
84
|
-
type EndResult = "OK" | "USER_REFUSED" | "USER_REFUSED_DISPLAYTEXTANDPIN" | "USER_REFUSED_VC_CHOICE" | "USER_REFUSED_CONFIRMATIONMESSAGE" | "USER_REFUSED_CERT_CHOICE" | "TIMEOUT" | "DOCUMENT_UNUSABLE" | "WRONG_VC" | "PROTOCOL_FAILURE" | string;
|
|
85
|
-
/**
|
|
86
|
-
* Push (notification) session эхлүүлсний хариу. vc — иргэний дэлгэцэд ХАРУУЛАХ 5 оронтой
|
|
87
|
-
* баталгаажуулах код: утсан дээрх кодтой ижил эсэхийг НҮДЭЭР тулгах зориулалттай.
|
|
88
|
-
*
|
|
89
|
-
* VC нь ПИН БИШ — RP нь үүнийг хэрэглэгчээр оруулуулж болохгүй, зөвхөн харуулна. (PIN1 нь
|
|
90
|
-
* 4 оронтой; VC-г 5 оронтой болгосон нь хэрэглэгч андуурч PIN-ий талбарт оруулаад PIN
|
|
91
|
-
* блок болохоос сэргийлсэн зориудын ялгаа.)
|
|
92
|
-
*/
|
|
93
|
-
interface NotificationSession {
|
|
94
|
-
sessionId: string;
|
|
95
|
-
/** Verification Code — иргэний утсан дээр харагдах код. RP UI-даа ижлийг харуулна (man-in-the-middle хамгаалалт). */
|
|
96
|
-
vc: string | null;
|
|
97
|
-
/** RP-ийн илгээсэн санамсаргүй challenge (base64). Хариуны signature-ийг үүний эсрэг шалгана. */
|
|
98
|
-
rpChallenge: string;
|
|
99
|
-
/** Auth session-д validator-т өгөх контекст (sign session-д undefined). */
|
|
100
|
-
acsp?: AcspContext;
|
|
101
|
-
}
|
|
102
|
-
/** Device-link (QR/App2App) session. Иргэн QR уншиж эсвэл deeplink дарж нэгдэнэ. */
|
|
103
|
-
interface DeviceLinkSession {
|
|
104
|
-
sessionId: string;
|
|
105
|
-
sessionToken: string | null;
|
|
106
|
-
sessionSecret: string | null;
|
|
107
|
-
/** QR/deeplink үүсгэх суурь URL. */
|
|
108
|
-
deviceLinkBase: string | null;
|
|
109
|
-
rpChallenge: string;
|
|
110
|
-
acsp?: AcspContext;
|
|
111
|
-
}
|
|
112
|
-
/** Session poll-ийн нэгтгэсэн үр дүн (validator-т орох түүхий материал). */
|
|
113
|
-
interface SessionResult {
|
|
114
|
-
state: SessionState | string;
|
|
115
|
-
endResult: EndResult | null;
|
|
116
|
-
documentNumber: string | null;
|
|
117
|
-
/** Иргэний X.509 гэрчилгээ (DER, base64). cert chain validation-д орно. */
|
|
118
|
-
certificateDerB64: string | null;
|
|
119
|
-
certificateLevel: CertificateLevel | string | null;
|
|
120
|
-
/** Гарын үсгийн утга (base64). rpChallenge/digest-ийн эсрэг баталгаажна. */
|
|
121
|
-
signatureValueB64: string | null;
|
|
122
|
-
signatureAlgorithm: string | null;
|
|
123
|
-
signatureProtocol: string | null;
|
|
124
|
-
/** ACSP_V2 (auth): серверийн санамсаргүй (base64), утасны challenge (base64url), урсгал. */
|
|
125
|
-
serverRandom: string | null;
|
|
126
|
-
userChallenge: string | null;
|
|
127
|
-
flowType: string | null;
|
|
128
|
-
signatureAlgorithmParameters: SignatureAlgorithmParameters | null;
|
|
129
|
-
interactionTypeUsed: string | null;
|
|
130
|
-
/**
|
|
131
|
-
* Байгууллагын нэрийн өмнөөс (нэвтрэлт эсвэл гарын үсэг) байсан бол — СЕРВЕР төлөөллийн
|
|
132
|
-
* эрхийг session үүсэх үед шалгасны баталгаа. null бол ердийн хувь хүний session.
|
|
133
|
-
* RP энэ талбарыг л итгэж уншина (клиентийн сонголтод биш). docs/ORG_LOGIN.md.
|
|
134
|
-
*/
|
|
135
|
-
onBehalfOf: OrgResult | null;
|
|
136
|
-
}
|
|
137
|
-
/** Session-ий байгууллагын блок — байгууллага + тухайн иргэний эрх (бүртгэлээс real-time). */
|
|
138
|
-
interface OrgResult {
|
|
139
|
-
/** `NTRMN-<улсын бүртгэлийн дугаар>`. */
|
|
140
|
-
orgEtsi: string;
|
|
141
|
-
orgName: string | null;
|
|
142
|
-
/** Албан тушаал (ж: "Захирал"). Эрх хураагдсан бол null. */
|
|
143
|
-
role: string | null;
|
|
144
|
-
/** ADMIN | MANAGER. Эрх хураагдсан бол null. */
|
|
145
|
-
rightType: string | null;
|
|
146
|
-
}
|
|
147
|
-
/** RP-ийн нэвтрэх мэдээлэл — бүх дуудлагад хэрэгтэй таних тэмдэг + secret. */
|
|
148
|
-
interface RpCredentials {
|
|
149
|
-
/** relying_parties-д бүртгэлтэй RP UUID. */
|
|
150
|
-
rpUUID: string;
|
|
151
|
-
/**
|
|
152
|
-
* Дэд системийн нэр (ж: «Интернэт банк») — CA-д session бүрд хадгалагдана, ≤120 тэмдэгт
|
|
153
|
-
* (сервер илүүг таслана). Иргэний утсан дээр харагдах нэр нь RP-ийн бүртгэлийн нэр.
|
|
154
|
-
*/
|
|
155
|
-
rpName: string;
|
|
156
|
-
/** API secret (rp_sk_…). Зөвхөн backend-д хадгална — браузерт ХЭЗЭЭ Ч задлахгүй. */
|
|
157
|
-
apiSecret: string;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
29
|
interface AuthDefaults {
|
|
161
30
|
certificateLevel: CertificateLevel;
|
|
162
31
|
}
|
|
@@ -361,8 +230,11 @@ declare function verifyPayloadSignature(payload: Buffer, sigB64: string, key: Ke
|
|
|
361
230
|
declare function verifyPrehashedSignature(digest: Buffer, sigB64: string, key: KeyObject, alg: string, hash: string): boolean;
|
|
362
231
|
|
|
363
232
|
interface ClientConfig {
|
|
364
|
-
/**
|
|
365
|
-
|
|
233
|
+
/**
|
|
234
|
+
* RP-API-ийн БҮТЭН суурь URL — SDK зам залгахаас өөр юу ч нэмэхгүй (0.3.0-аас /v3 залгахгүй).
|
|
235
|
+
* Анхдагч: {@link DEFAULT_BASE_URL} (`https://rp.eidmongolia.mn`). mTLS-тэй RP ч мөн энэ хост.
|
|
236
|
+
*/
|
|
237
|
+
baseUrl?: string;
|
|
366
238
|
/** RP таних мэдээлэл + API secret. */
|
|
367
239
|
credentials: RpCredentials;
|
|
368
240
|
/** Default certLevel (auth/sign бүрд). Default QUALIFIED. */
|
|
@@ -376,6 +248,10 @@ interface ClientConfig {
|
|
|
376
248
|
/** Trust anchor (Root CA) — validator-д. Production-д ЗААВАЛ. */
|
|
377
249
|
trust?: TrustConfig;
|
|
378
250
|
}
|
|
251
|
+
/** RP-API-ийн албан ёсны хост (2026-09-28-наас бүх RP, /v3-гүй). */
|
|
252
|
+
declare const DEFAULT_BASE_URL = "https://rp.eidmongolia.mn";
|
|
253
|
+
/** baseUrl-ийг шалгаж, төгсгөлийн "/"-ийг хасна. */
|
|
254
|
+
declare function resolveBaseUrl(baseUrl: string | undefined): string;
|
|
379
255
|
declare class EidClient {
|
|
380
256
|
readonly auth: AuthApi;
|
|
381
257
|
readonly sign: SignApi;
|
|
@@ -412,39 +288,4 @@ declare function buildAcspV2Payload(p: AcspV2Params): Buffer;
|
|
|
412
288
|
/** HASH_{hashAlgorithm}(payload). */
|
|
413
289
|
declare function acspV2Digest(p: AcspV2Params, hashAlgorithm: HashAlgorithm | string): Buffer;
|
|
414
290
|
|
|
415
|
-
|
|
416
|
-
declare class EidError extends Error {
|
|
417
|
-
constructor(message: string);
|
|
418
|
-
}
|
|
419
|
-
/** HTTP 401 — API secret буруу/байхгүй. Тохиргооны (RP secret) алдаа. */
|
|
420
|
-
declare class AuthenticationError extends EidError {
|
|
421
|
-
}
|
|
422
|
-
/** HTTP 403 — IP allowlist/mTLS зөвшөөрөөгүй. Танай серверийн IP бүртгэгдээгүй байж магадгүй. */
|
|
423
|
-
declare class ForbiddenError extends EidError {
|
|
424
|
-
}
|
|
425
|
-
/** RP-API-аас ирсэн бусад HTTP алдаа (4xx/5xx). status ба хариуны биеийг агуулна. */
|
|
426
|
-
declare class ApiError extends EidError {
|
|
427
|
-
readonly status: number;
|
|
428
|
-
readonly body: string;
|
|
429
|
-
constructor(status: number, body: string);
|
|
430
|
-
}
|
|
431
|
-
/** Сүлжээ/timeout — upstream хариу өгсөнгүй. */
|
|
432
|
-
declare class NetworkError extends EidError {
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* Session амжилтгүй дууссан (endResult ≠ OK): TIMEOUT, USER_REFUSED*, DOCUMENT_UNUSABLE гм.
|
|
436
|
-
* endResult-оор салгаж RP UI-д тохирох мессеж харуулна.
|
|
437
|
-
*/
|
|
438
|
-
declare class SessionFailedError extends EidError {
|
|
439
|
-
readonly endResult: string;
|
|
440
|
-
constructor(endResult: string);
|
|
441
|
-
}
|
|
442
|
-
/**
|
|
443
|
-
* Хариуны баталгаажуулалт бүтэлгүйтсэн — cert chain итгэлцэлгүй, signature challenge-тэй
|
|
444
|
-
* таарсангүй, эсвэл certLevel хүрэлцээгүй. ЭНЭ алдаа гарвал хариунд ИТГЭХГҮЙ
|
|
445
|
-
* (хуурамч/proxy хийгдсэн байж болзошгүй).
|
|
446
|
-
*/
|
|
447
|
-
declare class ValidationError extends EidError {
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
export { type AcspContext, type AcspV2Params, ApiError, AuthApi, type AuthDefaults, type AuthOptions, AuthenticationError, type CertificateLevel, type ClientConfig, type DeviceLinkSession, EidClient, EidError, type EndResult, type FlowType, ForbiddenError, type HashAlgorithm, Http, type HttpConfig, type Interaction, NetworkError, type NotificationSession, ResponseValidator, type RevocationChecker, type RevocationStatus, type RpCredentials, SessionApi, SessionFailedError, type SessionResult, type SessionState, SignApi, type SignDefaults, type SignOptions, type SignatureAlgorithm, type SignatureAlgorithmParameters, type SignatureProtocol, type TrustConfig, ValidationError, type VerifiedIdentity, type VerifiedSignature, acspV2Digest, buildAcspV2Payload, interactionsToBase64, parseSessionResult, randomChallenge, sha256Base64, verifyPayloadSignature, verifyPrehashedSignature };
|
|
291
|
+
export { AcspContext, type AcspV2Params, AuthApi, type AuthDefaults, type AuthOptions, CertificateLevel, type ClientConfig, DEFAULT_BASE_URL, DeviceLinkSession, EidClient, FlowType, HashAlgorithm, Http, type HttpConfig, Interaction, NotificationSession, ResponseValidator, type RevocationChecker, type RevocationStatus, RpCredentials, SessionApi, SessionResult, SignApi, type SignDefaults, type SignOptions, SignatureAlgorithm, type TrustConfig, type VerifiedIdentity, type VerifiedSignature, acspV2Digest, buildAcspV2Payload, interactionsToBase64, parseSessionResult, randomChallenge, resolveBaseUrl, sha256Base64, verifyPayloadSignature, verifyPrehashedSignature };
|
package/dist/index.js
CHANGED
|
@@ -1,34 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
super(`RP-API ${status}: ${body}`);
|
|
15
|
-
this.status = status;
|
|
16
|
-
this.body = body;
|
|
17
|
-
}
|
|
18
|
-
status;
|
|
19
|
-
body;
|
|
20
|
-
};
|
|
21
|
-
var NetworkError = class extends EidError {
|
|
22
|
-
};
|
|
23
|
-
var SessionFailedError = class extends EidError {
|
|
24
|
-
constructor(endResult) {
|
|
25
|
-
super(`Session \u0430\u043C\u0436\u0438\u043B\u0442\u0433\u04AF\u0439: ${endResult}`);
|
|
26
|
-
this.endResult = endResult;
|
|
27
|
-
}
|
|
28
|
-
endResult;
|
|
29
|
-
};
|
|
30
|
-
var ValidationError = class extends EidError {
|
|
31
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
ApiError,
|
|
3
|
+
AuthenticationError,
|
|
4
|
+
DeviceLinkError,
|
|
5
|
+
EidError,
|
|
6
|
+
ForbiddenError,
|
|
7
|
+
NetworkError,
|
|
8
|
+
SessionFailedError,
|
|
9
|
+
ValidationError,
|
|
10
|
+
deviceLink,
|
|
11
|
+
isMobileUserAgent,
|
|
12
|
+
openOrShowQR
|
|
13
|
+
} from "./chunk-Q5TQMCJC.js";
|
|
32
14
|
|
|
33
15
|
// src/http.ts
|
|
34
16
|
var DEFAULT_TIMEOUT_MS = 15e3;
|
|
@@ -161,11 +143,13 @@ var AuthApi = class {
|
|
|
161
143
|
}
|
|
162
144
|
parseDeviceLink(raw, acsp) {
|
|
163
145
|
const r = rec(raw);
|
|
146
|
+
const vc = typeof r.vc === "object" && r.vc !== null ? rec(r.vc).value : r.vc;
|
|
164
147
|
return {
|
|
165
148
|
sessionId: String(r.sessionID),
|
|
166
149
|
sessionToken: r.sessionToken != null ? String(r.sessionToken) : null,
|
|
167
150
|
sessionSecret: r.sessionSecret != null ? String(r.sessionSecret) : null,
|
|
168
151
|
deviceLinkBase: r.deviceLinkBase != null ? String(r.deviceLinkBase) : null,
|
|
152
|
+
vc: vc != null ? String(vc) : null,
|
|
169
153
|
rpChallenge: acsp.rpChallenge,
|
|
170
154
|
acsp
|
|
171
155
|
};
|
|
@@ -645,15 +629,31 @@ function isCa(cert) {
|
|
|
645
629
|
}
|
|
646
630
|
|
|
647
631
|
// src/client.ts
|
|
632
|
+
var DEFAULT_BASE_URL = "https://rp.eidmongolia.mn";
|
|
633
|
+
var LEGACY_HOSTS = /* @__PURE__ */ new Set(["ca.eidmongolia.mn", "e-id.mn", "www.e-id.mn"]);
|
|
634
|
+
function resolveBaseUrl(baseUrl) {
|
|
635
|
+
const raw = (baseUrl ?? DEFAULT_BASE_URL).trim().replace(/\/+$/, "");
|
|
636
|
+
let u;
|
|
637
|
+
try {
|
|
638
|
+
u = new URL(raw);
|
|
639
|
+
} catch {
|
|
640
|
+
throw new Error(`EidClient: baseUrl \u0431\u0443\u0440\u0443\u0443 URL: ${raw}`);
|
|
641
|
+
}
|
|
642
|
+
if (LEGACY_HOSTS.has(u.hostname) && (u.pathname === "" || u.pathname === "/")) {
|
|
643
|
+
throw new Error(
|
|
644
|
+
`EidClient: RP-API ${u.hostname}-\u0430\u0430\u0441 ${DEFAULT_BASE_URL} \u0440\u0443\u0443 \u0448\u0438\u043B\u0436\u0441\u044D\u043D (/v3-\u0433\u04AF\u0439) \u2014 baseUrl-\u0438\u0439\u0433 ${DEFAULT_BASE_URL} \u0431\u043E\u043B\u0433\u043E\u043D\u043E \u0443\u0443 (\u044D\u0441\u0432\u044D\u043B \u0445\u043E\u043E\u0441\u043E\u043D \u043E\u0440\u0445\u0438).`
|
|
645
|
+
);
|
|
646
|
+
}
|
|
647
|
+
return raw;
|
|
648
|
+
}
|
|
648
649
|
var EidClient = class {
|
|
649
650
|
auth;
|
|
650
651
|
sign;
|
|
651
652
|
session;
|
|
652
653
|
validator;
|
|
653
654
|
constructor(cfg) {
|
|
654
|
-
if (!cfg.baseUrl) throw new Error("EidClient: baseUrl \u0448\u0430\u0430\u0440\u0434\u043B\u0430\u0433\u0430\u0442\u0430\u0439");
|
|
655
655
|
if (!cfg.credentials?.apiSecret) throw new Error("EidClient: credentials.apiSecret \u0448\u0430\u0430\u0440\u0434\u043B\u0430\u0433\u0430\u0442\u0430\u0439");
|
|
656
|
-
const base = cfg.baseUrl
|
|
656
|
+
const base = resolveBaseUrl(cfg.baseUrl);
|
|
657
657
|
const http = new Http({
|
|
658
658
|
baseUrl: base,
|
|
659
659
|
apiSecret: cfg.credentials.apiSecret,
|
|
@@ -672,6 +672,8 @@ export {
|
|
|
672
672
|
ApiError,
|
|
673
673
|
AuthApi,
|
|
674
674
|
AuthenticationError,
|
|
675
|
+
DEFAULT_BASE_URL,
|
|
676
|
+
DeviceLinkError,
|
|
675
677
|
EidClient,
|
|
676
678
|
EidError,
|
|
677
679
|
ForbiddenError,
|
|
@@ -684,9 +686,13 @@ export {
|
|
|
684
686
|
ValidationError,
|
|
685
687
|
acspV2Digest,
|
|
686
688
|
buildAcspV2Payload,
|
|
689
|
+
deviceLink,
|
|
687
690
|
interactionsToBase64,
|
|
691
|
+
isMobileUserAgent,
|
|
692
|
+
openOrShowQR,
|
|
688
693
|
parseSessionResult,
|
|
689
694
|
randomChallenge,
|
|
695
|
+
resolveBaseUrl,
|
|
690
696
|
sha256Base64,
|
|
691
697
|
verifyPayloadSignature,
|
|
692
698
|
verifyPrehashedSignature
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gerege-systems/eid-mongolia-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "e-ID Mongolia Relying Party SDK — иргэнээр утсаар нь нэвтрэлт ба хууль ёсны цахим гарын үсэг (RP-API v3, Smart-ID нийцтэй).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
13
|
"import": "./dist/index.js",
|
|
14
14
|
"require": "./dist/index.cjs"
|
|
15
|
+
},
|
|
16
|
+
"./browser": {
|
|
17
|
+
"types": "./dist/browser.d.ts",
|
|
18
|
+
"import": "./dist/browser.js",
|
|
19
|
+
"require": "./dist/browser.cjs"
|
|
15
20
|
}
|
|
16
21
|
},
|
|
17
22
|
"files": [
|
|
@@ -23,7 +28,7 @@
|
|
|
23
28
|
"node": ">=22"
|
|
24
29
|
},
|
|
25
30
|
"scripts": {
|
|
26
|
-
"build": "tsup src/index.ts --format esm,cjs --dts --clean",
|
|
31
|
+
"build": "tsup src/index.ts src/browser.ts --format esm,cjs --dts --clean",
|
|
27
32
|
"test": "npm run build && node --test --experimental-strip-types test/sdk.test.ts",
|
|
28
33
|
"lint": "tsc --noEmit"
|
|
29
34
|
},
|