.
├── ./Dockerfile
├── ./README.md
├── ./package.json
├── ./src
│ ├── ./src/app.controller.spec.ts
│ ├── ./src/app.controller.ts
│ ├── ./src/app.module.ts
│ ├── ./src/app.service.ts
│ ├── ./src/constants
│ ├── ./src/entities
│ │ ├── ./src/entities/authorUser.entity.ts
│ │ ├── ./src/entities/base.entity.ts
│ │ ├── ./src/entities/blockComment.entity.ts
│ │ ├── ./src/entities/blockCommentNotification.entity.ts
│ │ ├── ./src/entities/blockCommentReaction.entity.ts
│ │ ├── ./src/entities/blockMemo.entity.ts
│ │ ├── ./src/entities/book.entity.ts
│ │ ├── ./src/entities/coupon.entity.ts
│ │ ├── ./src/entities/couponLog.entity.ts
│ │ ├── ./src/entities/couponUseLog.entity.ts
│ │ ├── ./src/entities/device.entity.ts
│ │ ├── ./src/entities/notification.entity.ts
│ │ ├── ./src/entities/notificationDevice.entity.ts
│ │ ├── ./src/entities/notionPage.entity.ts
│ │ ├── ./src/entities/oAuth.entity.ts
│ │ ├── ./src/entities/order.entity.ts
│ │ ├── ./src/entities/section.entity.ts
│ │ ├── ./src/entities/user.entity.ts
│ │ ├── ./src/entities/userBook.entity.ts
│ │ ├── ./src/entities/userBookmark.entity.ts
│ │ └── ./src/entities/userSetting.entity.ts
│ ├── ./src/errors
│ │ ├── ./src/errors/BookNotFoundException.ts
│ │ ├── ./src/errors/UserNotFoundException.ts
│ │ └── ./src/errors/index.ts
│ ├── ./src/filters
│ │ └── ./src/filters/EntityNotFoundException.filter.ts
│ ├── ./src/libs
│ │ ├── ./src/libs/notion-client
│ │ │ ├── ./src/libs/notion-client/index.ts
│ │ │ ├── ./src/libs/notion-client/notion-api.ts
│ │ │ └── ./src/libs/notion-client/types.ts
│ │ └── ./src/libs/notion-utils
│ │ ├── ./src/libs/notion-utils/getBlockCollectionId.ts
│ │ ├── ./src/libs/notion-utils/getPageContentBlockIds.ts
│ │ ├── ./src/libs/notion-utils/idToUuid.ts
│ │ ├── ./src/libs/notion-utils/index.ts
│ │ ├── ./src/libs/notion-utils/parsePageId.ts
│ │ └── ./src/libs/notion-utils/uuidToId.ts
│ ├── ./src/main.ts
│ ├── ./src/modules
│ │ ├── ./src/modules/auth
│ │ │ ├── ./src/modules/auth/auth.controller.ts
│ │ │ ├── ./src/modules/auth/auth.module.ts
│ │ │ ├── ./src/modules/auth/auth.service.ts
│ │ │ ├── ./src/modules/auth/decorators
│ │ │ │ ├── ./src/modules/auth/decorators/Client.decorator.ts
│ │ │ │ ├── ./src/modules/auth/decorators/Role.decorator.ts
│ │ │ │ └── ./src/modules/auth/decorators/index.ts
│ │ │ ├── ./src/modules/auth/dto
│ │ │ │ ├── ./src/modules/auth/dto/IssueToken.req.dto.ts
│ │ │ │ └── ./src/modules/auth/dto/oauth-google.dto.ts
│ │ │ ├── ./src/modules/auth/googleOAuth.service.ts
│ │ │ ├── ./src/modules/auth/guards
│ │ │ │ └── ./src/modules/auth/guards/role.guard.ts
│ │ │ ├── ./src/modules/auth/index.ts
│ │ │ ├── ./src/modules/auth/oAuth.service.ts
│ │ │ └── ./src/modules/auth/token.service.ts
│ │ ├── ./src/modules/book
│ │ │ ├── ./src/modules/book/book.controller.ts
│ │ │ ├── ./src/modules/book/book.module.ts
│ │ │ ├── ./src/modules/book/book.service.ts
│ │ │ ├── ./src/modules/book/bookAuth.service.ts
│ │ │ ├── ./src/modules/book/dto
│ │ │ │ ├── ./src/modules/book/dto/CreateBook.req.dto.ts
│ │ │ │ ├── ./src/modules/book/dto/ListAdminBook.req.dto.ts
│ │ │ │ ├── ./src/modules/book/dto/ListBook.req.dto.ts
│ │ │ │ └── ./src/modules/book/dto/UpdateBook.req.dto.ts
│ │ │ └── ./src/modules/book/modules
│ │ │ ├── ./src/modules/book/modules/author
│ │ │ │ ├── ./src/modules/book/modules/author/author.controller.ts
│ │ │ │ ├── ./src/modules/book/modules/author/author.module.ts
│ │ │ │ ├── ./src/modules/book/modules/author/author.service.ts
│ │ │ │ └── ./src/modules/book/modules/author/dto
│ │ │ │ ├── ./src/modules/book/modules/author/dto/AddAuthorUser.req.dto.ts
│ │ │ │ └── ./src/modules/book/modules/author/dto/UpdateAuthorUser.req.dto.ts
│ │ │ ├── ./src/modules/book/modules/bookmark
│ │ │ │ ├── ./src/modules/book/modules/bookmark/bookmark.controller.ts
│ │ │ │ ├── ./src/modules/book/modules/bookmark/bookmark.module.ts
│ │ │ │ ├── ./src/modules/book/modules/bookmark/bookmark.service.ts
│ │ │ │ └── ./src/modules/book/modules/bookmark/dto
│ │ │ │ └── ./src/modules/book/modules/bookmark/dto/createBookmark.req.dto.ts
│ │ │ └── ./src/modules/book/modules/section
│ │ │ ├── ./src/modules/book/modules/section/dto
│ │ │ │ ├── ./src/modules/book/modules/section/dto/LoadSection.req.dto.ts
│ │ │ │ ├── ./src/modules/book/modules/section/dto/LoadSection.res.dto.ts
│ │ │ │ └── ./src/modules/book/modules/section/dto/UpdateSection.req.dto.ts
│ │ │ ├── ./src/modules/book/modules/section/load.service.ts
│ │ │ ├── ./src/modules/book/modules/section/modules
│ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/comment.controller.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/comment.module.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/comment.service.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/dto
│ │ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/dto/CreateBlockComment.req.dto.ts
│ │ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockComment/dto/UpdateBlockComment.req.dto.ts
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockComment/modules
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/modules/blockCommentReaction
│ │ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/modules/blockCommentReaction/dto
│ │ │ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockComment/modules/blockCommentReaction/dto/CreateBlockCommentReaction.req.dto.ts
│ │ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/modules/blockCommentReaction/reaction.controller.ts
│ │ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/modules/blockCommentReaction/reaction.module.ts
│ │ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockComment/modules/blockCommentReaction/reaction.service.ts
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockComment/modules/notification
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/modules/notification/notification.controller.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockComment/modules/notification/notification.module.ts
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockComment/modules/notification/notification.service.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/blockMemo
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockMemo/dto
│ │ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockMemo/dto/CreateBlockMemo.req.dto.ts
│ │ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockMemo/dto/UpdateBlockMemo.req.dto.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockMemo/memo.controller.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/blockMemo/memo.module.ts
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/blockMemo/memo.service.ts
│ │ │ │ └── ./src/modules/book/modules/section/modules/export
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/export.module.ts
│ │ │ │ └── ./src/modules/book/modules/section/modules/export/pdf
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/assets
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/assets/logo-transparent-white-fit.png
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/export/pdf/assets/logo.png
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/convertPDF.service.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/downloadHTML.service.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/dto
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/export/pdf/dto/ExportPDF.req.dto.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/convertPDF.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/downloadNotionHTMLZip.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/getHTMLFileName.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/getPaths.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/mergePDF.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/preprocessHTML.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/removeHTMLZip.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/helpers/style.css
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/export/pdf/helpers/utils.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/pdf.controller.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/pdf.module.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/pdf.service.ts
│ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/utils
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/utils/convertToUUID.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/utils/sleep.ts
│ │ │ │ │ ├── ./src/modules/book/modules/section/modules/export/pdf/utils/timeout.ts
│ │ │ │ │ └── ./src/modules/book/modules/section/modules/export/pdf/utils/unzip.ts
│ │ │ │ └── ./src/modules/book/modules/section/modules/export/pdf/utils.service.ts
│ │ │ ├── ./src/modules/book/modules/section/section.controller.ts
│ │ │ ├── ./src/modules/book/modules/section/section.module.ts
│ │ │ └── ./src/modules/book/modules/section/section.service.ts
│ │ ├── ./src/modules/coupon
│ │ │ ├── ./src/modules/coupon/coupon.controller.ts
│ │ │ ├── ./src/modules/coupon/coupon.module.ts
│ │ │ ├── ./src/modules/coupon/coupon.service.ts
│ │ │ ├── ./src/modules/coupon/couponValidate.service.ts
│ │ │ └── ./src/modules/coupon/dto
│ │ │ ├── ./src/modules/coupon/dto/CreateCoupon.req.dto.ts
│ │ │ ├── ./src/modules/coupon/dto/ListCoupon.req.dto.ts
│ │ │ └── ./src/modules/coupon/dto/UpdateCoupon.req.dto.ts
│ │ ├── ./src/modules/notification
│ │ │ ├── ./src/modules/notification/notification.module.ts
│ │ │ └── ./src/modules/notification/notification.service.ts
│ │ ├── ./src/modules/notion
│ │ │ ├── ./src/modules/notion/notion.module.ts
│ │ │ └── ./src/modules/notion/notion.service.ts
│ │ ├── ./src/modules/notionPage
│ │ │ ├── ./src/modules/notionPage/dto
│ │ │ │ ├── ./src/modules/notionPage/dto/GetNotionPages.req.dto.ts
│ │ │ │ ├── ./src/modules/notionPage/dto/LoadNotionPage.req.dto.ts
│ │ │ │ ├── ./src/modules/notionPage/dto/LoadNotionPage.res.dto.ts
│ │ │ │ └── ./src/modules/notionPage/dto/ReloadNotionPage.req.dto.ts
│ │ │ ├── ./src/modules/notionPage/notionPage.controller.ts
│ │ │ ├── ./src/modules/notionPage/notionPage.module.ts
│ │ │ └── ./src/modules/notionPage/notionPage.service.ts
│ │ ├── ./src/modules/order
│ │ │ ├── ./src/modules/order/dto
│ │ │ │ └── ./src/modules/order/dto/listOrder.req.dto.ts
│ │ │ ├── ./src/modules/order/order.controller.ts
│ │ │ ├── ./src/modules/order/order.module.ts
│ │ │ └── ./src/modules/order/order.service.ts
│ │ ├── ./src/modules/s3
│ │ │ ├── ./src/modules/s3/dto
│ │ │ │ └── ./src/modules/s3/dto/UploadFile.req.dto.ts
│ │ │ ├── ./src/modules/s3/s3.controller.ts
│ │ │ ├── ./src/modules/s3/s3.module.ts
│ │ │ └── ./src/modules/s3/s3.service.ts
│ │ ├── ./src/modules/user
│ │ │ ├── ./src/modules/user/decorators
│ │ │ │ └── ./src/modules/user/decorators/UserId.decorator.ts
│ │ │ ├── ./src/modules/user/dto
│ │ │ │ ├── ./src/modules/user/dto/CreateUser.req.dto.ts
│ │ │ │ ├── ./src/modules/user/dto/ListUser.req.dto.ts
│ │ │ │ ├── ./src/modules/user/dto/SearchUser.req.dto.ts
│ │ │ │ └── ./src/modules/user/dto/UpdateUser.req.dto.ts
│ │ │ ├── ./src/modules/user/guards
│ │ │ │ └── ./src/modules/user/guards/userId.guard.ts
│ │ │ ├── ./src/modules/user/modules
│ │ │ │ ├── ./src/modules/user/modules/book
│ │ │ │ │ ├── ./src/modules/user/modules/book/book.controller.ts
│ │ │ │ │ ├── ./src/modules/user/modules/book/book.module.ts
│ │ │ │ │ └── ./src/modules/user/modules/book/book.service.ts
│ │ │ │ ├── ./src/modules/user/modules/device
│ │ │ │ │ ├── ./src/modules/user/modules/device/device.controller.ts
│ │ │ │ │ ├── ./src/modules/user/modules/device/device.module.ts
│ │ │ │ │ └── ./src/modules/user/modules/device/device.service.ts
│ │ │ │ ├── ./src/modules/user/modules/notification
│ │ │ │ │ ├── ./src/modules/user/modules/notification/dto
│ │ │ │ │ │ └── ./src/modules/user/modules/notification/dto/ListNotification.req.dto.ts
│ │ │ │ │ ├── ./src/modules/user/modules/notification/modules
│ │ │ │ │ │ └── ./src/modules/user/modules/notification/modules/device
│ │ │ │ │ │ ├── ./src/modules/user/modules/notification/modules/device/device.controller.ts
│ │ │ │ │ │ ├── ./src/modules/user/modules/notification/modules/device/device.module.ts
│ │ │ │ │ │ ├── ./src/modules/user/modules/notification/modules/device/device.service.ts
│ │ │ │ │ │ └── ./src/modules/user/modules/notification/modules/device/dto
│ │ │ │ │ │ └── ./src/modules/user/modules/notification/modules/device/dto/RegisterUserNotificationDevice.req.dto.ts
│ │ │ │ │ ├── ./src/modules/user/modules/notification/notification.controller.ts
│ │ │ │ │ ├── ./src/modules/user/modules/notification/notification.module.ts
│ │ │ │ │ └── ./src/modules/user/modules/notification/notification.service.ts
│ │ │ │ ├── ./src/modules/user/modules/order
│ │ │ │ │ ├── ./src/modules/user/modules/order/dto
│ │ │ │ │ │ ├── ./src/modules/user/modules/order/dto/ApproveOrder.req.dto.ts
│ │ │ │ │ │ ├── ./src/modules/user/modules/order/dto/CancelOrder.req.dto.ts
│ │ │ │ │ │ ├── ./src/modules/user/modules/order/dto/CashOrder.req.dto.ts
│ │ │ │ │ │ ├── ./src/modules/user/modules/order/dto/CreateOrder.req.dto.ts
│ │ │ │ │ │ └── ./src/modules/user/modules/order/dto/ListOrder.req.dto.ts
│ │ │ │ │ ├── ./src/modules/user/modules/order/order.controller.ts
│ │ │ │ │ ├── ./src/modules/user/modules/order/order.module.ts
│ │ │ │ │ └── ./src/modules/user/modules/order/order.service.ts
│ │ │ │ ├── ./src/modules/user/modules/setting
│ │ │ │ │ ├── ./src/modules/user/modules/setting/dto
│ │ │ │ │ │ └── ./src/modules/user/modules/setting/dto/UpdateUserSetting.req.dto.ts
│ │ │ │ │ ├── ./src/modules/user/modules/setting/setting.controller.ts
│ │ │ │ │ ├── ./src/modules/user/modules/setting/setting.module.ts
│ │ │ │ │ └── ./src/modules/user/modules/setting/setting.service.ts
│ │ │ │ └── ./src/modules/user/modules/utils
│ │ │ │ ├── ./src/modules/user/modules/utils/userUtils.module.ts
│ │ │ │ └── ./src/modules/user/modules/utils/userUtils.service.ts
│ │ │ ├── ./src/modules/user/user.controller.ts
│ │ │ ├── ./src/modules/user/user.module.ts
│ │ │ └── ./src/modules/user/user.service.ts
│ │ ├── ./src/modules/utils
│ │ │ └── ./src/modules/utils/notion
│ │ │ ├── ./src/modules/utils/notion/getProp.ts
│ │ │ └── ./src/modules/utils/notion/getTitleProp.ts
│ │ └── ./src/modules/webhook
│ │ ├── ./src/modules/webhook/embeds
│ │ │ ├── ./src/modules/webhook/embeds/CancelOrderEmbed.ts
│ │ │ ├── ./src/modules/webhook/embeds/DeleteBookEmbed.ts
│ │ │ ├── ./src/modules/webhook/embeds/DeleteUserEmbed.ts
│ │ │ ├── ./src/modules/webhook/embeds/NewBookEmbed.ts
│ │ │ ├── ./src/modules/webhook/embeds/NewUserByAdminEmbed.ts
│ │ │ ├── ./src/modules/webhook/embeds/NewUserEmbed.ts
│ │ │ ├── ./src/modules/webhook/embeds/OrderApprovedEmbed.ts
│ │ │ └── ./src/modules/webhook/embeds/UpdateBookEmbed.ts
│ │ ├── ./src/modules/webhook/webhook.module.ts
│ │ └── ./src/modules/webhook/webhook.service.ts
│ ├── ./src/objects
│ │ ├── ./src/objects/adminBook.object.ts
│ │ ├── ./src/objects/adminSection.object.ts
│ │ ├── ./src/objects/adminSectionPreview.object.ts
│ │ ├── ./src/objects/blockComment.object.ts
│ │ ├── ./src/objects/blockCommentReaction.object.ts
│ │ ├── ./src/objects/blockMemo.object.ts
│ │ ├── ./src/objects/book.object.ts
│ │ ├── ./src/objects/childBlockComment.object.ts
│ │ ├── ./src/objects/childBlockMemo.object.ts
│ │ ├── ./src/objects/coupon.object.ts
│ │ ├── ./src/objects/couponLog.object.ts
│ │ ├── ./src/objects/couponUseLog.object.ts
│ │ ├── ./src/objects/device.object.ts
│ │ ├── ./src/objects/notification.object.ts
│ │ ├── ./src/objects/notionPage.object.ts
│ │ ├── ./src/objects/order.object.ts
│ │ ├── ./src/objects/parentBlockComment.object.ts
│ │ ├── ./src/objects/parentBlockMemo.object.ts
│ │ ├── ./src/objects/section.object.ts
│ │ ├── ./src/objects/sectionPreview.object.ts
│ │ ├── ./src/objects/user.object.ts
│ │ └── ./src/objects/userSetting.object.ts
│ └── ./src/types
│ ├── ./src/types/ClientUser.ts
│ └── ./src/types/express.d.ts
├── ./tree.txt
├── ./tsconfig.build.json
├── ./tsconfig.json
├── ./yarn-error.log
└── ./yarn.lock
5307 directories, 49076 files