auth-mn 0.2.0 → 1.0.1

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/socket.js CHANGED
@@ -1,200 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EMIT = exports.ShowOrderStatus = exports.ShowStatus = exports.ShowToast = void 0;
4
- const _1 = require(".");
5
- const auth_1 = require("./auth");
6
- const axios_master_1 = require("axios-master");
7
- const ShowToast = async (body) => {
8
- var _a;
9
- try {
10
- const result = await (0, axios_master_1.axiosMasterLogger)({
11
- method: "POST",
12
- maxBodyLength: Infinity,
13
- url: `${_1.config.hosts.MAIN}/main/v1/socket/notification/toast`,
14
- headers: {
15
- Accept: "application/json",
16
- "Content-Type": "application/json",
17
- Authorization: `Bearer ${_1.config.token}`
18
- },
19
- data: body
20
- }, {
21
- name: "socket toast",
22
- timeout: 20000,
23
- retryFunction: auth_1.getToken,
24
- shouldRetry: true,
25
- shouldRetryStatus: [401, 400],
26
- logger(data) {
27
- if (_1.config.logger) {
28
- console.log({
29
- time: data.json.time,
30
- request: data.json.request,
31
- response: `${data.json.response}`,
32
- responseBody: data.json.responseBody,
33
- statusCode: data.json.statusCode
34
- });
35
- }
36
- }
37
- });
38
- return { success: true, data: result.data, message: result.message };
39
- }
40
- catch (error) {
41
- const axiosError = error;
42
- if (axiosError.data) {
43
- console.log(axiosError.data);
44
- }
45
- else {
46
- console.error("Request Failed:", axiosError);
47
- }
48
- return {
49
- success: false,
50
- data: null,
51
- message: ((_a = axiosError.data) === null || _a === void 0 ? void 0 : _a.message) || ""
52
- };
53
- }
54
- };
55
- exports.ShowToast = ShowToast;
56
- const ShowStatus = async (body) => {
57
- var _a;
58
- try {
59
- const result = await (0, axios_master_1.axiosMasterLogger)({
60
- method: "POST",
61
- url: `${_1.config.hosts.MAIN}/main/v1/socket/notification/status`,
62
- headers: {
63
- Accept: "application/json",
64
- "Content-Type": "application/json",
65
- Authorization: `Bearer ${_1.config.token}`
66
- },
67
- data: body
68
- }, {
69
- name: "socket status",
70
- timeout: 20000,
71
- retryFunction: auth_1.getToken,
72
- shouldRetry: true,
73
- shouldRetryStatus: [401, 400],
74
- logger(data) {
75
- if (_1.config.logger) {
76
- console.log({
77
- time: data.json.time,
78
- request: data.json.request,
79
- response: `${data.json.response}`,
80
- responseBody: data.json.responseBody,
81
- statusCode: data.json.statusCode
82
- });
83
- }
84
- }
85
- });
86
- return { success: true, data: result.data, message: result.message };
87
- }
88
- catch (error) {
89
- const axiosError = error;
90
- if (axiosError.data) {
91
- console.log(axiosError.data);
92
- }
93
- else {
94
- console.error("Request Failed:", axiosError);
95
- }
96
- return {
97
- success: false,
98
- data: null,
99
- message: ((_a = axiosError.data) === null || _a === void 0 ? void 0 : _a.message) || ""
100
- };
101
- }
102
- };
103
- exports.ShowStatus = ShowStatus;
104
- const ShowOrderStatus = async (body) => {
105
- var _a;
106
- try {
107
- const result = await (0, axios_master_1.axiosMasterLogger)({
108
- method: "POST",
109
- url: `${_1.config.hosts.MAIN}/main/v1/socket/notification/order/status`,
110
- headers: {
111
- Accept: "application/json",
112
- "Content-Type": "application/json",
113
- Authorization: `Bearer ${_1.config.token}`
114
- },
115
- data: body
116
- }, {
117
- name: "socket order status",
118
- timeout: 20000,
119
- retryFunction: auth_1.getToken,
120
- shouldRetry: true,
121
- shouldRetryStatus: [401, 400],
122
- logger(data) {
123
- if (_1.config.logger) {
124
- console.log({
125
- time: data.json.time,
126
- request: data.json.request,
127
- response: `${data.json.response}`,
128
- responseBody: data.json.responseBody,
129
- statusCode: data.json.statusCode
130
- });
131
- }
132
- }
133
- });
134
- return { success: true, data: result.data, message: result.message };
135
- }
136
- catch (error) {
137
- const axiosError = error;
138
- if (axiosError.data) {
139
- console.log(axiosError.data);
140
- }
141
- else {
142
- console.error("Request Failed:", axiosError);
143
- }
144
- return {
145
- success: false,
146
- data: null,
147
- message: ((_a = axiosError.data) === null || _a === void 0 ? void 0 : _a.message) || ""
148
- };
149
- }
150
- };
151
- exports.ShowOrderStatus = ShowOrderStatus;
152
- const EMIT = async (body) => {
153
- var _a;
154
- try {
155
- const result = await (0, axios_master_1.axiosMasterLogger)({
156
- method: "POST",
157
- url: `${_1.config.hosts.MAIN}/main/v1/socket/emit`,
158
- headers: {
159
- Accept: "application/json",
160
- "Content-Type": "application/json",
161
- Authorization: `Bearer ${_1.config.token}`
162
- },
163
- data: body
164
- }, {
165
- name: "socket emit",
166
- timeout: 20000,
167
- retryFunction: auth_1.getToken,
168
- shouldRetry: true,
169
- shouldRetryStatus: [401, 400],
170
- logger(data) {
171
- if (_1.config.logger) {
172
- console.log({
173
- time: data.json.time,
174
- request: data.json.request,
175
- response: `${data.json.response}`,
176
- responseBody: data.json.responseBody,
177
- statusCode: data.json.statusCode
178
- });
179
- }
180
- }
181
- });
182
- return { success: true, data: result.data, message: result.message };
183
- }
184
- catch (error) {
185
- const axiosError = error;
186
- if (axiosError.data) {
187
- console.log(axiosError.data);
188
- }
189
- else {
190
- console.error("Request Failed:", axiosError);
191
- }
192
- return {
193
- success: false,
194
- data: null,
195
- message: ((_a = axiosError.data) === null || _a === void 0 ? void 0 : _a.message) || ""
196
- };
197
- }
198
- };
199
- exports.EMIT = EMIT;
200
- exports.default = { ShowToast: exports.ShowToast, ShowStatus: exports.ShowStatus, ShowOrderStatus: exports.ShowOrderStatus, EMIT: exports.EMIT };
3
+ exports.EMIT = exports.ShowOrderStatus = exports.ShowStatus = exports.ShowToast = exports.emit = exports.orderStatus = exports.status = exports.toast = void 0;
4
+ const request_1 = require("./request");
5
+ /** Хэрэглэгчийн нээлттэй апп дээр toast — permission: socket.toast */
6
+ const toast = (body) => (0, request_1.request)({ method: "POST", path: "/main/v1/socket/notification/toast", name: "socket toast", data: body });
7
+ exports.toast = toast;
8
+ /** Төлөвийн карт (Loading / Success / Failure) — permission: socket.status */
9
+ const status = (body) => (0, request_1.request)({ method: "POST", path: "/main/v1/socket/notification/status", name: "socket status", data: body });
10
+ exports.status = status;
11
+ /** Захиалгын төлөв шинэчлэгдсэн event — permission: socket.status */
12
+ const orderStatus = (body) => (0, request_1.request)({
13
+ method: "POST",
14
+ path: "/main/v1/socket/notification/order/status",
15
+ name: "socket order status",
16
+ data: body
17
+ });
18
+ exports.orderStatus = orderStatus;
19
+ /** Дурын event олон хэрэглэгч рүү — permission: socket.emit */
20
+ const emit = (body) => (0, request_1.request)({ method: "POST", path: "/main/v1/socket/emit", name: "socket emit", data: body });
21
+ exports.emit = emit;
22
+ // Хуучин нэрүүд (0.x)
23
+ exports.ShowToast = exports.toast;
24
+ exports.ShowStatus = exports.status;
25
+ exports.ShowOrderStatus = exports.orderStatus;
26
+ exports.EMIT = exports.emit;
27
+ exports.default = { toast: exports.toast, status: exports.status, orderStatus: exports.orderStatus, emit: exports.emit, ShowToast: exports.ShowToast, ShowStatus: exports.ShowStatus, ShowOrderStatus: exports.ShowOrderStatus, EMIT: exports.EMIT };
@@ -0,0 +1,235 @@
1
+ export type ApiResponse<T> = {
2
+ code: string;
3
+ success: boolean;
4
+ message: string;
5
+ token?: string;
6
+ data: T;
7
+ };
8
+ /** Lib-ийн бүх функц ийм бүтэцтэй буцна — хэзээ ч throw хийхгүй */
9
+ export type Result<T> = {
10
+ success: boolean;
11
+ message: string;
12
+ data: T | null;
13
+ /** HTTP status (сүлжээний алдаа бол 0) */
14
+ status?: number;
15
+ };
16
+ export type TokenData = {
17
+ token_type: "Bearer";
18
+ access_token: string;
19
+ expires_in: number;
20
+ refresh_token: string;
21
+ refresh_expires_in: number;
22
+ client_id: string;
23
+ name: string;
24
+ permissions: string[];
25
+ };
26
+ /** user.verify хариу */
27
+ export type VerifiedUser = {
28
+ user: UserT;
29
+ /** token-ийн дуусах хугацаа (unix sec) */
30
+ exp: number | null;
31
+ client: {
32
+ client_id: string;
33
+ name: string;
34
+ };
35
+ };
36
+ export type ClientInfo = {
37
+ client_id: string;
38
+ name: string;
39
+ description?: string;
40
+ domain?: string;
41
+ logo?: string;
42
+ owner_email?: string;
43
+ permissions: string[];
44
+ token_expires_in: string;
45
+ refresh_expires_in: string;
46
+ active: boolean;
47
+ last_used_at?: string | null;
48
+ createdAt?: string;
49
+ };
50
+ export type PermissionGroup = {
51
+ key: string;
52
+ label: string;
53
+ permissions: {
54
+ key: string;
55
+ label: string;
56
+ desc: string;
57
+ }[];
58
+ };
59
+ export declare const genders: readonly ["MEN", "WOMEN"];
60
+ export type Gender = (typeof genders)[number];
61
+ export interface UserEmailItem {
62
+ email: string;
63
+ verified: boolean;
64
+ primary: boolean;
65
+ }
66
+ export interface UserPhoneItem {
67
+ number: string;
68
+ verified: boolean;
69
+ primary: boolean;
70
+ }
71
+ export interface UserAuthProfiles {
72
+ facebook_id?: string | null;
73
+ google_id?: string | null;
74
+ steam_id?: string | null;
75
+ apple_id?: string | null;
76
+ twitter_id?: string | null;
77
+ monpay_id?: string | null;
78
+ toki_id?: string | null;
79
+ social_id?: string | null;
80
+ hipay_id?: string | null;
81
+ digi_id?: string | null;
82
+ happy_pay_id?: string | null;
83
+ most_id?: string | null;
84
+ }
85
+ export interface UserPreferences {
86
+ language: string;
87
+ notifications: boolean;
88
+ }
89
+ export interface UserStatus {
90
+ is_active: boolean;
91
+ is_banned: boolean;
92
+ verified: boolean;
93
+ }
94
+ export interface UserVerifyInfo {
95
+ first_name: string;
96
+ last_name: string;
97
+ born_date: string | Date | null;
98
+ national_id: string;
99
+ }
100
+ export interface UserAppItem {
101
+ app_name: string;
102
+ app_id: string;
103
+ device_id: string;
104
+ }
105
+ export interface UserWalletItem {
106
+ key_id: string;
107
+ wallet_id: string;
108
+ wallet_key: string;
109
+ wallet_type: string;
110
+ wallet_name: string;
111
+ role: string[];
112
+ }
113
+ export type UserT = {
114
+ user_id: number;
115
+ user_name: string;
116
+ nick_name: string;
117
+ exp: number;
118
+ primary_email?: string | null;
119
+ primary_phone?: string | null;
120
+ emails: UserEmailItem[];
121
+ phone_numbers: UserPhoneItem[];
122
+ auth_profiles: UserAuthProfiles;
123
+ profile_image_url: string;
124
+ date_of_birth: string | Date | null;
125
+ gender?: Gender;
126
+ sign_up_date: string | Date | null;
127
+ last_login: string | Date | null;
128
+ wallets?: UserWalletItem[];
129
+ preferences?: UserPreferences;
130
+ status?: UserStatus;
131
+ verify_info?: UserVerifyInfo;
132
+ dynamic_info?: Record<string, any>;
133
+ apps?: UserAppItem[];
134
+ };
135
+ export type UserListFilter = {
136
+ /** user_id жагсаалт (max 1000) */
137
+ user_ids?: (number | string)[];
138
+ /** Таны апп-д бүртгүүлсэн хэрэглэгчид (apps.app_name) */
139
+ app_name?: string;
140
+ phone_number?: string;
141
+ email?: string;
142
+ /** нэр (хэсэгчилсэн) */
143
+ name?: string;
144
+ /** нэр / nick / имэйл / утас дээр ерөнхий хайлт */
145
+ q?: string;
146
+ gender?: Gender;
147
+ /** энэ хугацаанаас хойш нэвтэрсэн (ISO) */
148
+ last_login_after?: string | Date;
149
+ page?: number;
150
+ /** max 500, default 100 */
151
+ limit?: number;
152
+ /** lite: зөвхөн user_id, нэр, утас, имэйл, зураг, last_login (хурдан) */
153
+ fields?: "full" | "lite";
154
+ };
155
+ export type UserLite = Pick<UserT, "user_id" | "user_name" | "nick_name" | "primary_phone" | "primary_email" | "profile_image_url" | "last_login">;
156
+ export type PageResult<T> = {
157
+ list: T[];
158
+ total: number;
159
+ page: number;
160
+ limit: number;
161
+ };
162
+ export type PushNotiT = {
163
+ user_id: number;
164
+ target_app: string;
165
+ body: {
166
+ title: string;
167
+ body: string;
168
+ icon?: string;
169
+ image?: string;
170
+ button?: {
171
+ title: string;
172
+ url: string;
173
+ } | null;
174
+ data?: Record<string, string>;
175
+ };
176
+ };
177
+ export type SmsT = {
178
+ text: string;
179
+ to: string;
180
+ from: string;
181
+ };
182
+ export type MailT = {
183
+ type: "notification" | "otp" | "custom";
184
+ form?: {
185
+ name?: string;
186
+ email?: string;
187
+ };
188
+ to: string[];
189
+ subject: string;
190
+ body: {
191
+ name: string;
192
+ title?: string;
193
+ desc?: string;
194
+ otp?: string | number;
195
+ button?: {
196
+ text: string;
197
+ url: string | null;
198
+ };
199
+ footer_text?: string;
200
+ };
201
+ };
202
+ export type ToastT = {
203
+ user_id: number;
204
+ type?: "info" | "warning";
205
+ text: string;
206
+ };
207
+ export type StatusT = {
208
+ user_id: number;
209
+ id: string;
210
+ type?: "Loading" | "Success" | "Failure";
211
+ title?: string;
212
+ amount?: number | string;
213
+ desc?: string;
214
+ footer?: {
215
+ text: string;
216
+ buttons: {
217
+ text: string;
218
+ fun: "href" | "close" | "exit";
219
+ href?: string | null;
220
+ }[];
221
+ };
222
+ show?: boolean;
223
+ expired_date?: Date | string;
224
+ start_date?: Date | string;
225
+ };
226
+ export type OrderStatusT = {
227
+ user_id: number;
228
+ order_id: string;
229
+ [k: string]: any;
230
+ };
231
+ export type EmitT = {
232
+ user_id: number;
233
+ emit_name: string;
234
+ data: any;
235
+ };
package/dist/types.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genders = void 0;
4
+ /* -----------------------------
5
+ * User
6
+ * ----------------------------- */
7
+ exports.genders = ["MEN", "WOMEN"];
package/dist/user.d.ts ADDED
@@ -0,0 +1,78 @@
1
+ import { PageResult, Result, UserListFilter, UserLite, UserT, VerifiedUser } from "./types";
2
+ /**
3
+ * Хэрэглэгчийн token-ийг Auth.mn сервер дээр баталгаажуулж, хэрэглэгчийн
4
+ * мэдээллийг авна. Frontend (auth-mn-react redirect / QR / OTP) -ээс ирсэн
5
+ * token-ийг backend дээрээ ингэж шалгана. Permission: user.verify
6
+ *
7
+ * const v = await authMn.user.verify(token);
8
+ * if (!v.success) return res.status(401).json({ message: v.message });
9
+ * v.data.user.user_id ...
10
+ */
11
+ export declare const verify: (token: string) => Promise<Result<VerifiedUser>>;
12
+ /**
13
+ * Хэрэглэгч хайх — user_id, phone_number эсвэл email-ийн аль нэгээр (нэг хэрэглэгч).
14
+ * Permission: user.read
15
+ */
16
+ export declare const find: (query: {
17
+ user_id?: number | string;
18
+ phone_number?: string;
19
+ email?: string;
20
+ }) => Promise<Result<UserT>>;
21
+ /**
22
+ * Олон хэрэглэгч — хуудаслалттай. Permission: user.read
23
+ * await authMn.user.list({ app_name: "CHARGEX", fields: "lite", limit: 500 });
24
+ * → { list, total, page, limit }
25
+ */
26
+ export declare function list(filter: UserListFilter & {
27
+ fields: "lite";
28
+ }): Promise<Result<PageResult<UserLite>>>;
29
+ export declare function list(filter?: UserListFilter): Promise<Result<PageResult<UserT>>>;
30
+ /**
31
+ * Бүх хуудсыг татаж нэг массив болгоно (campaign, тайлан г.м.). max нь хамгаалалт (default 50000).
32
+ * const users = await authMn.user.listAll({ app_name: "CHARGEX", fields: "lite" });
33
+ */
34
+ export declare function listAll(filter: UserListFilter & {
35
+ fields: "lite";
36
+ }, max?: number): Promise<Result<UserLite[]>>;
37
+ export declare function listAll(filter?: UserListFilter, max?: number): Promise<Result<UserT[]>>;
38
+ type AnyReq = {
39
+ headers: Record<string, any>;
40
+ query?: any;
41
+ body?: any;
42
+ [k: string]: any;
43
+ };
44
+ type AnyRes = {
45
+ status: (code: number) => {
46
+ json: (b: any) => any;
47
+ };
48
+ };
49
+ type Next = (err?: any) => void;
50
+ export type MiddlewareOptions = {
51
+ /** false бол token байхгүй/буруу үед алдаа өгөхгүй, req.authMnUser = null байж next() (default true) */
52
+ required?: boolean;
53
+ /** Token-ийг хаанаас авах: default Authorization: Bearer, дараа нь ?authToken= / body.authToken */
54
+ getToken?: (req: AnyReq) => string | undefined | null;
55
+ /** Хэрэглэгчийн мэдээллийг хадгалах талбарын нэр (default "authMnUser") */
56
+ property?: string;
57
+ };
58
+ /**
59
+ * Express middleware — Auth.mn хэрэглэгчийн token-ийг шалгаад req.authMnUser-д хадгална.
60
+ *
61
+ * app.get("/api/me", authMn.user.middleware(), (req, res) => res.json(req.authMnUser));
62
+ *
63
+ * Санамж: хүсэлт бүрт Auth.mn руу нэг дуудлага хийнэ. Ачаалал ихтэй бол нэвтрэх үед
64
+ * нэг удаа verify хийгээд өөрийн session/JWT үүсгэх нь дээр.
65
+ */
66
+ export declare const middleware: (opts?: MiddlewareOptions) => (req: AnyReq, res: AnyRes, next: Next) => Promise<any>;
67
+ declare const _default: {
68
+ verify: (token: string) => Promise<Result<VerifiedUser>>;
69
+ find: (query: {
70
+ user_id?: number | string;
71
+ phone_number?: string;
72
+ email?: string;
73
+ }) => Promise<Result<UserT>>;
74
+ list: typeof list;
75
+ listAll: typeof listAll;
76
+ middleware: (opts?: MiddlewareOptions) => (req: AnyReq, res: AnyRes, next: Next) => Promise<any>;
77
+ };
78
+ export default _default;
package/dist/user.js ADDED
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.middleware = exports.find = exports.verify = void 0;
4
+ exports.list = list;
5
+ exports.listAll = listAll;
6
+ const request_1 = require("./request");
7
+ /**
8
+ * Хэрэглэгчийн token-ийг Auth.mn сервер дээр баталгаажуулж, хэрэглэгчийн
9
+ * мэдээллийг авна. Frontend (auth-mn-react redirect / QR / OTP) -ээс ирсэн
10
+ * token-ийг backend дээрээ ингэж шалгана. Permission: user.verify
11
+ *
12
+ * const v = await authMn.user.verify(token);
13
+ * if (!v.success) return res.status(401).json({ message: v.message });
14
+ * v.data.user.user_id ...
15
+ */
16
+ const verify = (token) => (0, request_1.request)({
17
+ method: "POST",
18
+ path: "/main/v1/auth/client/user/verify",
19
+ name: "user verify",
20
+ data: { token }
21
+ });
22
+ exports.verify = verify;
23
+ /**
24
+ * Хэрэглэгч хайх — user_id, phone_number эсвэл email-ийн аль нэгээр (нэг хэрэглэгч).
25
+ * Permission: user.read
26
+ */
27
+ const find = (query) => (0, request_1.request)({ method: "POST", path: "/main/v1/auth/client/user/find", name: "user find", data: query });
28
+ exports.find = find;
29
+ function list(filter = {}) {
30
+ return (0, request_1.request)({
31
+ method: "POST",
32
+ path: "/main/v1/auth/client/user/list",
33
+ name: "user list",
34
+ data: filter
35
+ });
36
+ }
37
+ async function listAll(filter = {}, max = 50000) {
38
+ const limit = Math.min(500, filter.limit || 500);
39
+ const all = [];
40
+ let page = 1;
41
+ for (;;) {
42
+ const r = await list({ ...filter, page, limit });
43
+ if (!r.success || !r.data)
44
+ return { success: false, message: r.message, data: null, status: r.status };
45
+ all.push(...r.data.list);
46
+ if (all.length >= r.data.total || r.data.list.length < limit || all.length >= max)
47
+ break;
48
+ page++;
49
+ }
50
+ return { success: true, message: "Амжилттай", data: all, status: 200 };
51
+ }
52
+ const defaultGetToken = (req) => {
53
+ var _a, _b, _c, _d;
54
+ 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) || "");
55
+ const m = h.match(/^Bearer\s+(.+)$/i);
56
+ if (m)
57
+ return m[1].trim();
58
+ return ((_c = req.query) === null || _c === void 0 ? void 0 : _c.authToken) || ((_d = req.body) === null || _d === void 0 ? void 0 : _d.authToken) || undefined;
59
+ };
60
+ /**
61
+ * Express middleware — Auth.mn хэрэглэгчийн token-ийг шалгаад req.authMnUser-д хадгална.
62
+ *
63
+ * app.get("/api/me", authMn.user.middleware(), (req, res) => res.json(req.authMnUser));
64
+ *
65
+ * Санамж: хүсэлт бүрт Auth.mn руу нэг дуудлага хийнэ. Ачаалал ихтэй бол нэвтрэх үед
66
+ * нэг удаа verify хийгээд өөрийн session/JWT үүсгэх нь дээр.
67
+ */
68
+ const middleware = (opts = {}) => async (req, res, next) => {
69
+ var _a;
70
+ const required = opts.required !== false;
71
+ const prop = opts.property || "authMnUser";
72
+ const token = (opts.getToken || defaultGetToken)(req);
73
+ if (!token) {
74
+ req[prop] = null;
75
+ if (!required)
76
+ return next();
77
+ return res.status(401).json({ success: false, message: "Нэвтрээгүй байна.", code: "401", data: null });
78
+ }
79
+ const v = await (0, exports.verify)(token);
80
+ if (!v.success || !((_a = v.data) === null || _a === void 0 ? void 0 : _a.user)) {
81
+ req[prop] = null;
82
+ if (!required)
83
+ return next();
84
+ return res
85
+ .status(v.status === 403 ? 403 : 401)
86
+ .json({ success: false, message: v.message || "Token хүчингүй.", code: "401", data: null });
87
+ }
88
+ req[prop] = v.data.user;
89
+ req[`${prop}Token`] = token;
90
+ return next();
91
+ };
92
+ exports.middleware = middleware;
93
+ exports.default = { verify: exports.verify, find: exports.find, list, listAll, middleware: exports.middleware };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "auth-mn",
3
- "version": "0.2.0",
4
- "description": "Auth.mn API",
3
+ "version": "1.0.1",
4
+ "description": "Auth.mn API client for Node.js — client_id/secret token, user, notification, socket",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
@@ -12,7 +12,8 @@
12
12
  "build-ts": "rm -rf ./dist && npx tsc",
13
13
  "build": "npx tsc",
14
14
  "debug": "npm run build && npm run watch-debug",
15
- "lint": "tsc --noEmit && eslint \"**/*.{js,ts}\" --quiet --fix"
15
+ "lint": "tsc --noEmit && eslint \"**/*.{js,ts}\" --quiet --fix",
16
+ "typecheck": "tsc --noEmit"
16
17
  },
17
18
  "repository": {
18
19
  "type": "git",
@@ -30,17 +31,15 @@
30
31
  },
31
32
  "homepage": "https://github.com/togtokh-dev/auth-mn/#readme",
32
33
  "dependencies": {
33
- "axios": "^1.6.2",
34
- "axios-master": "^2.0.7",
35
- "https": "^1.0.0",
36
- "ts-node": "^10.9.2",
37
- "typescript": "^5.0.4"
34
+ "axios": "^1.6.2"
38
35
  },
39
36
  "devDependencies": {
40
37
  "@types/node": "^18.15.11",
41
38
  "@typescript-eslint/eslint-plugin": "^6.4.0",
42
39
  "@typescript-eslint/parser": "^6.4.0",
43
- "eslint": "^8.47.0"
40
+ "eslint": "^8.47.0",
41
+ "ts-node": "^10.9.2",
42
+ "typescript": "^5.0.4"
44
43
  },
45
44
  "publishConfig": {
46
45
  "access": "public"