From 683f04742ab968a8466f9964468dd7be0175b739 Mon Sep 17 00:00:00 2001 From: youngbeom Date: Thu, 22 Jan 2026 15:48:56 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EB=B3=80=EA=B2=BD=20(=EC=95=BD=EA=B4=80=20?= =?UTF-8?q?=EB=8F=99=EC=9D=98=20=EC=8B=9C=EC=97=90=20db=EC=97=90=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B6=94=EA=B0=80=20=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/rup.iml | 35 + app/.metadata | 4 +- app/assets/fonts/SCDream-regular.otf | Bin 0 -> 729724 bytes app/assets/icons/appointmenticon.svg | 3 + app/assets/icons/catdogicon.svg | 40 + app/assets/icons/homeicon.svg | 3 + app/assets/icons/myicon.svg | 4 + app/assets/icons/shopicon.svg | 5 + app/assets/img/catdog_off.png | Bin 0 -> 902 bytes app/assets/img/catdog_on.png | Bin 0 -> 887 bytes app/lib/data/terms_data.dart | 34 + app/lib/main.dart | 27 +- app/lib/screens/home_screen.dart | 38 +- .../screens/identity_verification_screen.dart | 141 ++ app/lib/screens/login_screen.dart | 27 +- app/lib/screens/main_screen.dart | 118 ++ app/lib/screens/mungnyangz_screen.dart | 50 + app/lib/screens/my_info_screen.dart | 398 +++++ app/lib/screens/notice_screen.dart | 100 ++ app/lib/screens/reservation_screen.dart | 19 + app/lib/screens/shop_screen.dart | 19 + app/lib/screens/signup_screen.dart | 32 +- app/lib/screens/splash_screen.dart | 21 +- app/lib/screens/terms_agreement_screen.dart | 404 +++++ app/lib/services/auth_service.dart | 265 ++- app/lib/theme/app_colors.dart | 15 + app/lib/utils/log_manager.dart | 24 + .../flutter/generated_plugin_registrant.cc | 4 + app/linux/flutter/generated_plugins.cmake | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 2 + app/pubspec.lock | 242 ++- app/pubspec.yaml | 4 + app/test/widget_test.dart | 17 +- .../flutter/generated_plugin_registrant.cc | 3 + app/windows/flutter/generated_plugins.cmake | 1 + backend/.dockerignore | 3 + backend/config/db.js | 40 + backend/controllers/authController.js | 285 +++ backend/dockerfile | 1 - backend/index.js | 29 +- backend/middleware/authMiddleware.js | 26 + backend/models/user.js | 46 + backend/package-lock.json | 1541 ++++++++++++++++- backend/package.json | 10 +- backend/routes/auth.js | 23 + docker-compose.yml | 3 +- reinstall.bat | 23 + 47 files changed, 4020 insertions(+), 110 deletions(-) create mode 100644 app/assets/fonts/SCDream-regular.otf create mode 100644 app/assets/icons/appointmenticon.svg create mode 100644 app/assets/icons/catdogicon.svg create mode 100644 app/assets/icons/homeicon.svg create mode 100644 app/assets/icons/myicon.svg create mode 100644 app/assets/icons/shopicon.svg create mode 100644 app/assets/img/catdog_off.png create mode 100644 app/assets/img/catdog_on.png create mode 100644 app/lib/data/terms_data.dart create mode 100644 app/lib/screens/identity_verification_screen.dart create mode 100644 app/lib/screens/main_screen.dart create mode 100644 app/lib/screens/mungnyangz_screen.dart create mode 100644 app/lib/screens/my_info_screen.dart create mode 100644 app/lib/screens/notice_screen.dart create mode 100644 app/lib/screens/reservation_screen.dart create mode 100644 app/lib/screens/shop_screen.dart create mode 100644 app/lib/screens/terms_agreement_screen.dart create mode 100644 app/lib/theme/app_colors.dart create mode 100644 app/lib/utils/log_manager.dart create mode 100644 backend/.dockerignore create mode 100644 backend/config/db.js create mode 100644 backend/controllers/authController.js create mode 100644 backend/middleware/authMiddleware.js create mode 100644 backend/models/user.js create mode 100644 backend/routes/auth.js create mode 100644 reinstall.bat diff --git a/.idea/rup.iml b/.idea/rup.iml index 088e44c..b8f276c 100644 --- a/.idea/rup.iml +++ b/.idea/rup.iml @@ -6,8 +6,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/.metadata b/app/.metadata index 08c2478..6650897 100644 --- a/app/.metadata +++ b/app/.metadata @@ -41,5 +41,5 @@ migration: # # Files that are not part of the templates will be ignored by default. unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' + - "lib/main.dart" + - "ios/Runner.xcodeproj/project.pbxproj" diff --git a/app/assets/fonts/SCDream-regular.otf b/app/assets/fonts/SCDream-regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..1978ea436db405ebf434d713422a851787332688 GIT binary patch literal 729724 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ˍs3dx-WD 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

a3*S$EBad&~BcAt-`Re%=s?sDiPJ> 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%0AYIFyWyg9k4wK8HoC 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 + + diff --git a/app/assets/icons/catdogicon.svg b/app/assets/icons/catdogicon.svg new file mode 100644 index 0000000..0ef6def --- /dev/null +++ b/app/assets/icons/catdogicon.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/icons/homeicon.svg b/app/assets/icons/homeicon.svg new file mode 100644 index 0000000..fc6de4c --- /dev/null +++ b/app/assets/icons/homeicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/icons/myicon.svg b/app/assets/icons/myicon.svg new file mode 100644 index 0000000..2253fb4 --- /dev/null +++ b/app/assets/icons/myicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/assets/icons/shopicon.svg b/app/assets/icons/shopicon.svg new file mode 100644 index 0000000..75df13b --- /dev/null +++ b/app/assets/icons/shopicon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/app/assets/img/catdog_off.png b/app/assets/img/catdog_off.png new file mode 100644 index 0000000000000000000000000000000000000000..114cb0794a51d035b4d9fb6341b8c9f998bbc328 GIT binary patch literal 902 zcmV;119|+3P)86`XpP>2#+9!}cftv2xMRC)ukS1=OCbj;w z4Y<;}fH7&KsXq*i@+ZUeoMDClnUh@R+;chK{m$QIpig#pcatucYo*iaB-`yanG{@E zkH?d9I-P=|DATx4;o?mfN!Rs_+1c5Qg~3?L{{H?79;W?%KTJ$az|qmsA)15a91e#; z(=;d+i`FHlrrWdu!Z7J*H2SUwh|Cty_z6`x5D3UqQ&Y)uxm-Y|3bCD>oP_i9b10Qc zZ{zX!S|5oNl2}DmK>ybWnq?4-Hrr&x!w@n|34*W+Ln6y^CKL)S4%>Hjc0`Wj^28j| z6=G3I5*V%w=0e7NiOpscYPA|%UtjkeRaMP_jU*C@0_BlXQ?J(-n7zF{VwWU#^oK|! zQlcF83tf=U=jYhQ1s|Pzm9^|>;~R|zZ-%^$>B+GskV5QOmK9GYS`^%W zwl;rleO&$V<$e0+)`vCb_ve!H;#&%RCBi`eX@}`Um7_`uKA#UTCj;y%l}drpTLPms z!TIm|vUR3&F1YojBtzHr3bN!`^Gu*0x7(fZdPb${Wf`i~s)*vLVS9UmX(p7 z#++J}rlNG6*ntaLtvmR8c2zKk0x;5bqf=-Ti^XW1vX}!A3n7xtd>nd!ePeHkdRwP% zSb^?@ZCE4OyB5c0kqU%8Hw4rbO>6gbrFskMO@mrRG+&zqu)P)qCua@YWCKFwB9+!WNLE{}r)2$Fr{pwoG$8d}a%13H2s^=xL)qlg*x$ c%u%zI|7it*n+Ri7I{*Lx07*qoM6N<$f}nAjDgXcg literal 0 HcmV?d00001 diff --git a/app/assets/img/catdog_on.png b/app/assets/img/catdog_on.png new file mode 100644 index 0000000000000000000000000000000000000000..c719865f4fd8a35ee8b8e3ce718f55a78dd8c721 GIT binary patch literal 887 zcmV--1Bm>IP)~rgf1Pt zxohB|2pU1ii|&e;_ScngHFbA--`ml3m$e5o%=gXre((3*`@K)#fZ6w9qO`IP=^YbW zNx3Co}T>2D25hKPHF%NTTT<8*1yC_jMncWs`-x`l|4G)?O z@YvU$@>FQY9{t*nLfL5!kWLs;0*<(7!zbxVc3g)rl_EeH)EGIyZ(kBgudc70y!h(J zpcTvr_qxbzYx7!trziD&;8gF2Af=v^O>#LdNvCT%H^8Iivs;K-8R62?Y6(`WF9h~} zsp)OhFT9Io>0+JyHO2X-^LrN|TfZDj&wm8wr|6-xDT>u_)xYD>_Ullo?xM<<&ERi| z*L28~Nn(;ARUdUy)Fg$N-8c~uS00+EYso94%Uxn9ZV$@OwxPV?5|oXf5M`&aky_F0 zz@&k!*k>f5q%5PG{9W5>Cb=9IxqEQApSmEZ8>TT7|#bVpI&1gO1`xB1M4bxWEMdV|?L)(=nWD%A(@Oq+Sp6`3EWf1oSVRG~xgN N002ovPDHLkV1h?+n%)2a literal 0 HcmV?d00001 diff --git a/app/lib/data/terms_data.dart b/app/lib/data/terms_data.dart new file mode 100644 index 0000000..3e0a67f --- /dev/null +++ b/app/lib/data/terms_data.dart @@ -0,0 +1,34 @@ +class TermsData { + static const List> terms = [ + { + 'title': '[제1조 목적]', + 'content': + '본 약관은 RUP(이하 "회사")가 제공하는 서비스 이용과 관련하여 회사와 회원의 권리, 의무 및 책임사항을 규정함을 목적으로 합니다.\\n\\n[제2조 정의]\\n1. "서비스"란 구현되는 단말기와 상관없이 회원이 이용할 수 있는 RUP 및 관련 제반 서비스를 의미합니다.\\n2. "회원"이란 회사의 서비스에 접속하여 본 약관에 따라 회사와 이용계약을 체결하고 회사가 제공하는 서비스를 이용하는 고객을 말합니다.', + }, + { + 'title': '[개인정보 수집 및 이용 동의]', + 'content': + '회사는 회원가입, 고객상담, 서비스 신청 등을 위해 아래와 같은 개인정보를 수집하고 있습니다.\\n\\n1. 수집 항목\\n- 필수항목: 이메일, 닉네임, 비밀번호, 서비스 이용 기록\\n- 선택항목: 프로필 사진, 위치 정보\\n\\n2. 수집 목적\\n- 서비스 제공, 회원 관리, 신규 서비스 개발 및 마케팅 광고에의 활용', + }, + { + 'title': '[개인정보 제3자 제공 동의]', + 'content': + '회사는 이용자의 개인정보를 원칙적으로 외부에 제공하지 않습니다. 다만, 아래의 경우에는 예외로 합니다.\\n\\n1. 이용자들이 사전에 동의한 경우\\n2. 법령의 규정에 의거하거나, 수사 목적으로 법령에 정해진 절차와 방법에 따라 수사기관의 요구가 있는 경우', + }, + { + 'title': '[만 14세 이상 이용 동의]', + 'content': + '본 서비스는 만 14세 이상만 이용 가능합니다.\\n만 14세 미만 아동의 경우 회원가입 및 서비스 이용이 제한될 수 있습니다.', + }, + { + 'title': '[위치기반 서비스 이용약관]', + 'content': + '본 약관은 회사가 제공하는 위치기반서비스와 관련하여 회사와 개인위치정보주체와의 권리, 의무 및 책임사항, 기타 필요한 사항을 규정함을 목적으로 합니다.\\n\\n회사는 이용자의 위치 정보를 이용하여 주변 펫 프렌들리 장소 추천 등의 서비스를 제공합니다.', + }, + { + 'title': '[마케팅 정보 수신 동의]', + 'content': + '회사가 제공하는 이벤트, 혜택, 뉴스레터 등 다양한 마케팅 정보를 이메일, 앱 푸시 알림 등으로 받아보실 수 있습니다.\\n\\n동의를 거부하시더라도 기본 서비스 이용에는 제한이 없으나, 이벤트 참여 및 혜택 제공이 제한될 수 있습니다.', + }, + ]; +} diff --git a/app/lib/main.dart b/app/lib/main.dart index 24fbcc2..10958ef 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -1,16 +1,33 @@ import 'package:flutter/material.dart'; +import 'package:flutter/foundation.dart'; import 'package:firebase_core/firebase_core.dart'; -import 'screens/splash_screen.dart'; import 'dart:developer'; +import 'screens/splash_screen.dart'; +import 'utils/log_manager.dart'; + +final GlobalKey navigatorKey = GlobalKey(); void main() async { WidgetsFlutterBinding.ensureInitialized(); + + // 글로벌 에러 핸들링 + FlutterError.onError = (FlutterErrorDetails details) { + FlutterError.presentError(details); + LogManager().addLog('[APP ERROR] ${details.exception}'); + }; + + PlatformDispatcher.instance.onError = (error, stack) { + LogManager().addLog('[Uncaught Error] $error'); + return true; + }; + try { await Firebase.initializeApp(); } catch (e) { log('Firebase initialization failed: $e'); + LogManager().addLog('[Firebase Init Error] $e'); } - runApp(RupApp()); + runApp(const RupApp()); } class RupApp extends StatelessWidget { @@ -18,6 +35,10 @@ class RupApp extends StatelessWidget { @override Widget build(BuildContext context) { - return MaterialApp(debugShowCheckedModeBanner: false, home: SplashScreen()); + return MaterialApp( + navigatorKey: navigatorKey, + debugShowCheckedModeBanner: false, + home: const SplashScreen(), + ); } } diff --git a/app/lib/screens/home_screen.dart b/app/lib/screens/home_screen.dart index 028ed83..ebeec3f 100644 --- a/app/lib/screens/home_screen.dart +++ b/app/lib/screens/home_screen.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'welcome_screen.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @@ -7,33 +6,16 @@ class HomeScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( - title: const Text( - '홈', - style: TextStyle(fontFamily: 'SCDream', fontWeight: FontWeight.bold), - ), - centerTitle: true, - actions: [ - IconButton( - icon: const Icon(Icons.logout), - onPressed: () { - // Mock Logout: Go back to Welcome Screen - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => const WelcomeScreen()), - ); - }, - ), - ], - ), - body: const Center( - child: Text( - '로그인 성공!\n여기는 메인 홈 화면입니다.', - textAlign: TextAlign.center, - style: TextStyle( - fontFamily: 'SCDream', - fontWeight: FontWeight.w500, - fontSize: 18, + body: const SafeArea( + child: Center( + child: Text( + '로그인 성공!\n여기는 메인 홈 화면입니다.', + textAlign: TextAlign.center, + style: TextStyle( + fontFamily: 'SCDream', + fontWeight: FontWeight.w500, + fontSize: 18, + ), ), ), ), diff --git a/app/lib/screens/identity_verification_screen.dart b/app/lib/screens/identity_verification_screen.dart new file mode 100644 index 0000000..049c6f3 --- /dev/null +++ b/app/lib/screens/identity_verification_screen.dart @@ -0,0 +1,141 @@ +import 'package:flutter/material.dart'; +import 'main_screen.dart'; + +class IdentityVerificationScreen extends StatelessWidget { + const IdentityVerificationScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black, size: 20), + onPressed: () => Navigator.pop(context), + ), + title: const Text( + '본인 인증', + style: TextStyle( + fontSize: 15, + fontFamily: 'SCDream', + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + centerTitle: true, + ), + body: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const SizedBox(height: 20), + const Text( + '더 안전한 서비스 이용을 위해\n본인 인증을 진행해 주세요.', + style: TextStyle( + fontSize: 20, + fontFamily: 'SCDream', + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + const SizedBox(height: 40), + + // 본인 인증 UI (Placeholder) + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.grey[100], + borderRadius: BorderRadius.circular(10), + border: Border.all(color: Colors.grey[300]!), + ), + child: Column( + children: [ + const Icon( + Icons.shield_outlined, + size: 50, + color: Color(0xFFFF7500), + ), + const SizedBox(height: 10), + const Text( + 'PASS / 문자 인증', + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 10), + const Text( + '(현재 UI만 구현된 상태입니다)', + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 12, + color: Colors.grey, + ), + ), + ], + ), + ), + + const Spacer(), + + // 건너뛰기 버튼 + TextButton( + onPressed: () { + // 홈 화면으로 이동 (로그인 프로세스 완료) + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + (route) => false, + ); + }, + child: const Text( + '다음에 하기 (건너뛰기)', + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.grey, + decoration: TextDecoration.underline, + ), + ), + ), + const SizedBox(height: 10), + + // 인증하기 버튼 (현재는 동작 X) + SizedBox( + height: 50, + child: ElevatedButton( + onPressed: () { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('본인 인증 기능은 추후 구현 예정입니다.')), + ); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFF7500), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: const Text( + '인증하기', + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + const SizedBox(height: 10), + ], + ), + ), + ); + } +} diff --git a/app/lib/screens/login_screen.dart b/app/lib/screens/login_screen.dart index bc50af3..67005be 100644 --- a/app/lib/screens/login_screen.dart +++ b/app/lib/screens/login_screen.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import '../services/auth_service.dart'; -import 'home_screen.dart'; +import 'main_screen.dart'; +import 'terms_agreement_screen.dart'; // Import TermsAgreementScreen class LoginScreen extends StatefulWidget { const LoginScreen({super.key}); @@ -20,15 +21,27 @@ class _LoginScreenState extends State { try { final authService = AuthService(); - final user = await authService.signInWithGoogle(); + final result = await authService.signInWithGoogle(); if (!mounted) return; - if (user != null) { - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => const HomeScreen()), - ); + if (result != null) { + final isNewUser = result['isNewUser'] as bool; + + if (isNewUser) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + TermsAgreementScreen(idToken: result['idToken']), + ), + ); + } else { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + ); + } } else { ScaffoldMessenger.of( context, diff --git a/app/lib/screens/main_screen.dart b/app/lib/screens/main_screen.dart new file mode 100644 index 0000000..cfeab69 --- /dev/null +++ b/app/lib/screens/main_screen.dart @@ -0,0 +1,118 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'home_screen.dart'; +import 'reservation_screen.dart'; +import 'mungnyangz_screen.dart'; +import 'shop_screen.dart'; +import 'my_info_screen.dart'; + +import '../theme/app_colors.dart'; + +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); + + @override + State createState() => _MainScreenState(); +} + +class _MainScreenState extends State { + int _selectedIndex = 0; + + // 탭별 화면 리스트 + final List _screens = [ + const HomeScreen(), + const ReservationScreen(), + const MungNyangzScreen(), + const ShopScreen(), + const MyInfoScreen(), + ]; + + void _onItemTapped(int index) { + setState(() { + _selectedIndex = index; + }); + } + + // SVG 아이콘 빌더 (선택 여부에 따라 색상 변경) + Widget _buildSvgIcon(String assetName, int index) { + return SvgPicture.asset( + assetName, + width: 24, + height: 24, + colorFilter: ColorFilter.mode( + _selectedIndex == index + ? AppColors.highlight + : AppColors.inactive, // 선택됨: 강조색, 안됨: 비활성화색 + BlendMode.srcIn, + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: IndexedStack(index: _selectedIndex, children: _screens), + bottomNavigationBar: BottomNavigationBar( + currentIndex: _selectedIndex, + onTap: _onItemTapped, + type: BottomNavigationBarType.fixed, + selectedItemColor: AppColors.highlight, + unselectedItemColor: AppColors.inactive, + selectedLabelStyle: TextStyle( + fontFamily: 'SCDream', + fontSize: 12, + fontWeight: FontWeight.w500, // Medium + ), + unselectedLabelStyle: TextStyle( + fontFamily: 'SCDream', + fontSize: 12, + fontWeight: FontWeight.w400, // Regular + ), + showUnselectedLabels: true, + items: [ + BottomNavigationBarItem( + icon: Padding( + padding: const EdgeInsets.only(bottom: 10), + child: _buildSvgIcon('assets/icons/homeicon.svg', 0), + ), + label: '홈', + ), + BottomNavigationBarItem( + icon: Padding( + padding: const EdgeInsets.only(bottom: 10), + child: _buildSvgIcon('assets/icons/appointmenticon.svg', 1), + ), + label: '예약/조회', + ), + BottomNavigationBarItem( + icon: Padding( + padding: const EdgeInsets.only(bottom: 10), + child: Image.asset( + _selectedIndex == 2 + ? 'assets/img/catdog_on.png' + : 'assets/img/catdog_off.png', + width: 24, + height: 24, + ), + ), + label: '멍냥즈', + ), + BottomNavigationBarItem( + icon: Padding( + padding: const EdgeInsets.only(bottom: 10), + child: _buildSvgIcon('assets/icons/shopicon.svg', 3), + ), + label: '상점', + ), + BottomNavigationBarItem( + icon: Padding( + padding: const EdgeInsets.only(bottom: 10), + child: _buildSvgIcon('assets/icons/myicon.svg', 4), + ), + label: '내 정보', + ), + ], + ), + ); + } +} diff --git a/app/lib/screens/mungnyangz_screen.dart b/app/lib/screens/mungnyangz_screen.dart new file mode 100644 index 0000000..2ddfb6f --- /dev/null +++ b/app/lib/screens/mungnyangz_screen.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; + +import '../utils/log_manager.dart'; + +class MungNyangzScreen extends StatelessWidget { + const MungNyangzScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SafeArea( + child: ValueListenableBuilder>( + valueListenable: LogManager().logs, + builder: (context, logs, child) { + if (logs.isEmpty) { + return const Center( + child: Text('로그가 없습니다.', style: TextStyle(color: Colors.grey)), + ); + } + return ListView.builder( + padding: const EdgeInsets.all(10), + itemCount: logs.length, + itemBuilder: (context, index) { + return Container( + margin: const EdgeInsets.only(bottom: 5), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.black12, + borderRadius: BorderRadius.circular(5), + ), + child: Text( + logs[index], + style: const TextStyle(fontSize: 12, fontFamily: 'SCDream'), + ), + ); + }, + ); + }, + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + LogManager().clear(); + }, + mini: true, + child: const Icon(Icons.delete), + ), + ); + } +} diff --git a/app/lib/screens/my_info_screen.dart b/app/lib/screens/my_info_screen.dart new file mode 100644 index 0000000..36c2d1e --- /dev/null +++ b/app/lib/screens/my_info_screen.dart @@ -0,0 +1,398 @@ +import 'package:flutter/material.dart'; +import '../services/auth_service.dart'; +import 'welcome_screen.dart'; +import 'notice_screen.dart'; // 공지사항 화면 임포트 +import '../data/terms_data.dart'; // 데이터 임포트 + +class MyInfoScreen extends StatefulWidget { + const MyInfoScreen({super.key}); + + @override + State createState() => _MyInfoScreenState(); +} + +class _MyInfoScreenState extends State { + final AuthService _authService = AuthService(); + Map? _userInfo; + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _fetchUserInfo(); + } + + Future _fetchUserInfo() async { + try { + final info = await _authService.getUserInfo(); + if (mounted) { + setState(() { + _userInfo = info; + }); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('정보를 불러올 수 없습니다. 잠시 후 다시 시도해주세요.')), + ); + } + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _handleLogout() async { + await _authService.signOut(); + if (mounted) { + Navigator.of(context).pushAndRemoveUntil( + MaterialPageRoute(builder: (context) => const WelcomeScreen()), + (route) => false, + ); + } + } + + Future _handleWithdraw() async { + bool? confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('회원 탈퇴'), + content: const Text('정말로 탈퇴하시겠습니까?\n모든 데이터가 삭제되며 복구할 수 없습니다.'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text('취소'), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: const Text('탈퇴하기', style: TextStyle(color: Colors.red)), + ), + ], + ), + ); + + if (confirm == true) { + if (!mounted) return; + final success = await _authService.withdrawAccount(); + if (success && mounted) { + Navigator.of(context).pushAndRemoveUntil( + MaterialPageRoute(builder: (context) => const WelcomeScreen()), + (route) => false, + ); + } else { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('탈퇴 처리에 실패했습니다. 다시 시도해주세요.')), + ); + } + } + } + } + + // 통합 약관 모달 보여주기 + void _showAllTermsModal(BuildContext context) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, // 둥근 모서리 적용을 위해 투명 + builder: (context) { + return DraggableScrollableSheet( + initialChildSize: 0.85, // 화면의 85% 높이로 시작 + minChildSize: 0.5, + maxChildSize: 0.95, + builder: (_, controller) { + return Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + padding: const EdgeInsets.fromLTRB(20, 10, 20, 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 핸들 바 + Center( + child: Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(bottom: 20, top: 10), + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ), + + // 헤더 + const Row( + children: [ + Icon(Icons.description, size: 24, color: Colors.black87), + SizedBox(width: 8), + Text( + '서비스 이용 약관 전체보기', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + ), + ), + ], + ), + const SizedBox(height: 20), + + // 스크롤 가능한 본문 (모든 약관 내용 통합) + Expanded( + child: ListView.separated( + controller: controller, // 드래그 가능한 스크롤 컨트롤러 연결 + itemCount: TermsData.terms.length, + separatorBuilder: (context, index) => const Padding( + padding: EdgeInsets.symmetric(vertical: 20), + child: Divider(color: Color(0xFFEEEEEE), thickness: 1), + ), + itemBuilder: (context, index) { + final term = TermsData.terms[index]; + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + term['title']!, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFFFF7500), // 강조색 + fontFamily: 'SCDream', + ), + ), + const SizedBox(height: 10), + Text( + term['content']!, + style: const TextStyle( + fontSize: 14, + height: 1.6, + color: Colors.black87, + fontFamily: 'SCDream', + ), + ), + ], + ); + }, + ), + ), + + const SizedBox(height: 10), + // 닫기 버튼 + SizedBox( + width: double.infinity, + height: 52, + child: ElevatedButton( + onPressed: () => Navigator.pop(context), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFF7500), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + elevation: 0, + ), + child: const Text( + '닫기', + style: TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + ), + ), + ), + ), + ], + ), + ); + }, + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Scaffold(body: Center(child: CircularProgressIndicator())); + } + + return Scaffold( + backgroundColor: Colors.white, + body: _userInfo == null + ? const Center(child: Text('정보를 불러올 수 없습니다.')) + : SafeArea( + child: Column( + // Column으로 변경하여 하단 고정 영역 확보 + children: [ + Expanded( + // 상단 스크롤 영역 + child: SingleChildScrollView( + padding: const EdgeInsets.all(20), + child: Column( + children: [ + Container( + width: double.infinity, + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.grey[100], + borderRadius: BorderRadius.circular(16), + ), + child: Column( + children: [ + const CircleAvatar( + radius: 40, + backgroundColor: Colors.grey, + child: Icon( + Icons.person, + size: 50, + color: Colors.white, + ), + ), + const SizedBox(height: 16), + Text( + _userInfo!['nickname'] ?? '이름 없음', + style: const TextStyle( + fontFamily: 'SCDream', + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + _userInfo!['email'] ?? '이메일 없음', + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 14, + color: Colors.grey[600], + ), + ), + ], + ), + ), + const SizedBox(height: 30), + _buildMenuItem( + title: '공지사항', + icon: Icons.campaign_outlined, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const NoticeScreen(), + ), + ); + }, + ), + const SizedBox(height: 10), + _buildMenuItem( + title: '서비스 이용 약관', + icon: Icons.description_outlined, + onTap: () => _showAllTermsModal(context), + ), + const SizedBox(height: 10), + _buildMenuItem( + title: '버전 정보', + icon: Icons.info_outline, + trailingText: '1.0.0', + onTap: () {}, // 클릭 효과를 위해 빈 함수 전달 + ), + // 회원 탈퇴 버튼 removed from here + ], + ), + ), + ), + + // 하단 고정 영역 (로그아웃 & 탈퇴) + Padding( + padding: const EdgeInsets.fromLTRB(20, 0, 20, 30), + child: Column( + children: [ + // 로그아웃 버튼 (회원탈퇴 위로 이동) + _buildMenuItem( + title: '로그아웃', + icon: Icons.logout, + onTap: _handleLogout, + ), + + const SizedBox(height: 10), + + // 회원 탈퇴 버튼 + _buildMenuItem( + title: '회원 탈퇴', + icon: Icons.person_off_outlined, + isDestructive: true, + onTap: _handleWithdraw, + ), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildMenuItem({ + required String title, + required IconData icon, + VoidCallback? onTap, // onTap을 nullable로 변경 + bool isDestructive = false, + String? trailingText, // 뒤에 텍스트를 표시할 수 있도록 추가 + }) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.grey[200]!), + borderRadius: BorderRadius.circular(12), + ), + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: onTap, + borderRadius: BorderRadius.circular(12), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 20), + child: Row( + children: [ + Icon(icon, color: isDestructive ? Colors.red : Colors.black54), + const SizedBox(width: 16), + Expanded( + child: Text( + title, + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 16, + fontWeight: FontWeight.w500, // Medium + color: isDestructive ? Colors.red : Colors.black, + ), + ), + ), + if (trailingText != null) + Text( + trailingText, + style: const TextStyle( + fontFamily: 'SCDream', + fontSize: 14, + color: Colors.grey, + fontWeight: FontWeight.bold, + ), + ) + else + Icon( + Icons.arrow_forward_ios, + size: 16, + color: isDestructive ? Colors.red : Colors.grey, + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/app/lib/screens/notice_screen.dart b/app/lib/screens/notice_screen.dart new file mode 100644 index 0000000..318a0da --- /dev/null +++ b/app/lib/screens/notice_screen.dart @@ -0,0 +1,100 @@ +import 'package:flutter/material.dart'; + +class NoticeScreen extends StatelessWidget { + const NoticeScreen({super.key}); + + final List> notices = const [ + { + 'title': 'RUP 서비스 런칭 안내', + 'date': '2024.01.20', + 'content': '반려동물 통합 관리 플랫폼 RUP가 정식 런칭되었습니다. 많은 이용 부탁드립니다.', + }, + { + 'title': '시스템 점검 안내', + 'date': '2024.01.15', + 'content': '더나은 서비스를 위해 시스템 점검이 진행될 예정입니다.\n일시: 2024.01.25 02:00 ~ 04:00', + }, + { + 'title': '이용약관 개정 안내', + 'date': '2024.01.10', + 'content': '서비스 이용약관이 일부 개정되었습니다. 주요 변경사항을 확인해주세요.', + }, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text( + '공지사항', + style: TextStyle( + fontFamily: 'SCDream', + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + centerTitle: true, + backgroundColor: Colors.white, + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black, size: 20), + onPressed: () => Navigator.pop(context), + ), + ), + body: ListView.separated( + itemCount: notices.length, + separatorBuilder: (context, index) => + const Divider(height: 1, color: Color(0xFFEEEEEE)), + itemBuilder: (context, index) { + final notice = notices[index]; + return ExpansionTile( + tilePadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 8, + ), + title: Text( + notice['title']!, + style: const TextStyle( + fontFamily: 'SCDream', + fontSize: 16, + fontWeight: FontWeight.w500, + color: Colors.black87, + ), + ), + subtitle: Padding( + padding: const EdgeInsets.only(top: 4), + child: Text( + notice['date']!, + style: TextStyle( + fontFamily: 'SCDream', + fontSize: 12, + color: Colors.grey[500], + ), + ), + ), + children: [ + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 20, + ), + color: Colors.grey[50], + child: Text( + notice['content']!, + style: const TextStyle( + fontFamily: 'SCDream', + fontSize: 14, + height: 1.5, + color: Colors.black87, + ), + ), + ), + ], + ); + }, + ), + ); + } +} diff --git a/app/lib/screens/reservation_screen.dart b/app/lib/screens/reservation_screen.dart new file mode 100644 index 0000000..e79e429 --- /dev/null +++ b/app/lib/screens/reservation_screen.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; + +class ReservationScreen extends StatelessWidget { + const ReservationScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: const SafeArea( + child: Center( + child: Text( + '예약 조회 화면 준비 중입니다.', + style: TextStyle(fontFamily: 'SCDream'), + ), + ), + ), + ); + } +} diff --git a/app/lib/screens/shop_screen.dart b/app/lib/screens/shop_screen.dart new file mode 100644 index 0000000..f1f834c --- /dev/null +++ b/app/lib/screens/shop_screen.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; + +class ShopScreen extends StatelessWidget { + const ShopScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: const SafeArea( + child: Center( + child: Text( + '상점 화면 준비 중입니다.', + style: TextStyle(fontFamily: 'SCDream'), + ), + ), + ), + ); + } +} diff --git a/app/lib/screens/signup_screen.dart b/app/lib/screens/signup_screen.dart index 8f8baf8..0cf1f7e 100644 --- a/app/lib/screens/signup_screen.dart +++ b/app/lib/screens/signup_screen.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import '../services/auth_service.dart'; -import 'home_screen.dart'; +import 'main_screen.dart'; +import 'terms_agreement_screen.dart'; class SignupScreen extends StatefulWidget { const SignupScreen({super.key}); @@ -20,15 +21,30 @@ class _SignupScreenState extends State { try { final authService = AuthService(); - final user = await authService.signInWithGoogle(); + // Returns Map? { 'credential': ..., 'isNewUser': bool } + final result = await authService.signInWithGoogle(); if (!mounted) return; - if (user != null) { - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => const HomeScreen()), - ); + if (result != null) { + final isNewUser = result['isNewUser'] as bool; + + if (isNewUser) { + // 신규 가입자 -> 약관 동의 화면으로 이동 + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + TermsAgreementScreen(idToken: result['idToken']), + ), + ); + } else { + // 기존 가입자 -> 메인 화면으로 이동 + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + ); + } } else { ScaffoldMessenger.of( context, @@ -88,7 +104,7 @@ class _SignupScreenState extends State { Image.asset('assets/img/foot.png', width: 30), const SizedBox(width: 10), const Text( - '서비스 이용 약관', + '간편 로그인', style: TextStyle( fontSize: 24, fontFamily: 'SCDream', diff --git a/app/lib/screens/splash_screen.dart b/app/lib/screens/splash_screen.dart index b4d0af4..c9bdb46 100644 --- a/app/lib/screens/splash_screen.dart +++ b/app/lib/screens/splash_screen.dart @@ -1,8 +1,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; -// import 'package:video_player/video_player.dart'; import 'welcome_screen.dart'; -import 'home_screen.dart'; +import 'main_screen.dart'; +import '../services/auth_service.dart'; // Import AuthService +import '../theme/app_colors.dart'; class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @@ -12,9 +13,6 @@ class SplashScreen extends StatefulWidget { } class _SplashScreenState extends State { - // Mock login history flag - final bool hasLoginHistory = true; - @override void initState() { super.initState(); @@ -22,17 +20,22 @@ class _SplashScreenState extends State { } Future _checkLoginHistory() async { - // Simulate loading time (e.g. 2 seconds) + // Simulate loading time (minimum) await Future.delayed(const Duration(seconds: 2)); if (!mounted) return; - if (hasLoginHistory) { + final AuthService authService = AuthService(); + final String? token = await authService.getAccessToken(); + + if (token != null) { + // 토큰이 있으면 메인 화면으로 (자동 로그인) Navigator.pushReplacement( context, - MaterialPageRoute(builder: (context) => const HomeScreen()), + MaterialPageRoute(builder: (context) => const MainScreen()), ); } else { + // 토큰이 없으면 웰컴 화면으로 Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const WelcomeScreen()), @@ -43,7 +46,7 @@ class _SplashScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xFFFF7500), + backgroundColor: AppColors.highlight, body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, diff --git a/app/lib/screens/terms_agreement_screen.dart b/app/lib/screens/terms_agreement_screen.dart new file mode 100644 index 0000000..c25e3db --- /dev/null +++ b/app/lib/screens/terms_agreement_screen.dart @@ -0,0 +1,404 @@ +import 'package:flutter/material.dart'; +import 'identity_verification_screen.dart'; +import '../services/auth_service.dart'; // Import AuthService +import '../data/terms_data.dart'; + +class TermsAgreementScreen extends StatefulWidget { + final bool isViewOnly; + final String? idToken; + + const TermsAgreementScreen({ + super.key, + this.isViewOnly = false, + this.idToken, + }); + + @override + State createState() => _TermsAgreementScreenState(); +} + +class _TermsAgreementScreenState extends State { + final List _checks = [false, false, false, false, false, false]; + + bool get _isAllChecked => _checks.every((completed) => completed); + + bool get _isRequiredChecked => + _checks[0] && _checks[1] && _checks[2] && _checks[3]; + + void _toggleAll() { + setState(() { + bool newValue = !_isAllChecked; + for (int i = 0; i < _checks.length; i++) { + _checks[i] = newValue; + } + }); + } + + void _toggleItem(int index) { + setState(() { + _checks[index] = !_checks[index]; + }); + } + + String _getTermContent(int index) { + if (index >= 0 && index < TermsData.terms.length) { + return TermsData.terms[index]['content'] ?? '내용이 없습니다.'; + } + return '내용이 없습니다.'; + } + + void _showTermDetail(BuildContext context, String title, int index) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (context) { + return DraggableScrollableSheet( + initialChildSize: 0.7, + minChildSize: 0.5, + maxChildSize: 0.9, + builder: (_, controller) { + return Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + padding: const EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Container( + width: 40, + height: 4, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ), + const SizedBox(height: 20), + Text( + title, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + ), + ), + const SizedBox(height: 20), + Expanded( + child: SingleChildScrollView( + controller: controller, + child: Text( + _getTermContent(index), + style: const TextStyle( + fontSize: 15, + height: 1.6, + fontFamily: 'SCDream', + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(height: 20), + SizedBox( + width: double.infinity, + height: 52, + child: ElevatedButton( + onPressed: () => Navigator.pop(context), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFF7500), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + elevation: 0, + ), + child: const Text( + '확인', + style: TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + ), + ), + ), + ), + ], + ), + ); + }, + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black, size: 20), + onPressed: () => Navigator.pop(context), + ), + title: Text( + widget.isViewOnly ? '이용 약관' : '회원가입', + style: const TextStyle( + color: Colors.black, + fontSize: 16, + fontWeight: FontWeight.w600, + fontFamily: 'SCDream', + ), + ), + centerTitle: true, + ), + body: SafeArea( + child: Column( + children: [ + Expanded( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 20), + // Header Area + Row( + children: [ + Image.asset( + 'assets/img/foot.png', + width: 24, + height: 24, + ), + const SizedBox(width: 8), + const Text( + '서비스 이용 약관', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + color: Colors.black, + ), + ), + ], + ), + const SizedBox(height: 8), + Text( + widget.isViewOnly + ? 'RUP 서비스의 이용 약관 내용입니다.' + : '서비스 이용을 위해 약관에 동의해주세요.', + style: const TextStyle( + fontSize: 15, + color: Colors.black54, + fontFamily: 'SCDream', + ), + ), + const SizedBox(height: 30), + + // All Agree Box - *ViewOnly 모드에서는 숨김* + if (!widget.isViewOnly) ...[ + InkWell( + onTap: () => _toggleAll(), + borderRadius: BorderRadius.circular(8), + child: Container( + padding: const EdgeInsets.symmetric( + vertical: 16, + horizontal: 16, + ), + decoration: BoxDecoration( + border: Border.all(color: Colors.grey.shade300), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + children: [ + Icon( + _isAllChecked + ? Icons.radio_button_checked + : Icons.radio_button_off, + color: _isAllChecked + ? const Color(0xFFFF7500) + : Colors.grey, + ), + const SizedBox(width: 12), + const Text( + '모든 약관에 동의합니다.', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + ), + ), + ], + ), + ), + ), + const SizedBox(height: 20), + const Divider(height: 1, color: Color(0xFFEEEEEE)), + const SizedBox(height: 10), + ], + + // Individual Items + _buildTermItem(0, '이용약관 동의', isRequired: true), + _buildTermItem(1, '개인정보 수집 및 이용 동의', isRequired: true), + _buildTermItem(2, '제 3자 제공 동의', isRequired: true), + _buildTermItem(3, '만 14세 이상 사용자', isRequired: true), + _buildTermItem(4, '위치정보 이용 동의', isRequired: false), + _buildTermItem(5, '마케팅 수신 동의', isRequired: false), + ], + ), + ), + ), + + // Bottom Button + Padding( + padding: const EdgeInsets.fromLTRB(20, 10, 20, 20), + child: SizedBox( + width: double.infinity, + height: 52, + child: ElevatedButton( + onPressed: widget.isViewOnly + ? () => Navigator.pop(context) + : (_isRequiredChecked + ? () async { + if (widget.idToken != null) { + // 실제 가입 요청 (DB 생성) + final success = await AuthService() + .registerWithGoogle(widget.idToken!); + if (success && context.mounted) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const IdentityVerificationScreen(), + ), + ); + } else if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('회원가입 처리에 실패했습니다.'), + ), + ); + } + } else { + // idToken이 없는 경우 (테스트 등) - 그냥 진행 + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const IdentityVerificationScreen(), + ), + ); + } + } + : null), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFF7500), + disabledBackgroundColor: Colors.grey[300], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + elevation: 0, + ), + child: Text( + widget.isViewOnly ? '닫기' : '동의하고 본인 인증하기', + style: const TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.bold, + fontFamily: 'SCDream', + ), + ), + ), + ), + ), + ], + ), + ), + ); + } + + Widget _buildTermItem(int index, String title, {required bool isRequired}) { + // ViewOnly 모드에서는 체크박스 숨김 + // ViewOnly 모드에서는 텍스트 클릭 시 모달 띄우기 (토글 X) + + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Row( + children: [ + Expanded( + child: InkWell( + onTap: () { + if (!widget.isViewOnly) { + _toggleItem(index); + } else { + // ViewOnly일 땐 텍스트 눌러도 모달 띄우기 (편의성) + _showTermDetail(context, title, index); + } + }, + borderRadius: BorderRadius.circular(8), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 12, + horizontal: 8, + ), + child: Row( + children: [ + // 체크 Icon - *ViewOnly 모드에서는 숨김* + if (!widget.isViewOnly) ...[ + Icon( + Icons.check, + size: 20, + color: _checks[index] + ? const Color(0xFFFF7500) + : Colors.grey[300], + ), + const SizedBox(width: 12), + ], + + Text( + isRequired ? '필수' : '선택', + style: TextStyle( + color: isRequired + ? const Color(0xFFFF7500) + : Colors.grey, + fontWeight: FontWeight.bold, + fontSize: 14, + fontFamily: 'SCDream', + ), + ), + const SizedBox(width: 8), + Expanded( + child: Text( + title, + style: const TextStyle( + fontSize: 15, + color: Colors.black87, + fontFamily: 'SCDream', + ), + ), + ), + ], + ), + ), + ), + ), + IconButton( + onPressed: () => _showTermDetail(context, title, index), + icon: const Icon( + Icons.arrow_forward_ios, + size: 14, + color: Colors.black, + ), + splashRadius: 20, + padding: const EdgeInsets.all(12), + constraints: const BoxConstraints(), + ), + ], + ), + ); + } +} diff --git a/app/lib/services/auth_service.dart b/app/lib/services/auth_service.dart index d98aaff..ed38488 100644 --- a/app/lib/services/auth_service.dart +++ b/app/lib/services/auth_service.dart @@ -1,51 +1,256 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:google_sign_in/google_sign_in.dart'; +import 'package:dio/dio.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:flutter/material.dart'; +import '../main.dart'; +import '../screens/welcome_screen.dart'; +import '../utils/log_manager.dart'; class AuthService { final FirebaseAuth _auth = FirebaseAuth.instance; - final GoogleSignIn _googleSignIn = GoogleSignIn(); + // Google Sign-In 설정 (Backend와 통신하기 위해 serverClientId 지정) + final GoogleSignIn _googleSignIn = GoogleSignIn( + serverClientId: + '379988243470-g6490l8gucc3ljras93i28c3l4qlroi4.apps.googleusercontent.com', + ); + final Dio _dio = Dio(); + final FlutterSecureStorage _storage = const FlutterSecureStorage(); - // 구글 로그인 - Future signInWithGoogle() async { - // 1. 구글 로그인 흐름 시작 - print('[DEBUG] Google Sign-In: Starting signIn()'); - final GoogleSignInAccount? googleUser = await _googleSignIn.signIn(); - print( - '[DEBUG] Google Sign-In: signIn() completed, user: ${googleUser?.email}', + // Backend Base URL + final String _baseUrl = 'http://10.0.2.2:3000/auth'; + + AuthService() { + // Dio Options 설정 (Timeout 추가) + _dio.options.connectTimeout = const Duration(seconds: 5); // 5초 연결 타임아웃 + _dio.options.receiveTimeout = const Duration(seconds: 5); // 5초 응답 타임아웃 + + // Dio Interceptor 설정 + _dio.interceptors.add( + InterceptorsWrapper( + onRequest: (options, handler) async { + // 모든 요청 헤더에 Access Token 추가 + final accessToken = await _storage.read(key: 'accessToken'); + if (accessToken != null) { + options.headers['Authorization'] = 'Bearer $accessToken'; + } + return handler.next(options); + }, + onError: (DioException error, handler) async { + // 401 에러 발생 시 (Access Token 만료) + if (error.response?.statusCode == 401) { + String msg1 = '[Auth] Access Token expired. Attempting refresh...'; + print(msg1); + LogManager().addLog(msg1); // LOG + + final isRefreshed = await _refreshToken(); + if (isRefreshed) { + // 토큰 갱신 성공 -> 원래 요청 재시도 + final newAccessToken = await _storage.read(key: 'accessToken'); + + // 헤더 업데이트 + error.requestOptions.headers['Authorization'] = + 'Bearer $newAccessToken'; + + // 재요청 + try { + final response = await _dio.fetch(error.requestOptions); + return handler.resolve(response); + } catch (e) { + return handler.reject(error); + } + } else { + // 토큰 갱신 실패 (리프레시 토큰도 만료됨) -> 로그아웃 & 화면 이동 + String msg2 = '[Auth] Refresh Token expired. Logging out...'; + print(msg2); + LogManager().addLog(msg2); // LOG + await signOut(); + + // Force Navigation to Welcome Screen + navigatorKey.currentState?.pushAndRemoveUntil( + MaterialPageRoute(builder: (context) => const WelcomeScreen()), + (route) => false, + ); + } + } else { + // Log other errors + LogManager().addLog( + '[DioError] ${error.message} (Status: ${error.response?.statusCode})', + ); + } + return handler.next(error); + }, + ), ); + } - if (googleUser == null) { - // 사용자가 로그인 창을 닫음 - print('[DEBUG] Google Sign-In: User canceled'); + // 토큰 갱신 로직 + Future _refreshToken() async { + try { + final refreshToken = await _storage.read(key: 'refreshToken'); + if (refreshToken == null) return false; + + final response = await _dio.post( + '$_baseUrl/refresh', + data: {'refreshToken': refreshToken}, + ); + + if (response.statusCode == 200 && response.data['success'] == true) { + final newAccessToken = response.data['accessToken']; + await _storage.write(key: 'accessToken', value: newAccessToken); + String msg = '[Auth] Token refreshed successfully.'; + print(msg); + LogManager().addLog(msg); + return true; + } + return false; + } catch (e) { + String msg = '[Auth] Token refresh failed: $e'; + print(msg); + LogManager().addLog(msg); + return false; + } + } + + // 구글 로그인 (Check or Login) + Future?> signInWithGoogle() async { + try { + LogManager().addLog('[DEBUG] Google Sign-In: Starting signIn()'); + final GoogleSignInAccount? googleUser = await _googleSignIn.signIn(); + + if (googleUser == null) { + LogManager().addLog('[DEBUG] Google Sign-In: User canceled'); + return null; + } + + final GoogleSignInAuthentication googleAuth = + await googleUser.authentication; + + if (googleAuth.idToken != null) { + try { + // 1. 서버에 토큰 전송 (Login Check) + final response = await _dio.post( + '$_baseUrl/google', + data: {'idToken': googleAuth.idToken}, + ); + + if (response.statusCode == 200 && response.data['success'] == true) { + final isNewUser = response.data['isNewUser'] ?? false; + + if (isNewUser) { + // 신규 유저: 토큰 저장하지 않고 idToken 반환 (약관 동의 화면으로 전달) + return { + 'isNewUser': true, + 'idToken': googleAuth.idToken, + 'email': response.data['email'], + 'nickname': response.data['nickname'], + }; + } else { + // 기존 유저: 토큰 저장 및 로그인 처리 + final accessToken = response.data['accessToken']; + final refreshToken = response.data['refreshToken']; + + await _storage.write(key: 'accessToken', value: accessToken); + await _storage.write(key: 'refreshToken', value: refreshToken); + + // Firebase 로그인 (선택 사항, 필요하다면 유지) + final OAuthCredential credential = GoogleAuthProvider.credential( + accessToken: googleAuth.accessToken, + idToken: googleAuth.idToken, + ); + await _auth.signInWithCredential(credential); + + return {'isNewUser': false}; + } + } + } catch (e) { + String msg = '[ERROR] Backend Auth API Error: $e'; + print(msg); + LogManager().addLog(msg); + } + } + return null; + } catch (e) { + String msg = '[ERROR] Google Sign-In Error: $e'; + print(msg); + LogManager().addLog(msg); return null; } + } - // 2. 인증 세부 정보 요청 - print('[DEBUG] Google Sign-In: Getting authentication...'); - final GoogleSignInAuthentication googleAuth = - await googleUser.authentication; - print( - '[DEBUG] Google Sign-In: Authentication received. AccessToken: ${googleAuth.accessToken != null}, IDToken: ${googleAuth.idToken != null}', - ); + // 구글 회원가입 (Register - 약관 동의 후 호출) + Future registerWithGoogle(String idToken) async { + try { + final response = await _dio.post( + '$_baseUrl/google/register', + data: {'idToken': idToken}, + ); - // 3. 자격 증명 생성 - final OAuthCredential credential = GoogleAuthProvider.credential( - accessToken: googleAuth.accessToken, - idToken: googleAuth.idToken, - ); + if (response.statusCode == 200 && response.data['success'] == true) { + final accessToken = response.data['accessToken']; + final refreshToken = response.data['refreshToken']; - // 4. Firebase에 로그인 - print('[DEBUG] Google Sign-In: Signing in with credential to Firebase...'); - final userCredential = await _auth.signInWithCredential(credential); - print( - '[DEBUG] Google Sign-In: Firebase sign-in completed. User: ${userCredential.user?.uid}', - ); - return userCredential; + await _storage.write(key: 'accessToken', value: accessToken); + await _storage.write(key: 'refreshToken', value: refreshToken); + + // Firebase 로그인 처리 (필요시) - idToken으로 credential 생성 가능하지만 access token이 없으므로 생략하거나 + // 이미 signInWithGoogle에서 받아온 credential을 재사용할 수 있으면 좋음. + // 하지만 여기서는 백엔드 세션이 중요하므로 일단 백엔드 토큰만 저장. + // (Firebase Auth와 Custom Backend Auth를 혼용 중이라 복잡함. + // 일단 백엔드 로직이 메인이므로 백엔드 토큰 처리에 집중) + + return true; + } + return false; + } catch (e) { + LogManager().addLog('[Auth] Register Failed: $e'); + return false; + } } // 로그아웃 Future signOut() async { await _googleSignIn.signOut(); await _auth.signOut(); + await _storage.deleteAll(); // 토큰 삭제 + print('[DEBUG] User signed out and tokens cleared.'); } + + // Access Token 가져오기 + Future getAccessToken() async { + return await _storage.read(key: 'accessToken'); + } + + // 유저 정보 가져오기 + Future?> getUserInfo() async { + try { + final response = await _dio.get('$_baseUrl/me'); + if (response.statusCode == 200 && response.data['success'] == true) { + return response.data['user']; + } + return null; + } catch (e) { + LogManager().addLog('[Auth] Get User Info Failed: $e'); + return null; + } + } + + // 회원 탈퇴 + Future withdrawAccount() async { + try { + final response = await _dio.delete('$_baseUrl/withdraw'); + if (response.statusCode == 200 && response.data['success'] == true) { + await _googleSignIn.signOut(); + await _auth.signOut(); + await _storage.deleteAll(); + return true; + } + return false; + } catch (e) { + LogManager().addLog('[Auth] Withdraw Account Failed: $e'); + return false; + } + } + + Dio get dio => _dio; } diff --git a/app/lib/theme/app_colors.dart b/app/lib/theme/app_colors.dart new file mode 100644 index 0000000..21111c3 --- /dev/null +++ b/app/lib/theme/app_colors.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class AppColors { + // 기본 텍스트 색상: #1F1F1F (기존 '기본색') + static const Color text = Color(0xFF1F1F1F); + + // (Old alias for compatibility, if needed) + static const Color basic = text; + + // 비활성화색: #C8C8C8 + static const Color inactive = Color(0xFFC8C8C8); + + // 강조색: #FF7500 (버튼, 호버 등 중요!) + static const Color highlight = Color(0xFFFF7500); +} diff --git a/app/lib/utils/log_manager.dart b/app/lib/utils/log_manager.dart new file mode 100644 index 0000000..e0a15f9 --- /dev/null +++ b/app/lib/utils/log_manager.dart @@ -0,0 +1,24 @@ +import 'package:flutter/foundation.dart'; + +class LogManager { + static final LogManager _instance = LogManager._internal(); + factory LogManager() => _instance; + LogManager._internal(); + + final ValueNotifier> logs = ValueNotifier([]); + + void addLog(String message) { + try { + final timestamp = DateTime.now().toString().split(' ')[1].split('.')[0]; + final logMessage = "[$timestamp] $message"; + + logs.value = [logMessage, ...logs.value]; + } catch (e) { + print('LogManager Error: $e'); + } + } + + void clear() { + logs.value = []; + } +} diff --git a/app/linux/flutter/generated_plugin_registrant.cc b/app/linux/flutter/generated_plugin_registrant.cc index e71a16d..d0e7f79 100644 --- a/app/linux/flutter/generated_plugin_registrant.cc +++ b/app/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); } diff --git a/app/linux/flutter/generated_plugins.cmake b/app/linux/flutter/generated_plugins.cmake index 2e1de87..b29e9ba 100644 --- a/app/linux/flutter/generated_plugins.cmake +++ b/app/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/app/macos/Flutter/GeneratedPluginRegistrant.swift b/app/macos/Flutter/GeneratedPluginRegistrant.swift index 3e80842..f824f2f 100644 --- a/app/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/app/macos/Flutter/GeneratedPluginRegistrant.swift @@ -7,12 +7,14 @@ import Foundation import firebase_auth import firebase_core +import flutter_secure_storage_macos import google_sign_in_ios import video_player_avfoundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) } diff --git a/app/pubspec.lock b/app/pubspec.lock index 3ad0580..3709a16 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -49,6 +49,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + url: "https://pub.dev" + source: hosted + version: "1.0.0" collection: dependency: transitive description: @@ -57,6 +65,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.19.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" csslib: dependency: transitive description: @@ -73,6 +89,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + dio: + dependency: "direct main" + description: + name: dio + sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9 + url: "https://pub.dev" + source: hosted + version: "5.9.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" + url: "https://pub.dev" + source: hosted + version: "2.1.1" fake_async: dependency: transitive description: @@ -81,6 +113,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c + url: "https://pub.dev" + source: hosted + version: "2.1.5" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" firebase_auth: dependency: "direct main" description: @@ -142,6 +190,54 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.0" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" + url: "https://pub.dev" + source: hosted + version: "9.2.4" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" flutter_svg: dependency: "direct main" description: @@ -160,6 +256,14 @@ packages: description: flutter source: sdk version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" google_identity_services_web: dependency: transitive description: @@ -208,6 +312,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.12.4+4" + hooks: + dependency: transitive + description: + name: hooks + sha256: "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7" + url: "https://pub.dev" + source: hosted + version: "1.0.0" html: dependency: transitive description: @@ -232,6 +344,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" leak_tracker: dependency: transitive description: @@ -264,6 +384,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" matcher: dependency: transitive description: @@ -288,6 +416,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.17.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + native_toolchain_c: + dependency: transitive + description: + name: native_toolchain_c + sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac" + url: "https://pub.dev" + source: hosted + version: "0.17.4" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "9922a1ad59ac5afb154cc948aa6ded01987a75003651d0a2866afc23f4da624e" + url: "https://pub.dev" + source: hosted + version: "9.2.3" path: dependency: transitive description: @@ -304,6 +456,54 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e + url: "https://pub.dev" + source: hosted + version: "2.2.22" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" + url: "https://pub.dev" + source: hosted + version: "2.6.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" petitparser: dependency: transitive description: @@ -312,6 +512,14 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.1" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -320,6 +528,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" sky_engine: dependency: transitive description: flutter @@ -469,6 +685,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" xml: dependency: transitive description: @@ -477,6 +709,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" sdks: dart: ">=3.10.7 <4.0.0" - flutter: ">=3.38.0" + flutter: ">=3.38.4" diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 42b3efe..8a0bb07 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -39,6 +39,8 @@ dependencies: firebase_core: ^3.0.0 # 파이어베이스 기본 (Updated) firebase_auth: ^5.0.0 # 인증 기능 (Updated) google_sign_in: ^6.2.1 # 구글 로그인 UI/기능 (Updated) + dio: ^5.4.0 + flutter_secure_storage: ^9.0.0 dev_dependencies: flutter_test: @@ -66,6 +68,8 @@ flutter: weight: 700 - asset: assets/fonts/SCDream-medium.otf weight: 500 + - asset: assets/fonts/SCDream-regular.otf + weight: 400 assets: - assets/img/ diff --git a/app/test/widget_test.dart b/app/test/widget_test.dart index 4e2a713..7d6fc73 100644 --- a/app/test/widget_test.dart +++ b/app/test/widget_test.dart @@ -11,20 +11,11 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:app/main.dart'; void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { + testWidgets('App starts with Splash Screen', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget(const RupApp()); - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); - - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); - - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); + // Verify that Splash Screen is shown + expect(find.byType(MaterialApp), findsOneWidget); }); } diff --git a/app/windows/flutter/generated_plugin_registrant.cc b/app/windows/flutter/generated_plugin_registrant.cc index d141b74..ea9741e 100644 --- a/app/windows/flutter/generated_plugin_registrant.cc +++ b/app/windows/flutter/generated_plugin_registrant.cc @@ -8,10 +8,13 @@ #include #include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FirebaseAuthPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); FirebaseCorePluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); } diff --git a/app/windows/flutter/generated_plugins.cmake b/app/windows/flutter/generated_plugins.cmake index 29944d5..b8ca912 100644 --- a/app/windows/flutter/generated_plugins.cmake +++ b/app/windows/flutter/generated_plugins.cmake @@ -5,6 +5,7 @@ list(APPEND FLUTTER_PLUGIN_LIST firebase_auth firebase_core + flutter_secure_storage_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..c81b8d3 --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,3 @@ +node_modules +npm-debug.log +.env diff --git a/backend/config/db.js b/backend/config/db.js new file mode 100644 index 0000000..5fdebf3 --- /dev/null +++ b/backend/config/db.js @@ -0,0 +1,40 @@ +const { Sequelize } = require('sequelize'); +require('dotenv').config(); + +const sequelize = new Sequelize( + process.env.MYSQL_DATABASE, + process.env.MYSQL_USER, + process.env.MYSQL_PASSWORD, + { + host: process.env.DB_HOST, + dialect: 'mysql', + logging: false, + pool: { + max: 5, + min: 0, + acquire: 30000, + idle: 10000 + } + } +); + +// Test Connection +const connectDB = async () => { + let retries = 20; // Increased retries for slow DB startup + while (retries > 0) { + try { + console.log(`[Database] Attempting to connect... (Retries left: ${retries})`); + await sequelize.authenticate(); + console.log('[Database] Connection has been established successfully.'); + return; + } catch (error) { + console.error(`[Database] Unable to connect. Retrying in 5s...`, error.message); + retries -= 1; + await new Promise(res => setTimeout(res, 5000)); // Wait 5 seconds + } + } + console.error('[Database] Failed to connect after multiple attempts.'); + process.exit(1); +}; + +module.exports = { sequelize, connectDB }; diff --git a/backend/controllers/authController.js b/backend/controllers/authController.js new file mode 100644 index 0000000..6049ff6 --- /dev/null +++ b/backend/controllers/authController.js @@ -0,0 +1,285 @@ +const { OAuth2Client } = require('google-auth-library'); +const jwt = require('jsonwebtoken'); +const User = require('../models/user'); +require('dotenv').config(); + +// Google Client ID should be in env, but for now assuming it handles verification +const googleClient = new OAuth2Client(process.env.GOOGLE_CLIENT_ID); + +const generateTokens = (user) => { + const payload = { id: user.id, email: user.email, nickname: user.nickname }; + + const accessToken = jwt.sign(payload, process.env.JWT_SECRET, { + expiresIn: '1h', + }); + + const refreshToken = jwt.sign({ id: user.id }, process.env.JWT_REFRESH_SECRET, { + expiresIn: '14d', + }); + + return { accessToken, refreshToken }; +}; + +// Generic Social Login Logic +const socialLogin = async (provider, socialInfo, res) => { + try { + const { socialId, email, nickname } = socialInfo; + + // Find or Create User + const [user, created] = await User.findOrCreate({ + where: { provider, socialId }, + defaults: { email, nickname }, + }); + + if (!created) { + // Update info if needed (e.g., changed nickname on social side) - Optional + user.email = email || user.email; + user.nickname = nickname || user.nickname; + } + + // Generate Tokens + const { accessToken, refreshToken } = generateTokens(user); + + // Save Refresh Token to DB + user.refreshToken = refreshToken; + await user.save(); + + console.log(`[Auth] User ${user.id} logged in via ${provider}`); + + return res.status(200).json({ + success: true, + accessToken, + refreshToken, + isNewUser: created, // 신규 가입 여부 + user: { + id: user.id, + email: user.email, + nickname: user.nickname, + }, + }); + } catch (error) { + console.error('[Auth Error]', error); + return res.status(500).json({ success: false, message: 'Internal Server Error' }); + } +}; + +// Google Login Handler +// Google Login Handler (Check only, or Login if exists) +exports.loginWithGoogle = async (req, res) => { + const { idToken } = req.body; + + if (!idToken) { + return res.status(400).json({ success: false, message: 'Missing idToken' }); + } + + try { + // Verify Google Token + const ticket = await googleClient.verifyIdToken({ + idToken, + audience: [ + process.env.GOOGLE_CLIENT_ID, + process.env.GOOGLE_ANDROID_CLIENT_ID + ], + }); + + const payload = ticket.getPayload(); + const socialId = payload.sub; + + // Check if user exists + const user = await User.findOne({ where: { provider: 'google', socialId } }); + + if (user) { + // User exists -> Login + const { accessToken, refreshToken } = generateTokens(user); + user.refreshToken = refreshToken; + await user.save(); + + console.log(`[Auth] User ${user.id} logged in via google`); + return res.status(200).json({ + success: true, + accessToken, + refreshToken, + isNewUser: false, + user: { + id: user.id, + email: user.email, + nickname: user.nickname, + }, + }); + } else { + // User does not exist -> Return isNewUser: true (Do NOT create yet) + return res.status(200).json({ + success: true, + isNewUser: true, + // Optional: Return partial info if needed for UI (e.g. pre-filling name) + email: payload.email, + nickname: payload.name, + }); + } + + } catch (error) { + console.error('[Google Verify Error]', error); + return res.status(401).json({ + success: false, + message: 'Invalid Google Token', + debug: error.message + }); + } +}; + +// Google Register Handler (Create User) +exports.registerWithGoogle = async (req, res) => { + const { idToken } = req.body; + + if (!idToken) { + return res.status(400).json({ success: false, message: 'Missing idToken' }); + } + + try { + // Verify Google Token again + const ticket = await googleClient.verifyIdToken({ + idToken, + audience: [ + process.env.GOOGLE_CLIENT_ID, + process.env.GOOGLE_ANDROID_CLIENT_ID + ], + }); + + const payload = ticket.getPayload(); + const socialId = payload.sub; + const email = payload.email; + const nickname = payload.name; + + // Find or Create User + const [user, created] = await User.findOrCreate({ + where: { provider: 'google', socialId }, + defaults: { email, nickname }, + }); + + // If existing user calls register, just log them in (idempotent) + const { accessToken, refreshToken } = generateTokens(user); + user.refreshToken = refreshToken; + await user.save(); + + console.log(`[Auth] User ${user.id} registered/logged in via google`); + + return res.status(200).json({ + success: true, + accessToken, + refreshToken, + isNewUser: created, + user: { + id: user.id, + email: user.email, + nickname: user.nickname, + }, + }); + + } catch (error) { + console.error('[Google Register Error]', error); + return res.status(401).json({ + success: false, + message: 'Invalid Google Token', + debug: error.message + }); + } +}; + +// Test Login Handler (For verification only) +exports.testLogin = async (req, res) => { + const { email, nickname } = req.body; + + if (!email || !nickname) { + return res.status(400).json({ success: false, message: 'Missing email or nickname' }); + } + + // Use 'google' as provider to satisfy DB Enum constraint + const socialId = `test_${email}`; + + return socialLogin('google', { socialId, email, nickname }, res); +}; + +// Refresh Token Handler +exports.refreshToken = async (req, res) => { + const { refreshToken } = req.body; + + if (!refreshToken) { + return res.status(400).json({ success: false, message: 'Refresh Token required' }); + } + + try { + const secret = process.env.JWT_REFRESH_SECRET; + // 1. Verify Refresh Token + const decoded = jwt.verify(refreshToken, secret); + + // 2. Check DB + const user = await User.findByPk(decoded.id); + if (!user || user.refreshToken !== refreshToken) { + return res.status(403).json({ success: false, message: 'Invalid Refresh Token' }); + } + + // 3. Issue new Access Token + const payload = { id: user.id, email: user.email, nickname: user.nickname }; + const newAccessToken = jwt.sign(payload, process.env.JWT_SECRET, { + expiresIn: '1h', + }); + + console.log(`[Auth] Access Token refreshed for User ${user.id}`); + + return res.status(200).json({ + success: true, + accessToken: newAccessToken, + }); + + } catch (error) { + console.error('[Refresh Error]', error); + if (error.name === 'TokenExpiredError') { + return res.status(403).json({ success: false, message: 'Refresh Token expired' }); + } + return res.status(403).json({ success: false, message: 'Invalid Refresh Token' }); + } +}; + +// Get User Info +exports.getMe = async (req, res) => { + try { + // req.user is set by middleware + const user = await User.findByPk(req.user.id); + if (!user) { + return res.status(404).json({ success: false, message: 'User not found' }); + } + + return res.status(200).json({ + success: true, + user: { + id: user.id, + email: user.email, + nickname: user.nickname, + }, + }); + } catch (error) { + console.error('[GetMe Error]', error); + return res.status(500).json({ success: false, message: 'Internal Server Error' }); + } +}; + +// Withdraw (Delete Account) +exports.withdraw = async (req, res) => { + try { + const userId = req.user.id; + const user = await User.findByPk(userId); + + if (!user) { + return res.status(404).json({ success: false, message: 'User not found' }); + } + + // Hard Delete + await user.destroy(); + + console.log(`[Auth] User ${userId} withdrew from the service.`); + return res.status(200).json({ success: true, message: 'Account deleted successfully' }); + } catch (error) { + console.error('[Withdraw Error]', error); + return res.status(500).json({ success: false, message: 'Internal Server Error' }); + } +}; diff --git a/backend/dockerfile b/backend/dockerfile index 350ec29..1ba34d7 100644 --- a/backend/dockerfile +++ b/backend/dockerfile @@ -2,7 +2,6 @@ FROM node:24-alpine WORKDIR /app -# 패키지 파일 복사 # 패키지 파일 복사 COPY package*.json ./ diff --git a/backend/index.js b/backend/index.js index ab6d938..9a7eb05 100644 --- a/backend/index.js +++ b/backend/index.js @@ -1,11 +1,34 @@ const express = require('express'); +const cors = require('cors'); +const { connectDB, sequelize } = require('./config/db'); +const authRoutes = require('./routes/auth'); + const app = express(); const port = 3000; +// Middleware +app.use(cors()); +app.use(express.json()); // Body parser for JSON + +// Routes +app.use('/auth', authRoutes); + app.get('/', (req, res) => { res.send('Hello from Express Backend!'); }); -app.listen(port, '0.0.0.0', () => { - console.log(`Backend app listening on port ${port}`); -}); +// Database Connection & Server Start +const startServer = async () => { + await connectDB(); + + // Sync models (in production, use migration instead of sync({alter: true})) + // For dev: force: false to keep data, alter: true to update schema + await sequelize.sync({ alter: true }); + console.log('Database synced'); + + app.listen(port, '0.0.0.0', () => { + console.log(`Backend app listening on port ${port}`); + }); +}; + +startServer(); diff --git a/backend/middleware/authMiddleware.js b/backend/middleware/authMiddleware.js new file mode 100644 index 0000000..14b76e0 --- /dev/null +++ b/backend/middleware/authMiddleware.js @@ -0,0 +1,26 @@ +const jwt = require('jsonwebtoken'); +require('dotenv').config(); + +exports.verifyToken = (req, res, next) => { + const authHeader = req.headers.authorization; + if (!authHeader) { + return res.status(401).json({ success: false, message: 'No token provided' }); + } + + const token = authHeader.split(' ')[1]; // "Bearer " + if (!token) { + return res.status(401).json({ success: false, message: 'Invalid token format' }); + } + + try { + const decoded = jwt.verify(token, process.env.JWT_SECRET); + req.user = decoded; // { id, email, nickname, ... } + next(); + } catch (error) { + console.error('[Auth Middleware] Token Verification Failed:', error.message); + if (error.name === 'TokenExpiredError') { + return res.status(401).json({ success: false, message: 'Token expired' }); + } + return res.status(401).json({ success: false, message: 'Invalid token' }); + } +}; diff --git a/backend/models/user.js b/backend/models/user.js new file mode 100644 index 0000000..f83ca43 --- /dev/null +++ b/backend/models/user.js @@ -0,0 +1,46 @@ +const { DataTypes } = require('sequelize'); +const { sequelize } = require('../config/db'); + +const User = sequelize.define('User', { + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true, + }, + email: { + type: DataTypes.STRING, + allowNull: true, + validate: { + isEmail: true, + }, + }, + nickname: { + type: DataTypes.STRING, + allowNull: true, + }, + provider: { + type: DataTypes.ENUM('google', 'naver', 'kakao'), + allowNull: false, + comment: 'Social login provider', + }, + socialId: { + type: DataTypes.STRING, + allowNull: false, + comment: 'Unique ID from the social provider', + }, + refreshToken: { + type: DataTypes.TEXT, + allowNull: true, + comment: 'Generic refresh token for valid session', + }, +}, { + indexes: [ + { + unique: true, + fields: ['provider', 'socialId'], // Prevent duplicate users for same provider + }, + ], + timestamps: true, +}); + +module.exports = User; diff --git a/backend/package-lock.json b/backend/package-lock.json index dfb18f1..c57678a 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,6 +1,1543 @@ { - "name": "backend", + "name": "rup-backend", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, - "packages": {} + "packages": { + "": { + "name": "rup-backend", + "version": "1.0.0", + "dependencies": { + "cors": "^2.8.5", + "dotenv": "^16.3.1", + "express": "^4.18.2", + "google-auth-library": "^9.4.1", + "jsonwebtoken": "^9.0.2", + "mysql2": "^3.6.5", + "sequelize": "^6.35.1" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz", + "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/validator": { + "version": "13.15.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==", + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dottie": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.6.tgz", + "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==", + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/google-auth-library": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-logging-utils": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflection": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz", + "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==", + "engines": [ + "node >= 0.4.0" + ], + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/lru.min": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.3.tgz", + "integrity": "sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==", + "license": "MIT", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.48", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", + "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/mysql2": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.16.1.tgz", + "integrity": "sha512-b75qsDB3ieYEzMsT1uRGsztM/sy6vWPY40uPZlVVl8eefAotFCoS7jaDB5DxDNtlW5kdVGd9jptSpkvujNxI2A==", + "license": "MIT", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.7.0", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.6", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz", + "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==", + "license": "MIT", + "dependencies": { + "lru.min": "^1.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/pg-connection-string": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.10.1.tgz", + "integrity": "sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/retry-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.1.1.tgz", + "integrity": "sha512-hMD7odLOt3LkTjcif8aRZqi/hybjpLNgSk5oF5FCowfCjok6LukpN2bDX7R5wDmbgBQFn7YoBxSagmtXHaJYJw==", + "license": "MIT" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/sequelize": { + "version": "6.37.7", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.37.7.tgz", + "integrity": "sha512-mCnh83zuz7kQxxJirtFD7q6Huy6liPanI67BSlbzSYgVNl5eXVdE2CN1FuAeZwG1SNpGsNRCV+bJAVVnykZAFA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/sequelize" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.8", + "@types/validator": "^13.7.17", + "debug": "^4.3.4", + "dottie": "^2.0.6", + "inflection": "^1.13.4", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", + "pg-connection-string": "^2.6.1", + "retry-as-promised": "^7.0.4", + "semver": "^7.5.4", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.9.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependenciesMeta": { + "ibm_db": { + "optional": true + }, + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "snowflake-sdk": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/sequelize/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/sequelize/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/sequelize/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==", + "license": "MIT" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validator": { + "version": "13.15.26", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", + "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + } + } } diff --git a/backend/package.json b/backend/package.json index 73751f5..432318d 100644 --- a/backend/package.json +++ b/backend/package.json @@ -7,6 +7,12 @@ "start": "node index.js" }, "dependencies": { - "express": "^4.18.2" + "cors": "^2.8.5", + "dotenv": "^16.3.1", + "express": "^4.18.2", + "google-auth-library": "^9.4.1", + "jsonwebtoken": "^9.0.2", + "mysql2": "^3.6.5", + "sequelize": "^6.35.1" } -} +} \ No newline at end of file diff --git a/backend/routes/auth.js b/backend/routes/auth.js new file mode 100644 index 0000000..ee254ad --- /dev/null +++ b/backend/routes/auth.js @@ -0,0 +1,23 @@ +const express = require('express'); +const router = express.Router(); +const authController = require('../controllers/authController'); + +router.post('/google', authController.loginWithGoogle); +router.post('/google/register', authController.registerWithGoogle); // Add register route +router.post('/test-login', authController.testLogin); +router.post('/refresh', authController.refreshToken); + +const verifyToken = require('../middleware/authMiddleware').verifyToken; // Correct import + +router.get('/test-protected', verifyToken, (req, res) => { + res.json({ success: true, message: 'You have a valid token', user: req.user }); +}); + +router.get('/me', verifyToken, authController.getMe); +router.delete('/withdraw', verifyToken, authController.withdraw); + +// Future place for: +// router.post('/kakao', authController.loginWithKakao); +// router.post('/naver', authController.loginWithNaver); + +module.exports = router; diff --git a/docker-compose.yml b/docker-compose.yml index 2cdc9c0..53fae74 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.8" + services: db: @@ -27,6 +27,7 @@ services: restart: always ports: - "3000:3000" + env_file: - ./backend/.env.production depends_on: diff --git a/reinstall.bat b/reinstall.bat new file mode 100644 index 0000000..95127e9 --- /dev/null +++ b/reinstall.bat @@ -0,0 +1,23 @@ +@echo off +cd /d "%~dp0" +echo ============================================== +echo [RUP Project] Cleaning and Rebuilding Backend +echo ============================================== + +echo 1. Stopping Docker services... +docker compose down + +echo. +echo 2. Forcing removal of old backend image (to clear cache)... +docker image rm -f rup-backend + +echo. +echo 3. Rebuilding Docker containers... +docker compose up -d --build + +echo. +echo 4. Checking logs (Press Ctrl+C to exit log view)... +echo ============================================== +docker compose logs -f backend + +pause