@aepstore-dev/contracts 1.0.6 → 1.1.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/dist/proto/paths.d.ts +15 -0
- package/dist/proto/paths.js +18 -2
- package/gen/activity.ts +281 -0
- package/gen/auth.ts +164 -19
- package/gen/mail.ts +91 -0
- package/gen/products.ts +452 -0
- package/gen/taxonomy.ts +131 -0
- package/gen/upload.ts +98 -0
- package/gen/users.ts +269 -0
- package/package.json +8 -5
- package/proto/activity.proto +201 -0
- package/proto/auth.proto +101 -18
- package/proto/mail.proto +42 -0
- package/proto/products.proto +327 -0
- package/proto/taxonomy.proto +78 -0
- package/proto/upload.proto +49 -0
- package/proto/users.proto +222 -0
package/dist/proto/paths.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
1
|
export declare const PROTO_PATHS: {
|
|
2
|
+
readonly ACTIVITY: string;
|
|
2
3
|
readonly AUTH: string;
|
|
4
|
+
readonly MAIL: string;
|
|
5
|
+
readonly PRODUCTS: string;
|
|
6
|
+
readonly TAXONOMY: string;
|
|
7
|
+
readonly UPLOAD: string;
|
|
8
|
+
readonly USERS: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const PROTO_PACKAGES: {
|
|
11
|
+
readonly ACTIVITY: "activity.v1";
|
|
12
|
+
readonly AUTH: "auth.v1";
|
|
13
|
+
readonly MAIL: "mail.v1";
|
|
14
|
+
readonly PRODUCTS: "products.v1";
|
|
15
|
+
readonly TAXONOMY: "taxonomy.v1";
|
|
16
|
+
readonly UPLOAD: "upload.v1";
|
|
17
|
+
readonly USERS: "users.v1";
|
|
3
18
|
};
|
package/dist/proto/paths.js
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROTO_PATHS = void 0;
|
|
3
|
+
exports.PROTO_PACKAGES = exports.PROTO_PATHS = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
|
+
const PROTO_DIR = (0, path_1.join)(__dirname, "../../proto");
|
|
5
6
|
exports.PROTO_PATHS = {
|
|
6
|
-
|
|
7
|
+
ACTIVITY: (0, path_1.join)(PROTO_DIR, "activity.proto"),
|
|
8
|
+
AUTH: (0, path_1.join)(PROTO_DIR, "auth.proto"),
|
|
9
|
+
MAIL: (0, path_1.join)(PROTO_DIR, "mail.proto"),
|
|
10
|
+
PRODUCTS: (0, path_1.join)(PROTO_DIR, "products.proto"),
|
|
11
|
+
TAXONOMY: (0, path_1.join)(PROTO_DIR, "taxonomy.proto"),
|
|
12
|
+
UPLOAD: (0, path_1.join)(PROTO_DIR, "upload.proto"),
|
|
13
|
+
USERS: (0, path_1.join)(PROTO_DIR, "users.proto"),
|
|
14
|
+
};
|
|
15
|
+
exports.PROTO_PACKAGES = {
|
|
16
|
+
ACTIVITY: "activity.v1",
|
|
17
|
+
AUTH: "auth.v1",
|
|
18
|
+
MAIL: "mail.v1",
|
|
19
|
+
PRODUCTS: "products.v1",
|
|
20
|
+
TAXONOMY: "taxonomy.v1",
|
|
21
|
+
UPLOAD: "upload.v1",
|
|
22
|
+
USERS: "users.v1",
|
|
7
23
|
};
|
package/gen/activity.ts
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
2
|
+
// versions:
|
|
3
|
+
// protoc-gen-ts_proto v2.10.1
|
|
4
|
+
// protoc v7.35.0
|
|
5
|
+
// source: activity.proto
|
|
6
|
+
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
|
9
|
+
import { Observable } from "rxjs";
|
|
10
|
+
|
|
11
|
+
export const protobufPackage = "activity.v1";
|
|
12
|
+
|
|
13
|
+
export enum ReportType {
|
|
14
|
+
REPORT_TYPE_UNSPECIFIED = 0,
|
|
15
|
+
REPORT_TYPE_PRODUCT = 1,
|
|
16
|
+
REPORT_TYPE_PROFILE = 2,
|
|
17
|
+
REPORT_TYPE_REVIEW = 3,
|
|
18
|
+
UNRECOGNIZED = -1,
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export enum ReportStatus {
|
|
22
|
+
REPORT_STATUS_UNSPECIFIED = 0,
|
|
23
|
+
REPORT_STATUS_PENDING = 1,
|
|
24
|
+
REPORT_STATUS_IN_PROGRESS = 2,
|
|
25
|
+
REPORT_STATUS_RESOLVED = 3,
|
|
26
|
+
REPORT_STATUS_DISMISSED = 4,
|
|
27
|
+
UNRECOGNIZED = -1,
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface Report {
|
|
31
|
+
id: string;
|
|
32
|
+
type: ReportType;
|
|
33
|
+
objectId: string;
|
|
34
|
+
userId: string;
|
|
35
|
+
productId: string;
|
|
36
|
+
categories: ReportCategory[];
|
|
37
|
+
message: string;
|
|
38
|
+
status: ReportStatus;
|
|
39
|
+
createdAt: string;
|
|
40
|
+
updatedAt: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface ReportResponse {
|
|
44
|
+
report: Report | undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface CreateReportRequest {
|
|
48
|
+
userId: string;
|
|
49
|
+
type: ReportType;
|
|
50
|
+
objectId: string;
|
|
51
|
+
/** names */
|
|
52
|
+
categories: string[];
|
|
53
|
+
message: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface ListReportsRequest {
|
|
57
|
+
type: ReportType;
|
|
58
|
+
status: ReportStatus;
|
|
59
|
+
userId: string;
|
|
60
|
+
objectId: string;
|
|
61
|
+
page: number;
|
|
62
|
+
limit: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface ReportsListResponse {
|
|
66
|
+
items: Report[];
|
|
67
|
+
total: number;
|
|
68
|
+
page: number;
|
|
69
|
+
limit: number;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface ReportIdRequest {
|
|
73
|
+
id: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface ModerateReportRequest {
|
|
77
|
+
id: string;
|
|
78
|
+
/** 'accept' | 'reject' */
|
|
79
|
+
action: string;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface ReportCategory {
|
|
83
|
+
id: string;
|
|
84
|
+
name: string;
|
|
85
|
+
type: ReportType;
|
|
86
|
+
icon: string;
|
|
87
|
+
description: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface ReportCategoryResponse {
|
|
91
|
+
category: ReportCategory | undefined;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface CreateReportCategoryRequest {
|
|
95
|
+
name: string;
|
|
96
|
+
type: ReportType;
|
|
97
|
+
icon: string;
|
|
98
|
+
description: string;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface UpdateReportCategoryRequest {
|
|
102
|
+
id: string;
|
|
103
|
+
name: string;
|
|
104
|
+
icon: string;
|
|
105
|
+
description: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface ListReportCategoriesRequest {
|
|
109
|
+
type: ReportType;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface ReportCategoriesListResponse {
|
|
113
|
+
items: ReportCategory[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface ReportCategoryIdRequest {
|
|
117
|
+
id: string;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface Review {
|
|
121
|
+
id: string;
|
|
122
|
+
rating: number;
|
|
123
|
+
text: string;
|
|
124
|
+
userId: string;
|
|
125
|
+
productId: string;
|
|
126
|
+
createdAt: string;
|
|
127
|
+
updatedAt: string;
|
|
128
|
+
userUsername: string;
|
|
129
|
+
userAvatarUrl: string;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface ReviewResponse {
|
|
133
|
+
review: Review | undefined;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface CreateReviewRequest {
|
|
137
|
+
userId: string;
|
|
138
|
+
productId: string;
|
|
139
|
+
rating: number;
|
|
140
|
+
text: string;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export interface GetProductReviewsRequest {
|
|
144
|
+
productId: string;
|
|
145
|
+
page: number;
|
|
146
|
+
limit: number;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface ReviewsListResponse {
|
|
150
|
+
items: Review[];
|
|
151
|
+
total: number;
|
|
152
|
+
page: number;
|
|
153
|
+
limit: number;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export interface ToggleSubscriptionRequest {
|
|
157
|
+
userId: string;
|
|
158
|
+
targetUsername: string;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface ToggleSubscriptionResponse {
|
|
162
|
+
subscribed: boolean;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface Ok {
|
|
166
|
+
ok: boolean;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export const ACTIVITY_V1_PACKAGE_NAME = "activity.v1";
|
|
170
|
+
|
|
171
|
+
export interface ActivityServiceClient {
|
|
172
|
+
/** Reports */
|
|
173
|
+
|
|
174
|
+
reportCreate(request: CreateReportRequest): Observable<ReportResponse>;
|
|
175
|
+
|
|
176
|
+
reportList(request: ListReportsRequest): Observable<ReportsListResponse>;
|
|
177
|
+
|
|
178
|
+
reportGet(request: ReportIdRequest): Observable<ReportResponse>;
|
|
179
|
+
|
|
180
|
+
reportModerate(request: ModerateReportRequest): Observable<ReportResponse>;
|
|
181
|
+
|
|
182
|
+
/** Report categories */
|
|
183
|
+
|
|
184
|
+
reportCategoryCreate(request: CreateReportCategoryRequest): Observable<ReportCategoryResponse>;
|
|
185
|
+
|
|
186
|
+
reportCategoryList(request: ListReportCategoriesRequest): Observable<ReportCategoriesListResponse>;
|
|
187
|
+
|
|
188
|
+
reportCategoryGet(request: ReportCategoryIdRequest): Observable<ReportCategoryResponse>;
|
|
189
|
+
|
|
190
|
+
reportCategoryUpdate(request: UpdateReportCategoryRequest): Observable<ReportCategoryResponse>;
|
|
191
|
+
|
|
192
|
+
reportCategoryDelete(request: ReportCategoryIdRequest): Observable<Ok>;
|
|
193
|
+
|
|
194
|
+
/** Reviews */
|
|
195
|
+
|
|
196
|
+
reviewCreate(request: CreateReviewRequest): Observable<ReviewResponse>;
|
|
197
|
+
|
|
198
|
+
getProductReviews(request: GetProductReviewsRequest): Observable<ReviewsListResponse>;
|
|
199
|
+
|
|
200
|
+
/** Subscriptions */
|
|
201
|
+
|
|
202
|
+
toggleSubscription(request: ToggleSubscriptionRequest): Observable<ToggleSubscriptionResponse>;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export interface ActivityServiceController {
|
|
206
|
+
/** Reports */
|
|
207
|
+
|
|
208
|
+
reportCreate(request: CreateReportRequest): Promise<ReportResponse> | Observable<ReportResponse> | ReportResponse;
|
|
209
|
+
|
|
210
|
+
reportList(
|
|
211
|
+
request: ListReportsRequest,
|
|
212
|
+
): Promise<ReportsListResponse> | Observable<ReportsListResponse> | ReportsListResponse;
|
|
213
|
+
|
|
214
|
+
reportGet(request: ReportIdRequest): Promise<ReportResponse> | Observable<ReportResponse> | ReportResponse;
|
|
215
|
+
|
|
216
|
+
reportModerate(request: ModerateReportRequest): Promise<ReportResponse> | Observable<ReportResponse> | ReportResponse;
|
|
217
|
+
|
|
218
|
+
/** Report categories */
|
|
219
|
+
|
|
220
|
+
reportCategoryCreate(
|
|
221
|
+
request: CreateReportCategoryRequest,
|
|
222
|
+
): Promise<ReportCategoryResponse> | Observable<ReportCategoryResponse> | ReportCategoryResponse;
|
|
223
|
+
|
|
224
|
+
reportCategoryList(
|
|
225
|
+
request: ListReportCategoriesRequest,
|
|
226
|
+
): Promise<ReportCategoriesListResponse> | Observable<ReportCategoriesListResponse> | ReportCategoriesListResponse;
|
|
227
|
+
|
|
228
|
+
reportCategoryGet(
|
|
229
|
+
request: ReportCategoryIdRequest,
|
|
230
|
+
): Promise<ReportCategoryResponse> | Observable<ReportCategoryResponse> | ReportCategoryResponse;
|
|
231
|
+
|
|
232
|
+
reportCategoryUpdate(
|
|
233
|
+
request: UpdateReportCategoryRequest,
|
|
234
|
+
): Promise<ReportCategoryResponse> | Observable<ReportCategoryResponse> | ReportCategoryResponse;
|
|
235
|
+
|
|
236
|
+
reportCategoryDelete(request: ReportCategoryIdRequest): Promise<Ok> | Observable<Ok> | Ok;
|
|
237
|
+
|
|
238
|
+
/** Reviews */
|
|
239
|
+
|
|
240
|
+
reviewCreate(request: CreateReviewRequest): Promise<ReviewResponse> | Observable<ReviewResponse> | ReviewResponse;
|
|
241
|
+
|
|
242
|
+
getProductReviews(
|
|
243
|
+
request: GetProductReviewsRequest,
|
|
244
|
+
): Promise<ReviewsListResponse> | Observable<ReviewsListResponse> | ReviewsListResponse;
|
|
245
|
+
|
|
246
|
+
/** Subscriptions */
|
|
247
|
+
|
|
248
|
+
toggleSubscription(
|
|
249
|
+
request: ToggleSubscriptionRequest,
|
|
250
|
+
): Promise<ToggleSubscriptionResponse> | Observable<ToggleSubscriptionResponse> | ToggleSubscriptionResponse;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export function ActivityServiceControllerMethods() {
|
|
254
|
+
return function (constructor: Function) {
|
|
255
|
+
const grpcMethods: string[] = [
|
|
256
|
+
"reportCreate",
|
|
257
|
+
"reportList",
|
|
258
|
+
"reportGet",
|
|
259
|
+
"reportModerate",
|
|
260
|
+
"reportCategoryCreate",
|
|
261
|
+
"reportCategoryList",
|
|
262
|
+
"reportCategoryGet",
|
|
263
|
+
"reportCategoryUpdate",
|
|
264
|
+
"reportCategoryDelete",
|
|
265
|
+
"reviewCreate",
|
|
266
|
+
"getProductReviews",
|
|
267
|
+
"toggleSubscription",
|
|
268
|
+
];
|
|
269
|
+
for (const method of grpcMethods) {
|
|
270
|
+
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
271
|
+
GrpcMethod("ActivityService", method)(constructor.prototype[method], method, descriptor);
|
|
272
|
+
}
|
|
273
|
+
const grpcStreamMethods: string[] = [];
|
|
274
|
+
for (const method of grpcStreamMethods) {
|
|
275
|
+
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
276
|
+
GrpcStreamMethod("ActivityService", method)(constructor.prototype[method], method, descriptor);
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export const ACTIVITY_SERVICE_NAME = "ActivityService";
|
package/gen/auth.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
2
2
|
// versions:
|
|
3
3
|
// protoc-gen-ts_proto v2.10.1
|
|
4
|
-
// protoc
|
|
4
|
+
// protoc v7.35.0
|
|
5
5
|
// source: auth.proto
|
|
6
6
|
|
|
7
7
|
/* eslint-disable */
|
|
@@ -10,56 +10,201 @@ import { Observable } from "rxjs";
|
|
|
10
10
|
|
|
11
11
|
export const protobufPackage = "auth.v1";
|
|
12
12
|
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export enum TwoFactorType {
|
|
14
|
+
NONE = 0,
|
|
15
|
+
APP = 1,
|
|
16
|
+
EMAIL = 2,
|
|
17
|
+
UNRECOGNIZED = -1,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Login by username OR email (one of the two must be set). */
|
|
21
|
+
export interface LoginRequest {
|
|
22
|
+
password: string;
|
|
23
|
+
/** optional */
|
|
24
|
+
username: string;
|
|
25
|
+
/** optional */
|
|
26
|
+
email: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface RegisterRequest {
|
|
30
|
+
email: string;
|
|
31
|
+
username: string;
|
|
32
|
+
password: string;
|
|
33
|
+
/** optional, attached by gateway from req */
|
|
34
|
+
ip: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Standard tokens-plus-user payload returned by Login / Register / RefreshToken. */
|
|
38
|
+
export interface AuthResponse {
|
|
39
|
+
accessToken: string;
|
|
40
|
+
refreshToken: string;
|
|
41
|
+
user: AuthUser | undefined;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface AuthUser {
|
|
45
|
+
id: string;
|
|
46
|
+
email: string;
|
|
47
|
+
username: string;
|
|
48
|
+
/** primary role for backwards compat ("User" / "Administrator" / "Moderator") */
|
|
49
|
+
role: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Code types: '2fa', 'reset', 'confirm', 'totp' (legacy strings preserved as-is). */
|
|
53
|
+
export interface CreateCodeRequest {
|
|
54
|
+
email: string;
|
|
15
55
|
type: string;
|
|
16
56
|
}
|
|
17
57
|
|
|
18
|
-
export interface
|
|
58
|
+
export interface CreateCodeResponse {
|
|
19
59
|
ok: boolean;
|
|
20
60
|
}
|
|
21
61
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
62
|
+
/** `new_password` is only used by the 'reset' flow. */
|
|
63
|
+
export interface VerifyCodeRequest {
|
|
64
|
+
email: string;
|
|
25
65
|
code: string;
|
|
66
|
+
type: string;
|
|
67
|
+
/** optional */
|
|
68
|
+
newPassword: string;
|
|
26
69
|
}
|
|
27
70
|
|
|
28
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Some verification flows (e.g. confirm-on-register) issue tokens immediately;
|
|
73
|
+
* others just return ok=true.
|
|
74
|
+
*/
|
|
75
|
+
export interface VerifyCodeResponse {
|
|
76
|
+
ok: boolean;
|
|
77
|
+
/** optional */
|
|
29
78
|
accessToken: string;
|
|
79
|
+
/** optional */
|
|
30
80
|
refreshToken: string;
|
|
31
81
|
}
|
|
32
82
|
|
|
33
|
-
export interface
|
|
34
|
-
|
|
83
|
+
export interface CheckTokenRequest {
|
|
84
|
+
token: string;
|
|
35
85
|
}
|
|
36
86
|
|
|
37
|
-
export interface
|
|
38
|
-
|
|
87
|
+
export interface CheckTokenResponse {
|
|
88
|
+
valid: boolean;
|
|
89
|
+
userId: string;
|
|
90
|
+
/** populated when valid=false */
|
|
91
|
+
reason: string;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface RefreshTokenRequest {
|
|
39
95
|
refreshToken: string;
|
|
96
|
+
/** optional */
|
|
97
|
+
userAgent: string;
|
|
98
|
+
/** optional */
|
|
99
|
+
ip: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface Get2faStatusRequest {
|
|
103
|
+
username: string;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export interface Get2faStatusResponse {
|
|
107
|
+
enabled: boolean;
|
|
108
|
+
type: TwoFactorType;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface GetProfileRequest {
|
|
112
|
+
userId: string;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface UserProfileResponse {
|
|
116
|
+
id: string;
|
|
117
|
+
email: string;
|
|
118
|
+
username: string;
|
|
119
|
+
fullName: string;
|
|
120
|
+
isVerified: boolean;
|
|
121
|
+
twoFactorEnabled: boolean;
|
|
122
|
+
twoFactorType: TwoFactorType;
|
|
123
|
+
roles: string[];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface Empty {
|
|
40
127
|
}
|
|
41
128
|
|
|
42
129
|
export const AUTH_V1_PACKAGE_NAME = "auth.v1";
|
|
43
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Ported from legacy auth-service (@MessagePattern → @GrpcMethod).
|
|
133
|
+
* All tokens are HMAC primitives minted by @aepstore-dev/passport;
|
|
134
|
+
* the access token only carries `userId`. Username / roles / 2FA state
|
|
135
|
+
* must be looked up via Prisma or RbacService on the consumer side.
|
|
136
|
+
*/
|
|
137
|
+
|
|
44
138
|
export interface AuthServiceClient {
|
|
45
|
-
|
|
139
|
+
login(request: LoginRequest): Observable<AuthResponse>;
|
|
140
|
+
|
|
141
|
+
register(request: RegisterRequest): Observable<AuthResponse>;
|
|
142
|
+
|
|
143
|
+
createCode(request: CreateCodeRequest): Observable<CreateCodeResponse>;
|
|
144
|
+
|
|
145
|
+
verifyCode(request: VerifyCodeRequest): Observable<VerifyCodeResponse>;
|
|
46
146
|
|
|
47
|
-
|
|
147
|
+
checkToken(request: CheckTokenRequest): Observable<CheckTokenResponse>;
|
|
48
148
|
|
|
49
|
-
|
|
149
|
+
refreshToken(request: RefreshTokenRequest): Observable<AuthResponse>;
|
|
150
|
+
|
|
151
|
+
get2FaStatus(request: Get2faStatusRequest): Observable<Get2faStatusResponse>;
|
|
152
|
+
|
|
153
|
+
getProfile(request: GetProfileRequest): Observable<UserProfileResponse>;
|
|
154
|
+
|
|
155
|
+
cleanupExpiredTotpSetups(request: Empty): Observable<Empty>;
|
|
50
156
|
}
|
|
51
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Ported from legacy auth-service (@MessagePattern → @GrpcMethod).
|
|
160
|
+
* All tokens are HMAC primitives minted by @aepstore-dev/passport;
|
|
161
|
+
* the access token only carries `userId`. Username / roles / 2FA state
|
|
162
|
+
* must be looked up via Prisma or RbacService on the consumer side.
|
|
163
|
+
*/
|
|
164
|
+
|
|
52
165
|
export interface AuthServiceController {
|
|
53
|
-
|
|
166
|
+
login(request: LoginRequest): Promise<AuthResponse> | Observable<AuthResponse> | AuthResponse;
|
|
167
|
+
|
|
168
|
+
register(request: RegisterRequest): Promise<AuthResponse> | Observable<AuthResponse> | AuthResponse;
|
|
169
|
+
|
|
170
|
+
createCode(
|
|
171
|
+
request: CreateCodeRequest,
|
|
172
|
+
): Promise<CreateCodeResponse> | Observable<CreateCodeResponse> | CreateCodeResponse;
|
|
173
|
+
|
|
174
|
+
verifyCode(
|
|
175
|
+
request: VerifyCodeRequest,
|
|
176
|
+
): Promise<VerifyCodeResponse> | Observable<VerifyCodeResponse> | VerifyCodeResponse;
|
|
177
|
+
|
|
178
|
+
checkToken(
|
|
179
|
+
request: CheckTokenRequest,
|
|
180
|
+
): Promise<CheckTokenResponse> | Observable<CheckTokenResponse> | CheckTokenResponse;
|
|
181
|
+
|
|
182
|
+
refreshToken(request: RefreshTokenRequest): Promise<AuthResponse> | Observable<AuthResponse> | AuthResponse;
|
|
183
|
+
|
|
184
|
+
get2FaStatus(
|
|
185
|
+
request: Get2faStatusRequest,
|
|
186
|
+
): Promise<Get2faStatusResponse> | Observable<Get2faStatusResponse> | Get2faStatusResponse;
|
|
54
187
|
|
|
55
|
-
|
|
188
|
+
getProfile(
|
|
189
|
+
request: GetProfileRequest,
|
|
190
|
+
): Promise<UserProfileResponse> | Observable<UserProfileResponse> | UserProfileResponse;
|
|
56
191
|
|
|
57
|
-
|
|
192
|
+
cleanupExpiredTotpSetups(request: Empty): Promise<Empty> | Observable<Empty> | Empty;
|
|
58
193
|
}
|
|
59
194
|
|
|
60
195
|
export function AuthServiceControllerMethods() {
|
|
61
196
|
return function (constructor: Function) {
|
|
62
|
-
const grpcMethods: string[] = [
|
|
197
|
+
const grpcMethods: string[] = [
|
|
198
|
+
"login",
|
|
199
|
+
"register",
|
|
200
|
+
"createCode",
|
|
201
|
+
"verifyCode",
|
|
202
|
+
"checkToken",
|
|
203
|
+
"refreshToken",
|
|
204
|
+
"get2FaStatus",
|
|
205
|
+
"getProfile",
|
|
206
|
+
"cleanupExpiredTotpSetups",
|
|
207
|
+
];
|
|
63
208
|
for (const method of grpcMethods) {
|
|
64
209
|
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
65
210
|
GrpcMethod("AuthService", method)(constructor.prototype[method], method, descriptor);
|
package/gen/mail.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
2
|
+
// versions:
|
|
3
|
+
// protoc-gen-ts_proto v2.10.1
|
|
4
|
+
// protoc v7.35.0
|
|
5
|
+
// source: mail.proto
|
|
6
|
+
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
|
|
9
|
+
import { Observable } from "rxjs";
|
|
10
|
+
|
|
11
|
+
export const protobufPackage = "mail.v1";
|
|
12
|
+
|
|
13
|
+
export interface MailAck {
|
|
14
|
+
queued: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface SendRegRequest {
|
|
18
|
+
userId: string;
|
|
19
|
+
email: string;
|
|
20
|
+
username: string;
|
|
21
|
+
fullName: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface Send2faRequest {
|
|
25
|
+
email: string;
|
|
26
|
+
code: string;
|
|
27
|
+
username: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface SendPasswordResetRequest {
|
|
31
|
+
email: string;
|
|
32
|
+
code: string;
|
|
33
|
+
username: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface SendRegistrationConfirmRequest {
|
|
37
|
+
email: string;
|
|
38
|
+
code: string;
|
|
39
|
+
username: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const MAIL_V1_PACKAGE_NAME = "mail.v1";
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Legacy mail-service used @EventPattern (fire-and-forget). In the new gRPC
|
|
46
|
+
* stack each becomes a unary RPC that returns an Ack. Callers ignore the
|
|
47
|
+
* response if they don't care about delivery.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
export interface MailServiceClient {
|
|
51
|
+
sendReg(request: SendRegRequest): Observable<MailAck>;
|
|
52
|
+
|
|
53
|
+
send2Fa(request: Send2faRequest): Observable<MailAck>;
|
|
54
|
+
|
|
55
|
+
sendPasswordReset(request: SendPasswordResetRequest): Observable<MailAck>;
|
|
56
|
+
|
|
57
|
+
sendRegistrationConfirm(request: SendRegistrationConfirmRequest): Observable<MailAck>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Legacy mail-service used @EventPattern (fire-and-forget). In the new gRPC
|
|
62
|
+
* stack each becomes a unary RPC that returns an Ack. Callers ignore the
|
|
63
|
+
* response if they don't care about delivery.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
export interface MailServiceController {
|
|
67
|
+
sendReg(request: SendRegRequest): Promise<MailAck> | Observable<MailAck> | MailAck;
|
|
68
|
+
|
|
69
|
+
send2Fa(request: Send2faRequest): Promise<MailAck> | Observable<MailAck> | MailAck;
|
|
70
|
+
|
|
71
|
+
sendPasswordReset(request: SendPasswordResetRequest): Promise<MailAck> | Observable<MailAck> | MailAck;
|
|
72
|
+
|
|
73
|
+
sendRegistrationConfirm(request: SendRegistrationConfirmRequest): Promise<MailAck> | Observable<MailAck> | MailAck;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function MailServiceControllerMethods() {
|
|
77
|
+
return function (constructor: Function) {
|
|
78
|
+
const grpcMethods: string[] = ["sendReg", "send2Fa", "sendPasswordReset", "sendRegistrationConfirm"];
|
|
79
|
+
for (const method of grpcMethods) {
|
|
80
|
+
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
81
|
+
GrpcMethod("MailService", method)(constructor.prototype[method], method, descriptor);
|
|
82
|
+
}
|
|
83
|
+
const grpcStreamMethods: string[] = [];
|
|
84
|
+
for (const method of grpcStreamMethods) {
|
|
85
|
+
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
|
|
86
|
+
GrpcStreamMethod("MailService", method)(constructor.prototype[method], method, descriptor);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const MAIL_SERVICE_NAME = "MailService";
|