@aepstore-dev/contracts 1.51.0 → 1.53.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/gen/auth.d.ts CHANGED
@@ -71,7 +71,7 @@ export interface AuthUser {
71
71
  * Unified result for login/register/createCode/verifyCode/refresh. Which fields
72
72
  * are populated depends on the flow:
73
73
  * - fully authenticated → access_token + refresh_token + expires_in + user
74
- * - 2FA required / pending confirm → message + requires_2fa + two_factor_type + user (no tokens)
74
+ * - 2FA required / pending confirm → message + two_factor_required + two_factor_type + user (no tokens)
75
75
  * - totp_generate → secret + otpauth + qr (+ user)
76
76
  * - totp_activate → backup_codes (+ tokens/user)
77
77
  */
@@ -81,7 +81,15 @@ export interface AuthResult {
81
81
  expiresIn: number;
82
82
  user: AuthUser | undefined;
83
83
  message: string;
84
- requires2fa: boolean;
84
+ /**
85
+ * Renamed from `requires_2fa` in 1.52.0: the digit-after-underscore broke
86
+ * the grpc proto-loader's camelCase pass (`_2` isn't `_<letter>`), so the
87
+ * wire key stayed snake_case and never matched the camelCase handler output
88
+ * → always serialised false. `two_factor_required` camelCases cleanly to
89
+ * `twoFactorRequired` on every layer. Field number 6 is unchanged (wire-
90
+ * compatible).
91
+ */
92
+ twoFactorRequired: boolean;
85
93
  twoFactorType: TwoFactorType;
86
94
  /** TOTP setup extras */
87
95
  secret: string;
package/gen/auth.ts CHANGED
@@ -91,7 +91,7 @@ export interface AuthUser {
91
91
  * Unified result for login/register/createCode/verifyCode/refresh. Which fields
92
92
  * are populated depends on the flow:
93
93
  * - fully authenticated → access_token + refresh_token + expires_in + user
94
- * - 2FA required / pending confirm → message + requires_2fa + two_factor_type + user (no tokens)
94
+ * - 2FA required / pending confirm → message + two_factor_required + two_factor_type + user (no tokens)
95
95
  * - totp_generate → secret + otpauth + qr (+ user)
96
96
  * - totp_activate → backup_codes (+ tokens/user)
97
97
  */
@@ -101,7 +101,15 @@ export interface AuthResult {
101
101
  expiresIn: number;
102
102
  user: AuthUser | undefined;
103
103
  message: string;
104
- requires2fa: boolean;
104
+ /**
105
+ * Renamed from `requires_2fa` in 1.52.0: the digit-after-underscore broke
106
+ * the grpc proto-loader's camelCase pass (`_2` isn't `_<letter>`), so the
107
+ * wire key stayed snake_case and never matched the camelCase handler output
108
+ * → always serialised false. `two_factor_required` camelCases cleanly to
109
+ * `twoFactorRequired` on every layer. Field number 6 is unchanged (wire-
110
+ * compatible).
111
+ */
112
+ twoFactorRequired: boolean;
105
113
  twoFactorType: TwoFactorType;
106
114
  /** TOTP setup extras */
107
115
  secret: string;
package/gen/users.d.ts CHANGED
@@ -202,6 +202,28 @@ export interface UpdateUserRequest {
202
202
  export interface UserResponse {
203
203
  user: User | undefined;
204
204
  }
205
+ /**
206
+ * Lightweight uniqueness probe for signup / account-settings forms. Called
207
+ * often (per keystroke/blur) — backed by a single indexed query, no writes.
208
+ * Mirrors the exact-match uniqueness check in UpdateUser so availability never
209
+ * disagrees with the real collision at submit time.
210
+ */
211
+ export interface CheckAvailabilityRequest {
212
+ /** empty = skip this field */
213
+ username: string;
214
+ /** empty = skip this field */
215
+ email: string;
216
+ /** empty = none; set to current user so editing */
217
+ excludeUserId: string;
218
+ }
219
+ export interface CheckAvailabilityResponse {
220
+ /** false = username wasn't part of the query */
221
+ usernameChecked: boolean;
222
+ usernameAvailable: boolean;
223
+ /** false = email wasn't part of the query */
224
+ emailChecked: boolean;
225
+ emailAvailable: boolean;
226
+ }
205
227
  export interface UpdateUserRoleRequest {
206
228
  adminId: string;
207
229
  userId: string;
@@ -530,6 +552,7 @@ export interface UsersServiceClient {
530
552
  getPublicProfile(request: GetPublicProfileRequest): Observable<PublicProfileResponse>;
531
553
  updateProfile(request: UpdateProfileRequest): Observable<PublicProfileResponse>;
532
554
  updateUser(request: UpdateUserRequest): Observable<UserResponse>;
555
+ checkAvailability(request: CheckAvailabilityRequest): Observable<CheckAvailabilityResponse>;
533
556
  updateUserRole(request: UpdateUserRoleRequest): Observable<UserResponse>;
534
557
  getUsers(request: GetUsersRequest): Observable<GetUsersResponse>;
535
558
  getActiveDevices(request: GetActiveDevicesRequest): Observable<GetActiveDevicesResponse>;
@@ -595,6 +618,7 @@ export interface UsersServiceController {
595
618
  getPublicProfile(request: GetPublicProfileRequest): Promise<PublicProfileResponse> | Observable<PublicProfileResponse> | PublicProfileResponse;
596
619
  updateProfile(request: UpdateProfileRequest): Promise<PublicProfileResponse> | Observable<PublicProfileResponse> | PublicProfileResponse;
597
620
  updateUser(request: UpdateUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
621
+ checkAvailability(request: CheckAvailabilityRequest): Promise<CheckAvailabilityResponse> | Observable<CheckAvailabilityResponse> | CheckAvailabilityResponse;
598
622
  updateUserRole(request: UpdateUserRoleRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
599
623
  getUsers(request: GetUsersRequest): Promise<GetUsersResponse> | Observable<GetUsersResponse> | GetUsersResponse;
600
624
  getActiveDevices(request: GetActiveDevicesRequest): Promise<GetActiveDevicesResponse> | Observable<GetActiveDevicesResponse> | GetActiveDevicesResponse;
package/gen/users.js CHANGED
@@ -36,6 +36,7 @@ function UsersServiceControllerMethods() {
36
36
  "getPublicProfile",
37
37
  "updateProfile",
38
38
  "updateUser",
39
+ "checkAvailability",
39
40
  "updateUserRole",
40
41
  "getUsers",
41
42
  "getActiveDevices",
package/gen/users.ts CHANGED
@@ -235,6 +235,30 @@ export interface UserResponse {
235
235
  user: User | undefined;
236
236
  }
237
237
 
238
+ /**
239
+ * Lightweight uniqueness probe for signup / account-settings forms. Called
240
+ * often (per keystroke/blur) — backed by a single indexed query, no writes.
241
+ * Mirrors the exact-match uniqueness check in UpdateUser so availability never
242
+ * disagrees with the real collision at submit time.
243
+ */
244
+ export interface CheckAvailabilityRequest {
245
+ /** empty = skip this field */
246
+ username: string;
247
+ /** empty = skip this field */
248
+ email: string;
249
+ /** empty = none; set to current user so editing */
250
+ excludeUserId: string;
251
+ }
252
+
253
+ export interface CheckAvailabilityResponse {
254
+ /** false = username wasn't part of the query */
255
+ usernameChecked: boolean;
256
+ usernameAvailable: boolean;
257
+ /** false = email wasn't part of the query */
258
+ emailChecked: boolean;
259
+ emailAvailable: boolean;
260
+ }
261
+
238
262
  export interface UpdateUserRoleRequest {
239
263
  adminId: string;
240
264
  userId: string;
@@ -618,6 +642,8 @@ export interface UsersServiceClient {
618
642
 
619
643
  updateUser(request: UpdateUserRequest): Observable<UserResponse>;
620
644
 
645
+ checkAvailability(request: CheckAvailabilityRequest): Observable<CheckAvailabilityResponse>;
646
+
621
647
  updateUserRole(request: UpdateUserRoleRequest): Observable<UserResponse>;
622
648
 
623
649
  getUsers(request: GetUsersRequest): Observable<GetUsersResponse>;
@@ -738,6 +764,10 @@ export interface UsersServiceController {
738
764
 
739
765
  updateUser(request: UpdateUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
740
766
 
767
+ checkAvailability(
768
+ request: CheckAvailabilityRequest,
769
+ ): Promise<CheckAvailabilityResponse> | Observable<CheckAvailabilityResponse> | CheckAvailabilityResponse;
770
+
741
771
  updateUserRole(request: UpdateUserRoleRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
742
772
 
743
773
  getUsers(request: GetUsersRequest): Promise<GetUsersResponse> | Observable<GetUsersResponse> | GetUsersResponse;
@@ -903,6 +933,7 @@ export function UsersServiceControllerMethods() {
903
933
  "getPublicProfile",
904
934
  "updateProfile",
905
935
  "updateUser",
936
+ "checkAvailability",
906
937
  "updateUserRole",
907
938
  "getUsers",
908
939
  "getActiveDevices",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aepstore-dev/contracts",
3
- "version": "1.51.0",
3
+ "version": "1.53.0",
4
4
  "description": "Protobuf definitions for aepstore microservices",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/proto/auth.proto CHANGED
@@ -117,7 +117,7 @@ message AuthUser {
117
117
  // Unified result for login/register/createCode/verifyCode/refresh. Which fields
118
118
  // are populated depends on the flow:
119
119
  // - fully authenticated → access_token + refresh_token + expires_in + user
120
- // - 2FA required / pending confirm → message + requires_2fa + two_factor_type + user (no tokens)
120
+ // - 2FA required / pending confirm → message + two_factor_required + two_factor_type + user (no tokens)
121
121
  // - totp_generate → secret + otpauth + qr (+ user)
122
122
  // - totp_activate → backup_codes (+ tokens/user)
123
123
  message AuthResult {
@@ -127,7 +127,13 @@ message AuthResult {
127
127
  AuthUser user = 4;
128
128
 
129
129
  string message = 5;
130
- bool requires_2fa = 6;
130
+ // Renamed from `requires_2fa` in 1.52.0: the digit-after-underscore broke
131
+ // the grpc proto-loader's camelCase pass (`_2` isn't `_<letter>`), so the
132
+ // wire key stayed snake_case and never matched the camelCase handler output
133
+ // → always serialised false. `two_factor_required` camelCases cleanly to
134
+ // `twoFactorRequired` on every layer. Field number 6 is unchanged (wire-
135
+ // compatible).
136
+ bool two_factor_required = 6;
131
137
  TwoFactorType two_factor_type = 7;
132
138
 
133
139
  // TOTP setup extras
package/proto/users.proto CHANGED
@@ -6,6 +6,7 @@ service UsersService {
6
6
  rpc GetPublicProfile(GetPublicProfileRequest) returns (PublicProfileResponse);
7
7
  rpc UpdateProfile(UpdateProfileRequest) returns (PublicProfileResponse);
8
8
  rpc UpdateUser(UpdateUserRequest) returns (UserResponse);
9
+ rpc CheckAvailability(CheckAvailabilityRequest) returns (CheckAvailabilityResponse);
9
10
  rpc UpdateUserRole(UpdateUserRoleRequest) returns (UserResponse);
10
11
  rpc GetUsers(GetUsersRequest) returns (GetUsersResponse);
11
12
  rpc GetActiveDevices(GetActiveDevicesRequest) returns (GetActiveDevicesResponse);
@@ -264,6 +265,24 @@ message UserResponse {
264
265
  User user = 1;
265
266
  }
266
267
 
268
+ // Lightweight uniqueness probe for signup / account-settings forms. Called
269
+ // often (per keystroke/blur) — backed by a single indexed query, no writes.
270
+ // Mirrors the exact-match uniqueness check in UpdateUser so availability never
271
+ // disagrees with the real collision at submit time.
272
+ message CheckAvailabilityRequest {
273
+ string username = 1; // empty = skip this field
274
+ string email = 2; // empty = skip this field
275
+ string exclude_user_id = 3; // empty = none; set to current user so editing
276
+ // your OWN account doesn't report "taken"
277
+ }
278
+
279
+ message CheckAvailabilityResponse {
280
+ bool username_checked = 1; // false = username wasn't part of the query
281
+ bool username_available = 2;
282
+ bool email_checked = 3; // false = email wasn't part of the query
283
+ bool email_available = 4;
284
+ }
285
+
267
286
  // =================================================================
268
287
  // UpdateUserRole (admin)
269
288
  // =================================================================