diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..06d6dfd Binary files /dev/null and b/.DS_Store differ diff --git a/assets/.DS_Store b/assets/.DS_Store new file mode 100644 index 0000000..0888348 Binary files /dev/null and b/assets/.DS_Store differ diff --git a/assets/images/.DS_Store b/assets/images/.DS_Store new file mode 100644 index 0000000..d93f753 Binary files /dev/null and b/assets/images/.DS_Store differ diff --git a/flutter_01.log b/flutter_01.log new file mode 100644 index 0000000..8d8e885 --- /dev/null +++ b/flutter_01.log @@ -0,0 +1,95 @@ +Flutter crash report. +Please report a bug at https://github.com/flutter/flutter/issues. + +## command + +flutter analyze + +## exception + +_Exception: Exception: analysis server exited with code 255 and output: +[stderr] #24 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #25 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #26 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] +[stderr] +[stderr] +[stderr] #0 LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5) +[stderr] #1 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11) +[stderr] #2 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:153:9) +[stderr] #3 LibraryContext.load. (package:analyzer/src/dart/analysis/library_context.dart:344:7) +[stderr] #4 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15) +[stderr] #5 LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12) +[stderr] #6 AnalysisDriver._produceErrors.. (package:analyzer/src/dart/analysis/driver.dart:2058:26) +[stderr] #7 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #8 AnalysisDriver._produceErrors. (package:analyzer/src/dart/analysis/driver.dart:2057:21) +[stderr] #9 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #10 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #11 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #12 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] + +``` +``` + +## flutter doctor + +``` +[✓] Flutter (Channel stable, 3.32.4, on macOS 15.5 24F74 darwin-arm64, locale + ko-KR) [457ms] + • Flutter version 3.32.4 on channel stable at + /opt/homebrew/Caskroom/flutter/3.29.2/flutter + • Upstream repository https://github.com/flutter/flutter.git + • Framework revision 6fba2447e9 (5 weeks ago), 2025-06-12 19:03:56 -0700 + • Engine revision 8cd19e509d + • Dart version 3.8.1 + • DevTools version 2.45.1 + +[✓] Android toolchain - develop for Android devices (Android SDK version + 35.0.1) [5.3s] + • Android SDK at /Users/damn_yul/Library/Android/sdk + • Platform android-35, build-tools 35.0.1 + • Java binary at: /Applications/Android + Studio.app/Contents/jbr/Contents/Home/bin/java + This is the JDK bundled with the latest Android Studio installation on + this machine. + To manually set the JDK path, use: `flutter config + --jdk-dir="path/to/jdk"`. + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + • All Android licenses accepted. + +[✓] Xcode - develop for iOS and macOS (Xcode 16.3) [1,423ms] + • Xcode at /Applications/Xcode.app/Contents/Developer + • Build 16E140 + • CocoaPods version 1.16.2 + +[✓] Chrome - develop for the web [5ms] + • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome + +[✓] Android Studio (version 2024.3) [4ms] + • Android Studio at /Applications/Android Studio.app/Contents + • Flutter plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/9212-flutter + • Dart plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/6351-dart + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + +[✓] VS Code (version 1.102.0) [3ms] + • VS Code at /Applications/Visual Studio Code.app/Contents + • Flutter extension version 3.114.0 + +[✓] Connected device (3 available) [5.7s] + • iPhone 15 Pro Max (mobile) • C25F166E-C04A-4C97-BC34-F232D5F33DB2 • ios + • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator) + • macOS (desktop) • macos • + darwin-arm64 • macOS 15.5 24F74 darwin-arm64 + • Chrome (web) • chrome • + web-javascript • Google Chrome 138.0.7204.101 + +[✓] Network resources [3.6s] + • All expected network resources are available. + +• No issues found! +``` diff --git a/flutter_02.log b/flutter_02.log new file mode 100644 index 0000000..f0b5c4b --- /dev/null +++ b/flutter_02.log @@ -0,0 +1,95 @@ +Flutter crash report. +Please report a bug at https://github.com/flutter/flutter/issues. + +## command + +flutter analyze + +## exception + +_Exception: Exception: analysis server exited with code 255 and output: +[stderr] #24 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #25 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #26 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] +[stderr] +[stderr] +[stderr] #0 LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5) +[stderr] #1 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11) +[stderr] #2 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:153:9) +[stderr] #3 LibraryContext.load. (package:analyzer/src/dart/analysis/library_context.dart:344:7) +[stderr] #4 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15) +[stderr] #5 LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12) +[stderr] #6 AnalysisDriver._produceErrors.. (package:analyzer/src/dart/analysis/driver.dart:2058:26) +[stderr] #7 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #8 AnalysisDriver._produceErrors. (package:analyzer/src/dart/analysis/driver.dart:2057:21) +[stderr] #9 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #10 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #11 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #12 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] + +``` +``` + +## flutter doctor + +``` +[✓] Flutter (Channel stable, 3.32.4, on macOS 15.5 24F74 darwin-arm64, locale + ko-KR) [160ms] + • Flutter version 3.32.4 on channel stable at + /opt/homebrew/Caskroom/flutter/3.29.2/flutter + • Upstream repository https://github.com/flutter/flutter.git + • Framework revision 6fba2447e9 (5 weeks ago), 2025-06-12 19:03:56 -0700 + • Engine revision 8cd19e509d + • Dart version 3.8.1 + • DevTools version 2.45.1 + +[✓] Android toolchain - develop for Android devices (Android SDK version + 35.0.1) [805ms] + • Android SDK at /Users/damn_yul/Library/Android/sdk + • Platform android-35, build-tools 35.0.1 + • Java binary at: /Applications/Android + Studio.app/Contents/jbr/Contents/Home/bin/java + This is the JDK bundled with the latest Android Studio installation on + this machine. + To manually set the JDK path, use: `flutter config + --jdk-dir="path/to/jdk"`. + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + • All Android licenses accepted. + +[✓] Xcode - develop for iOS and macOS (Xcode 16.3) [420ms] + • Xcode at /Applications/Xcode.app/Contents/Developer + • Build 16E140 + • CocoaPods version 1.16.2 + +[✓] Chrome - develop for the web [5ms] + • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome + +[✓] Android Studio (version 2024.3) [4ms] + • Android Studio at /Applications/Android Studio.app/Contents + • Flutter plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/9212-flutter + • Dart plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/6351-dart + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + +[✓] VS Code (version 1.102.0) [3ms] + • VS Code at /Applications/Visual Studio Code.app/Contents + • Flutter extension version 3.114.0 + +[✓] Connected device (3 available) [5.7s] + • iPhone 15 Pro Max (mobile) • C25F166E-C04A-4C97-BC34-F232D5F33DB2 • ios + • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator) + • macOS (desktop) • macos • + darwin-arm64 • macOS 15.5 24F74 darwin-arm64 + • Chrome (web) • chrome • + web-javascript • Google Chrome 138.0.7204.101 + +[✓] Network resources [319ms] + • All expected network resources are available. + +• No issues found! +``` diff --git a/flutter_03.log b/flutter_03.log new file mode 100644 index 0000000..0426081 --- /dev/null +++ b/flutter_03.log @@ -0,0 +1,95 @@ +Flutter crash report. +Please report a bug at https://github.com/flutter/flutter/issues. + +## command + +flutter analyze + +## exception + +_Exception: Exception: analysis server exited with code 255 and output: +[stderr] #24 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #25 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #26 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] +[stderr] +[stderr] +[stderr] #0 LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5) +[stderr] #1 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11) +[stderr] #2 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:153:9) +[stderr] #3 LibraryContext.load. (package:analyzer/src/dart/analysis/library_context.dart:344:7) +[stderr] #4 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15) +[stderr] #5 LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12) +[stderr] #6 AnalysisDriver._produceErrors.. (package:analyzer/src/dart/analysis/driver.dart:2058:26) +[stderr] #7 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #8 AnalysisDriver._produceErrors. (package:analyzer/src/dart/analysis/driver.dart:2057:21) +[stderr] #9 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #10 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #11 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #12 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] + +``` +``` + +## flutter doctor + +``` +[✓] Flutter (Channel stable, 3.32.4, on macOS 15.5 24F74 darwin-arm64, locale + ko-KR) [179ms] + • Flutter version 3.32.4 on channel stable at + /opt/homebrew/Caskroom/flutter/3.29.2/flutter + • Upstream repository https://github.com/flutter/flutter.git + • Framework revision 6fba2447e9 (5 weeks ago), 2025-06-12 19:03:56 -0700 + • Engine revision 8cd19e509d + • Dart version 3.8.1 + • DevTools version 2.45.1 + +[✓] Android toolchain - develop for Android devices (Android SDK version + 35.0.1) [1,063ms] + • Android SDK at /Users/damn_yul/Library/Android/sdk + • Platform android-35, build-tools 35.0.1 + • Java binary at: /Applications/Android + Studio.app/Contents/jbr/Contents/Home/bin/java + This is the JDK bundled with the latest Android Studio installation on + this machine. + To manually set the JDK path, use: `flutter config + --jdk-dir="path/to/jdk"`. + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + • All Android licenses accepted. + +[✓] Xcode - develop for iOS and macOS (Xcode 16.3) [529ms] + • Xcode at /Applications/Xcode.app/Contents/Developer + • Build 16E140 + • CocoaPods version 1.16.2 + +[✓] Chrome - develop for the web [6ms] + • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome + +[✓] Android Studio (version 2024.3) [5ms] + • Android Studio at /Applications/Android Studio.app/Contents + • Flutter plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/9212-flutter + • Dart plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/6351-dart + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + +[✓] VS Code (version 1.102.0) [4ms] + • VS Code at /Applications/Visual Studio Code.app/Contents + • Flutter extension version 3.114.0 + +[✓] Connected device (3 available) [5.8s] + • iPhone 15 Pro Max (mobile) • C25F166E-C04A-4C97-BC34-F232D5F33DB2 • ios + • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator) + • macOS (desktop) • macos • + darwin-arm64 • macOS 15.5 24F74 darwin-arm64 + • Chrome (web) • chrome • + web-javascript • Google Chrome 138.0.7204.101 + +[✓] Network resources [344ms] + • All expected network resources are available. + +• No issues found! +``` diff --git a/flutter_04.log b/flutter_04.log new file mode 100644 index 0000000..0d1d5f7 --- /dev/null +++ b/flutter_04.log @@ -0,0 +1,95 @@ +Flutter crash report. +Please report a bug at https://github.com/flutter/flutter/issues. + +## command + +flutter analyze + +## exception + +_Exception: Exception: analysis server exited with code 255 and output: +[stderr] #24 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #25 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #26 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] +[stderr] +[stderr] +[stderr] #0 LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5) +[stderr] #1 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11) +[stderr] #2 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:153:9) +[stderr] #3 LibraryContext.load. (package:analyzer/src/dart/analysis/library_context.dart:344:7) +[stderr] #4 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15) +[stderr] #5 LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12) +[stderr] #6 AnalysisDriver._produceErrors.. (package:analyzer/src/dart/analysis/driver.dart:2058:26) +[stderr] #7 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #8 AnalysisDriver._produceErrors. (package:analyzer/src/dart/analysis/driver.dart:2057:21) +[stderr] #9 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #10 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #11 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #12 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] + +``` +``` + +## flutter doctor + +``` +[✓] Flutter (Channel stable, 3.32.4, on macOS 15.5 24F74 darwin-arm64, locale + ko-KR) [159ms] + • Flutter version 3.32.4 on channel stable at + /opt/homebrew/Caskroom/flutter/3.29.2/flutter + • Upstream repository https://github.com/flutter/flutter.git + • Framework revision 6fba2447e9 (5 weeks ago), 2025-06-12 19:03:56 -0700 + • Engine revision 8cd19e509d + • Dart version 3.8.1 + • DevTools version 2.45.1 + +[✓] Android toolchain - develop for Android devices (Android SDK version + 35.0.1) [802ms] + • Android SDK at /Users/damn_yul/Library/Android/sdk + • Platform android-35, build-tools 35.0.1 + • Java binary at: /Applications/Android + Studio.app/Contents/jbr/Contents/Home/bin/java + This is the JDK bundled with the latest Android Studio installation on + this machine. + To manually set the JDK path, use: `flutter config + --jdk-dir="path/to/jdk"`. + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + • All Android licenses accepted. + +[✓] Xcode - develop for iOS and macOS (Xcode 16.3) [414ms] + • Xcode at /Applications/Xcode.app/Contents/Developer + • Build 16E140 + • CocoaPods version 1.16.2 + +[✓] Chrome - develop for the web [5ms] + • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome + +[✓] Android Studio (version 2024.3) [4ms] + • Android Studio at /Applications/Android Studio.app/Contents + • Flutter plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/9212-flutter + • Dart plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/6351-dart + • Java version OpenJDK Runtime Environment (build + 21.0.5+-13047016-b750.29) + +[✓] VS Code (version 1.102.0) [3ms] + • VS Code at /Applications/Visual Studio Code.app/Contents + • Flutter extension version 3.114.0 + +[✓] Connected device (3 available) [5.7s] + • iPhone 15 Pro Max (mobile) • C25F166E-C04A-4C97-BC34-F232D5F33DB2 • ios + • com.apple.CoreSimulator.SimRuntime.iOS-17-5 (simulator) + • macOS (desktop) • macos • + darwin-arm64 • macOS 15.5 24F74 darwin-arm64 + • Chrome (web) • chrome • + web-javascript • Google Chrome 138.0.7204.101 + +[✓] Network resources [329ms] + • All expected network resources are available. + +• No issues found! +``` diff --git a/flutter_05.log b/flutter_05.log new file mode 100644 index 0000000..50b6382 --- /dev/null +++ b/flutter_05.log @@ -0,0 +1,83 @@ +Flutter crash report. +Please report a bug at https://github.com/flutter/flutter/issues. + +## command + +flutter analyze + +## exception + +_Exception: Exception: analysis server exited with code 255 and output: +[stderr] #24 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #25 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #26 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] +[stderr] +[stderr] +[stderr] #0 LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5) +[stderr] #1 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11) +[stderr] #2 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:153:9) +[stderr] #3 LibraryContext.load. (package:analyzer/src/dart/analysis/library_context.dart:344:7) +[stderr] #4 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15) +[stderr] #5 LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12) +[stderr] #6 AnalysisDriver._produceErrors.. (package:analyzer/src/dart/analysis/driver.dart:2058:26) +[stderr] #7 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #8 AnalysisDriver._produceErrors. (package:analyzer/src/dart/analysis/driver.dart:2057:21) +[stderr] #9 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #10 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #11 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #12 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] + +``` +``` + +## flutter doctor + +``` +[✓] Flutter (Channel stable, 3.32.4, on macOS 15.5 24F74 darwin-arm64, locale ko-KR) [155ms] + • Flutter version 3.32.4 on channel stable at /opt/homebrew/Caskroom/flutter/3.29.2/flutter + • Upstream repository https://github.com/flutter/flutter.git + • Framework revision 6fba2447e9 (5 weeks ago), 2025-06-12 19:03:56 -0700 + • Engine revision 8cd19e509d + • Dart version 3.8.1 + • DevTools version 2.45.1 + +[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.1) [793ms] + • Android SDK at /Users/damn_yul/Library/Android/sdk + • Platform android-35, build-tools 35.0.1 + • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java + This is the JDK bundled with the latest Android Studio installation on this machine. + To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`. + • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29) + • All Android licenses accepted. + +[✓] Xcode - develop for iOS and macOS (Xcode 16.3) [417ms] + • Xcode at /Applications/Xcode.app/Contents/Developer + • Build 16E140 + • CocoaPods version 1.16.2 + +[✓] Chrome - develop for the web [4ms] + • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome + +[✓] Android Studio (version 2024.3) [4ms] + • Android Studio at /Applications/Android Studio.app/Contents + • Flutter plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/9212-flutter + • Dart plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/6351-dart + • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29) + +[✓] VS Code (version 1.102.0) [3ms] + • VS Code at /Applications/Visual Studio Code.app/Contents + • Flutter extension version 3.114.0 + +[✓] Connected device (2 available) [5.7s] + • macOS (desktop) • macos • darwin-arm64 • macOS 15.5 24F74 darwin-arm64 + • Chrome (web) • chrome • web-javascript • Google Chrome 138.0.7204.101 + +[✓] Network resources [315ms] + • All expected network resources are available. + +• No issues found! +``` diff --git a/flutter_06.log b/flutter_06.log new file mode 100644 index 0000000..78cc344 --- /dev/null +++ b/flutter_06.log @@ -0,0 +1,83 @@ +Flutter crash report. +Please report a bug at https://github.com/flutter/flutter/issues. + +## command + +flutter analyze + +## exception + +_Exception: Exception: analysis server exited with code 255 and output: +[stderr] #24 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #25 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #26 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] +[stderr] +[stderr] +[stderr] #0 LibraryContext._throwLibraryCycleLinkException (package:analyzer/src/dart/analysis/library_context.dart:419:5) +[stderr] #1 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:294:11) +[stderr] #2 LibraryContext.load.loadBundle (package:analyzer/src/dart/analysis/library_context.dart:153:9) +[stderr] #3 LibraryContext.load. (package:analyzer/src/dart/analysis/library_context.dart:344:7) +[stderr] #4 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:38:15) +[stderr] #5 LibraryContext.load (package:analyzer/src/dart/analysis/library_context.dart:343:12) +[stderr] #6 AnalysisDriver._produceErrors.. (package:analyzer/src/dart/analysis/driver.dart:2058:26) +[stderr] #7 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #8 AnalysisDriver._produceErrors. (package:analyzer/src/dart/analysis/driver.dart:2057:21) +[stderr] #9 OperationPerformanceImpl.run (package:analyzer/src/util/performance/operation_performance.dart:155:23) +[stderr] #10 AnalysisDriver._produceErrors (package:analyzer/src/dart/analysis/driver.dart:2047:38) +[stderr] #11 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1267:7) +[stderr] #12 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2659:24) +[stderr] + +``` +``` + +## flutter doctor + +``` +[✓] Flutter (Channel stable, 3.32.6, on macOS 15.5 24F74 darwin-arm64, locale ko-KR) [155ms] + • Flutter version 3.32.6 on channel stable at /opt/homebrew/Caskroom/flutter/3.29.2/flutter + • Upstream repository https://github.com/flutter/flutter.git + • Framework revision 077b4a4ce1 (6 days ago), 2025-07-08 13:31:08 -0700 + • Engine revision 72f2b18bb0 + • Dart version 3.8.1 + • DevTools version 2.45.1 + +[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.1) [831ms] + • Android SDK at /Users/damn_yul/Library/Android/sdk + • Platform android-35, build-tools 35.0.1 + • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java + This is the JDK bundled with the latest Android Studio installation on this machine. + To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`. + • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29) + • All Android licenses accepted. + +[✓] Xcode - develop for iOS and macOS (Xcode 16.3) [430ms] + • Xcode at /Applications/Xcode.app/Contents/Developer + • Build 16E140 + • CocoaPods version 1.16.2 + +[✓] Chrome - develop for the web [5ms] + • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome + +[✓] Android Studio (version 2024.3) [4ms] + • Android Studio at /Applications/Android Studio.app/Contents + • Flutter plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/9212-flutter + • Dart plugin can be installed from: + 🔨 https://plugins.jetbrains.com/plugin/6351-dart + • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29) + +[✓] VS Code (version 1.102.0) [3ms] + • VS Code at /Applications/Visual Studio Code.app/Contents + • Flutter extension version 3.114.0 + +[✓] Connected device (2 available) [5.7s] + • macOS (desktop) • macos • darwin-arm64 • macOS 15.5 24F74 darwin-arm64 + • Chrome (web) • chrome • web-javascript • Google Chrome 138.0.7204.101 + +[✓] Network resources [310ms] + • All expected network resources are available. + +• No issues found! +``` diff --git a/lib/core/config/router/router.dart b/lib/core/config/router/router.dart index d50ac9d..54c355f 100644 --- a/lib/core/config/router/router.dart +++ b/lib/core/config/router/router.dart @@ -1,5 +1,6 @@ import 'package:go_router/go_router.dart'; import 'package:jusicool_ios/main.dart'; +import 'package:jusicool_ios/presentation/chart_search/screens/chart_search_page.dart'; import 'package:jusicool_ios/presentation/community/screens/community_post_list_screen.dart'; import 'package:jusicool_ios/presentation/my_capital/screens/maincapital_screen.dart'; import 'package:jusicool_ios/presentation/my_capital/screens/my_assets_screen.dart'; @@ -11,7 +12,7 @@ import 'package:jusicool_ios/presentation/sign_up/screens/find_school_screen.dar import 'package:jusicool_ios/presentation/sign_up/screens/name_input_screen.dart'; import 'package:jusicool_ios/presentation/sign_up/screens/password_create_screen.dart'; import 'package:jusicool_ios/presentation/splash/screens/splash_screen.dart'; - +import 'package:jusicool_ios/presentation/chart_detail/chart_list_page.dart'; class RoutePaths { static const String splash = '/splash'; @@ -27,6 +28,8 @@ class RoutePaths { static const String orderDetail = '/order-detail'; static const String myAssets = '/my-assets'; static const String communityPostList = '/community-post-list'; + static const String chartList = '/chart-list'; + static const String chartSearch = '/chart-search'; } class AppRouter { @@ -87,6 +90,14 @@ class AppRouter { path: RoutePaths.communityPostList, builder: (context, state) => const CommunityPostListScreen(), ), + GoRoute( + path: RoutePaths.chartList, + builder: (context, state) => const ChartListPage(), + ), + GoRoute( + path: RoutePaths.chartSearch, + builder: (context, state) => ChartSearchPage(), + ), ], ); } diff --git a/lib/core/config/widget/menu_bottom.dart b/lib/core/config/widget/menu_bottom.dart index f501153..232bad6 100644 --- a/lib/core/config/widget/menu_bottom.dart +++ b/lib/core/config/widget/menu_bottom.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:jusicool_design_system/jusicool_design_system.dart'; +import 'package:jusicool_ios/presentation/chart_detail/chart_list_page.dart'; import 'package:jusicool_ios/presentation/my_capital/screens/maincapital_screen.dart'; class ScreenConfig { @@ -13,12 +14,9 @@ class ScreenConfig { class ScreenList { static final List configs = [ ScreenConfig(title: '자산', widget: const MainCapitalScreen()), - ScreenConfig(title: '차트', widget: const MainCapitalScreen()), + ScreenConfig(title: '차트', widget: const ChartListPage()), ScreenConfig(title: '뉴스', widget: const MainCapitalScreen()), - ScreenConfig( - title: '마이 페이지', - widget: const MainCapitalScreen(), - ), //임시 경로 설정, 추후 파일이 생성되면 변경 필요 + ScreenConfig(title: '마이 페이지', widget: const MainCapitalScreen()), ]; static Widget getScreen(int index) { diff --git a/lib/main.dart b/lib/main.dart index 7222dbc..d60fde8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,6 +8,7 @@ import 'package:jusicool_ios/core/config/di/dependencies.dart'; import 'core/config/router/router.dart'; import 'core/config/theme/app_theme.dart'; import 'core/config/widget/menu_bottom.dart'; +import 'package:jusicool_ios/presentation/my_capital/screens/maincapital_screen.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -56,6 +57,9 @@ class MainPage extends StatelessWidget { @override Widget build(BuildContext context) { - return const MenuBottom(); + return Scaffold( + body: const MainCapitalScreen(), + bottomNavigationBar: const MenuBottom(), + ); } } diff --git a/lib/presentation/chart_detail/chart_list_card.dart b/lib/presentation/chart_detail/chart_list_card.dart new file mode 100644 index 0000000..bdb1c98 --- /dev/null +++ b/lib/presentation/chart_detail/chart_list_card.dart @@ -0,0 +1,92 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:jusicool_design_system/jusicool_design_system.dart'; +import 'package:intl/intl.dart'; + +class ChartListCard extends StatelessWidget { + final String imageUrl; + final String chartName; + final int price; + final int changeValue; + final double changePercent; + + const ChartListCard({ + super.key, + required this.imageUrl, + required this.chartName, + required this.price, + required this.changeValue, + required this.changePercent, + }); + + @override + Widget build(BuildContext context) { + final numberFormat = NumberFormat('#,###'); + final String priceText = numberFormat.format(price); + final String changeSign = changeValue >= 0 ? '+' : '-'; + final String changeValueText = numberFormat.format(changeValue.abs()); + final String percentText = changePercent.toStringAsFixed(1); + final Color changeColor = + changeValue > 0 + ? JusicoolColor.error + : changeValue < 0 + ? JusicoolColor.main + : JusicoolColor.gray400; + + return Container( + width: 312.w, + height: 40.h, + decoration: BoxDecoration( + color: JusicoolColor.white, + borderRadius: BorderRadius.circular(8.r), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(6.r), + child: Image.network( + imageUrl, + width: 32.w, + height: 32.h, + fit: BoxFit.cover, + ), + ), + Padding( + padding: EdgeInsets.only(left: 12.w, top: 7.h), + child: Text( + chartName, + style: JusicoolTypography.subTitle.copyWith( + color: JusicoolColor.black, + ), + ), + ), + Expanded(child: Container()), + Column( + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + '$priceText 원', + style: JusicoolTypography.bodySmall.copyWith( + color: JusicoolColor.black, + height: 1.0, + ), + ), + Padding( + padding: EdgeInsets.only(top: 2.h), + child: Text( + '$changeSign$changeValueText ($percentText%)', + style: JusicoolTypography.label.copyWith( + color: changeColor, + height: 1.0, + ), + ), + ), + ], + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/presentation/chart_detail/chart_list_page.dart b/lib/presentation/chart_detail/chart_list_page.dart new file mode 100644 index 0000000..b0130b7 --- /dev/null +++ b/lib/presentation/chart_detail/chart_list_page.dart @@ -0,0 +1,137 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:jusicool_design_system/jusicool_design_system.dart'; +import 'package:jusicool_ios/presentation/chart_detail/chart_list_card.dart'; +import 'package:jusicool_ios/presentation/chart_search/screens/recently_search.dart'; +import 'package:go_router/go_router.dart'; +import 'package:jusicool_ios/core/config/router/router.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:jusicool_ios/presentation/chart_search/controller/recently_search_provider.dart'; + +class ChartListPage extends ConsumerStatefulWidget { + const ChartListPage({super.key}); + @override + ConsumerState createState() => _ChartListPageState(); +} + +class _ChartListPageState extends ConsumerState { + List> chartList = [ + { + 'imageUrl': + 'https://1000logos.net/wp-content/uploads/2016/10/Apple-Logo-500x281.png', + 'chartName': '애플', + 'price': 11111131, + 'changeValue': 111186, + 'changePercent': 7.9, + }, + { + 'imageUrl': + 'https://1000logos.net/wp-content/uploads/2016/10/Apple-Logo-500x281.png', + 'chartName': '테슬라', + 'price': 9876543, + 'changeValue': -123456, + 'changePercent': -3.2, + }, + { + 'imageUrl': + 'https://1000logos.net/wp-content/uploads/2016/10/Apple-Logo-500x281.png', + 'chartName': '삼성', + 'price': 9876523, + 'changeValue': -123416, + 'changePercent': -3.2, + }, + ]; + + @override + Widget build(BuildContext context) { + final recentlySearchList = ref.watch(recentlySearchProvider); + return ColoredBox( + color: JusicoolColor.white, + child: SafeArea( + top: true, + minimum: EdgeInsets.only(top: 52.h), + child: Scaffold( + backgroundColor: JusicoolColor.white, + body: Column( + children: [ + Padding( + padding: EdgeInsets.only( + left: 24.w, + top: 20.h, + bottom: 20.h, + right: 24.w, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + JusicoolImage.logo(width: 116.w, height: 17.h), + GestureDetector( + onTap: + () => + GoRouter.of(context).push(RoutePaths.chartSearch), + child: JusicoolIcon.search(width: 24.w, height: 24.h), + ), + ], + ), + ), + if (recentlySearchList.isNotEmpty) + Padding( + padding: EdgeInsets.only(bottom: 16.h), + child: SizedBox( + height: 32.h, + child: ListView.separated( + scrollDirection: Axis.horizontal, + padding: EdgeInsets.only(left: 16.w), + itemCount: recentlySearchList.length, + itemBuilder: (context, index) { + final item = recentlySearchList[index]; + final chart = chartList.firstWhere( + (c) => c['chartName'] == item['chartName'], + orElse: + () => {'changeValue': 0, 'changePercent': 0.0}, + ); + return RecentlySearchBlock( + chartName: item['chartName'] as String, + changeValue: chart['changeValue'] as int, + changePercent: chart['changePercent'] as double, + onRemove: () { + ref + .read(recentlySearchProvider.notifier) + .removeAt(index); + }, + ); + }, + separatorBuilder: + (context, index) => SizedBox(width: 8.w), + ), + ), + ), + Expanded( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 24.w), + child: ListView.separated( + padding: EdgeInsets.zero, + itemCount: chartList.length, + itemBuilder: (context, index) { + final chart = chartList[index]; + return ChartListCard( + imageUrl: chart['imageUrl'], + chartName: chart['chartName'], + price: chart['price'], + changeValue: chart['changeValue'], + changePercent: chart['changePercent'], + ); + }, + separatorBuilder: + (context, index) => + Padding(padding: EdgeInsets.only(top: 16.h)), + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/presentation/chart_search/controller/recently_search_provider.dart b/lib/presentation/chart_search/controller/recently_search_provider.dart new file mode 100644 index 0000000..9a288d0 --- /dev/null +++ b/lib/presentation/chart_search/controller/recently_search_provider.dart @@ -0,0 +1,28 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +final recentlySearchProvider = + StateNotifierProvider>>( + (ref) => RecentlySearchNotifier(), + ); + +class RecentlySearchNotifier extends StateNotifier>> { + RecentlySearchNotifier() + : super([ + {'chartName': '애플', 'changeValue': 111186, 'changePercent': 7.9}, + {'chartName': '테슬라', 'changeValue': -123456, 'changePercent': -3.2}, + {'chartName': '삼성', 'changeValue': -123416, 'changePercent': -3.2}, + ]); + + void add(String chartName) { + state = [ + {'chartName': chartName, 'changeValue': 0, 'changePercent': 0.0}, + ...state.where((item) => item['chartName'] != chartName), + ]; + } + + void removeAt(int index) { + final newList = [...state]; + newList.removeAt(index); + state = newList; + } +} diff --git a/lib/presentation/chart_search/screens/chart_search_page.dart b/lib/presentation/chart_search/screens/chart_search_page.dart new file mode 100644 index 0000000..12b9898 --- /dev/null +++ b/lib/presentation/chart_search/screens/chart_search_page.dart @@ -0,0 +1,131 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:go_router/go_router.dart'; +import 'package:jusicool_design_system/jusicool_design_system.dart'; +import 'package:jusicool_ios/presentation/chart_search/screens/recently_search.dart'; +import 'package:jusicool_ios/presentation/chart_search/screens/popular_item.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:jusicool_ios/presentation/chart_search/controller/recently_search_provider.dart'; + +class ChartSearchPage extends ConsumerWidget { + ChartSearchPage({super.key}); + + final TextEditingController _searchController = TextEditingController(); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final recentlySearchList = ref.watch(recentlySearchProvider); + return Scaffold( + backgroundColor: JusicoolColor.white, + body: SafeArea( + top: true, + minimum: EdgeInsets.only(top: 52.h), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 24.w), + child: SizedBox( + height: 58.h, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: EdgeInsets.only(top: 17.h, bottom: 17.h), + child: JusicoolIcon.backArrow( + color: Colors.black, + width: 24.w, + height: 24.h, + onTap: () => context.pop(), + ), + ), + SizedBox(width: 12.w), + Expanded( + child: TextField( + controller: _searchController, + onSubmitted: (value) { + if (value.trim().isEmpty) return; + ref.read(recentlySearchProvider.notifier).add(value); + _searchController.clear(); + }, + style: JusicoolTypography.bodySmall.copyWith( + height: 26 / 16, + color: JusicoolColor.gray600, + ), + decoration: InputDecoration( + border: InputBorder.none, + hintText: "'AMD'를 검색해보세요", + hintStyle: JusicoolTypography.bodySmall.copyWith( + height: 26 / 16, + color: JusicoolColor.gray400, + ), + isCollapsed: true, + contentPadding: EdgeInsets.zero, + ), + textAlignVertical: TextAlignVertical.center, + textAlign: TextAlign.left, + ), + ), + ], + ), + ), + ), + SizedBox(height: 10.h), + if (recentlySearchList.isNotEmpty) + Padding( + padding: EdgeInsets.symmetric(horizontal: 24.w), + child: SizedBox( + height: 32.h, + child: ListView.separated( + scrollDirection: Axis.horizontal, + itemCount: recentlySearchList.length, + separatorBuilder: (context, index) => SizedBox(width: 8.w), + itemBuilder: (context, index) { + final item = recentlySearchList[index]; + return RecentlySearchBlock( + chartName: item['chartName'] as String, + changeValue: item['changeValue'] as int, + changePercent: item['changePercent'] as double, + onRemove: () { + ref + .read(recentlySearchProvider.notifier) + .removeAt(index); + }, + ); + }, + ), + ), + ), + if (recentlySearchList.isNotEmpty) SizedBox(height: 24.h), + Padding( + padding: EdgeInsets.only(left: 24.w), + child: Text( + '인기 검색어', + style: JusicoolTypography.bodyMedium.copyWith( + color: Colors.black, + ), + ), + ), + SizedBox(height: 11.h), + Column( + children: List.generate(5, (index) { + final rank = index + 1; + final name = + ['두산로보틱스', '삼성전자', 'LG에너지솔루션', '현대차', '카카오'][index % 5]; + final change = [12.5, -3.2, 0.0, 7.1, -0.8][index % 5]; + return Padding( + padding: EdgeInsets.only(bottom: 11.h), + child: PopularSearchItem( + rank: rank, + name: name, + changePercent: change, + ), + ); + }), + ), + ], + ), + ), + ); + } +} diff --git a/lib/presentation/chart_search/screens/popular_item.dart b/lib/presentation/chart_search/screens/popular_item.dart new file mode 100644 index 0000000..b55ef9a --- /dev/null +++ b/lib/presentation/chart_search/screens/popular_item.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:jusicool_design_system/jusicool_design_system.dart'; + +class PopularSearchItem extends StatelessWidget { + final int rank; + final String name; + final double changePercent; + + const PopularSearchItem({ + super.key, + required this.rank, + required this.name, + required this.changePercent, + }); + + @override + Widget build(BuildContext context) { + Color changeColor; + String changeText; + if (changePercent > 0) { + changeColor = JusicoolColor.error; + changeText = '+${changePercent.toStringAsFixed(1)}%'; + } else if (changePercent < 0) { + changeColor = JusicoolColor.main; + changeText = '${changePercent.toStringAsFixed(1)}%'; + } else { + changeColor = JusicoolColor.gray400; + changeText = '+0.0%'; + } + return Container( + height: 58.h, + padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 24.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12.r), + ), + child: Row( + children: [ + Text( + '$rank', + style: JusicoolTypography.bodyMedium.copyWith( + color: Colors.black, + ), + ), + SizedBox(width: 50.w), + Text( + name, + style: JusicoolTypography.bodySmall.copyWith( + color: Colors.black, + ), + ), + Spacer(), + Text( + changeText, + style: JusicoolTypography.bodySmall.copyWith( + fontFamily: 'Pretendard', + fontWeight: FontWeight.w400, + fontSize: 16.sp, + height: 26 / 16, + letterSpacing: 0, + color: changeColor, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/presentation/chart_search/screens/recently_search.dart b/lib/presentation/chart_search/screens/recently_search.dart new file mode 100644 index 0000000..c1a9d4f --- /dev/null +++ b/lib/presentation/chart_search/screens/recently_search.dart @@ -0,0 +1,81 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:jusicool_design_system/jusicool_design_system.dart'; + +class RecentlySearchBlock extends StatelessWidget { + final String chartName; + final int changeValue; + final double changePercent; + final VoidCallback? onRemove; + const RecentlySearchBlock({ + super.key, + required this.chartName, + required this.changeValue, + required this.changePercent, + this.onRemove, + }); + + @override + Widget build(BuildContext context) { + final String percentText = changePercent.abs().toStringAsFixed(1); + String sign; + Color percentColor; + if (changePercent == 0) { + sign = '+'; + percentColor = JusicoolColor.gray400; + } else if (changePercent > 0) { + sign = '+'; + percentColor = JusicoolColor.error; + } else { + sign = '-'; + percentColor = JusicoolColor.main; + } + return Container( + constraints: BoxConstraints(minHeight: 32.h, minWidth: 60.w), + padding: EdgeInsets.symmetric(horizontal: 12.w, vertical: 8.h), + decoration: BoxDecoration( + color: JusicoolColor.gray100, + borderRadius: BorderRadius.circular(14.r), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Flexible( + child: Text( + chartName, + overflow: TextOverflow.ellipsis, + style: JusicoolTypography.label.copyWith( + color: JusicoolColor.gray600, + ), + textAlign: TextAlign.center, + ), + ), + Padding( + padding: EdgeInsets.only(left: 8.w), + child: Text( + '$sign$percentText%', + style: JusicoolTypography.label.copyWith( + color: percentColor, + ), + textAlign: TextAlign.center, + ), + ), + if (onRemove != null) + Padding( + padding: EdgeInsets.only(left: 8.w), + child: GestureDetector( + onTap: onRemove, + child: Icon( + Icons.close, + size: 16.w, + color: JusicoolColor.gray600, + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux b/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux new file mode 120000 index 0000000..a4c6634 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux @@ -0,0 +1 @@ +/Users/damn_yul/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ \ No newline at end of file diff --git a/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux b/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux new file mode 120000 index 0000000..0d02c87 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/url_launcher_linux @@ -0,0 +1 @@ +/Users/damn_yul/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/ \ No newline at end of file diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..f6f23bf --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..f16b4c3 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + url_launcher_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..a1cdfd0 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import path_provider_foundation +import url_launcher_macos + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) +} diff --git a/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig new file mode 100644 index 0000000..b2d3fd4 --- /dev/null +++ b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -0,0 +1,11 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/opt/homebrew/Caskroom/flutter/3.29.2/flutter +FLUTTER_APPLICATION_PATH=/Users/damn_yul/Jusicool-iOS +COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_BUILD_DIR=build +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 +DART_OBFUSCATION=false +TRACK_WIDGET_CREATION=true +TREE_SHAKE_ICONS=false +PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/macos/Flutter/ephemeral/flutter_export_environment.sh b/macos/Flutter/ephemeral/flutter_export_environment.sh new file mode 100755 index 0000000..d49b7f3 --- /dev/null +++ b/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/opt/homebrew/Caskroom/flutter/3.29.2/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/damn_yul/Jusicool-iOS" +export "COCOAPODS_PARALLEL_CODE_SIGN=true" +export "FLUTTER_BUILD_DIR=build" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" +export "DART_OBFUSCATION=false" +export "TRACK_WIDGET_CREATION=true" +export "TREE_SHAKE_ICONS=false" +export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..29c8eb3 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.14' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/node_modules/clone/clone.iml b/node_modules/clone/clone.iml new file mode 100644 index 0000000..30de8ae --- /dev/null +++ b/node_modules/clone/clone.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/node_modules/node-domexception/.history/README_20210527203617.md b/node_modules/node-domexception/.history/README_20210527203617.md new file mode 100644 index 0000000..38d8f85 --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527203617.md @@ -0,0 +1,2 @@ +# node-domexception +An implementation of the DOMException class from NodeJS diff --git a/node_modules/node-domexception/.history/README_20210527212714.md b/node_modules/node-domexception/.history/README_20210527212714.md new file mode 100644 index 0000000..eed1d13 --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527212714.md @@ -0,0 +1,41 @@ +# DOMException +An implementation of the DOMException class from NodeJS + +This package implements the [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) class, from NodeJS itself. +NodeJS has DOMException built in, but it's not globally available, and you can't require/import it from somewhere. + +The only possible way is to use some web-ish tools that have been introduced into NodeJS that throws an error and catch the constructor. +This way you will have the same class that NodeJS has and you can check if the error is a instance of DOMException. +The instanceof check would not have worked with a custom class such as the DOMexception provided by domenic which also is much larger in size. + +```js +import DOMException from 'node-domexception' + +hello().catch(err => { + if (err instanceof DOMException) { + ... + } +}) + +const e1 = new DOMException("Something went wrong", "BadThingsError"); +console.assert(e1.name === "BadThingsError"); +console.assert(e1.code === 0); + +const e2 = new DOMException("Another exciting error message", "NoModificationAllowedError"); +console.assert(e2.name === "NoModificationAllowedError"); +console.assert(e2.code === 7); + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10); +``` + +## APIs + +This package exposes two flavors of the `DOMException` interface depending on the imported module. + +### `domexception` module + +This module default-exports the `DOMException` interface constructor. + +### `domexception/webidl2js-wrapper` module + +This module exports the `DOMException` [interface wrapper API](https://github.com/jsdom/webidl2js#for-interfaces) generated by [webidl2js](https://github.com/jsdom/webidl2js). diff --git a/node_modules/node-domexception/.history/README_20210527213345.md b/node_modules/node-domexception/.history/README_20210527213345.md new file mode 100644 index 0000000..5825416 --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527213345.md @@ -0,0 +1,36 @@ +# DOMException +An implementation of the DOMException class from NodeJS + +This package implements the [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) class, from NodeJS itself. (including the legacy codes) +NodeJS has DOMException built in, but it's not globally available, and you can't require/import it from somewhere. + +The only possible way is to use some web-ish tools that have been introduced into NodeJS that throws an error and catch the constructor. +This way you will have the same class that NodeJS has and you can check if the error is a instance of DOMException. +The instanceof check would not have worked with a custom class such as the DOMException provided by domenic which also is much larger in size. + +```js +import DOMException from 'node-domexception' +import { MessageChannel } from 'worker_threads' + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 25) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) +``` diff --git a/node_modules/node-domexception/.history/README_20210527213411.md b/node_modules/node-domexception/.history/README_20210527213411.md new file mode 100644 index 0000000..4c21ec8 --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527213411.md @@ -0,0 +1,36 @@ +# DOMException +An implementation of the DOMException class from NodeJS + +This package implements the [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) class that comes from NodeJS itself. (including the legacy codes) +NodeJS has DOMException built in, but it's not globally available, and you can't require/import it from somewhere. + +The only possible way is to use some web-ish tools that have been introduced into NodeJS that throws an error and catch the constructor. +This way you will have the same class that NodeJS has and you can check if the error is a instance of DOMException. +The instanceof check would not have worked with a custom class such as the DOMException provided by domenic which also is much larger in size. + +```js +import DOMException from 'node-domexception' +import { MessageChannel } from 'worker_threads' + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 25) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) +``` diff --git a/node_modules/node-domexception/.history/README_20210527213803.md b/node_modules/node-domexception/.history/README_20210527213803.md new file mode 100644 index 0000000..4cb8571 --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527213803.md @@ -0,0 +1,36 @@ +# DOMException +An implementation of the DOMException class from NodeJS + +This package exposes the [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) class that comes from NodeJS itself. (including all of the deprecated legacy codes) +NodeJS has it built in, but it's not globally available, and you can't require/import it from somewhere. + +The only possible way is to use some web-ish tools that have been introduced into NodeJS that throws an error and catch the constructor. +This way you will have the same class that NodeJS has and you can check if the error is a instance of DOMException. +The instanceof check would not have worked with a custom class such as the DOMException provided by domenic which also is much larger in size since it has to re-construct the hole class from the ground up. + +```js +import DOMException from 'node-domexception' +import { MessageChannel } from 'worker_threads' + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 25) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) +``` diff --git a/node_modules/node-domexception/.history/README_20210527214323.md b/node_modules/node-domexception/.history/README_20210527214323.md new file mode 100644 index 0000000..a32a91b --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527214323.md @@ -0,0 +1,38 @@ +# DOMException +An implementation of the DOMException class from NodeJS + +This package exposes the [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) class that comes from NodeJS itself. (including all of the deprecated legacy codes) +NodeJS has it built in, but it's not globally available, and you can't require/import it from somewhere. + +The only possible way is to use some web-ish tools that have been introduced into NodeJS that throws an error and catch the constructor. +This way you will have the same class that NodeJS has and you can check if the error is a instance of DOMException. +The instanceof check would not have worked with a custom class such as the DOMException provided by domenic which also is much larger in size since it has to re-construct the hole class from the ground up. + +(plz don't depend on this package in any other environment other than node >=10.5) + +```js +import DOMException from 'node-domexception' +import { MessageChannel } from 'worker_threads' + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 25) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) +``` diff --git a/node_modules/node-domexception/.history/README_20210527214408.md b/node_modules/node-domexception/.history/README_20210527214408.md new file mode 100644 index 0000000..a32a91b --- /dev/null +++ b/node_modules/node-domexception/.history/README_20210527214408.md @@ -0,0 +1,38 @@ +# DOMException +An implementation of the DOMException class from NodeJS + +This package exposes the [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException) class that comes from NodeJS itself. (including all of the deprecated legacy codes) +NodeJS has it built in, but it's not globally available, and you can't require/import it from somewhere. + +The only possible way is to use some web-ish tools that have been introduced into NodeJS that throws an error and catch the constructor. +This way you will have the same class that NodeJS has and you can check if the error is a instance of DOMException. +The instanceof check would not have worked with a custom class such as the DOMException provided by domenic which also is much larger in size since it has to re-construct the hole class from the ground up. + +(plz don't depend on this package in any other environment other than node >=10.5) + +```js +import DOMException from 'node-domexception' +import { MessageChannel } from 'worker_threads' + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 25) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) +``` diff --git a/node_modules/node-domexception/.history/index_20210527203842.js b/node_modules/node-domexception/.history/index_20210527203842.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/node-domexception/.history/index_20210527203947.js b/node_modules/node-domexception/.history/index_20210527203947.js new file mode 100644 index 0000000..b9a8b76 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527203947.js @@ -0,0 +1,8 @@ +const { MessageChannel } = require('worker_threads') + +if (!globalThis.DOMException) { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { globalThis.DOMException = err.constructor } +} diff --git a/node_modules/node-domexception/.history/index_20210527204259.js b/node_modules/node-domexception/.history/index_20210527204259.js new file mode 100644 index 0000000..e9332a8 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527204259.js @@ -0,0 +1,9 @@ +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads') + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { globalThis.DOMException = err.constructor } +} + +module.exports diff --git a/node_modules/node-domexception/.history/index_20210527204418.js b/node_modules/node-domexception/.history/index_20210527204418.js new file mode 100644 index 0000000..cb362cc --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527204418.js @@ -0,0 +1,9 @@ +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads') + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { globalThis.DOMException = err.constructor } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527204756.js b/node_modules/node-domexception/.history/index_20210527204756.js new file mode 100644 index 0000000..87d2655 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527204756.js @@ -0,0 +1,11 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads') + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { globalThis.DOMException = err.constructor } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527204833.js b/node_modules/node-domexception/.history/index_20210527204833.js new file mode 100644 index 0000000..837ebda --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527204833.js @@ -0,0 +1,11 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads') + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { globalThis.DOMException = err.constructor } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527211208.js b/node_modules/node-domexception/.history/index_20210527211208.js new file mode 100644 index 0000000..ba215ce --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527211208.js @@ -0,0 +1,15 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + var { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527211248.js b/node_modules/node-domexception/.history/index_20210527211248.js new file mode 100644 index 0000000..f5c434e --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527211248.js @@ -0,0 +1,15 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527212722.js b/node_modules/node-domexception/.history/index_20210527212722.js new file mode 100644 index 0000000..91b3b52 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527212722.js @@ -0,0 +1,23 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException + +const e1 = new DOMException("Something went wrong", "BadThingsError"); +console.assert(e1.name === "BadThingsError"); +console.assert(e1.code === 0); + +const e2 = new DOMException("Another exciting error message", "NoModificationAllowedError"); +console.assert(e2.name === "NoModificationAllowedError"); +console.assert(e2.code === 7); diff --git a/node_modules/node-domexception/.history/index_20210527212731.js b/node_modules/node-domexception/.history/index_20210527212731.js new file mode 100644 index 0000000..cf28864 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527212731.js @@ -0,0 +1,23 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException + +const e1 = new DOMException("Something went wrong", "BadThingsError"); +console.assert(e1.name === "BadThingsError"); +console.assert(e1.code === 0); + +const e2 = new DOMException("Another exciting error message", "NoModificationAllowedError"); +console.assert(e2.name === "NoModificationAllowedError"); +console.assert(e2.code === 2); diff --git a/node_modules/node-domexception/.history/index_20210527212746.js b/node_modules/node-domexception/.history/index_20210527212746.js new file mode 100644 index 0000000..f5c434e --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527212746.js @@ -0,0 +1,15 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527212900.js b/node_modules/node-domexception/.history/index_20210527212900.js new file mode 100644 index 0000000..efa2442 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527212900.js @@ -0,0 +1,16 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + console.log(err.code) + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527213022.js b/node_modules/node-domexception/.history/index_20210527213022.js new file mode 100644 index 0000000..e59f047 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527213022.js @@ -0,0 +1,16 @@ +/*! blob-to-buffer. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + console.log(err.code, err.name, err.message) + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527213822.js b/node_modules/node-domexception/.history/index_20210527213822.js new file mode 100644 index 0000000..7f4e13d --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527213822.js @@ -0,0 +1,16 @@ +/*! node-DOMException. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + try { port.postMessage(ab, [ab, ab]) } + catch (err) { + console.log(err.code, err.name, err.message) + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527213843.js b/node_modules/node-domexception/.history/index_20210527213843.js new file mode 100644 index 0000000..ee75b73 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527213843.js @@ -0,0 +1,17 @@ +/*! node-DOMException. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + catch (err) { + console.log(err.code, err.name, err.message) + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527213852.js b/node_modules/node-domexception/.history/index_20210527213852.js new file mode 100644 index 0000000..a82bee3 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527213852.js @@ -0,0 +1,17 @@ +/*! node-DOMException. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + console.log(err.code, err.name, err.message) + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527213910.js b/node_modules/node-domexception/.history/index_20210527213910.js new file mode 100644 index 0000000..1e1ca29 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527213910.js @@ -0,0 +1,16 @@ +/*! node-DOMException. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527214034.js b/node_modules/node-domexception/.history/index_20210527214034.js new file mode 100644 index 0000000..b7bbe95 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527214034.js @@ -0,0 +1,16 @@ +/*! node-domexception. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/index_20210527214643.js b/node_modules/node-domexception/.history/index_20210527214643.js new file mode 100644 index 0000000..92ed847 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527214643.js @@ -0,0 +1,41 @@ +/*! node-domexception. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException + + +const { MessageChannel } = require('worker_threads') + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 25) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) diff --git a/node_modules/node-domexception/.history/index_20210527214654.js b/node_modules/node-domexception/.history/index_20210527214654.js new file mode 100644 index 0000000..6d5cb8e --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527214654.js @@ -0,0 +1,41 @@ +/*! node-domexception. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException + + +const { MessageChannel } = require('worker_threads') + +async function hello() { + const port = new MessageChannel().port1 + const ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) +} + +hello().catch(err => { + console.assert(err.name === 'DataCloneError') + console.assert(err.code === 21) + console.assert(err instanceof DOMException) +}) + +const e1 = new DOMException('Something went wrong', 'BadThingsError') +console.assert(e1.name === 'BadThingsError') +console.assert(e1.code === 0) + +const e2 = new DOMException('Another exciting error message', 'NoModificationAllowedError') +console.assert(e2.name === 'NoModificationAllowedError') +console.assert(e2.code === 7) + +console.assert(DOMException.INUSE_ATTRIBUTE_ERR === 10) diff --git a/node_modules/node-domexception/.history/index_20210527214700.js b/node_modules/node-domexception/.history/index_20210527214700.js new file mode 100644 index 0000000..b7bbe95 --- /dev/null +++ b/node_modules/node-domexception/.history/index_20210527214700.js @@ -0,0 +1,16 @@ +/*! node-domexception. MIT License. Jimmy Wärting */ + +if (!globalThis.DOMException) { + try { + const { MessageChannel } = require('worker_threads'), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) + } +} + +module.exports = globalThis.DOMException diff --git a/node_modules/node-domexception/.history/package_20210527203733.json b/node_modules/node-domexception/.history/package_20210527203733.json new file mode 100644 index 0000000..5eeb306 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527203733.json @@ -0,0 +1,19 @@ +{ + "name": "domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme" +} diff --git a/node_modules/node-domexception/.history/package_20210527203825.json b/node_modules/node-domexception/.history/package_20210527203825.json new file mode 100644 index 0000000..4ca1713 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527203825.json @@ -0,0 +1,16 @@ +{ + "name": "node-domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "author": "Jimmy Wärting", + "license": "MIT", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme" +} diff --git a/node_modules/node-domexception/.history/package_20210527204621.json b/node_modules/node-domexception/.history/package_20210527204621.json new file mode 100644 index 0000000..3c414e9 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527204621.json @@ -0,0 +1,19 @@ +{ + "name": "node-domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "engines": { + "node": ">=10.5.0" + }, + "author": "Jimmy Wärting", + "license": "MIT", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme" +} diff --git a/node_modules/node-domexception/.history/package_20210527204913.json b/node_modules/node-domexception/.history/package_20210527204913.json new file mode 100644 index 0000000..dbbb5d2 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527204913.json @@ -0,0 +1,25 @@ +{ + "name": "node-domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "engines": { + "node": ">=10.5.0" + }, + "author": "Jimmy Wärting", + "license": "MIT", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + } + ] +} diff --git a/node_modules/node-domexception/.history/package_20210527204925.json b/node_modules/node-domexception/.history/package_20210527204925.json new file mode 100644 index 0000000..dbbb5d2 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527204925.json @@ -0,0 +1,25 @@ +{ + "name": "node-domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "engines": { + "node": ">=10.5.0" + }, + "author": "Jimmy Wärting", + "license": "MIT", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + } + ] +} diff --git a/node_modules/node-domexception/.history/package_20210527205145.json b/node_modules/node-domexception/.history/package_20210527205145.json new file mode 100644 index 0000000..cd08e70 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527205145.json @@ -0,0 +1,29 @@ +{ + "name": "node-domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "engines": { + "node": ">=10.5.0" + }, + "author": "Jimmy Wärting", + "license": "MIT", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ] +} diff --git a/node_modules/node-domexception/.history/package_20210527205156.json b/node_modules/node-domexception/.history/package_20210527205156.json new file mode 100644 index 0000000..cd08e70 --- /dev/null +++ b/node_modules/node-domexception/.history/package_20210527205156.json @@ -0,0 +1,29 @@ +{ + "name": "node-domexception", + "version": "1.0.0", + "description": "An implementation of the DOMException class from NodeJS", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/jimmywarting/node-domexception.git" + }, + "engines": { + "node": ">=10.5.0" + }, + "author": "Jimmy Wärting", + "license": "MIT", + "bugs": { + "url": "https://github.com/jimmywarting/node-domexception/issues" + }, + "homepage": "https://github.com/jimmywarting/node-domexception#readme", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ] +} diff --git a/node_modules/node-domexception/.history/test_20210527205603.js b/node_modules/node-domexception/.history/test_20210527205603.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/node-domexception/.history/test_20210527205957.js b/node_modules/node-domexception/.history/test_20210527205957.js new file mode 100644 index 0000000..73feac5 --- /dev/null +++ b/node_modules/node-domexception/.history/test_20210527205957.js @@ -0,0 +1,3 @@ +require('./index.js') + +console.log(DOMException.INDEX_SIZE_ERR) diff --git a/node_modules/node-domexception/.history/test_20210527210021.js b/node_modules/node-domexception/.history/test_20210527210021.js new file mode 100644 index 0000000..be47491 --- /dev/null +++ b/node_modules/node-domexception/.history/test_20210527210021.js @@ -0,0 +1,3 @@ +const e = require('./index.js') + +console.log(e.INDEX_SIZE_ERR)