@yolo-croket-dev/amqp-access 0.7.372 → 0.7.374

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/order-server/dto/purchasedinfos/command/auto-change-agreed-seller-waiting-orders-to-checking-stock.dto.d.ts +6 -0
  3. package/order-server/dto/purchasedinfos/command/auto-change-agreed-seller-waiting-orders-to-checking-stock.dto.js +10 -0
  4. package/package.json +2 -2
  5. package/payment-service/dto/ad-center-settle/query/get-ad-center-settles-for-google-sheet.dto.d.ts +1 -1
  6. package/store-item-server/dto/store-item/query/get-store-items-for-kakao-catalog.dto.d.ts +20 -0
  7. package/store-item-server/dto/store-item/query/get-store-items-for-kakao-catalog.dto.js +57 -0
  8. package/user-service/amqp.user-service.service.d.ts +19 -2
  9. package/user-service/amqp.user-service.service.js +24 -0
  10. package/user-service/dto/user/command/confirm-email-signup-verification.dto.d.ts +18 -0
  11. package/user-service/dto/user/command/confirm-email-signup-verification.dto.js +39 -0
  12. package/user-service/dto/user/command/create-email-signup.dto.d.ts +28 -0
  13. package/user-service/dto/user/command/create-email-signup.dto.js +77 -0
  14. package/user-service/dto/user/command/email-signup.dto.d.ts +41 -0
  15. package/user-service/dto/user/command/email-signup.dto.js +106 -0
  16. package/user-service/dto/user/command/index.d.ts +4 -0
  17. package/user-service/dto/user/command/index.js +4 -0
  18. package/user-service/dto/user/command/request-email-signup-verification.dto.d.ts +19 -0
  19. package/user-service/dto/user/command/request-email-signup-verification.dto.js +40 -0
  20. package/user-service/dto/user/command/sign-in-guest-user.dto.d.ts +8 -3
  21. package/user-service/dto/user/command/sign-in-guest-user.dto.js +7 -8
  22. package/user-service/dto/user/command/sign-in-verified-guest-user.dto.d.ts +13 -0
  23. package/user-service/dto/user/command/sign-in-verified-guest-user.dto.js +31 -0
  24. package/user-service/services/amqp.user-entity.service.d.ts +4 -1
  25. package/user-service/services/amqp.user-entity.service.js +6 -1
  26. package/test-fixtures/exchange-rate-contract/bad-currency.json +0 -1
  27. package/test-fixtures/exchange-rate-contract/bad-date.json +0 -1
  28. package/test-fixtures/exchange-rate-contract/bad-rate.json +0 -7
  29. package/test-fixtures/exchange-rate-contract/unsupported-extra-key.json +0 -1
  30. package/test-fixtures/exchange-rate-contract/unsupported-only.json +0 -1
  31. package/test-fixtures/exchange-rate-contract/valid-cad.json +0 -1
  32. package/test-fixtures/exchange-rate-contract/valid-jpy.json +0 -1
  33. package/test-fixtures/exchange-rate-contract/valid-usd.json +0 -1
  34. package/tests/rmq-provider.test.cjs +0 -52
  35. package/user-service/services/amqp.signup-certification.service.d.ts +0 -14
  36. package/user-service/services/amqp.signup-certification.service.js +0 -38
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # Changelog
2
+
3
+ ## 0.7.373
4
+
5
+ - 기존 `SignInGuestUserPayload.phoneNumber`와 `SignInGuestUserResult`의 `access_token`, `refresh_token`, `userId` 계약을 복원한다. 이를 상속하는 비회원 가입 계약도 복원한다.
6
+ - 기존 `signInGuestUser`는 `user.sign-in.guest-user` 경로와 호출자가 전달한 timeout을 유지한다.
7
+ - OTP 로그인은 `SignInVerifiedGuestUserPayload` / `SignInVerifiedGuestUserResult`, `signInVerifiedGuestUser`와 `user.sign-in.verified-guest-user` 경로로 분리한다. OTP 형식 검증과 20초 RPC timeout은 유지한다.
8
+ - 기존 OTP 발송 DTO와 client 경로는 유지한다. 계약 회귀 테스트와 타입 검증을 추가하고 테스트 파일은 npm 산출물에서 제외한다.
9
+ - 기존 최신 버전의 core 1.10.2, 유저 CI 본인확인, RMQ 진단 등 다른 계약은 유지한다. monorepo 루트 버전은 변경하지 않는다.
10
+
11
+ ### 소비 프로젝트 적용
12
+
13
+ 기존 전화번호 로그인 호출은 기존 DTO와 메서드를 그대로 사용할 수 있다. 이미 OTP를 기존 `SignInGuestUserPayload` / `signInGuestUser` 이름으로 호출하는 서버는 새 OTP DTO와 메서드로 옮기고 새 AMQP handler를 구현한 뒤 이 버전을 적용해야 한다. 서버의 새 handler 없이 OTP client를 호출하면 라우트가 존재하지 않아 실패하며 기존 로그인으로 재시도하지 않는다.
14
+
15
+ 본섭의 기존 로그인 검증 오류 복구는 Gateway의 패키지 업데이트로 진행한다. Gateway가 직접 사용하는 core와 이 패키지의 core 타입이 충돌하는 경우 버전을 함께 맞춰 검증해야 한다.
16
+
17
+ 전화번호만 받는 기존 계약은 전화번호 소유를 검증하지 않는다. OTP 전환, 기존 토큰 차단과 한시적 호환 기간의 종료는 소비 서버에서 별도로 구현해야 한다. 이 패키지 발행은 서버 배포나 인증 우회 문제 전체의 해결을 의미하지 않는다.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @author sj
3
+ * @description 사전 협의 셀러 주문의 재고 확인중 자동 전환 요청이다.
4
+ */
5
+ export declare class AutoChangeAgreedSellerWaitingOrdersToCheckingStockPayload {
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutoChangeAgreedSellerWaitingOrdersToCheckingStockPayload = void 0;
4
+ /**
5
+ * @author sj
6
+ * @description 사전 협의 셀러 주문의 재고 확인중 자동 전환 요청이다.
7
+ */
8
+ class AutoChangeAgreedSellerWaitingOrdersToCheckingStockPayload {
9
+ }
10
+ exports.AutoChangeAgreedSellerWaitingOrdersToCheckingStockPayload = AutoChangeAgreedSellerWaitingOrdersToCheckingStockPayload;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/amqp-access",
3
- "version": "0.7.372",
3
+ "version": "0.7.374",
4
4
  "main": "index.js",
5
5
  "author": "Yolo Co., Ltd.",
6
6
  "description": "크로켓 amqp-access npm",
@@ -29,4 +29,4 @@
29
29
  "class-validator": "^0.13.2",
30
30
  "dotenv": "^16.3.1"
31
31
  }
32
- }
32
+ }
@@ -1,6 +1,6 @@
1
1
  import { AdCenterSettle } from '@yolo-croket-dev/entity/src/ad-center-settle/ad-center-settle.schema';
2
2
  import { BusinessInfo } from '@yolo-croket-dev/entity/src/store';
3
- declare const AdCenterSettleForGoogleSheet_base: import("@nestjs/common").Type<Pick<AdCenterSettle, "_id" | "sellerId" | "couponInfo" | "publicId" | "pastStoreInfo" | "expectedSettleDateString" | "adType" | "adCenterStartDateString" | "adCenterEndDateString" | "actualSettleDateString" | "PInfoId" | "transactionInfo" | "subtractionSettleAmountInfo" | "bizMemo" | "financeMemo" | "settlementManagerInfo" | "googleSheetInfo">>;
3
+ declare const AdCenterSettleForGoogleSheet_base: import("@nestjs/common/interfaces").Type<Pick<AdCenterSettle, "_id" | "sellerId" | "couponInfo" | "publicId" | "pastStoreInfo" | "expectedSettleDateString" | "adType" | "adCenterStartDateString" | "adCenterEndDateString" | "actualSettleDateString" | "PInfoId" | "transactionInfo" | "subtractionSettleAmountInfo" | "bizMemo" | "financeMemo" | "settlementManagerInfo" | "googleSheetInfo">>;
4
4
  /** 구글 시트용 광고센터정산 데이터 */
5
5
  export declare class AdCenterSettleForGoogleSheet extends AdCenterSettleForGoogleSheet_base {
6
6
  storeInfo: {
@@ -0,0 +1,20 @@
1
+ import { StoreItemEntity as StoreItem } from '@yolo-croket-dev/entity-v2/store-item';
2
+ export declare enum GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum {
3
+ PHRASE = "PHRASE"
4
+ }
5
+ export declare class GetStoreItemsForKakaoCatalogPayload {
6
+ mainCategories?: string[];
7
+ excludedSubCategories?: string[];
8
+ itemNameKeywords?: string[];
9
+ itemNameKeywordMatchType?: GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum;
10
+ limit: number;
11
+ paginationToken?: string;
12
+ }
13
+ export type GetStoreItemsForKakaoCatalogItem = Pick<StoreItem, '_id' | 'itemName' | 'contents' | 'itemPriceForBuyer' | 'itemPrice' | 'itemImg' | 'mainCategory' | 'subCategory' | 'brandInfo' | 'mainSku' | 'nation' | 'isSelling' | 'isDelete' | 'remainCount' | 'itemType' | 'isSecret'> & {
14
+ paginationToken?: string;
15
+ };
16
+ export declare class GetStoreItemsForKakaoCatalogResult {
17
+ storeItems: GetStoreItemsForKakaoCatalogItem[];
18
+ lastPaginationToken?: string;
19
+ maxPage?: number;
20
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GetStoreItemsForKakaoCatalogResult = exports.GetStoreItemsForKakaoCatalogPayload = exports.GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ var GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum;
16
+ (function (GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum) {
17
+ GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum["PHRASE"] = "PHRASE";
18
+ })(GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum || (exports.GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum = GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum = {}));
19
+ class GetStoreItemsForKakaoCatalogPayload {
20
+ }
21
+ exports.GetStoreItemsForKakaoCatalogPayload = GetStoreItemsForKakaoCatalogPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsArray)(),
24
+ (0, class_validator_1.IsString)({ each: true }),
25
+ (0, class_validator_1.IsOptional)(),
26
+ __metadata("design:type", Array)
27
+ ], GetStoreItemsForKakaoCatalogPayload.prototype, "mainCategories", void 0);
28
+ __decorate([
29
+ (0, class_validator_1.IsArray)(),
30
+ (0, class_validator_1.IsString)({ each: true }),
31
+ (0, class_validator_1.IsOptional)(),
32
+ __metadata("design:type", Array)
33
+ ], GetStoreItemsForKakaoCatalogPayload.prototype, "excludedSubCategories", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsArray)(),
36
+ (0, class_validator_1.IsString)({ each: true }),
37
+ (0, class_validator_1.IsOptional)(),
38
+ __metadata("design:type", Array)
39
+ ], GetStoreItemsForKakaoCatalogPayload.prototype, "itemNameKeywords", void 0);
40
+ __decorate([
41
+ (0, class_validator_1.IsEnum)(GetStoreItemsForKakaoCatalogKeywordMatchTypeEnum),
42
+ (0, class_validator_1.IsOptional)(),
43
+ __metadata("design:type", String)
44
+ ], GetStoreItemsForKakaoCatalogPayload.prototype, "itemNameKeywordMatchType", void 0);
45
+ __decorate([
46
+ (0, class_validator_1.IsNumber)(),
47
+ (0, class_transformer_1.Type)(() => Number),
48
+ __metadata("design:type", Number)
49
+ ], GetStoreItemsForKakaoCatalogPayload.prototype, "limit", void 0);
50
+ __decorate([
51
+ (0, class_validator_1.IsString)(),
52
+ (0, class_validator_1.IsOptional)(),
53
+ __metadata("design:type", String)
54
+ ], GetStoreItemsForKakaoCatalogPayload.prototype, "paginationToken", void 0);
55
+ class GetStoreItemsForKakaoCatalogResult {
56
+ }
57
+ exports.GetStoreItemsForKakaoCatalogResult = GetStoreItemsForKakaoCatalogResult;
@@ -6,8 +6,7 @@ import { GetUsernameByIdPayload, GetUsersForAppPushPayload, GetUsersForAppPushRe
6
6
  import { Membership } from '@yolo-croket-dev/entity';
7
7
  import { UserPhoneDecodeByPhoneNumberPayloadDto, UserPhoneDecodeByPhoneNumberResultDto } from '@yolo-croket-dev/dto/user-service';
8
8
  import { NotificationUser, UpdateUserByIdPayload } from './amqp.user-service.types';
9
- import { GetUserInfoByIdPayload, GetUserInfoByIdResult, GetUsersForAdminPayload, GetUsersForAdminResult, GetUsersPayload, GetUsersResult, GetSellerEmailPayload, GetSellerEmailResult, ReversalCreditByPInfoIdPayload } from './dto/user';
10
- import { SendNotOpenAppNotificationResult } from './dto/user/command';
9
+ import { GetUserInfoByIdPayload, GetUserInfoByIdResult, GetUsersForAdminPayload, GetUsersForAdminResult, GetUsersPayload, GetUsersResult, GetSellerEmailPayload, GetSellerEmailResult, ReversalCreditByPInfoIdPayload, SendNotOpenAppNotificationResult, ConfirmEmailSignupVerificationPayload, ConfirmEmailSignupVerificationResult, CreateEmailSignupPayload, CreateEmailSignupResult, RequestEmailSignupVerificationPayload, RequestEmailSignupVerificationResult } from './dto/user';
11
10
  export declare class AmqpUserService {
12
11
  private readonly client;
13
12
  private readonly amqpManager;
@@ -33,4 +32,22 @@ export declare class AmqpUserService {
33
32
  getBlockedUserIds(param: AbstractParam): Promise<string[]>;
34
33
  reversalCreditByPInfoId(payload: ReversalCreditByPInfoIdPayload, param: AbstractParam): Promise<void>;
35
34
  sendNotOpenAppNotification(param: AbstractParam): Promise<SendNotOpenAppNotificationResult>;
35
+ /**
36
+ * @author sj
37
+ * @description 이메일 전용 가입 인증 메일 발송
38
+ * @process 가입 전 인증 상태는 user-service가 소유하고 gateway는 이 RPC 결과만 전달한다.
39
+ * */
40
+ requestEmailSignupVerification(payload: RequestEmailSignupVerificationPayload, param: AbstractParam): Promise<RequestEmailSignupVerificationResult>;
41
+ /**
42
+ * @author sj
43
+ * @description 이메일 전용 가입 인증번호 확인
44
+ * @process 성공 시 User 생성 전에만 사용하는 일회성 token을 반환한다.
45
+ * */
46
+ confirmEmailSignupVerification(payload: ConfirmEmailSignupVerificationPayload, param: AbstractParam): Promise<ConfirmEmailSignupVerificationResult>;
47
+ /**
48
+ * @author sj
49
+ * @description 이메일 전용 회원가입
50
+ * @process 인증 token 소비와 User 생성을 user-service 단일 경계에서 처리한다.
51
+ * */
52
+ createEmailSignup(payload: CreateEmailSignupPayload, param: AbstractParam): Promise<CreateEmailSignupResult>;
36
53
  }
@@ -84,6 +84,30 @@ let AmqpUserService = class AmqpUserService {
84
84
  async sendNotOpenAppNotification(param) {
85
85
  return this.amqpManager.call('미접속 유저 NotOpenApp 알림 발송', 'user.send-notification.not-open-app', {}, param, { isErrorThrowing: true });
86
86
  }
87
+ /**
88
+ * @author sj
89
+ * @description 이메일 전용 가입 인증 메일 발송
90
+ * @process 가입 전 인증 상태는 user-service가 소유하고 gateway는 이 RPC 결과만 전달한다.
91
+ * */
92
+ async requestEmailSignupVerification(payload, param) {
93
+ return this.amqpManager.call('이메일 전용 가입 인증 메일 발송', 'user.email-signup.request-verification', payload, param, { isErrorThrowing: true });
94
+ }
95
+ /**
96
+ * @author sj
97
+ * @description 이메일 전용 가입 인증번호 확인
98
+ * @process 성공 시 User 생성 전에만 사용하는 일회성 token을 반환한다.
99
+ * */
100
+ async confirmEmailSignupVerification(payload, param) {
101
+ return this.amqpManager.call('이메일 전용 가입 인증번호 확인', 'user.email-signup.confirm-verification', payload, param, { isErrorThrowing: true });
102
+ }
103
+ /**
104
+ * @author sj
105
+ * @description 이메일 전용 회원가입
106
+ * @process 인증 token 소비와 User 생성을 user-service 단일 경계에서 처리한다.
107
+ * */
108
+ async createEmailSignup(payload, param) {
109
+ return this.amqpManager.call('이메일 전용 회원가입', 'user.email-signup.create', payload, param, { isErrorThrowing: true });
110
+ }
87
111
  };
88
112
  exports.AmqpUserService = AmqpUserService;
89
113
  exports.AmqpUserService = AmqpUserService = __decorate([
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @author sj
3
+ * @description 이메일 가입 인증번호 검증 입력
4
+ * @process 인증 세션 식별자와 6자리 코드만 전달하며 이메일 원문은 다시 받지 않는다.
5
+ * */
6
+ export declare class ConfirmEmailSignupVerificationPayload {
7
+ verificationId: string;
8
+ code: string;
9
+ }
10
+ /**
11
+ * @author sj
12
+ * @description 이메일 가입 인증번호 검증 결과
13
+ * @process 가입 API에서 한 번만 사용할 불투명 verificationToken을 반환한다.
14
+ * */
15
+ export declare class ConfirmEmailSignupVerificationResult {
16
+ verificationToken: string;
17
+ expiresAt: string;
18
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ConfirmEmailSignupVerificationResult = exports.ConfirmEmailSignupVerificationPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author sj
16
+ * @description 이메일 가입 인증번호 검증 입력
17
+ * @process 인증 세션 식별자와 6자리 코드만 전달하며 이메일 원문은 다시 받지 않는다.
18
+ * */
19
+ class ConfirmEmailSignupVerificationPayload {
20
+ }
21
+ exports.ConfirmEmailSignupVerificationPayload = ConfirmEmailSignupVerificationPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.Matches)(/^[A-Za-z0-9_-]{21}$/),
25
+ __metadata("design:type", String)
26
+ ], ConfirmEmailSignupVerificationPayload.prototype, "verificationId", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.Matches)(/^\d{6}$/),
30
+ __metadata("design:type", String)
31
+ ], ConfirmEmailSignupVerificationPayload.prototype, "code", void 0);
32
+ /**
33
+ * @author sj
34
+ * @description 이메일 가입 인증번호 검증 결과
35
+ * @process 가입 API에서 한 번만 사용할 불투명 verificationToken을 반환한다.
36
+ * */
37
+ class ConfirmEmailSignupVerificationResult {
38
+ }
39
+ exports.ConfirmEmailSignupVerificationResult = ConfirmEmailSignupVerificationResult;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @author sj
3
+ * @description 전화번호 없는 이메일 전용 회원가입 입력
4
+ * @process 인증 완료 token과 기존 가입 동의 필드로 User를 생성한다.
5
+ * */
6
+ export declare class CreateEmailSignupPayload {
7
+ email: string;
8
+ password: string;
9
+ username: string;
10
+ verificationToken: string;
11
+ event_email?: boolean;
12
+ event_sms?: boolean;
13
+ event_appPush?: boolean;
14
+ from?: string;
15
+ afterAgreementAD?: boolean;
16
+ }
17
+ /**
18
+ * @author sj
19
+ * @description 이메일 전용 회원가입 결과
20
+ * @process 생성 User와 즉시 로그인에 필요한 JWT만 반환한다.
21
+ * */
22
+ export declare class CreateEmailSignupResult {
23
+ result: true;
24
+ userId: string;
25
+ userid: string;
26
+ access_token: string;
27
+ refresh_token: string;
28
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateEmailSignupResult = exports.CreateEmailSignupPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author sj
16
+ * @description 전화번호 없는 이메일 전용 회원가입 입력
17
+ * @process 인증 완료 token과 기존 가입 동의 필드로 User를 생성한다.
18
+ * */
19
+ class CreateEmailSignupPayload {
20
+ }
21
+ exports.CreateEmailSignupPayload = CreateEmailSignupPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsEmail)(),
24
+ (0, class_validator_1.MaxLength)(320),
25
+ __metadata("design:type", String)
26
+ ], CreateEmailSignupPayload.prototype, "email", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.MinLength)(8),
30
+ (0, class_validator_1.MaxLength)(20),
31
+ __metadata("design:type", String)
32
+ ], CreateEmailSignupPayload.prototype, "password", void 0);
33
+ __decorate([
34
+ (0, class_validator_1.IsString)(),
35
+ (0, class_validator_1.MinLength)(1),
36
+ (0, class_validator_1.MaxLength)(100),
37
+ __metadata("design:type", String)
38
+ ], CreateEmailSignupPayload.prototype, "username", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsString)(),
41
+ (0, class_validator_1.Matches)(/^[A-Za-z0-9_-]{43}$/),
42
+ __metadata("design:type", String)
43
+ ], CreateEmailSignupPayload.prototype, "verificationToken", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsBoolean)(),
47
+ __metadata("design:type", Boolean)
48
+ ], CreateEmailSignupPayload.prototype, "event_email", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsBoolean)(),
52
+ __metadata("design:type", Boolean)
53
+ ], CreateEmailSignupPayload.prototype, "event_sms", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsOptional)(),
56
+ (0, class_validator_1.IsBoolean)(),
57
+ __metadata("design:type", Boolean)
58
+ ], CreateEmailSignupPayload.prototype, "event_appPush", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.IsOptional)(),
61
+ (0, class_validator_1.IsString)(),
62
+ (0, class_validator_1.MaxLength)(100),
63
+ __metadata("design:type", String)
64
+ ], CreateEmailSignupPayload.prototype, "from", void 0);
65
+ __decorate([
66
+ (0, class_validator_1.IsOptional)(),
67
+ (0, class_validator_1.IsBoolean)(),
68
+ __metadata("design:type", Boolean)
69
+ ], CreateEmailSignupPayload.prototype, "afterAgreementAD", void 0);
70
+ /**
71
+ * @author sj
72
+ * @description 이메일 전용 회원가입 결과
73
+ * @process 생성 User와 즉시 로그인에 필요한 JWT만 반환한다.
74
+ * */
75
+ class CreateEmailSignupResult {
76
+ }
77
+ exports.CreateEmailSignupResult = CreateEmailSignupResult;
@@ -0,0 +1,41 @@
1
+ /** @author sj @description 이메일 전용 가입 인증 메일 발송 입력 @process user-service가 가입 전 Redis 인증 세션을 만들고 인증 메일 발송을 요청한다. */
2
+ export declare class RequestEmailSignupVerificationPayload {
3
+ email: string;
4
+ locale?: string;
5
+ }
6
+ /** @author sj @description 이메일 전용 가입 인증 메일 발송 결과 @process 클라이언트는 verificationId만 인증번호 확인 요청에 사용한다. */
7
+ export declare class RequestEmailSignupVerificationResult {
8
+ verificationId: string;
9
+ expiresAt: string;
10
+ retryAfterSeconds: number;
11
+ }
12
+ /** @author sj @description 이메일 가입 인증번호 검증 입력 @process 인증 세션 식별자와 6자리 코드만 전달하며 이메일 원문은 다시 받지 않는다. */
13
+ export declare class ConfirmEmailSignupVerificationPayload {
14
+ verificationId: string;
15
+ code: string;
16
+ }
17
+ /** @author sj @description 이메일 가입 인증번호 검증 결과 @process 가입 API에서 한 번만 사용할 불투명 verificationToken을 반환한다. */
18
+ export declare class ConfirmEmailSignupVerificationResult {
19
+ verificationToken: string;
20
+ expiresAt: string;
21
+ }
22
+ /** @author sj @description 전화번호 없는 이메일 전용 회원가입 입력 @process 인증 완료 token과 기존 가입 동의 필드로 User를 생성한다. */
23
+ export declare class CreateEmailSignupPayload {
24
+ email: string;
25
+ password: string;
26
+ username: string;
27
+ verificationToken: string;
28
+ event_email?: boolean;
29
+ event_sms?: boolean;
30
+ event_appPush?: boolean;
31
+ from?: string;
32
+ afterAgreementAD?: boolean;
33
+ }
34
+ /** @author sj @description 이메일 전용 회원가입 결과 @process 생성 User와 즉시 로그인에 필요한 JWT만 반환한다. */
35
+ export declare class CreateEmailSignupResult {
36
+ result: true;
37
+ userId: string;
38
+ userid: string;
39
+ access_token: string;
40
+ refresh_token: string;
41
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateEmailSignupResult = exports.CreateEmailSignupPayload = exports.ConfirmEmailSignupVerificationResult = exports.ConfirmEmailSignupVerificationPayload = exports.RequestEmailSignupVerificationResult = exports.RequestEmailSignupVerificationPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /** @author sj @description 이메일 전용 가입 인증 메일 발송 입력 @process user-service가 가입 전 Redis 인증 세션을 만들고 인증 메일 발송을 요청한다. */
15
+ class RequestEmailSignupVerificationPayload {
16
+ }
17
+ exports.RequestEmailSignupVerificationPayload = RequestEmailSignupVerificationPayload;
18
+ __decorate([
19
+ (0, class_validator_1.IsEmail)(),
20
+ (0, class_validator_1.MaxLength)(320),
21
+ __metadata("design:type", String)
22
+ ], RequestEmailSignupVerificationPayload.prototype, "email", void 0);
23
+ __decorate([
24
+ (0, class_validator_1.IsOptional)(),
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.MaxLength)(20),
27
+ __metadata("design:type", String)
28
+ ], RequestEmailSignupVerificationPayload.prototype, "locale", void 0);
29
+ /** @author sj @description 이메일 전용 가입 인증 메일 발송 결과 @process 클라이언트는 verificationId만 인증번호 확인 요청에 사용한다. */
30
+ class RequestEmailSignupVerificationResult {
31
+ }
32
+ exports.RequestEmailSignupVerificationResult = RequestEmailSignupVerificationResult;
33
+ /** @author sj @description 이메일 가입 인증번호 검증 입력 @process 인증 세션 식별자와 6자리 코드만 전달하며 이메일 원문은 다시 받지 않는다. */
34
+ class ConfirmEmailSignupVerificationPayload {
35
+ }
36
+ exports.ConfirmEmailSignupVerificationPayload = ConfirmEmailSignupVerificationPayload;
37
+ __decorate([
38
+ (0, class_validator_1.IsString)(),
39
+ (0, class_validator_1.Matches)(/^[A-Za-z0-9_-]{21}$/),
40
+ __metadata("design:type", String)
41
+ ], ConfirmEmailSignupVerificationPayload.prototype, "verificationId", void 0);
42
+ __decorate([
43
+ (0, class_validator_1.IsString)(),
44
+ (0, class_validator_1.Matches)(/^\d{6}$/),
45
+ __metadata("design:type", String)
46
+ ], ConfirmEmailSignupVerificationPayload.prototype, "code", void 0);
47
+ /** @author sj @description 이메일 가입 인증번호 검증 결과 @process 가입 API에서 한 번만 사용할 불투명 verificationToken을 반환한다. */
48
+ class ConfirmEmailSignupVerificationResult {
49
+ }
50
+ exports.ConfirmEmailSignupVerificationResult = ConfirmEmailSignupVerificationResult;
51
+ /** @author sj @description 전화번호 없는 이메일 전용 회원가입 입력 @process 인증 완료 token과 기존 가입 동의 필드로 User를 생성한다. */
52
+ class CreateEmailSignupPayload {
53
+ }
54
+ exports.CreateEmailSignupPayload = CreateEmailSignupPayload;
55
+ __decorate([
56
+ (0, class_validator_1.IsEmail)(),
57
+ (0, class_validator_1.MaxLength)(320),
58
+ __metadata("design:type", String)
59
+ ], CreateEmailSignupPayload.prototype, "email", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsString)(),
62
+ (0, class_validator_1.MinLength)(8),
63
+ (0, class_validator_1.MaxLength)(20),
64
+ __metadata("design:type", String)
65
+ ], CreateEmailSignupPayload.prototype, "password", void 0);
66
+ __decorate([
67
+ (0, class_validator_1.IsString)(),
68
+ (0, class_validator_1.MinLength)(1),
69
+ (0, class_validator_1.MaxLength)(100),
70
+ __metadata("design:type", String)
71
+ ], CreateEmailSignupPayload.prototype, "username", void 0);
72
+ __decorate([
73
+ (0, class_validator_1.IsString)(),
74
+ (0, class_validator_1.Matches)(/^[A-Za-z0-9_-]{43}$/),
75
+ __metadata("design:type", String)
76
+ ], CreateEmailSignupPayload.prototype, "verificationToken", void 0);
77
+ __decorate([
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, class_validator_1.IsBoolean)(),
80
+ __metadata("design:type", Boolean)
81
+ ], CreateEmailSignupPayload.prototype, "event_email", void 0);
82
+ __decorate([
83
+ (0, class_validator_1.IsOptional)(),
84
+ (0, class_validator_1.IsBoolean)(),
85
+ __metadata("design:type", Boolean)
86
+ ], CreateEmailSignupPayload.prototype, "event_sms", void 0);
87
+ __decorate([
88
+ (0, class_validator_1.IsOptional)(),
89
+ (0, class_validator_1.IsBoolean)(),
90
+ __metadata("design:type", Boolean)
91
+ ], CreateEmailSignupPayload.prototype, "event_appPush", void 0);
92
+ __decorate([
93
+ (0, class_validator_1.IsOptional)(),
94
+ (0, class_validator_1.IsString)(),
95
+ (0, class_validator_1.MaxLength)(100),
96
+ __metadata("design:type", String)
97
+ ], CreateEmailSignupPayload.prototype, "from", void 0);
98
+ __decorate([
99
+ (0, class_validator_1.IsOptional)(),
100
+ (0, class_validator_1.IsBoolean)(),
101
+ __metadata("design:type", Boolean)
102
+ ], CreateEmailSignupPayload.prototype, "afterAgreementAD", void 0);
103
+ /** @author sj @description 이메일 전용 회원가입 결과 @process 생성 User와 즉시 로그인에 필요한 JWT만 반환한다. */
104
+ class CreateEmailSignupResult {
105
+ }
106
+ exports.CreateEmailSignupResult = CreateEmailSignupResult;
@@ -5,8 +5,12 @@ export * from './patch-gender-and-birthday.dto';
5
5
  export * from './issue-inflow-signup-reward.dto';
6
6
  export * from './verification-phone-for-sns-user.dto';
7
7
  export * from './sign-in-guest-user.dto';
8
+ export * from './sign-in-verified-guest-user.dto';
8
9
  export * from './sign-up-guest-user.dto';
9
10
  export * from './update-guest-username.dto';
10
11
  export * from './reversal-credit-by-p-info-id.dto';
11
12
  export * from './app-switching-reward.dto';
12
13
  export * from './send-not-open-app-notification.dto';
14
+ export * from './request-email-signup-verification.dto';
15
+ export * from './confirm-email-signup-verification.dto';
16
+ export * from './create-email-signup.dto';
@@ -21,8 +21,12 @@ __exportStar(require("./patch-gender-and-birthday.dto"), exports);
21
21
  __exportStar(require("./issue-inflow-signup-reward.dto"), exports);
22
22
  __exportStar(require("./verification-phone-for-sns-user.dto"), exports);
23
23
  __exportStar(require("./sign-in-guest-user.dto"), exports);
24
+ __exportStar(require("./sign-in-verified-guest-user.dto"), exports);
24
25
  __exportStar(require("./sign-up-guest-user.dto"), exports);
25
26
  __exportStar(require("./update-guest-username.dto"), exports);
26
27
  __exportStar(require("./reversal-credit-by-p-info-id.dto"), exports);
27
28
  __exportStar(require("./app-switching-reward.dto"), exports);
28
29
  __exportStar(require("./send-not-open-app-notification.dto"), exports);
30
+ __exportStar(require("./request-email-signup-verification.dto"), exports);
31
+ __exportStar(require("./confirm-email-signup-verification.dto"), exports);
32
+ __exportStar(require("./create-email-signup.dto"), exports);
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @author sj
3
+ * @description 이메일 전용 가입 인증 메일 발송 입력
4
+ * @process user-service가 가입 전 Redis 인증 세션을 만들고 인증 메일 발송을 요청한다.
5
+ * */
6
+ export declare class RequestEmailSignupVerificationPayload {
7
+ email: string;
8
+ locale?: string;
9
+ }
10
+ /**
11
+ * @author sj
12
+ * @description 이메일 전용 가입 인증 메일 발송 결과
13
+ * @process 클라이언트는 verificationId만 인증번호 확인 요청에 사용한다.
14
+ * */
15
+ export declare class RequestEmailSignupVerificationResult {
16
+ verificationId: string;
17
+ expiresAt: string;
18
+ retryAfterSeconds: number;
19
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RequestEmailSignupVerificationResult = exports.RequestEmailSignupVerificationPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author sj
16
+ * @description 이메일 전용 가입 인증 메일 발송 입력
17
+ * @process user-service가 가입 전 Redis 인증 세션을 만들고 인증 메일 발송을 요청한다.
18
+ * */
19
+ class RequestEmailSignupVerificationPayload {
20
+ }
21
+ exports.RequestEmailSignupVerificationPayload = RequestEmailSignupVerificationPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsEmail)(),
24
+ (0, class_validator_1.MaxLength)(320),
25
+ __metadata("design:type", String)
26
+ ], RequestEmailSignupVerificationPayload.prototype, "email", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsString)(),
30
+ (0, class_validator_1.MaxLength)(20),
31
+ __metadata("design:type", String)
32
+ ], RequestEmailSignupVerificationPayload.prototype, "locale", void 0);
33
+ /**
34
+ * @author sj
35
+ * @description 이메일 전용 가입 인증 메일 발송 결과
36
+ * @process 클라이언트는 verificationId만 인증번호 확인 요청에 사용한다.
37
+ * */
38
+ class RequestEmailSignupVerificationResult {
39
+ }
40
+ exports.RequestEmailSignupVerificationResult = RequestEmailSignupVerificationResult;
@@ -1,10 +1,15 @@
1
- /** @author jun @description 비회원 OTP 검증 입력 @process 서버에 저장한 요청과 코드를 검증한다. */
1
+ /**
2
+ * @author jun
3
+ * @description 기존 전화번호 기반 비회원 로그인 입력
4
+ * @process 기존 클라이언트의 전화번호 계약을 유지한다.
5
+ * @remarks 전화번호 소유를 검증하지 않는 호환 계약이므로 서버에서 사용 기간을 제한해야 한다.
6
+ */
2
7
  export declare class SignInGuestUserPayload {
3
- verificationId: string;
4
- verificationCode: string;
8
+ phoneNumber: string;
5
9
  }
6
10
  export interface SignInGuestUserResult {
7
11
  access_token: string;
12
+ refresh_token: string;
8
13
  userId: string;
9
14
  }
10
15
  /** @author jun @description 비회원 OTP 발송 입력 @process 번호와 웹 CAPTCHA를 서버에서 검증한다. */
@@ -11,20 +11,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RequestGuestPhoneVerificationPayload = exports.SignInGuestUserPayload = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
- /** @author jun @description 비회원 OTP 검증 입력 @process 서버에 저장한 요청과 코드를 검증한다. */
14
+ /**
15
+ * @author jun
16
+ * @description 기존 전화번호 기반 비회원 로그인 입력
17
+ * @process 기존 클라이언트의 전화번호 계약을 유지한다.
18
+ * @remarks 전화번호 소유를 검증하지 않는 호환 계약이므로 서버에서 사용 기간을 제한해야 한다.
19
+ */
15
20
  class SignInGuestUserPayload {
16
21
  }
17
22
  exports.SignInGuestUserPayload = SignInGuestUserPayload;
18
23
  __decorate([
19
24
  (0, class_validator_1.IsString)(),
20
- (0, class_validator_1.Matches)(/^[a-f0-9]{64}\.[a-f0-9]{32}$/),
21
25
  __metadata("design:type", String)
22
- ], SignInGuestUserPayload.prototype, "verificationId", void 0);
23
- __decorate([
24
- (0, class_validator_1.IsString)(),
25
- (0, class_validator_1.Matches)(/^\d{6}$/),
26
- __metadata("design:type", String)
27
- ], SignInGuestUserPayload.prototype, "verificationCode", void 0);
26
+ ], SignInGuestUserPayload.prototype, "phoneNumber", void 0);
28
27
  /** @author jun @description 비회원 OTP 발송 입력 @process 번호와 웹 CAPTCHA를 서버에서 검증한다. */
29
28
  class RequestGuestPhoneVerificationPayload {
30
29
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @author jun
3
+ * @description OTP로 인증하는 비회원 로그인 입력
4
+ * @process 기존 전화번호 로그인과 분리하여 서버에 저장한 인증 요청과 코드를 검증한다.
5
+ */
6
+ export declare class SignInVerifiedGuestUserPayload {
7
+ verificationId: string;
8
+ verificationCode: string;
9
+ }
10
+ export interface SignInVerifiedGuestUserResult {
11
+ access_token: string;
12
+ userId: string;
13
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SignInVerifiedGuestUserPayload = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * @author jun
16
+ * @description OTP로 인증하는 비회원 로그인 입력
17
+ * @process 기존 전화번호 로그인과 분리하여 서버에 저장한 인증 요청과 코드를 검증한다.
18
+ */
19
+ class SignInVerifiedGuestUserPayload {
20
+ }
21
+ exports.SignInVerifiedGuestUserPayload = SignInVerifiedGuestUserPayload;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.Matches)(/^[a-f0-9]{64}\.[a-f0-9]{32}$/),
25
+ __metadata("design:type", String)
26
+ ], SignInVerifiedGuestUserPayload.prototype, "verificationId", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.Matches)(/^\d{6}$/),
30
+ __metadata("design:type", String)
31
+ ], SignInVerifiedGuestUserPayload.prototype, "verificationCode", void 0);
@@ -4,7 +4,7 @@ import { AbstractParam } from '@yolo-croket-dev/core';
4
4
  import { DecodePhoneNumbersPayload, PhoneDecodedData } from '@yolo-croket-dev/dto-v2/user-service';
5
5
  import { UserEntity } from '@yolo-croket-dev/entity-v2';
6
6
  import { SaveShippingAddressPayload } from '../dto/user/command/save-shipping-address.dto';
7
- import { GetDuplicateUsersByPhoneNumberPayload, GetDuplicateUsersByPhoneNumberResult, GetUserIdsByUsernamePayload, GetUserIdsByUsernameResult, GetUserInfosForPartialRefundPayload, GetUserInfosForPartialRefundResult, IssueSignupRewardPayload, IssueSignupRewardResult, PatchGenderAndBirthdayPayload, SaveSystemAppPushAcceptPayload, IssueInflowSignupRewardResult, VerificationPhoneForSnsUserPayload, SignInGuestUserPayload, SignInGuestUserResult, RequestGuestPhoneVerificationPayload, RequestGuestPhoneVerificationResult, UpdateGuestUsernamePayload, AppSwitchingRewardPayload, AppSwitchingRewardResult, GetUserIdsForTimeDealPushPayload, GetUserIdsForTimeDealPushResult, GetMarketingReceiveByPhoneNumbersResult, GetMarketingReceiveByPhoneNumbersPayload, IsUnlimitedBenefitUserIdPayload, GetUserInfosByIdsPayload } from '../dto';
7
+ import { GetDuplicateUsersByPhoneNumberPayload, GetDuplicateUsersByPhoneNumberResult, GetUserIdsByUsernamePayload, GetUserIdsByUsernameResult, GetUserInfosForPartialRefundPayload, GetUserInfosForPartialRefundResult, IssueSignupRewardPayload, IssueSignupRewardResult, PatchGenderAndBirthdayPayload, SaveSystemAppPushAcceptPayload, IssueInflowSignupRewardResult, VerificationPhoneForSnsUserPayload, SignInGuestUserPayload, SignInGuestUserResult, SignInVerifiedGuestUserPayload, SignInVerifiedGuestUserResult, RequestGuestPhoneVerificationPayload, RequestGuestPhoneVerificationResult, UpdateGuestUsernamePayload, AppSwitchingRewardPayload, AppSwitchingRewardResult, GetUserIdsForTimeDealPushPayload, GetUserIdsForTimeDealPushResult, GetMarketingReceiveByPhoneNumbersResult, GetMarketingReceiveByPhoneNumbersPayload, IsUnlimitedBenefitUserIdPayload, GetUserInfosByIdsPayload } from '../dto';
8
8
  /** 기존 userService 와 이름이 겹쳐 userEntityService로 임시 사용 */
9
9
  export declare class AmqpUserEntityService {
10
10
  private readonly client;
@@ -22,7 +22,10 @@ export declare class AmqpUserEntityService {
22
22
  verificationPhoneForSnsUser(payload: VerificationPhoneForSnsUserPayload, param: AbstractParam): Promise<void>;
23
23
  /** @author jun @description 비회원 인증번호 발송 @process 제한된 시간 안에 인증 소유 서비스에 위임한다. */
24
24
  requestGuestPhoneVerification(payload: RequestGuestPhoneVerificationPayload, param: AbstractParam): Promise<RequestGuestPhoneVerificationResult>;
25
+ /** @author jun @description 기존 비회원 로그인 @process 기존 라우트와 호출자 timeout을 유지하여 전화번호 로그인을 위임한다. */
25
26
  signInGuestUser(payload: SignInGuestUserPayload, param: AbstractParam): Promise<SignInGuestUserResult>;
27
+ /** @author jun @description OTP 인증 비회원 로그인 @process 별도 라우트로 인증 요청과 코드를 전달하고 검증 결과를 반환한다. */
28
+ signInVerifiedGuestUser(payload: SignInVerifiedGuestUserPayload, param: AbstractParam): Promise<SignInVerifiedGuestUserResult>;
26
29
  updateGuestUserName(payload: UpdateGuestUsernamePayload, param: AbstractParam): Promise<void>;
27
30
  appSwitchingReward(payload: AppSwitchingRewardPayload, param: AbstractParam): Promise<AppSwitchingRewardResult>;
28
31
  getUserIdsForTimeDealPush(payload: GetUserIdsForTimeDealPushPayload, param: AbstractParam): Promise<GetUserIdsForTimeDealPushResult>;
@@ -59,8 +59,13 @@ let AmqpUserEntityService = class AmqpUserEntityService {
59
59
  timeout: 20000,
60
60
  }, { isErrorThrowing: true });
61
61
  }
62
+ /** @author jun @description 기존 비회원 로그인 @process 기존 라우트와 호출자 timeout을 유지하여 전화번호 로그인을 위임한다. */
62
63
  async signInGuestUser(payload, param) {
63
- return this.amqpManager.call('유저 - 게스트 유저 로그인', 'user.sign-in.guest-user', payload, {
64
+ return this.amqpManager.call('유저 - 게스트 유저 로그인', 'user.sign-in.guest-user', payload, param, { isErrorThrowing: true });
65
+ }
66
+ /** @author jun @description OTP 인증 비회원 로그인 @process 별도 라우트로 인증 요청과 코드를 전달하고 검증 결과를 반환한다. */
67
+ async signInVerifiedGuestUser(payload, param) {
68
+ return this.amqpManager.call('유저 - OTP 인증 비회원 로그인', 'user.sign-in.verified-guest-user', payload, {
64
69
  ...param,
65
70
  timeout: 20000,
66
71
  }, { isErrorThrowing: true });
@@ -1 +0,0 @@
1
- {"isSupported":true,"baseDate":"20260810","exactBaseDate":"20260810","exchangeRate":10.25,"currencyCode":"usd"}
@@ -1 +0,0 @@
1
- {"isSupported":true,"baseDate":"20260810","exactBaseDate":"2026-08-10","exchangeRate":10.25,"currencyCode":"USD"}
@@ -1,7 +0,0 @@
1
- {
2
- "isSupported": true,
3
- "baseDate": "20260810",
4
- "exactBaseDate": "20260810",
5
- "exchangeRate": 0,
6
- "currencyCode": "USD"
7
- }
@@ -1 +0,0 @@
1
- {"isSupported":false,"baseDate":"20260810"}
@@ -1 +0,0 @@
1
- {"isSupported":false}
@@ -1 +0,0 @@
1
- {"isSupported":true,"baseDate":"20260810","exactBaseDate":"20260810","exchangeRate":7.45,"currencyCode":"CAD"}
@@ -1 +0,0 @@
1
- {"isSupported":true,"baseDate":"20260810","exactBaseDate":"20260810","exchangeRate":9.01,"currencyCode":"JPY"}
@@ -1 +0,0 @@
1
- {"isSupported":true,"baseDate":"20260810","exactBaseDate":"20260810","exchangeRate":10.25,"currencyCode":"USD"}
@@ -1,52 +0,0 @@
1
- const assert = require('node:assert/strict');
2
- const test = require('node:test');
3
- const { getRmqDiagnosticSnapshot } = require('@yolo-croket-dev/core/functions');
4
-
5
- const providerFiles = [
6
- '../analytics-service/amqp.analytics-service.provider',
7
- '../auth-service/amqp.auth-service.provider',
8
- '../coupon-server/amqp.coupon-server.provider',
9
- '../elastic-service/amqp.elastic-service.provider',
10
- '../excel-upload-server/amqp.excel-upload-server.provider',
11
- '../image-server/amqp.image-server.provider',
12
- '../manage-service/amqp.manage-service.provider',
13
- '../notification-service/amqp.notification-service.provider',
14
- '../order-server/amqp.order-server.provider',
15
- '../payment-service/amqp.payment-service.provider',
16
- '../store-item-server/amqp.store-item-server.provider',
17
- '../user-service/amqp.user-service.provider',
18
- ];
19
-
20
- test('shared RMQ providers use the caller-visible diagnostic client only when enabled', async t => {
21
- const previous = process.env.RMQ_DIAGNOSTICS_ENABLED;
22
- t.after(() => {
23
- if (previous === undefined) delete process.env.RMQ_DIAGNOSTICS_ENABLED;
24
- else process.env.RMQ_DIAGNOSTICS_ENABLED = previous;
25
- });
26
-
27
- const ids = new Set();
28
- for (const file of providerFiles) {
29
- const provider = Object.values(require(file)).find(value => value && typeof value.useFactory === 'function');
30
- assert.ok(provider, `${file} exports a provider`);
31
-
32
- process.env.RMQ_DIAGNOSTICS_ENABLED = 'true';
33
- const observed = provider.useFactory();
34
- const snapshot = getRmqDiagnosticSnapshot(observed);
35
- assert.equal(snapshot?.direction, 'client', file);
36
- assert.equal(snapshot?.connectionState, 'not_connected', file);
37
- assert.equal(snapshot?.generation, 0, file);
38
- assert.ok(snapshot?.connectionId, file);
39
- ids.add(snapshot.connectionId);
40
-
41
- process.env.RMQ_DIAGNOSTICS_ENABLED = 'false';
42
- const plain = provider.useFactory();
43
- assert.equal(getRmqDiagnosticSnapshot(plain), undefined, file);
44
- assert.deepEqual(plain.options, {
45
- ...observed.options,
46
- socketOptions: { heartbeatIntervalInSeconds: 60 },
47
- }, file);
48
- await observed.close();
49
- await plain.close();
50
- }
51
- assert.equal(ids.size, providerFiles.length);
52
- });
@@ -1,14 +0,0 @@
1
- import { ClientProxy } from '@nestjs/microservices';
2
- import { AbstractParam } from '@yolo-croket-dev/core';
3
- import { ClaimSignupCertificationPayload, ClaimSignupCertificationResult } from '../dto/signup-certification';
4
- /**
5
- * @author 홍준
6
- * @description 가입 전 본인인증 귀속 AMQP client
7
- * @process 가입 완료 후 로그인된 사용자에게 일회성 인증 결과를 연결한다.
8
- */
9
- export declare class AmqpSignupCertificationService {
10
- private readonly client;
11
- private readonly amqpManager;
12
- constructor(client: ClientProxy);
13
- claim(payload: ClaimSignupCertificationPayload, param: AbstractParam): Promise<ClaimSignupCertificationResult>;
14
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AmqpSignupCertificationService = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const microservices_1 = require("@nestjs/microservices");
18
- const functions_1 = require("@yolo-croket-dev/core/functions");
19
- /**
20
- * @author 홍준
21
- * @description 가입 전 본인인증 귀속 AMQP client
22
- * @process 가입 완료 후 로그인된 사용자에게 일회성 인증 결과를 연결한다.
23
- */
24
- let AmqpSignupCertificationService = class AmqpSignupCertificationService {
25
- constructor(client) {
26
- this.client = client;
27
- this.amqpManager = new functions_1.AmqpManagement(this.client);
28
- }
29
- async claim(payload, param) {
30
- return this.amqpManager.call('가입 전 본인인증 사용자 귀속', 'signup-certification.claim', payload, param, { isErrorThrowing: true });
31
- }
32
- };
33
- exports.AmqpSignupCertificationService = AmqpSignupCertificationService;
34
- exports.AmqpSignupCertificationService = AmqpSignupCertificationService = __decorate([
35
- (0, common_1.Injectable)(),
36
- __param(0, (0, common_1.Inject)('USER_SERVICE_PROVIDER')),
37
- __metadata("design:paramtypes", [microservices_1.ClientProxy])
38
- ], AmqpSignupCertificationService);