Commit 10e064b
[feat] dev에서 main으로 push#98 (#103)
* chore : 코드래빗 자동화 설정1
* feat : 글로벌 클래스 start kit 설정1
* feat : 8080 접속시 스웨거로 리다이렉트 하도록 설정
* chore : ISSUE_TEMPLATE 삭제
* chore : 코드래빗 자동화 설정2
* Create ISSUE_TEMPLATE.md (#3)
* [fix] issue 템플릿에 YAML front matter 추가 (#10)
* [feat] User 도메인 추가#7 (#11)
* feat: User 엔티티추가
* feat: User DTO 추가
* feat: UserRepository 추가
* feat: Wishlist 엔티티 추가
* feat: WishlistStatus 추가
- soft delete 관리를 위함
* feat: WishlistRepository 추가
* chore: .gitignore에 db 파일 추가
* feat: Wishlist 요청/응답 DTO 추가
* chore : 코드래빗 한국어 설정
* refactor: User 엔티티 필드 수정
* feat: User 회원등급 enum 추가
* refactor: User role 필드와 @Builder.Default를 추가
* feat: UserService 추가
* [feat] cocktail엔티티, 리포지토리, DTO 추가 #9
* {feat} : domain
* {fix}:Cocktail-Wishlist relation
* {fix}: add profileImgUrl
* [feat] Security Config설정, CustomAuthenticationFilter 설정#1 (#18)
* chore : 코드래빗 한국어 설정
* feat : OAuth&시큐리티 의존성 추가 및 환경변수 등록
* feat : Security Config설정, CustomAuthenticationFilter 설정1
* feat : secure설정 로컬에서 사용x, prod yml생성하여 true적용 되도록 전환. 로깅 dev.yml로 이동
* [feat] 프로필 조회 기능 구현 #16 (#20)
* feat: User엔티티에 JPA Auditing 적용
* feat: 프로필 요청 DTO 추가
* feat: ABV 레벨 및 퍼센트 라벨링 기능 추가
* feat: 닉네임 중복 확인 메서드 추가
* feat: 프로필 조회 로직 추가
* fix: 불필요한 필드 삭제
* feat: 로그인한 사용자 프로필 조회 API 추가
* [feat] 프로필 수정 기능 구현 #21 (#22)
* feat: User엔티티에 JPA Auditing 적용
* feat: 프로필 요청 DTO 추가
* feat: ABV 레벨 및 퍼센트 라벨링 기능 추가
* feat: 닉네임 중복 확인 메서드 추가
* feat: 프로필 조회 로직 추가
* fix: 불필요한 필드 삭제
* feat: 로그인한 사용자 프로필 조회 API 추가
* feat: 사용자 프로필 수정 DTO 추가
* feat: 사용자 프로필 수정 로직 추가
* feat: 사용자 프로필 수정 API 추가
* fix: springdoc-openapi 버전 호환성 문제 해결
* feat : OAuth 핸들러 구현 및 관련 유저 서비스 추가1
* feat : Security Config 설정 및 OAuth 구현#2
* refactor : 불필요한 코드 삭제 및 구조 개선
* feat : Redis의존성 추가 및 리프레시 토큰 엔티티, 레포지터리 생성
* feat : 리프레시 토큰 핵심 서비스 작성
* refactor : 리프레시 토큰 패키지 변경 및 코드 정리
* [feat] 나만의 Bar(킵) 목록 조회 기능 구현 #23 (#29)
* refactor: Wishlist 엔티티를 MyBar 엔티티로 리팩토링 및 개선
- Wishlist 도메인을 MyBar 도메인으로 명칭 변경
- `createdAt` 필드에 `@CreatedDate` 어노테이션 적용하여 생성 시간 자동화
- Soft Delete 구현을 위해 `deletedAt` 필드 추가
- `WishlistStatus` enum을 `KeepStatus` enum으로 변경
* refactor: WishlistStatus enum을 KeepStatus enum으로 변경
- 도메인 명칭 변경에 맞춰 WishlistStatus enum 클래스를 KeepStatus로 변경
- enum 패키지 위치를 'wishlist'에서 'mybar'으로 이동
* refactor: 불필요한 Dto 삭제
* feat: 마이바 목록 조회 DTO 추가
- 마이바 목록 조회 시 사용될 MyBarListResponseDto 클래스 추가
- 페이징 처리를 위한 nextCursor 필드 추가
* refactor: WishlistResponseDto를 MyBarItemResponseDto로 리팩토링
- WishlistResponseDto 클래스를 MyBarItemResponseDto로 명칭 변경
- DTO가 사용자(User) 정보 대신 킵한 칵테일(Cocktail) 정보를 직접 포함하도록 수정
* refactor: WishlistRepository를 MyBarRepository로 리팩토링 및 쿼리 메소드 추가
- WishlistRepository 인터페이스를 MyBarRepository로 명칭 변경
- '나만의 바' 기능의 데이터 접근을 위해 쿼리 메소드 2개 추가
- `findByUserIdAndStatusOrderByIdDesc`: 특정 사용자의 킵 목록을 페이징하여 조회
- `countByUserIdAndStatus`: 특정 사용자의 활성 킵 개수를 카운트
* refactor: API 응답을 커서 기반 페이징 방식에서 오프셋 기반 페이징 방식으로 변경
* feat: 마이바(MyBar) 목록 조회 서비스 로직 구현
* feat: 마이바(MyBar) 목록 조회 API 구현
* fix typo
* feat: 리프레시 토큰 기반 인증 시스템 구현
* [feat] 칵테일 조회 및 검색 기능 구현 (#32)
* {feat} : domain
* {fix}:Cocktail-Wishlist relation
* fix : enums
* fix : bug
* feat : 조회기능, 조init data
* fix : naming
* feat : cocktailSearch
* fix :bug
* feat: 리프레시 토큰 기반 인증 시스템 구현
* [feat] 나만의 bar(킵) 추가/재추가 기능 구현 #30 (#33)
* feat: 마이바(MyBar) 엔티티에 keptAt 필드 추가
- `keptAt`은 칵테일이 마지막으로 킵된 시점을 저장하며, 목록 정렬 기준으로 활용될 예정
기존의 `createdAt` 필드는 엔티티가 생성된 시점만을 나타내므로,
'킵' 해제 후 다시 '킵'하는 경우 목록의 최상단에 재배치되게 하려면 최신 '킵' 시간을 추적할 수 있는 별도의 필드가 필요했습니다.
이를 위해 `keptAt` 필드를 추가하여 최신 킵 시간을 관리하고, 이를 목록 정렬의 기준으로 사용하도록 개선했습니다.
* feat: MyBarItemResponseDto에 keptAt 필드 추가
* refactor: MyBarRepository에 킵 관련 쿼리 메소드 추가 및 정렬 기준 변경
- `findByUserIdAndStatusOrderByIdDesc` 쿼리 메소드의 정렬 기준을 `KeptAt`으로 변경
- 최근에 킵한 칵테일이 목록 상단에 오도록 `keptAt`을 기준으로 내림차순 정렬하고, 동일한 시간일 경우 `id`로 보조 정렬
- `countByUserIdAndStatus` 쿼리 메소드의 매개변수명을 `user_Id`로 통일
- 칵테일 킵 상태 확인(`existsByUser_IdAndCocktail_IdAndStatus`)을 위한 쿼리 메소드 추가
- 복원/재킵(`findByUser_IdAndCocktail_Id`)을 위한 쿼리 메소드 추가
* feat: 마이바(MyBar) '킵' 기능 추가 및 목록 조회 로직 개선
- `keep` 메서드를 추가하여 칵테일을 킵하거나 재킵하는 로직 구현
- 기존 목록 조회 메서드(`getMyBar`)의 쿼리 정렬 기준을 `KeptAt`으로 변경
- `UserRepository`와 `CocktailRepository`를 추가하여 엔티티 참조에 활용
* feat: 마이바(MyBar) 칵테일 킵(Keep) API 추가
- `POST /me/bar/{cocktailId}/keep` 엔드포인트 추가
- URL `@PathVariable`로 칵테일 ID를 받고, `@AuthenticationPrincipal`로 사용자 ID를 획득
- `MyBarService`의 `keep` 메서드를 호출하여 킵 기능 처리
- 성공 시 HTTP 201 상태 코드와 "kept" 메시지 반환
* refactor: MyBarRepository 쿼리 메소드의 필드명 수정
-`@ManyToOne` 관계에서 연관 엔티티의 ID 필드를 직접 참조할 때의 **JPA 규칙**을 따르기 위함입니다. 이전 코드에서는 `Cocktail` 엔티티의 PK 필드명(`cocktailId`)을 생략했으나, 명확한 필드 경로(`Cocktail_CocktailId`)를 명시하여 코드의 가독성과 일관성을 높였습니다.
* [feat] 나만의 bar soft delete 기능 구현 #31 (#36)
* feat: MyBarRepository에 소프트 삭제 기능 추가
- MyBar 엔티티를 삭제 시 실제 DB에서 삭제하는 대신, status를 'DELETED'로 변경하는 소프트 삭제 로직을 추가
* feat: 마이바(MyBar) 킵 해제 기능 추가 (소프트 삭제)
* feat: MyBarController에 칵테일 킵(Keep) 해제 API 추가
* feat : 기존 액세스 토큰 대신 리프레시 토큰 같이 발급
* feat: post 도메인 추가
* feat : jwt토큰에 닉네임 파라미터 추가 및 코드 리팩토링
* refactor: AbvLevel Enum의 L1 등급 기준 및 로직 변경 (#38)
- `AbvLevel` Enum의 L1 등급에 대한 최소(min) 기준값을 0에서 5로 변경
* feat: 게시글 다건 조회, 작성 구현
* feat: 게시글 단건 조회 구현
* feat : 레디스 로컬 실행을 위한 docker-compose.yml 작성
* [refactor] 나만의 bar 페이지네이션을 커서 기반으로 리팩토링 #49 (#51)
* refactor: MyBar 목록 API 페이징 방식을 오프셋에서 커서 기반으로 변경
- 응답 DTO인 `MyBarListResponseDto`에서 `nextPage` 필드를 제거하고, 대신 `nextCursor` 필드를 추가
* feat: MyBarRepository에 커서 기반 페이징 메서드 추가
- `MyBarRepository`에 커서 기반 페이징을 위한 새로운 쿼리 메서드 `findSliceByCursor`를 추가
* refactor: MyBarService에 커서 기반 페이징 로직 구현 및 적용
- MyBar 목록 조회 API의 페이징 방식을 기존의 오프셋(offset) 기반에서 커서(cursor) 기반으로 변경
- `getMyBar` 메서드의 파라미터를 `page`, `pageSize`에서 `cursor`, `limit`로 수정하여 커서 기반 페이징에 적합하게 변경
- `Cursor` 클래스를 새로 추가하여 커서의 인코딩/디코딩 로직을 구현 커서는 `epochMillis`와 `id`를 조합하여 Base64로 인코딩
- 첫 페이지 요청(`cursor`가 null 또는 빈 문자열)과 다음 페이지 요청(`cursor`가 존재)을 분리하여 처리하는 로직을 추가
* refactor: MyBarController의 목록 조회 API 페이징 방식 변경
- 마이바(MyBar) 목록을 조회하는 GET API의 페이징 방식을 오프셋(offset) 기반에서 커서(cursor) 기반으로 리팩토링
- 기존의 `@RequestParam`인 `page`와 `pageSize`를 `cursor`와 `limit`로 변경
- `cursor`는 `String` 타입으로, 다음 페이지를 식별하는 데 사용
* refactor: MyBarListResponseDto의 커서 필드를 분리하여 재구성
- `MyBarListResponseDto`의 `nextCursor` 필드를 제거하고, `nextKeptAt`과 `nextId` 두 개의 필드로 분리
- 기존의 Base64로 인코딩된 문자열 커서 대신, 서버 내부에서 직접 사용할 수 있는 `LocalDateTime`과 `Long` 타입의 필드를 제공
* refactor: MyBarService의 커서 기반 페이징 로직 재구성 (간소화)
- `MyBarService`의 `getMyBar` 메서드에서 커서 기반 페이징 로직을 간소화
- 기존의 Base64 인코딩/디코딩 방식을 제거하고, 커서 값을 `lastKeptAt` (LocalDateTime)과 `lastId` (Long) 두 개의 파라미터로 직접 받도록 변경
* refactor: MyBar 목록 조회 API 파라미터를 커서 값으로 직접 변경
- MyBar 목록 조회 API의 `@GetMapping` 메서드 파라미터를 커서 기반 페이징에 맞게 변경
- 기존의 단일 `cursor` 문자열 필드 대신, `lastKeptAt` (LocalDateTime)과 `lastId` (Long)를 직접 받도록 수정
- `lastKeptAt` 파라미터에 `@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)`을 적용하여 ISO 8601 형식의 시간 데이터를 자동으로 변환
* feat: 게시글 수정 구현
* feat: 게시글 삭제 구현
* feat: 무한스크롤 페이징 구현
* [refactor] 프로필 수정 메서드를 Patch로 변경 #53 (#57)
* refactor: 프로필 수정 DTO에서 이메일 필드 제거
* refactor: ProfileService에서 이메일 관련 로직 제거
- `ProfileService`의 `updateProfile` 메서드에서 이메일 관련 업데이트 로직을 삭제
- 이는 프로필 수정 DTO(ProfileUpdateRequestDto)에서 이메일 필드를 제거한 변경사항에 맞춘 후속 조치
* refactor: ProfileController API 엔드포인트 및 HTTP 메서드 변경
- `ProfileController`의 기본 API 엔드포인트를 `/me/profile`에서 `/api/me/profile`로 변경
- 프로필 수정에 사용되던 **`PUT` 메서드를 제거하고,** 부분 업데이트에 더 적합한 `PATCH` 메서드를 도입
* [feat] 내활동: 내가 쓴 글 조회 기능 구현 #58 (#68)
* feat: 단일 히스토리 게시글 정보 DTO 추가
- HistoryPostItemDto: 게시글 목록 페이지에서 사용될 게시글의 핵심 정보(id, 제목, 이미지 URL, 좋아요/댓글 수)를 담는 DTO
- from() 정적 팩토리 메서드: Post 엔티티를 HistoryPostItemDto로 변환하는 로직 구현
* feat: 히스토리 목록 페이지네이션을 위한 DTO 추가
- HistoryPostListDto: 히스토리 목록, 다음 페이지 유무, 다음 페이지 커서(nextCreatedAt, nextId) 정보를 담는 DTO
- HistoryPostItemDto: 단일 히스토리 항목 정보를 담는 DTO
* feat: 마이페이지 게시글 목록 조회 기능 추가 (커서 기반 페이지네이션)
- `HistoryRepository`에 사용자 게시글 목록 조회를 위한 쿼리 메서드 2개 추가
- `findMyPostsFirstPage`: 초기 페이지 게시글을 조회
- `findMyPostsAfter`: 다음 페이지 게시글을 커서를 기반으로 조회하여 성능 개선
* feat: 마이페이지 게시글 목록 조회 서비스 로직 구현
- `HistoryService.getMyPosts()`: 사용자 ID, 커서(마지막 생성 시간, ID), 조회 개수(limit)를 인자로 받아 게시글 목록을 반환하는 메서드 추가
- `HistoryRepository`를 사용하여 커서 기반 페이지네이션을 처리
* feat: 마이페이지 게시글 목록 조회 API 구현
* feat: comment 도메인 생성
* [feat] 칵테일 컨트롤러 단건조회 구현
* {feat} : domain
* {fix}:Cocktail-Wishlist relation
* fix : enums
* fix : bug
* feat : 조회기능, 조init data
* feat : cocktailSearch
* feat : search
* feat: get cocktailTest
* feat : controller
* feat : terraform 설정
* feat: 댓글 작성 기능 구현
* feat: gemini yml add
* feat: add chatbot entity
* feat: add chat double DTO
* feat: add gemini doubel DTO
* feat: chatbot Repository
* [feat] 알림 목록 조회 기능 구현 #70 (#74)
* feat: 알림(Notification) 엔티티 구현
* feat: 단일 알림 항목 DTO 추가
* feat: 알림 목록 페이지네이션 DTO 추가
* feat: 알림 이동(클릭) 응답 DTO 추가
* feat: 알림(Notification) Repository에 조회 기능 추가
- `findMyNotificationsFirstPage`: 사용자 ID를 기반으로 알림 목록의 첫 페이지를 조회하는 쿼리 추가
- `findMyNotificationsAfter`: 커서(lastCreatedAt, lastId)를 사용하여 다음 페이지의 알림 목록을 효율적으로 조회하는 쿼리 추가
- `findByIdAndUserId`: 특정 사용자의 특정 알림을 안전하게 조회하는 메서드 추가
* eat: 알림 종류(NotificationType) Enum 추가
- `NotificationType`: 알림의 종류를 구분하는 열거형
* feat: 알림(Notification) 서비스 로직 구현
- `NotificationService.getNotifications()`: 사용자 ID를 기반으로 알림 목록을 커서 기반 페이지네이션으로 조회
- `NotificationService.markAsReadAndGetPostLink()`: 특정 알림을 읽음 처리하고, 연결된 게시글의 ID 및 API URL을 반환
- 알림이 존재하지 않거나 사용자 ID와 불일치할 경우 예외 처리 추가
* feat: 알림(Notification) 관련 API 엔드포인트 구현
* feat: add Gemini config on Global
* feat: add Geminiservice
* feat: add chatbot service
* feat: add chatbot controller
* feat: chatbot endpoint permitAll
* feat: ignore add
* fix: Delete .claude directory
* [feat] 칵테일 검색/필터 컨트롤러 기능 구현#72
* {feat} : domain
* {fix}:Cocktail-Wishlist relation
* fix : enums
* fix : bug
* feat : 조회기능, 조init data
* feat : cocktailSearch
* feat: get cocktailTest
* feat : controller
* feat : cocktail controller
* fix : Dto naming
* fix: CocktailDetailResponseDto
* feat: 댓글 다건 조회 기능 구현
* [feat] 내 활동: 내가 작성한 댓글 목록 조회 기능 구현 #78 (#85)
* refactor: 컨트롤러 API 경로에 /api 접두사 추가
* refactor: History 패키지 및 클래스 명칭 변경
* feat: 마이페이지 댓글 히스토리 DTO 추가
* feat: 마이페이지 댓글 목록 페이지네이션 DTO 추가
* feat: 마이페이지 댓글 이동 응답 DTO 추가
* feat: 마이페이지 댓글 히스토리 Repository 구현
- `MyHistoryCommentRepository`에 사용자 댓글 조회 기능 추가
- `findMyCommentsFirstPage()`: 사용자 ID를 기반으로 댓글 목록의 첫 페이지를 조회
- `findMyCommentsAfter()`: 커서(lastCreatedAt, lastId)를 사용하여 다음 페이지의 댓글 목록을 효율적으로 조회
- `findByIdAndUserId()`: 특정 사용자의 특정 댓글을 조회하는 기능 추가
* refactor: MyHistoryService로 클래스명 및 패키지명 변경
* feat: 마이페이지 댓글 히스토리 기능 추가
- MyHistoryService에 사용자가 작성한 댓글 목록을 조회하는 getMyComments() 메서드를 추가
- 커서 기반 페이지네이션을 적용
- 댓글을 클릭하면 해당 댓글이 속한 게시글로 이동할 수 있도록 getPostLinkFromMyComment() 메서드를 구현
- 삭제된 게시글에 대한 예외 처리를 추가
* refactor: MyHistoryController로 클래스명 및 패키지 변경
* feat: 마이페이지 댓글 히스토리 API 추가
* fix typo
* feat: 댓글 단건 조회 기능 구현
* [feat] 내활동: 내가 쓴 글 목록에서 클릭시 해당 게시글로 이동 구현 #86 (#88)
* feat: 마이페이지 게시글 이동 응답 DTO 추가
* eat: MyHistoryPostRepository에 게시글 조회 메서드 추가
- findByIdAndUserId(): 게시글 ID와 사용자 ID를 모두 사용하여 특정 게시글을 조회하는 메서드를 추가
* feat: 마이페이지 게시글 이동 서비스 로직 추가
- MyHistoryService에 getPostLinkFromMyPost() 메서드를 추가하여 특정 게시글로 이동하는 기능을 구현
* feat: 마이페이지 게시글 이동 API 추가
* feat: 댓글 수정 기능 구현
* feat : 무중단 배포 위한 yml 및 github flow 작성
* fix typo
* fix typo..
* feat: 댓글 삭제 기능 구현
* feat: 댓글 삭제 기능 구현
* [feat] 칵테일 공유 기능 구현
* {feat} : domain
* {fix}:Cocktail-Wishlist relation
* fix : enums
* fix : bug
* feat : 조회기능, 조init data
* feat : cocktailSearch
* feat : controller
* feat : cocktail controller
* CocktailShareController
* fix : bug
* [refactor] Refresh Token 아키텍처 개선
* feat : terraform 설정
* feat : 무중단 배포 위한 yml 및 github flow 작성
* refactor: 리프레시 토큰 레디스 -> jpa 사용하도록 변경, redis는 OAuth 세션 저장시에만 사용
* fix : DATABSE_URL 환경변수 수정
* fix: 백엔드 배포환경 url 수정
* feat : mysql 드라이버 및 username, password 명시(yml)
* {feat} : domain
* {fix}:Cocktail-Wishlist relation
* fix : enums
* fix : bug
* feat : 조회기능, 조init data
* feat : cocktailSearch
* feat : controller
* merge to main
---------
Co-authored-by: seungwookc97 <[email protected]>
Co-authored-by: MEOHIN <[email protected]>
Co-authored-by: meohin <[email protected]>
Co-authored-by: SeokGeunHo <[email protected]>
Co-authored-by: SeokGeunHo <[email protected]>
Co-authored-by: GerHerMo <[email protected]>
Co-authored-by: GerHerMo <[email protected]>1 parent d0088b9 commit 10e064b
File tree
121 files changed
+5901
-1
lines changed- .github
- ISSUE_TEMPLATE
- workflows
- src
- main
- java/com/back
- domain
- chatbot
- controller
- dto
- entity
- repository
- service
- cocktail
- controller
- dto
- entity
- enums
- repository
- service
- mybar
- controller
- dto
- entity
- enums
- repository
- service
- myhistory
- controller
- dto
- repository
- service
- notification
- controller
- dto
- entity
- enums
- repository
- service
- post
- category
- entity
- repository
- comment
- controller
- dto
- request
- response
- entity
- enums
- repository
- service
- post
- controller
- dto
- request
- response
- entity
- enums
- repository
- service
- profile
- controller
- dto
- service
- user
- controller
- dto
- entity
- enums
- repository
- service
- support
- global
- appConfig
- aspect
- controller
- exception
- globalExceptionHandler
- init
- jwt
- refreshToken
- entity
- repository
- service
- rq
- rsData
- security
- standard/util
- resources
- test/java/com/back/domain/cocktail/controller
- terraform
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
121 files changed
+5901
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
0 commit comments