auth-mn 1.0.1 → 1.2.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
@@ -176,7 +176,37 @@ await authMn.socket.orderStatus({ user_id, order_id: "order-123" });
176
176
  await authMn.socket.emit([{ user_id, emit_name: "my-event", data: { any: 1 } }]); // socket.emit
177
177
  ```
178
178
 
179
- ## 6. Client өөрийн мэдээлэл
179
+ ## 6. EXP нэмэх (Seller Panda г.м.)
180
+
181
+ Хэрэглэгчид exp олгох. client_id/secret-ээс **тусдаа EXP түлхүүр** хэрэгтэй — Admin panel →
182
+ **EXP түлхүүр** дээр нэр (ж: `Seller Panda`) + нэг дуудлагад олгох exp-ийг admin тохируулж
183
+ үүсгэнэ (`exp_…`, нэг удаа харагдана). Хэдэн exp нэмэгдэх нь түлхүүр дээр тогтсон — дуудагч
184
+ тал өөрчилж чадахгүй.
185
+
186
+ ```ts
187
+ import authMn, { setExpKey } from "auth-mn";
188
+
189
+ setExpKey(process.env.AUTH_MN_EXP_KEY); // exp_…
190
+
191
+ // user_id-ээр
192
+ const r = await authMn.exp.add({
193
+ user_id: 8636569,
194
+ desc: "Худалдан авалт #1234",
195
+ ref: "order-1234" // optional — ижил ref-ээр дахин дуудахад давхар нэмэхгүй
196
+ });
197
+ // r.data → { user_id, exp: 10, exp_total: 1250, desc, ref, duplicate: false, ... }
198
+
199
+ // эсвэл frontend-ээс ирсэн хэрэглэгчийн token-оор
200
+ await authMn.exp.add({ token: userToken, desc: "Өдөр тутмын нэвтрэлт" });
201
+
202
+ // тухайн түлхүүрээр нэмсэн лог
203
+ const logs = await authMn.exp.logs({ user_id: 8636569, page: 1, limit: 20 });
204
+ ```
205
+
206
+ Шууд HTTP: `POST https://api.auth.mn/main/v1/auth/exp/add` — `Authorization: Bearer exp_…`
207
+ (эсвэл `x-exp-key: exp_…`), body `{ user_id | token, desc, ref? }`.
208
+
209
+ ## 7. Client өөрийн мэдээлэл
180
210
 
181
211
  ```ts
182
212
  import { config } from "auth-mn";
package/dist/exp.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { ExpAddResult, ExpLog, PageResult, Result } from "./types";
2
+ export declare const add: (input: {
3
+ user_id?: number | string;
4
+ token?: string;
5
+ desc: string;
6
+ ref?: string;
7
+ }, key?: string) => Promise<Result<ExpAddResult>>;
8
+ /** Тухайн түлхүүрээр нэмсэн exp-ийн лог (user_id-ээр шүүж болно) */
9
+ export declare const logs: (filter?: {
10
+ user_id?: number | string;
11
+ page?: number;
12
+ limit?: number;
13
+ }, key?: string) => Promise<Result<PageResult<ExpLog>>>;
14
+ declare const _default: {
15
+ add: (input: {
16
+ user_id?: number | string;
17
+ token?: string;
18
+ desc: string;
19
+ ref?: string;
20
+ }, key?: string) => Promise<Result<ExpAddResult>>;
21
+ logs: (filter?: {
22
+ user_id?: number | string;
23
+ page?: number;
24
+ limit?: number;
25
+ }, key?: string) => Promise<Result<PageResult<ExpLog>>>;
26
+ };
27
+ export default _default;
package/dist/exp.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logs = exports.add = void 0;
4
+ const index_1 = require("./index");
5
+ const request_1 = require("./request");
6
+ /**
7
+ * EXP — хэрэглэгчид exp нэмэх.
8
+ *
9
+ * Admin panel → "EXP түлхүүр" дээр нэр (ж: Seller Panda) + нэг дуудлагад олгох exp-тэй
10
+ * түлхүүр үүсгэнэ. Энэ түлхүүр client_id/secret-ээс тусдаа: setExpKey("exp_…")-ээр
11
+ * тохируулна (эсвэл дуудлага бүрт key өгнө).
12
+ *
13
+ * import authMn, { setExpKey } from "auth-mn";
14
+ * setExpKey(process.env.AUTH_MN_EXP_KEY);
15
+ * await authMn.exp.add({ user_id: 8636569, desc: "Худалдан авалт #1234", ref: "order-1234" });
16
+ * // эсвэл frontend-ээс ирсэн хэрэглэгчийн token-оор:
17
+ * await authMn.exp.add({ token: userToken, desc: "Худалдан авалт" });
18
+ *
19
+ * Хэдэн exp нэмэгдэх нь түлхүүр дээр admin-ийн тохируулсан хэмжээ — дуудагч тал өөрчилж чадахгүй.
20
+ * `ref` өгвөл ижил ref-ээр дахин дуудахад давхар нэмэхгүй (data.duplicate = true).
21
+ */
22
+ const keyOf = (key) => {
23
+ const k = (key || index_1.config.expKey || "").trim();
24
+ if (!k)
25
+ throw new Error("[auth-mn] EXP түлхүүр тохируулаагүй байна: setExpKey(\"exp_…\")");
26
+ return k;
27
+ };
28
+ const add = (input, key) => {
29
+ let k;
30
+ try {
31
+ k = keyOf(key);
32
+ }
33
+ catch (e) {
34
+ return Promise.resolve({ success: false, message: e.message, data: null, status: 0 });
35
+ }
36
+ return (0, request_1.rawRequest)({ method: "POST", path: "/main/v1/auth/exp/add", name: "exp add", data: input, auth: false }, k);
37
+ };
38
+ exports.add = add;
39
+ /** Тухайн түлхүүрээр нэмсэн exp-ийн лог (user_id-ээр шүүж болно) */
40
+ const logs = (filter = {}, key) => {
41
+ let k;
42
+ try {
43
+ k = keyOf(key);
44
+ }
45
+ catch (e) {
46
+ return Promise.resolve({ success: false, message: e.message, data: null, status: 0 });
47
+ }
48
+ return (0, request_1.rawRequest)({ method: "GET", path: "/main/v1/auth/exp/logs", name: "exp logs", params: filter, auth: false }, k);
49
+ };
50
+ exports.logs = logs;
51
+ exports.default = { add: exports.add, logs: exports.logs };
package/dist/index.d.ts CHANGED
@@ -9,14 +9,17 @@
9
9
  * Token-ийг lib өөрөө авч, хугацаа дуусахаас өмнө refresh хийнэ.
10
10
  * Client-д олгосон permission-ээс гадуур API дуудвал 403 + message буцна.
11
11
  *
12
- * Хамрах хүрээ: хэрэглэгч (verify / find), мэдэгдэл (push / sms / mail),
13
- * socket (toast / status / orderStatus / emit). Merchant/admin зэрэг дотоод
14
- * бүртгэлүүд энэ санд байхгүй.
12
+ * Хамрах хүрээ: хэрэглэгч (verify / find / bankAccounts), мэдэгдэл (push / sms / mail),
13
+ * socket (toast / status / orderStatus / emit), exp (хэрэглэгчид exp нэмэх —
14
+ * тусдаа EXP түлхүүр, setExpKey), wallet (хэрэглэгчийн token-оор хэтэвч
15
+ * үүсгэх / үлдэгдэл / лог). Merchant/admin зэрэг дотоод бүртгэлүүд энэ санд байхгүй.
15
16
  */
16
17
  import auth from "./auth";
17
18
  import user from "./user";
18
19
  import notification from "./notification";
19
20
  import socket from "./socket";
21
+ import exp from "./exp";
22
+ import wallet from "./wallet";
20
23
  export type Env = "prod" | "staging";
21
24
  export type Config = {
22
25
  /** Одоогийн client access token (сан автоматаар шинэчилнэ; гараар Authorization header үүсгэхэд ашиглаж болно) */
@@ -30,6 +33,8 @@ export type Config = {
30
33
  client_id: string;
31
34
  client_secret: string;
32
35
  };
36
+ /** EXP түлхүүр (exp_…) — Admin panel → EXP түлхүүр. authMn.exp.* дуудлагад ашиглана */
37
+ expKey: string;
33
38
  logger: boolean;
34
39
  /** Хүсэлтийн timeout (ms), default 20000 */
35
40
  timeout: number;
@@ -45,11 +50,13 @@ export declare const setAuth: (auth: {
45
50
  client_id: string;
46
51
  client_secret: string;
47
52
  }) => void;
53
+ /** EXP түлхүүр (Admin panel → EXP түлхүүр дээрээс авна). authMn.exp.add-д ашиглана */
54
+ export declare const setExpKey: (key: string | undefined | null) => void;
48
55
  export declare const setLogger: (status: boolean) => void;
49
56
  export declare const jsonToQueryString: (params: Record<string, any>) => string;
50
57
  export declare const ObjectId: () => string;
51
58
  import { authState } from "./auth";
52
- export { auth, user, notification, socket, authState };
59
+ export { auth, user, notification, socket, exp, wallet, authState };
53
60
  export * from "./types";
54
61
  declare const _default: {
55
62
  auth: {
@@ -76,6 +83,9 @@ declare const _default: {
76
83
  }) => Promise<import("./types").Result<import("./types").UserT>>;
77
84
  list: typeof import("./user").list;
78
85
  listAll: typeof import("./user").listAll;
86
+ bankAccounts: (query: {
87
+ user_id: number | string;
88
+ }) => Promise<import("./types").Result<import("./types").UserBankAccount[]>>;
79
89
  middleware: (opts?: import("./user").MiddlewareOptions) => (req: {
80
90
  [k: string]: any;
81
91
  headers: Record<string, any>;
@@ -105,6 +115,30 @@ declare const _default: {
105
115
  ShowOrderStatus: (body: import("./types").OrderStatusT) => Promise<import("./types").Result<null>>;
106
116
  EMIT: (body: import("./types").EmitT[]) => Promise<import("./types").Result<null>>;
107
117
  };
118
+ exp: {
119
+ add: (input: {
120
+ user_id?: number | string;
121
+ token?: string;
122
+ desc: string;
123
+ ref?: string;
124
+ }, key?: string) => Promise<import("./types").Result<import("./types").ExpAddResult>>;
125
+ logs: (filter?: {
126
+ user_id?: number | string;
127
+ page?: number;
128
+ limit?: number;
129
+ }, key?: string) => Promise<import("./types").Result<import("./types").PageResult<import("./types").ExpLog>>>;
130
+ };
131
+ wallet: {
132
+ templates: (token: string) => Promise<import("./types").Result<import("./types").WalletTemplate[]>>;
133
+ create: (token: string, key_id: string) => Promise<import("./types").Result<import("./types").UserWalletItem>>;
134
+ balance: (token: string) => Promise<import("./types").Result<import("./types").WalletBalanceItem[]>>;
135
+ logs: (token: string, params?: {
136
+ wallet_id?: string;
137
+ tra_type?: string;
138
+ page?: number;
139
+ limit?: number;
140
+ }) => Promise<import("./types").Result<import("./types").PageResult<import("./types").WalletLogItem>>>;
141
+ };
108
142
  setAuth: (auth: {
109
143
  client_id: string;
110
144
  client_secret: string;
@@ -113,6 +147,7 @@ declare const _default: {
113
147
  MAIN: string;
114
148
  WALLET?: string;
115
149
  }, env?: Env) => void;
150
+ setExpKey: (key: string | undefined | null) => void;
116
151
  setLogger: (status: boolean) => void;
117
152
  ObjectId: () => string;
118
153
  };
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.authState = exports.socket = exports.notification = exports.user = exports.auth = exports.ObjectId = exports.jsonToQueryString = exports.setLogger = exports.setAuth = exports.setHost = exports.config = void 0;
17
+ exports.authState = exports.wallet = exports.exp = exports.socket = exports.notification = exports.user = exports.auth = exports.ObjectId = exports.jsonToQueryString = exports.setLogger = exports.setExpKey = exports.setAuth = exports.setHost = exports.config = void 0;
18
18
  /**
19
19
  * auth-mn — Auth.mn API client (Node.js)
20
20
  *
@@ -26,9 +26,10 @@ exports.authState = exports.socket = exports.notification = exports.user = expor
26
26
  * Token-ийг lib өөрөө авч, хугацаа дуусахаас өмнө refresh хийнэ.
27
27
  * Client-д олгосон permission-ээс гадуур API дуудвал 403 + message буцна.
28
28
  *
29
- * Хамрах хүрээ: хэрэглэгч (verify / find), мэдэгдэл (push / sms / mail),
30
- * socket (toast / status / orderStatus / emit). Merchant/admin зэрэг дотоод
31
- * бүртгэлүүд энэ санд байхгүй.
29
+ * Хамрах хүрээ: хэрэглэгч (verify / find / bankAccounts), мэдэгдэл (push / sms / mail),
30
+ * socket (toast / status / orderStatus / emit), exp (хэрэглэгчид exp нэмэх —
31
+ * тусдаа EXP түлхүүр, setExpKey), wallet (хэрэглэгчийн token-оор хэтэвч
32
+ * үүсгэх / үлдэгдэл / лог). Merchant/admin зэрэг дотоод бүртгэлүүд энэ санд байхгүй.
32
33
  */
33
34
  const auth_1 = require("./auth");
34
35
  exports.auth = auth_1.default;
@@ -38,6 +39,10 @@ const notification_1 = require("./notification");
38
39
  exports.notification = notification_1.default;
39
40
  const socket_1 = require("./socket");
40
41
  exports.socket = socket_1.default;
42
+ const exp_1 = require("./exp");
43
+ exports.exp = exp_1.default;
44
+ const wallet_1 = require("./wallet");
45
+ exports.wallet = wallet_1.default;
41
46
  const HOSTS = {
42
47
  prod: { MAIN: "https://api.auth.mn", WALLET: "https://api.auth.mn" },
43
48
  staging: { MAIN: "https://staging-api.auth.mn", WALLET: "https://staging-api.auth.mn" }
@@ -47,6 +52,7 @@ exports.config = {
47
52
  env: "prod",
48
53
  hosts: { ...HOSTS.prod },
49
54
  auth: { client_id: "", client_secret: "" },
55
+ expKey: "",
50
56
  logger: false,
51
57
  timeout: 20000
52
58
  };
@@ -74,6 +80,11 @@ const setAuth = (auth) => {
74
80
  auth_2.authState.clear();
75
81
  };
76
82
  exports.setAuth = setAuth;
83
+ /** EXP түлхүүр (Admin panel → EXP түлхүүр дээрээс авна). authMn.exp.add-д ашиглана */
84
+ const setExpKey = (key) => {
85
+ exports.config.expKey = (key || "").trim();
86
+ };
87
+ exports.setExpKey = setExpKey;
77
88
  const setLogger = (status) => {
78
89
  exports.config.logger = status;
79
90
  };
@@ -95,4 +106,16 @@ exports.ObjectId = ObjectId;
95
106
  const auth_2 = require("./auth");
96
107
  Object.defineProperty(exports, "authState", { enumerable: true, get: function () { return auth_2.authState; } });
97
108
  __exportStar(require("./types"), exports);
98
- exports.default = { auth: auth_1.default, user: user_1.default, notification: notification_1.default, socket: socket_1.default, setAuth: exports.setAuth, setHost: exports.setHost, setLogger: exports.setLogger, ObjectId: exports.ObjectId };
109
+ exports.default = {
110
+ auth: auth_1.default,
111
+ user: user_1.default,
112
+ notification: notification_1.default,
113
+ socket: socket_1.default,
114
+ exp: exp_1.default,
115
+ wallet: wallet_1.default,
116
+ setAuth: exports.setAuth,
117
+ setHost: exports.setHost,
118
+ setExpKey: exports.setExpKey,
119
+ setLogger: exports.setLogger,
120
+ ObjectId: exports.ObjectId
121
+ };
package/dist/types.d.ts CHANGED
@@ -159,6 +159,23 @@ export type PageResult<T> = {
159
159
  page: number;
160
160
  limit: number;
161
161
  };
162
+ export type ExpLog = {
163
+ _id: string;
164
+ user_id: number;
165
+ key_id: string;
166
+ key_name: string;
167
+ /** Нэмсэн exp */
168
+ exp: number;
169
+ /** Нэмсний дараах хэрэглэгчийн нийт exp */
170
+ exp_total: number;
171
+ desc: string;
172
+ ref?: string;
173
+ createdAt?: string;
174
+ };
175
+ export type ExpAddResult = ExpLog & {
176
+ /** true бол ижил ref-ээр өмнө нь нэмэгдсэн — давхар нэмээгүй */
177
+ duplicate: boolean;
178
+ };
162
179
  export type PushNotiT = {
163
180
  user_id: number;
164
181
  target_app: string;
@@ -233,3 +250,54 @@ export type EmitT = {
233
250
  emit_name: string;
234
251
  data: any;
235
252
  };
253
+ /** GET /main/v1/wallet/balance — хэтэвч тус бүрийн үлдэгдэл */
254
+ export type WalletBalanceItem = {
255
+ key_id: string;
256
+ name: string;
257
+ wallet_id: string;
258
+ balance: number;
259
+ status: string;
260
+ wallet_type: string;
261
+ };
262
+ /** GET /main/v1/wallet/list — апп-уудын хэтэвчний загварууд */
263
+ export type WalletTemplate = {
264
+ key_id: string;
265
+ wallet_type: string;
266
+ wallet_name: string;
267
+ role: string[];
268
+ };
269
+ /** GET /main/v1/wallet/logs — гүйлгээний лог (wallet service-ээс sync хийгдсэн) */
270
+ export type WalletLogItem = {
271
+ _id?: string;
272
+ group_id?: string;
273
+ payment_id?: string;
274
+ description?: string;
275
+ /** P2P | M2P | M2M | P2M | T2M | T2P | P2T | M2T */
276
+ type?: string;
277
+ /** NORMAL | FEE | REFUND */
278
+ tra_type?: string;
279
+ source?: string;
280
+ receiver?: string;
281
+ wallet_id?: string;
282
+ amount?: number;
283
+ createdAt?: string | Date;
284
+ [k: string]: unknown;
285
+ };
286
+ export type UserBankAccount = {
287
+ _id: string;
288
+ /** Khan refNo (ж: "003" Хаан, "203" Голомт) */
289
+ bank_code: string;
290
+ bank_name: string;
291
+ /** Дансны дугаар (IBAN-гүй) */
292
+ account: string;
293
+ iban: string;
294
+ currency?: string;
295
+ /** Банкнаас ирсэн дансны эзний нэр */
296
+ holder_name: string;
297
+ /** ДАН-ы нэртэй таарц, 0–100 */
298
+ match: number;
299
+ primary: boolean;
300
+ label?: string;
301
+ verified_at?: string | Date | null;
302
+ createdAt?: string | Date;
303
+ };
package/dist/user.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PageResult, Result, UserListFilter, UserLite, UserT, VerifiedUser } from "./types";
1
+ import { PageResult, Result, UserBankAccount, UserListFilter, UserLite, UserT, VerifiedUser } from "./types";
2
2
  /**
3
3
  * Хэрэглэгчийн token-ийг Auth.mn сервер дээр баталгаажуулж, хэрэглэгчийн
4
4
  * мэдээллийг авна. Frontend (auth-mn-react redirect / QR / OTP) -ээс ирсэн
@@ -35,6 +35,16 @@ export declare function listAll(filter: UserListFilter & {
35
35
  fields: "lite";
36
36
  }, max?: number): Promise<Result<UserLite[]>>;
37
37
  export declare function listAll(filter?: UserListFilter, max?: number): Promise<Result<UserT[]>>;
38
+ /**
39
+ * Хэрэглэгчийн ДАН-аар баталгаажуулж холбосон банкны дансууд (primary эхэндээ).
40
+ * Мөнгө буцаан олголт, таталтын хүсэлтэд ашиглана. Permission: user.bank.read
41
+ *
42
+ * const r = await authMn.user.bankAccounts({ user_id: 8636569 });
43
+ * r.data → [{ bank_code, bank_name, account, iban, holder_name, primary, ... }]
44
+ */
45
+ export declare const bankAccounts: (query: {
46
+ user_id: number | string;
47
+ }) => Promise<Result<UserBankAccount[]>>;
38
48
  type AnyReq = {
39
49
  headers: Record<string, any>;
40
50
  query?: any;
@@ -73,6 +83,9 @@ declare const _default: {
73
83
  }) => Promise<Result<UserT>>;
74
84
  list: typeof list;
75
85
  listAll: typeof listAll;
86
+ bankAccounts: (query: {
87
+ user_id: number | string;
88
+ }) => Promise<Result<UserBankAccount[]>>;
76
89
  middleware: (opts?: MiddlewareOptions) => (req: AnyReq, res: AnyRes, next: Next) => Promise<any>;
77
90
  };
78
91
  export default _default;
package/dist/user.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.middleware = exports.find = exports.verify = void 0;
3
+ exports.middleware = exports.bankAccounts = exports.find = exports.verify = void 0;
4
4
  exports.list = list;
5
5
  exports.listAll = listAll;
6
6
  const request_1 = require("./request");
@@ -49,6 +49,20 @@ async function listAll(filter = {}, max = 50000) {
49
49
  }
50
50
  return { success: true, message: "Амжилттай", data: all, status: 200 };
51
51
  }
52
+ /**
53
+ * Хэрэглэгчийн ДАН-аар баталгаажуулж холбосон банкны дансууд (primary эхэндээ).
54
+ * Мөнгө буцаан олголт, таталтын хүсэлтэд ашиглана. Permission: user.bank.read
55
+ *
56
+ * const r = await authMn.user.bankAccounts({ user_id: 8636569 });
57
+ * r.data → [{ bank_code, bank_name, account, iban, holder_name, primary, ... }]
58
+ */
59
+ const bankAccounts = (query) => (0, request_1.request)({
60
+ method: "POST",
61
+ path: "/main/v1/auth/client/user/bank-accounts",
62
+ name: "user bank accounts",
63
+ data: query
64
+ });
65
+ exports.bankAccounts = bankAccounts;
52
66
  const defaultGetToken = (req) => {
53
67
  var _a, _b, _c, _d;
54
68
  const h = String(((_a = req.headers) === null || _a === void 0 ? void 0 : _a.authorization) || ((_b = req.headers) === null || _b === void 0 ? void 0 : _b.Authorization) || "");
@@ -90,4 +104,4 @@ const middleware = (opts = {}) => async (req, res, next) => {
90
104
  return next();
91
105
  };
92
106
  exports.middleware = middleware;
93
- exports.default = { verify: exports.verify, find: exports.find, list, listAll, middleware: exports.middleware };
107
+ exports.default = { verify: exports.verify, find: exports.find, list, listAll, bankAccounts: exports.bankAccounts, middleware: exports.middleware };
@@ -0,0 +1,47 @@
1
+ import { PageResult, Result, UserWalletItem, WalletBalanceItem, WalletLogItem, WalletTemplate } from "./types";
2
+ /**
3
+ * Wallet — хэрэглэгчийн хэтэвч (Auth.mn main API, /main/v1/wallet/*).
4
+ *
5
+ * Эдгээр нь бүгд ХЭРЭГЛЭГЧИЙН token-оор дуудагддаг: frontend-ээс ирсэн
6
+ * Bearer token-ийг эхний аргумент болгон өгнө. Client permission шаардахгүй.
7
+ *
8
+ * // Хэтэвч үүсгэх (апп-ын key_id-ээр, ж: "SELLER-APP")
9
+ * const w = await authMn.wallet.create(userToken, "SELLER-APP");
10
+ * // Үлдэгдэл (хэрэглэгчийн бүх хэтэвч)
11
+ * const b = await authMn.wallet.balance(userToken);
12
+ * // Гүйлгээний лог
13
+ * const l = await authMn.wallet.logs(userToken, { wallet_id: w.data?.wallet_id });
14
+ *
15
+ * Хэрэглэгчийн wallet_id/wallet_key-г сервер талаас token-гүй авах бол
16
+ * authMn.user.find({ user_id }) → data.wallets (permission: user.read).
17
+ */
18
+ /** Үүсгэж болох хэтэвчний загварууд */
19
+ export declare const templates: (token: string) => Promise<Result<WalletTemplate[]>>;
20
+ /**
21
+ * Хэтэвч үүсгэх. Хэрэглэгч тухайн key_id-ийн хэтэвчтэй бол байгааг нь буцаана.
22
+ * key_id нь Auth.mn дээр бүртгэлтэй байх ёстой (ERR_WALLET_KEY).
23
+ */
24
+ export declare const create: (token: string, key_id: string) => Promise<Result<UserWalletItem>>;
25
+ /** Хэрэглэгчийн бүх хэтэвчний үлдэгдэл */
26
+ export declare const balance: (token: string) => Promise<Result<WalletBalanceItem[]>>;
27
+ /** Гүйлгээний лог (wallet_id өгөхгүй бол бүх хэтэвч) */
28
+ export declare const logs: (token: string, params?: {
29
+ wallet_id?: string;
30
+ /** NORMAL | FEE | REFUND */
31
+ tra_type?: string;
32
+ page?: number;
33
+ limit?: number;
34
+ }) => Promise<Result<PageResult<WalletLogItem>>>;
35
+ declare const _default: {
36
+ templates: (token: string) => Promise<Result<WalletTemplate[]>>;
37
+ create: (token: string, key_id: string) => Promise<Result<UserWalletItem>>;
38
+ balance: (token: string) => Promise<Result<WalletBalanceItem[]>>;
39
+ logs: (token: string, params?: {
40
+ wallet_id?: string;
41
+ /** NORMAL | FEE | REFUND */
42
+ tra_type?: string;
43
+ page?: number;
44
+ limit?: number;
45
+ }) => Promise<Result<PageResult<WalletLogItem>>>;
46
+ };
47
+ export default _default;
package/dist/wallet.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logs = exports.balance = exports.create = exports.templates = void 0;
4
+ const request_1 = require("./request");
5
+ /**
6
+ * Wallet — хэрэглэгчийн хэтэвч (Auth.mn main API, /main/v1/wallet/*).
7
+ *
8
+ * Эдгээр нь бүгд ХЭРЭГЛЭГЧИЙН token-оор дуудагддаг: frontend-ээс ирсэн
9
+ * Bearer token-ийг эхний аргумент болгон өгнө. Client permission шаардахгүй.
10
+ *
11
+ * // Хэтэвч үүсгэх (апп-ын key_id-ээр, ж: "SELLER-APP")
12
+ * const w = await authMn.wallet.create(userToken, "SELLER-APP");
13
+ * // Үлдэгдэл (хэрэглэгчийн бүх хэтэвч)
14
+ * const b = await authMn.wallet.balance(userToken);
15
+ * // Гүйлгээний лог
16
+ * const l = await authMn.wallet.logs(userToken, { wallet_id: w.data?.wallet_id });
17
+ *
18
+ * Хэрэглэгчийн wallet_id/wallet_key-г сервер талаас token-гүй авах бол
19
+ * authMn.user.find({ user_id }) → data.wallets (permission: user.read).
20
+ */
21
+ /** Үүсгэж болох хэтэвчний загварууд */
22
+ const templates = (token) => (0, request_1.rawRequest)({ method: "GET", path: "/main/v1/wallet/list", name: "wallet templates", auth: false }, token);
23
+ exports.templates = templates;
24
+ /**
25
+ * Хэтэвч үүсгэх. Хэрэглэгч тухайн key_id-ийн хэтэвчтэй бол байгааг нь буцаана.
26
+ * key_id нь Auth.mn дээр бүртгэлтэй байх ёстой (ERR_WALLET_KEY).
27
+ */
28
+ const create = (token, key_id) => (0, request_1.rawRequest)({
29
+ method: "POST",
30
+ path: "/main/v1/wallet/create",
31
+ name: "wallet create",
32
+ data: { key_id },
33
+ auth: false
34
+ }, token);
35
+ exports.create = create;
36
+ /** Хэрэглэгчийн бүх хэтэвчний үлдэгдэл */
37
+ const balance = (token) => (0, request_1.rawRequest)({ method: "GET", path: "/main/v1/wallet/balance", name: "wallet balance", auth: false }, token);
38
+ exports.balance = balance;
39
+ /** Гүйлгээний лог (wallet_id өгөхгүй бол бүх хэтэвч) */
40
+ const logs = (token, params = {}) => (0, request_1.rawRequest)({ method: "GET", path: "/main/v1/wallet/logs", name: "wallet logs", params, auth: false }, token);
41
+ exports.logs = logs;
42
+ exports.default = { templates: exports.templates, create: exports.create, balance: exports.balance, logs: exports.logs };
package/package.json CHANGED
@@ -1,47 +1,47 @@
1
- {
2
- "name": "auth-mn",
3
- "version": "1.0.1",
4
- "description": "Auth.mn API client for Node.js — client_id/secret token, user, notification, socket",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "dist/"
9
- ],
10
- "scripts": {
11
- "test": "echo \"Error: no test specified\" && exit 1",
12
- "build-ts": "rm -rf ./dist && npx tsc",
13
- "build": "npx tsc",
14
- "debug": "npm run build && npm run watch-debug",
15
- "lint": "tsc --noEmit && eslint \"**/*.{js,ts}\" --quiet --fix",
16
- "typecheck": "tsc --noEmit"
17
- },
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/togtokh-dev/auth-mn.git"
21
- },
22
- "keywords": [
23
- "auth.mn",
24
- "axios",
25
- "togtokh.dev"
26
- ],
27
- "author": "TOGTOKH.DEV",
28
- "license": "ISC",
29
- "bugs": {
30
- "url": "https://github.com/togtokh-dev/auth-mn/issues"
31
- },
32
- "homepage": "https://github.com/togtokh-dev/auth-mn/#readme",
33
- "dependencies": {
34
- "axios": "^1.6.2"
35
- },
36
- "devDependencies": {
37
- "@types/node": "^18.15.11",
38
- "@typescript-eslint/eslint-plugin": "^6.4.0",
39
- "@typescript-eslint/parser": "^6.4.0",
40
- "eslint": "^8.47.0",
41
- "ts-node": "^10.9.2",
42
- "typescript": "^5.0.4"
43
- },
44
- "publishConfig": {
45
- "access": "public"
46
- }
47
- }
1
+ {
2
+ "name": "auth-mn",
3
+ "version": "1.2.0",
4
+ "description": "Auth.mn API client for Node.js — client_id/secret token, user, notification, socket",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/"
9
+ ],
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1",
12
+ "build-ts": "rm -rf ./dist && npx tsc",
13
+ "build": "npx tsc",
14
+ "debug": "npm run build && npm run watch-debug",
15
+ "lint": "tsc --noEmit && eslint \"**/*.{js,ts}\" --quiet --fix",
16
+ "typecheck": "tsc --noEmit"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/togtokh-dev/auth-mn.git"
21
+ },
22
+ "keywords": [
23
+ "auth.mn",
24
+ "axios",
25
+ "togtokh.dev"
26
+ ],
27
+ "author": "TOGTOKH.DEV",
28
+ "license": "ISC",
29
+ "bugs": {
30
+ "url": "https://github.com/togtokh-dev/auth-mn/issues"
31
+ },
32
+ "homepage": "https://github.com/togtokh-dev/auth-mn/#readme",
33
+ "dependencies": {
34
+ "axios": "^1.6.2"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^18.15.11",
38
+ "@typescript-eslint/eslint-plugin": "^6.4.0",
39
+ "@typescript-eslint/parser": "^6.4.0",
40
+ "eslint": "^8.47.0",
41
+ "ts-node": "^10.9.2",
42
+ "typescript": "^5.0.4"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public"
46
+ }
47
+ }