@umapi/contracts 1.0.6 → 1.0.8
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/interfaces/auth.interface.d.ts +38 -0
- package/dist/interfaces/auth.interface.d.ts.map +1 -0
- package/dist/interfaces/auth.interface.js +15 -0
- package/dist/interfaces/auth.interface.js.map +1 -0
- package/dist/interfaces/base.interface.d.ts +34 -0
- package/dist/interfaces/base.interface.d.ts.map +1 -0
- package/dist/interfaces/base.interface.js +3 -0
- package/dist/interfaces/base.interface.js.map +1 -0
- package/dist/interfaces/error.interface.d.ts +19 -0
- package/dist/interfaces/error.interface.d.ts.map +1 -0
- package/dist/interfaces/error.interface.js +19 -0
- package/dist/interfaces/error.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +3 -81
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +18 -12
- package/dist/interfaces/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Аутентифицированный пользователь
|
|
3
|
+
*/
|
|
4
|
+
export interface AuthUser {
|
|
5
|
+
/** ID пользователя */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Роли пользователя */
|
|
8
|
+
roles: string[];
|
|
9
|
+
/** Скопы пользователя */
|
|
10
|
+
scopes: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Методы аутентификации
|
|
14
|
+
*/
|
|
15
|
+
export declare enum AuthMethod {
|
|
16
|
+
OTP_PHONE = "otp_phone",
|
|
17
|
+
OTP_EMAIL = "otp_email",
|
|
18
|
+
PASSWORD = "password",
|
|
19
|
+
OAUTH = "oauth",
|
|
20
|
+
PASSKEY = "passkey"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Интерфейс провайдера аутентификации
|
|
24
|
+
*/
|
|
25
|
+
export interface AuthProvider {
|
|
26
|
+
/**
|
|
27
|
+
* Запрос аутентификации (например, отправка OTP)
|
|
28
|
+
* @param dto Данные запроса
|
|
29
|
+
*/
|
|
30
|
+
request(dto: any): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Верификация аутентификации
|
|
33
|
+
* @param dto Данные верификации
|
|
34
|
+
* @returns Аутентифицированный пользователь
|
|
35
|
+
*/
|
|
36
|
+
verify(dto: any): Promise<AuthUser>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=auth.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/auth.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,oBAAY,UAAU;IAClB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthMethod = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Методы аутентификации
|
|
6
|
+
*/
|
|
7
|
+
var AuthMethod;
|
|
8
|
+
(function (AuthMethod) {
|
|
9
|
+
AuthMethod["OTP_PHONE"] = "otp_phone";
|
|
10
|
+
AuthMethod["OTP_EMAIL"] = "otp_email";
|
|
11
|
+
AuthMethod["PASSWORD"] = "password";
|
|
12
|
+
AuthMethod["OAUTH"] = "oauth";
|
|
13
|
+
AuthMethod["PASSKEY"] = "passkey";
|
|
14
|
+
})(AuthMethod || (exports.AuthMethod = AuthMethod = {}));
|
|
15
|
+
//# sourceMappingURL=auth.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.interface.js","sourceRoot":"","sources":["../../src/interfaces/auth.interface.ts"],"names":[],"mappings":";;;AAYA;;GAEG;AACH,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,qCAAuB,CAAA;IACvB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;IACrB,6BAAe,CAAA;IACf,iCAAmB,CAAA;AACvB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Базовый ответ API
|
|
3
|
+
*/
|
|
4
|
+
export interface BaseResponse<T = any> {
|
|
5
|
+
/** Успешность операции */
|
|
6
|
+
success: boolean;
|
|
7
|
+
/** Данные ответа (опционально) */
|
|
8
|
+
data?: T;
|
|
9
|
+
/** Сообщение (опционально) */
|
|
10
|
+
message?: string;
|
|
11
|
+
/** Ошибка (опционально) */
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Метаданные пагинации
|
|
16
|
+
*/
|
|
17
|
+
export interface PaginationMeta {
|
|
18
|
+
/** Номер страницы */
|
|
19
|
+
page: number;
|
|
20
|
+
/** Размер страницы */
|
|
21
|
+
limit: number;
|
|
22
|
+
/** Общее количество */
|
|
23
|
+
total: number;
|
|
24
|
+
/** Общее количество страниц */
|
|
25
|
+
totalPages: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Пагинированный ответ
|
|
29
|
+
*/
|
|
30
|
+
export interface PaginatedResponse<T> extends BaseResponse<T[]> {
|
|
31
|
+
/** Метаданные пагинации */
|
|
32
|
+
meta: PaginationMeta;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=base.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/base.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACjC,0BAA0B;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC;IAC3D,2BAA2B;IAC3B,IAAI,EAAE,cAAc,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.interface.js","sourceRoot":"","sources":["../../src/interfaces/base.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Доменная ошибка сервиса
|
|
3
|
+
*/
|
|
4
|
+
export interface ServiceError {
|
|
5
|
+
/** Код ошибки */
|
|
6
|
+
code: string;
|
|
7
|
+
/** Сообщение ошибки */
|
|
8
|
+
message: string;
|
|
9
|
+
/** Дополнительные детали (опционально) */
|
|
10
|
+
details?: unknown;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Маппинг кодов ошибок на HTTP статусы и сообщения для клиента
|
|
14
|
+
*/
|
|
15
|
+
export declare const ERROR_MAP: Record<string, {
|
|
16
|
+
status: number;
|
|
17
|
+
message: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=error.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/error.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAWzE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ERROR_MAP = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Маппинг кодов ошибок на HTTP статусы и сообщения для клиента
|
|
6
|
+
*/
|
|
7
|
+
exports.ERROR_MAP = {
|
|
8
|
+
USER_NOT_FOUND: { status: 404, message: 'User not found' },
|
|
9
|
+
USER_BLOCKED: { status: 403, message: 'Access denied' },
|
|
10
|
+
OTP_EXPIRED: { status: 401, message: 'Code expired' },
|
|
11
|
+
INVALID_OTP: { status: 401, message: 'Invalid code' },
|
|
12
|
+
EMAIL_ALREADY_EXISTS: { status: 409, message: 'Email already exists' },
|
|
13
|
+
UNSUPPORTED_METHOD: { status: 400, message: 'Unsupported authentication method' },
|
|
14
|
+
OTP_REQUEST_FAILED: { status: 500, message: 'Failed to send code' },
|
|
15
|
+
OTP_VERIFY_FAILED: { status: 500, message: 'Failed to verify code' },
|
|
16
|
+
BUSINESS_LOGIC_ERROR: { status: 500, message: 'Internal server error' },
|
|
17
|
+
// Добавьте другие коды ошибок по мере необходимости
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=error.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.interface.js","sourceRoot":"","sources":["../../src/interfaces/error.interface.ts"],"names":[],"mappings":";;;AAYA;;GAEG;AACU,QAAA,SAAS,GAAwD;IAC1E,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE;IAC1D,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE;IACvD,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE;IACrD,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE;IACrD,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE;IACtE,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,mCAAmC,EAAE;IACjF,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,EAAE;IACnE,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,EAAE;IACpE,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,EAAE;IACvE,oDAAoD;CACvD,CAAC"}
|
|
@@ -1,82 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
export interface BaseResponse<T = any> {
|
|
5
|
-
/** Успешность операции */
|
|
6
|
-
success: boolean;
|
|
7
|
-
/** Данные ответа (опционально) */
|
|
8
|
-
data?: T;
|
|
9
|
-
/** Сообщение (опционально) */
|
|
10
|
-
message?: string;
|
|
11
|
-
/** Ошибка (опционально) */
|
|
12
|
-
error?: string;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Метаданные пагинации
|
|
16
|
-
*/
|
|
17
|
-
export interface PaginationMeta {
|
|
18
|
-
/** Номер страницы */
|
|
19
|
-
page: number;
|
|
20
|
-
/** Размер страницы */
|
|
21
|
-
limit: number;
|
|
22
|
-
/** Общее количество */
|
|
23
|
-
total: number;
|
|
24
|
-
/** Общее количество страниц */
|
|
25
|
-
totalPages: number;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Пагинированный ответ
|
|
29
|
-
*/
|
|
30
|
-
export interface PaginatedResponse<T> extends BaseResponse<T[]> {
|
|
31
|
-
/** Метаданные пагинации */
|
|
32
|
-
meta: PaginationMeta;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Аутентифицированный пользователь
|
|
36
|
-
*/
|
|
37
|
-
export interface AuthUser {
|
|
38
|
-
/** ID пользователя */
|
|
39
|
-
id: string;
|
|
40
|
-
/** Роли пользователя */
|
|
41
|
-
roles: string[];
|
|
42
|
-
/** Скопы пользователя */
|
|
43
|
-
scopes: string[];
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Методы аутентификации
|
|
47
|
-
*/
|
|
48
|
-
export declare enum AuthMethod {
|
|
49
|
-
OTP_PHONE = "otp_phone",
|
|
50
|
-
OTP_EMAIL = "otp_email",
|
|
51
|
-
PASSWORD = "password",
|
|
52
|
-
OAUTH = "oauth",
|
|
53
|
-
PASSKEY = "passkey"
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Интерфейс провайдера аутентификации
|
|
57
|
-
*/
|
|
58
|
-
export interface AuthProvider {
|
|
59
|
-
/**
|
|
60
|
-
* Запрос аутентификации (например, отправка OTP)
|
|
61
|
-
* @param dto Данные запроса
|
|
62
|
-
*/
|
|
63
|
-
request(dto: any): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Верификация аутентификации
|
|
66
|
-
* @param dto Данные верификации
|
|
67
|
-
* @returns Аутентифицированный пользователь
|
|
68
|
-
*/
|
|
69
|
-
verify(dto: any): Promise<AuthUser>;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Доменная ошибка сервиса
|
|
73
|
-
*/
|
|
74
|
-
export interface ServiceError {
|
|
75
|
-
/** Код ошибки */
|
|
76
|
-
code: string;
|
|
77
|
-
/** Сообщение ошибки */
|
|
78
|
-
message: string;
|
|
79
|
-
/** Дополнительные детали (опционально) */
|
|
80
|
-
details?: unknown;
|
|
81
|
-
}
|
|
1
|
+
export * from './auth.interface';
|
|
2
|
+
export * from './base.interface';
|
|
3
|
+
export * from './error.interface';
|
|
82
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
package/dist/interfaces/index.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var AuthMethod;
|
|
8
|
-
(function (AuthMethod) {
|
|
9
|
-
AuthMethod["OTP_PHONE"] = "otp_phone";
|
|
10
|
-
AuthMethod["OTP_EMAIL"] = "otp_email";
|
|
11
|
-
AuthMethod["PASSWORD"] = "password";
|
|
12
|
-
AuthMethod["OAUTH"] = "oauth";
|
|
13
|
-
AuthMethod["PASSKEY"] = "passkey";
|
|
14
|
-
})(AuthMethod || (exports.AuthMethod = AuthMethod = {}));
|
|
17
|
+
// Экспорт всех интерфейсов
|
|
18
|
+
__exportStar(require("./auth.interface"), exports);
|
|
19
|
+
__exportStar(require("./base.interface"), exports);
|
|
20
|
+
__exportStar(require("./error.interface"), exports);
|
|
15
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,mDAAiC;AACjC,mDAAiC;AACjC,oDAAkC"}
|