@momo-kits/native-kits 0.157.1-beta.9-debug → 0.157.1-com.1-debug
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compose/build.gradle.kts +1 -1
- package/compose/compose.podspec +1 -1
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +350 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +360 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +449 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +21 -7
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
- package/gradle.properties +1 -1
- package/ios/Input/Input.swift +4 -0
- package/local.properties +2 -2
- package/package.json +1 -1
- package/src/doctor/README.md +73 -0
- package/src/doctor/package-lock.json +885 -0
- package/src/doctor/package.json +44 -0
- package/src/doctor/publish.sh +27 -0
- package/src/doctor/src/Users.json +112 -0
- package/src/doctor/src/Whitelist.json +6 -0
- package/src/doctor/src/commands/check.ts +81 -0
- package/src/doctor/src/commands/doctor.ts +193 -0
- package/src/doctor/src/index.ts +35 -0
- package/src/doctor/src/logger.ts +84 -0
- package/src/doctor/src/task/native.ts +21 -0
- package/src/doctor/src/task/utils.ts +20 -0
- package/src/doctor/src/utils/checkCoreDependencies.ts +138 -0
- package/src/doctor/src/utils/checkDeletedPackage.ts +53 -0
- package/src/doctor/src/utils/checkDeprecatedPackages.ts +168 -0
- package/src/doctor/src/utils/checkDeprecatedVersion.ts +60 -0
- package/src/doctor/src/utils/checkShareDependencies.ts +251 -0
- package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +64 -0
- package/src/doctor/src/utils/getErrorMessage.ts +84 -0
- package/src/doctor/src/utils/scanComponentUsage.ts +206 -0
- package/src/doctor/src/utils/scanFoundationImports.ts +169 -0
- package/src/doctor/src/utils/scanMaxApiUsage.ts +86 -0
- package/src/doctor/src/utils/scanNativeModulesUsage.ts +78 -0
- package/src/doctor/src/utils/sendMessage.ts +28 -0
- package/src/doctor/tsconfig.json +14 -0
- package/src/doctor/yarn.lock +492 -0
- package/src/foundations/Application/BottomSheet.tsx +358 -0
- package/src/foundations/Application/BottomTab/BottomTabBar.tsx +320 -0
- package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +155 -0
- package/src/foundations/Application/BottomTab/TabBarIcon.tsx +113 -0
- package/src/foundations/Application/BottomTab/index.tsx +449 -0
- package/src/foundations/Application/Components/BackgroundImageView.tsx +126 -0
- package/src/foundations/Application/Components/HeaderAnimated.tsx +69 -0
- package/src/foundations/Application/Components/HeaderBackground.tsx +83 -0
- package/src/foundations/Application/Components/HeaderExtendHeader.tsx +225 -0
- package/src/foundations/Application/Components/HeaderLeft.tsx +93 -0
- package/src/foundations/Application/Components/HeaderRight.tsx +444 -0
- package/src/foundations/Application/Components/HeaderTitle.tsx +596 -0
- package/src/foundations/Application/Components/NavigationButton.tsx +76 -0
- package/src/foundations/Application/Components/SearchHeader.tsx +127 -0
- package/src/foundations/Application/Localize.ts +44 -0
- package/src/foundations/Application/ModalScreen.tsx +148 -0
- package/src/foundations/Application/Navigation.ts +63 -0
- package/src/foundations/Application/NavigationContainer.tsx +245 -0
- package/src/foundations/Application/Navigator.ts +171 -0
- package/src/foundations/Application/ScaleSizeProvider.tsx +16 -0
- package/src/foundations/Application/StackScreen.tsx +420 -0
- package/src/foundations/Application/TooltipPortal.tsx +127 -0
- package/src/foundations/Application/WidgetContainer.tsx +162 -0
- package/src/foundations/Application/index.ts +34 -0
- package/src/foundations/Application/types.ts +350 -0
- package/src/foundations/Application/utils.tsx +239 -0
- package/src/foundations/Assets/DotAnimation.json +256 -0
- package/src/foundations/Assets/SpinnerAnimation.json +1027 -0
- package/src/foundations/Assets/icon.json +4052 -0
- package/src/foundations/Assets/icon_bank.json +506 -0
- package/src/foundations/Assets/language.json +208 -0
- package/src/foundations/Assets/lottie_circle_loader.json +1 -0
- package/src/foundations/Assets/pinAnimation.json +1 -0
- package/src/foundations/Assets/unpinAnimation.json +1 -0
- package/src/foundations/Badge/Badge.tsx +104 -0
- package/src/foundations/Badge/BadgeDot.tsx +35 -0
- package/src/foundations/Badge/BadgeDotAnimation.tsx +95 -0
- package/src/foundations/Badge/BadgeRibbon.tsx +112 -0
- package/src/foundations/Badge/Shape.tsx +29 -0
- package/src/foundations/Badge/index.tsx +8 -0
- package/src/foundations/Badge/styles.ts +125 -0
- package/src/foundations/Badge/types.ts +68 -0
- package/src/foundations/Button/index.tsx +371 -0
- package/src/foundations/Button/styles.ts +65 -0
- package/src/foundations/CheckBox/index.tsx +104 -0
- package/src/foundations/CheckBox/styles.ts +17 -0
- package/src/foundations/CheckBox/types.ts +37 -0
- package/src/foundations/Consts/colors+spacing+radius.ts +232 -0
- package/src/foundations/Consts/index.ts +4 -0
- package/src/foundations/Consts/styles.ts +52 -0
- package/src/foundations/Consts/theme.ts +121 -0
- package/src/foundations/Context/index.ts +27 -0
- package/src/foundations/Divider/DashDivider.tsx +46 -0
- package/src/foundations/Divider/index.tsx +45 -0
- package/src/foundations/FoundationList/index.tsx +12 -0
- package/src/foundations/FoundationList/types.ts +7 -0
- package/src/foundations/Icon/index.tsx +57 -0
- package/src/foundations/Icon/types.ts +32 -0
- package/src/foundations/IconButton/index.tsx +144 -0
- package/src/foundations/IconButton/styles.ts +20 -0
- package/src/foundations/Image/index.tsx +115 -0
- package/src/foundations/Image/styles.ts +7 -0
- package/src/foundations/Image/types.ts +7 -0
- package/src/foundations/Input/Input.tsx +280 -0
- package/src/foundations/Input/InputDropDown.tsx +161 -0
- package/src/foundations/Input/InputMoney.tsx +325 -0
- package/src/foundations/Input/InputOTP.tsx +299 -0
- package/src/foundations/Input/InputPhoneNumber.tsx +287 -0
- package/src/foundations/Input/InputSearch.tsx +351 -0
- package/src/foundations/Input/InputTextArea.tsx +218 -0
- package/src/foundations/Input/SystemTextInput.tsx +44 -0
- package/src/foundations/Input/TextTyping.tsx +115 -0
- package/src/foundations/Input/common.tsx +243 -0
- package/src/foundations/Input/index.tsx +373 -0
- package/src/foundations/Input/styles.ts +226 -0
- package/src/foundations/Input/utils.ts +97 -0
- package/src/foundations/Layout/Card.tsx +108 -0
- package/src/foundations/Layout/FloatingButton.tsx +179 -0
- package/src/foundations/Layout/GridSystem.tsx +137 -0
- package/src/foundations/Layout/Item.tsx +59 -0
- package/src/foundations/Layout/ItemList.tsx +66 -0
- package/src/foundations/Layout/ItemSectionList.tsx +40 -0
- package/src/foundations/Layout/Screen.tsx +644 -0
- package/src/foundations/Layout/Section.tsx +103 -0
- package/src/foundations/Layout/TrackingScope.tsx +18 -0
- package/src/foundations/Layout/index.ts +34 -0
- package/src/foundations/Layout/styles.ts +95 -0
- package/src/foundations/Layout/types.ts +40 -0
- package/src/foundations/Layout/utils.ts +47 -0
- package/src/foundations/Loader/DotLoader.tsx +37 -0
- package/src/foundations/Loader/Loader.tsx +13 -0
- package/src/foundations/Loader/ProgressBar.tsx +45 -0
- package/src/foundations/Loader/Spinner.tsx +29 -0
- package/src/foundations/Loader/index.tsx +6 -0
- package/src/foundations/Loader/styles.ts +10 -0
- package/src/foundations/Loader/types.ts +35 -0
- package/src/foundations/Loader/utils.ts +25 -0
- package/src/foundations/Pagination/Dot.tsx +19 -0
- package/src/foundations/Pagination/PaginationDot.tsx +44 -0
- package/src/foundations/Pagination/PaginationNumber.tsx +31 -0
- package/src/foundations/Pagination/PaginationScroll.tsx +99 -0
- package/src/foundations/Pagination/PaginationWhiteDot.tsx +43 -0
- package/src/foundations/Pagination/index.tsx +25 -0
- package/src/foundations/Pagination/styles.ts +51 -0
- package/src/foundations/Pagination/types.ts +40 -0
- package/src/foundations/Popup/PopupNotify.tsx +276 -0
- package/src/foundations/Popup/PopupPromotion.tsx +118 -0
- package/src/foundations/Popup/index.tsx +4 -0
- package/src/foundations/Popup/types.ts +96 -0
- package/src/foundations/Radio/index.tsx +108 -0
- package/src/foundations/Radio/styles.ts +15 -0
- package/src/foundations/Radio/types.ts +31 -0
- package/src/foundations/Skeleton/index.tsx +118 -0
- package/src/foundations/Skeleton/styles.ts +5 -0
- package/src/foundations/Skeleton/types.ts +6 -0
- package/src/foundations/Switch/index.tsx +68 -0
- package/src/foundations/Switch/styles.ts +25 -0
- package/src/foundations/Switch/types.ts +19 -0
- package/src/foundations/Tag/index.tsx +128 -0
- package/src/foundations/Tag/types.ts +41 -0
- package/src/foundations/Text/index.tsx +241 -0
- package/src/foundations/Text/styles.ts +78 -0
- package/src/foundations/Text/types.ts +53 -0
- package/src/foundations/Text/utils.ts +63 -0
- package/src/foundations/Title/index.tsx +285 -0
- package/src/foundations/Title/styles.ts +55 -0
- package/src/foundations/Title/types.ts +21 -0
- package/src/foundations/index.ts +50 -0
- package/src/foundations/package.json +35 -0
- package/src/foundations/publish.sh +17 -0
- package/src/libs/AutoComplete/index.tsx +88 -0
- package/src/libs/AutoComplete/package.json +16 -0
- package/src/libs/AutoComplete/publish.sh +16 -0
- package/src/libs/AutoComplete/styles.ts +15 -0
- package/src/libs/AutoComplete/types.ts +60 -0
- package/src/libs/Avatar/index.tsx +146 -0
- package/src/libs/Avatar/package.json +16 -0
- package/src/libs/Avatar/publish.sh +20 -0
- package/src/libs/Avatar/styles.ts +18 -0
- package/src/libs/Avatar/types.ts +57 -0
- package/src/libs/Badge/Badge.tsx +70 -0
- package/src/libs/Badge/BadgeDot.tsx +11 -0
- package/src/libs/Badge/BadgeRibbon.tsx +122 -0
- package/src/libs/Badge/Shape.tsx +29 -0
- package/src/libs/Badge/index.tsx +7 -0
- package/src/libs/Badge/package.json +16 -0
- package/src/libs/Badge/publish.sh +18 -0
- package/src/libs/Badge/styles.ts +55 -0
- package/src/libs/Badge/types.ts +63 -0
- package/src/libs/Calendar/CalendarPro.tsx +307 -0
- package/src/libs/Calendar/Day.tsx +150 -0
- package/src/libs/Calendar/HeaderControl.tsx +55 -0
- package/src/libs/Calendar/LunarDateConverter.ts +228 -0
- package/src/libs/Calendar/LunarService.ts +206 -0
- package/src/libs/Calendar/Month.tsx +118 -0
- package/src/libs/Calendar/MonthList.tsx +226 -0
- package/src/libs/Calendar/TabHeader.tsx +91 -0
- package/src/libs/Calendar/Util.ts +288 -0
- package/src/libs/Calendar/holidayData.ts +118 -0
- package/src/libs/Calendar/index.tsx +383 -0
- package/src/libs/Calendar/package.json +18 -0
- package/src/libs/Calendar/publish.sh +18 -0
- package/src/libs/Calendar/styles.ts +122 -0
- package/src/libs/Calendar/types.ts +212 -0
- package/src/libs/Carousel/animation.ts +62 -0
- package/src/libs/Carousel/index.tsx +517 -0
- package/src/libs/Carousel/package.json +18 -0
- package/src/libs/Carousel/publish.sh +16 -0
- package/src/libs/Carousel/types.ts +71 -0
- package/src/libs/Chip/index.tsx +164 -0
- package/src/libs/Chip/package.json +16 -0
- package/src/libs/Chip/publish.sh +16 -0
- package/src/libs/Chip/styles.ts +20 -0
- package/src/libs/Chip/types.ts +72 -0
- package/src/libs/Collapse/index.tsx +305 -0
- package/src/libs/Collapse/package.json +16 -0
- package/src/libs/Collapse/publish.sh +18 -0
- package/src/libs/Collapse/styles.ts +37 -0
- package/src/libs/Collapse/types.ts +84 -0
- package/src/libs/DateTimePicker/WheelPicker.tsx +163 -0
- package/src/libs/DateTimePicker/WheelPickerItem.tsx +58 -0
- package/src/libs/DateTimePicker/index.tsx +188 -0
- package/src/libs/DateTimePicker/package.json +16 -0
- package/src/libs/DateTimePicker/publish.sh +17 -0
- package/src/libs/DateTimePicker/styles.ts +31 -0
- package/src/libs/DateTimePicker/types.ts +102 -0
- package/src/libs/DateTimePicker/utils.ts +114 -0
- package/src/libs/Information/index.tsx +129 -0
- package/src/libs/Information/package.json +16 -0
- package/src/libs/Information/publish.sh +18 -0
- package/src/libs/Information/styles.ts +34 -0
- package/src/libs/Information/types.ts +79 -0
- package/src/libs/Logo/index.tsx +39 -0
- package/src/libs/Logo/package.json +17 -0
- package/src/libs/Logo/publish.sh +16 -0
- package/src/libs/Logo/styles.ts +25 -0
- package/src/libs/Logo/types.ts +13 -0
- package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +128 -0
- package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +88 -0
- package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +85 -0
- package/src/libs/ProgressInfo/index.tsx +22 -0
- package/src/libs/ProgressInfo/package.json +16 -0
- package/src/libs/ProgressInfo/publish.sh +16 -0
- package/src/libs/ProgressInfo/styles.ts +46 -0
- package/src/libs/ProgressInfo/types.ts +60 -0
- package/src/libs/ProgressInfo/yarn.lock +8 -0
- package/src/libs/Rating/index.tsx +74 -0
- package/src/libs/Rating/package.json +16 -0
- package/src/libs/Rating/publish.sh +18 -0
- package/src/libs/Rating/type.ts +25 -0
- package/src/libs/Slider/Label.tsx +33 -0
- package/src/libs/Slider/helpers.ts +35 -0
- package/src/libs/Slider/hooks.tsx +218 -0
- package/src/libs/Slider/index.tsx +453 -0
- package/src/libs/Slider/package.json +16 -0
- package/src/libs/Slider/publish.sh +18 -0
- package/src/libs/Slider/styles.ts +36 -0
- package/src/libs/Stepper/NumberView.tsx +64 -0
- package/src/libs/Stepper/StepperButton.tsx +37 -0
- package/src/libs/Stepper/index.tsx +139 -0
- package/src/libs/Stepper/package.json +16 -0
- package/src/libs/Stepper/publish.sh +17 -0
- package/src/libs/Stepper/styles.ts +44 -0
- package/src/libs/Stepper/types.ts +154 -0
- package/src/libs/Steps/StepIcon.tsx +86 -0
- package/src/libs/Steps/StepsHorizontal.tsx +189 -0
- package/src/libs/Steps/StepsVertical.tsx +133 -0
- package/src/libs/Steps/index.tsx +20 -0
- package/src/libs/Steps/package.json +16 -0
- package/src/libs/Steps/publish.sh +16 -0
- package/src/libs/Steps/styles.ts +46 -0
- package/src/libs/Steps/types.ts +159 -0
- package/src/libs/Steps/utils.ts +175 -0
- package/src/libs/SuggestAction/SuggestActionView.tsx +124 -0
- package/src/libs/SuggestAction/index.tsx +3 -0
- package/src/libs/SuggestAction/package.json +16 -0
- package/src/libs/SuggestAction/publish.sh +16 -0
- package/src/libs/SuggestAction/styles.ts +30 -0
- package/src/libs/SuggestAction/types.ts +36 -0
- package/src/libs/Swipe/SwipeView.tsx +151 -0
- package/src/libs/Swipe/index.tsx +5 -0
- package/src/libs/Swipe/package.json +16 -0
- package/src/libs/Swipe/publish.sh +16 -0
- package/src/libs/Swipe/styles.ts +16 -0
- package/src/libs/Swipe/types.ts +109 -0
- package/src/libs/TabView/assets/Path.tsx +29 -0
- package/src/libs/TabView/index.tsx +184 -0
- package/src/libs/TabView/package.json +16 -0
- package/src/libs/TabView/publish.sh +16 -0
- package/src/libs/TabView/styles.ts +96 -0
- package/src/libs/TabView/tabBar/CardTabBar.tsx +137 -0
- package/src/libs/TabView/tabBar/SrollableTabBar.tsx +218 -0
- package/src/libs/TabView/tabBar/TabBar.tsx +67 -0
- package/src/libs/TabView/tabItem/CardTabItem.tsx +118 -0
- package/src/libs/TabView/tabItem/TabItem.tsx +180 -0
- package/src/libs/TabView/types.ts +166 -0
- package/src/libs/Template/HeaderSliderBanner/index.tsx +86 -0
- package/src/libs/Template/HeaderSliderBanner/types.ts +16 -0
- package/src/libs/Template/TrustBanner/CustomAvatar.tsx +39 -0
- package/src/libs/Template/TrustBanner/index.tsx +161 -0
- package/src/libs/Template/TrustBanner/styles.ts +48 -0
- package/src/libs/Template/TrustBanner/types.ts +50 -0
- package/src/libs/Template/index.tsx +4 -0
- package/src/libs/Template/package.json +18 -0
- package/src/libs/Template/publish.sh +17 -0
- package/src/libs/Title/index.tsx +284 -0
- package/src/libs/Title/package.json +17 -0
- package/src/libs/Title/publish.sh +16 -0
- package/src/libs/Title/styles.ts +54 -0
- package/src/libs/Title/types.ts +21 -0
- package/src/libs/Tooltip/TooltipButtons.tsx +54 -0
- package/src/libs/Tooltip/index.tsx +608 -0
- package/src/libs/Tooltip/package.json +16 -0
- package/src/libs/Tooltip/publish.sh +18 -0
- package/src/libs/Tooltip/styles.ts +70 -0
- package/src/libs/Tooltip/types.ts +61 -0
- package/src/libs/Uploader/index.tsx +87 -0
- package/src/libs/Uploader/package.json +17 -0
- package/src/libs/Uploader/publish.sh +18 -0
- package/src/libs/Uploader/styles.ts +30 -0
- package/src/libs/Uploader/types.ts +69 -0
- package/src/native/MoMoNative.podspec +18 -0
- package/src/native/calculator/android/build.gradle +61 -0
- package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src/native/calculator/android/gradlew +172 -0
- package/src/native/calculator/android/gradlew.bat +84 -0
- package/src/native/calculator/android/src/main/AndroidManifest.xml +5 -0
- package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +22 -0
- package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +35 -0
- package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +157 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +36 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +45 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +173 -0
- package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +417 -0
- package/src/native/calculator/ios/Helper/MomoHelper.swift +16 -0
- package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +60 -0
- package/src/native/calculator/ios/KeyboardView.h +19 -0
- package/src/native/calculator/ios/KeyboardView.m +56 -0
- package/src/native/calculator/ios/MomoTextInputCalculator.swift +144 -0
- package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +6 -0
- package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +143 -0
- package/src/native/package.json +14 -0
- package/src/native/publish.sh +29 -0
- package/src/native/resource/android/build.gradle +57 -0
- package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src/native/resource/android/src/main/AndroidManifest.xml +6 -0
- package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +90 -0
- package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +22 -0
- package/src/native/resource/ios/RNResouce.m +71 -0
- package/src/native/resource/ios/RNResource.h +5 -0
- package/example/ios/Example.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@momo-kits/doctor",
|
|
3
|
+
"version": "0.1.27-beta.1",
|
|
4
|
+
"description": "Momo-kits doctor tool",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"momo-kits": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "node ./node_modules/.bin/tsc",
|
|
11
|
+
"dev": "node ./node_modules/.bin/ts-node src/index.ts",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"prepublishOnly": "npm run build",
|
|
14
|
+
"test": "echo \"No tests configured yet\" && exit 0"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"keywords": [
|
|
20
|
+
"cli",
|
|
21
|
+
"doctor",
|
|
22
|
+
"development",
|
|
23
|
+
"momo-kits"
|
|
24
|
+
],
|
|
25
|
+
"author": "",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@yarnpkg/lockfile": "^1.1.0",
|
|
29
|
+
"chalk": "^4.1.2",
|
|
30
|
+
"commander": "^13.1.0",
|
|
31
|
+
"inquirer": "^8.2.5",
|
|
32
|
+
"react-scanner": "^1.2.0",
|
|
33
|
+
"semver": "^7.7.1",
|
|
34
|
+
"yaml": "^2.7.1"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/inquirer": "^8.2.5",
|
|
38
|
+
"@types/node": "^22.15.3",
|
|
39
|
+
"@types/semver": "^7.7.0",
|
|
40
|
+
"@types/yarnpkg__lockfile": "^1.1.9",
|
|
41
|
+
"ts-node": "^10.9.2",
|
|
42
|
+
"typescript": "^5.8.3"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Prepare dist files
|
|
4
|
+
rm -rf dist
|
|
5
|
+
mkdir dist
|
|
6
|
+
rsync -r --exclude=/dist ./* dist
|
|
7
|
+
cd dist
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
if [ "$1" == "stable" ]; then
|
|
11
|
+
npm version $(npm view @momo-kits/foundation@stable version)
|
|
12
|
+
npm version patch
|
|
13
|
+
npm publish --tag stable --access=public
|
|
14
|
+
elif [ "$1" == "latest" ]; then
|
|
15
|
+
npm version $(npm view @momo-kits/foundation@latest version)
|
|
16
|
+
npm publish --tag latest --access=public
|
|
17
|
+
else
|
|
18
|
+
npm version $(npm view @momo-kits/title@beta version)
|
|
19
|
+
npm publish --tag beta --access=public
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
PACKAGE_NAME=$(npm pkg get name)
|
|
23
|
+
NEW_PACKAGE_VERSION=$(npm pkg get version)
|
|
24
|
+
|
|
25
|
+
# Clean up
|
|
26
|
+
cd ..
|
|
27
|
+
rm -rf dist
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"vn.momo.addressbook": "users/106279817887758076140",
|
|
3
|
+
"vn.momo.agent": "users/106628491269004268394",
|
|
4
|
+
"vn.momo.ahamove": "users/107190697037501170364",
|
|
5
|
+
"vn.momo.ar": "users/107521286127966359664",
|
|
6
|
+
"vn.momo.authentication": "users/107888482176648859974",
|
|
7
|
+
"vn.momo.autodebit": "users/105366138186365879004",
|
|
8
|
+
"vn.momo.bnpl": "users/116481528213656200740",
|
|
9
|
+
"vn.momo.butta": "users/100079072934789639578",
|
|
10
|
+
"vn.momo.chatbot": "users/107521286127966359664",
|
|
11
|
+
"vn.momo.coinhoarding": "users/118351315569818729535",
|
|
12
|
+
"vn.momo.collaborators": "users/108669803684152254594",
|
|
13
|
+
"vn.momo.devtool": "users/117350096144600649875",
|
|
14
|
+
"vn.momo.edu": "users/103058152793362725873",
|
|
15
|
+
"vn.momo.gamihub": "users/118351315569818729535",
|
|
16
|
+
"vn.momo.healthcenter": "users/103058152793362725873",
|
|
17
|
+
"vn.momo.hlc": "users/107190697037501170364",
|
|
18
|
+
"vn.momo.intro": "users/118174864419592894302",
|
|
19
|
+
"vn.momo.lending_marketplace": "users/106628491269004268394",
|
|
20
|
+
"vn.momo.luckywheel": "users/100079072934789639578",
|
|
21
|
+
"vn.momo.mega2022client": "users/100079072934789639578",
|
|
22
|
+
"vn.momo.merchantsolutions": "users/106628491269004268394",
|
|
23
|
+
"vn.momo.merchanttemplate": "users/103541070063349578162",
|
|
24
|
+
"vn.momo.my_paylater": "users/116481528213656200740",
|
|
25
|
+
"vn.momo.oauthorize": "users/107190697037501170364",
|
|
26
|
+
"vn.momo.openplatform": "users/105787665677771730192",
|
|
27
|
+
"vn.momo.platinummembership": "users/108669803684152254594",
|
|
28
|
+
"vn.momo.progressionhoarding": "users/118351315569818729535",
|
|
29
|
+
"vn.momo.promotion": "users/100079072934789639578",
|
|
30
|
+
"vn.momo.referralcampaign": "users/100079072934789639578",
|
|
31
|
+
"vn.momo.referraltelco": "users/105366138186365879004",
|
|
32
|
+
"vn.momo.school": "users/100079072934789639578",
|
|
33
|
+
"vn.momo.soundbox": "users/107190697037501170364",
|
|
34
|
+
"vn.momo.tigger": "users/103541070063349578162",
|
|
35
|
+
"vn.momo.transfer": "users/111719399439871502655",
|
|
36
|
+
"vn.momo.transport": "users/105007322106342197859",
|
|
37
|
+
"vn.momo.utilities": "users/103058152793362725873",
|
|
38
|
+
"vn.momo.webapp": "users/107190697037501170364",
|
|
39
|
+
"vn.momo.webpaymentsdk": "users/107190697037501170364",
|
|
40
|
+
"vn.momo.bank": "users/101637889640502392681",
|
|
41
|
+
"vn.momo.coopbank": "users/101637889640502392681",
|
|
42
|
+
"vn.momo.ekyc": "users/101637889640502392681",
|
|
43
|
+
"vn.momo.medicarehub": "users/103830993282116768799",
|
|
44
|
+
"vn.momo.studentpass": "users/100079072934789639578",
|
|
45
|
+
"vn.momo.uikits": "users/106969299012781134893",
|
|
46
|
+
"vn.momo.airline": "users/107050213009971342413",
|
|
47
|
+
"vn.momo.appx": "users/102072943552797596818",
|
|
48
|
+
"vn.momo.billpay": "users/103826907742095830390",
|
|
49
|
+
"vn.momo.bookingplatform": "users/105007322106342197859",
|
|
50
|
+
"vn.momo.bus": "users/108790536799198663846",
|
|
51
|
+
"vn.momo.businesspage": "users/107190697037501170364",
|
|
52
|
+
"vn.momo.charitywallet": "users/100079072934789639578",
|
|
53
|
+
"vn.momo.cinema": "users/107050213009971342413",
|
|
54
|
+
"vn.momo.cornerstone": "users/100079072934789639578",
|
|
55
|
+
"vn.momo.expense": "users/102462794947249241785",
|
|
56
|
+
"vn.momo.experiences": "users/105007322106342197859",
|
|
57
|
+
"vn.momo.flight": "users/105007322106342197859",
|
|
58
|
+
"vn.momo.giftselection": "users/100079072934789639578",
|
|
59
|
+
"vn.momo.helpcenter": "users/102072943552797596818",
|
|
60
|
+
"vn.momo.heodat": "users/100079072934789639578",
|
|
61
|
+
"vn.momo.hotel": "users/107268811571346968186",
|
|
62
|
+
"vn.momo.iris": "users/116481528213656200740",
|
|
63
|
+
"vn.momo.mobilecenter": "users/105366138186365879004",
|
|
64
|
+
"vn.momo.momoreward": "users/100079072934789639578",
|
|
65
|
+
"vn.momo.mypocket": "users/100079072934789639578",
|
|
66
|
+
"vn.momo.nikepromotion": "users/100079072934789639578",
|
|
67
|
+
"vn.momo.oa": "users/107190697037501170364",
|
|
68
|
+
"vn.momo.oaportal": "users/107190697037501170364",
|
|
69
|
+
"vn.momo.paymentoffline": "users/106279817887758076140",
|
|
70
|
+
"vn.momo.paymentsdk": "users/106279817887758076140",
|
|
71
|
+
"vn.momo.pigwalking": "users/100079072934789639578",
|
|
72
|
+
"vn.momo.platinum": "users/107190697037501170364",
|
|
73
|
+
"vn.momo.promotionhub": "users/100079072934789639578",
|
|
74
|
+
"vn.momo.publicservice": "users/103058152793362725873",
|
|
75
|
+
"vn.momo.referral": "users/100079072934789639578",
|
|
76
|
+
"vn.momo.securitycenter": "users/102072943552797596818",
|
|
77
|
+
"vn.momo.shakenearby": "users/100079072934789639578",
|
|
78
|
+
"vn.momo.stock": "users/112479860052989960404",
|
|
79
|
+
"vn.momo.train": "users/107268811571346968186",
|
|
80
|
+
"vn.momo.transactionhistory": "users/102462794947249241785",
|
|
81
|
+
"vn.momo.transportcenter": "users/103058152793362725873",
|
|
82
|
+
"vn.momo.travel": "users/105007322106342197859",
|
|
83
|
+
"vn.momo.vietlottsms": "users/103541070063349578162",
|
|
84
|
+
"vn.momo.monorepo": "users/106955297172340348357",
|
|
85
|
+
"vn.momo.credit_newton": "users/108810883556893760938",
|
|
86
|
+
"vn.momo.creditcardmarketplace": "users/106628491269004268394",
|
|
87
|
+
"vn.momo.finance": "users/106628491269004268394",
|
|
88
|
+
"vn.momo.finance_remittance": "users/116481528213656200740",
|
|
89
|
+
"vn.momo.ins_car_damage": "users/106628491269004268394",
|
|
90
|
+
"vn.momo.ins_collection": "users/101833565227113239870",
|
|
91
|
+
"vn.momo.ins_marketplace": "users/116481528213656200740",
|
|
92
|
+
"vn.momo.ins_medical_social": "users/106628491269004268394",
|
|
93
|
+
"vn.momo.investment": "users/116481528213656200740",
|
|
94
|
+
"vn.momo.investmentplatform": "users/106628491269004268394",
|
|
95
|
+
"vn.momo.kratos": "users/106303658937136180468",
|
|
96
|
+
"vn.momo.lending_platform": "users/116481528213656200740",
|
|
97
|
+
"vn.momo.loan_fastmoney": "users/116481528213656200740",
|
|
98
|
+
"vn.momo.paylaterverse": "users/116481528213656200740",
|
|
99
|
+
"vn.momo.user_investment": "users/116481528213656200740",
|
|
100
|
+
"vn.momo.user_score": "users/116481528213656200740",
|
|
101
|
+
"vn.momo.vaynhanh": "users/101520379279578068463",
|
|
102
|
+
"vn.momo.chat": "users/104660424091381270425",
|
|
103
|
+
"vn.momo.profile": "users/100978890687314684768",
|
|
104
|
+
"vn.momo.newsfeed": "users/117721701937816754788",
|
|
105
|
+
"vn.momo.reviewplatform": "users/117721701937816754788",
|
|
106
|
+
"vn.momo.reels": "users/117721701937816754788",
|
|
107
|
+
"vn.momo.receivemoney": "users/111719399439871502655",
|
|
108
|
+
"vn.momo.requestmoney": "users/111719399439871502655",
|
|
109
|
+
"vn.momo.groupfund": "users/111719399439871502655",
|
|
110
|
+
"vn.momo.p2p": "users/111719399439871502655",
|
|
111
|
+
"vn.momo.p2m": "users/111719399439871502655"
|
|
112
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import {checkCoreDependencies} from '../utils/checkCoreDependencies';
|
|
3
|
+
import {checkNativeModuleUsage} from '../task/native';
|
|
4
|
+
import {getLogger, logger} from '../logger';
|
|
5
|
+
import {scanMaxApiUsage} from '../utils/scanMaxApiUsage';
|
|
6
|
+
import scanComponentUsage from '../utils/scanComponentUsage';
|
|
7
|
+
import { checkDeprecatedPackages } from '../utils/checkDeprecatedPackages';
|
|
8
|
+
import { checkDeprecatedVersion } from '../utils/checkDeprecatedVersion';
|
|
9
|
+
import {scanFoundationImports} from '../utils/scanFoundationImports';
|
|
10
|
+
|
|
11
|
+
// Contextual loggers for tasks
|
|
12
|
+
const coreLog = getLogger('CORE_DEP');
|
|
13
|
+
const nativeLog = getLogger('NATIVE_MOD');
|
|
14
|
+
const maxApiLog = getLogger('MAX_API');
|
|
15
|
+
const adoptionLog = getLogger('ADOPTION_RATE');
|
|
16
|
+
const deprecatedPkgLog = getLogger('DEPRECATED_PKG');
|
|
17
|
+
const deprecatedVerLog = getLogger('DEPRECATED_VER');
|
|
18
|
+
const foundationLog = getLogger('FOUNDATION_IMPORTS');
|
|
19
|
+
|
|
20
|
+
export async function checkCommand() {
|
|
21
|
+
const {task} = await inquirer.prompt([
|
|
22
|
+
{
|
|
23
|
+
type: 'list',
|
|
24
|
+
name: 'task',
|
|
25
|
+
message: 'What would you like to check?',
|
|
26
|
+
choices: [
|
|
27
|
+
'Check Mini App using @momo-kits/core or package contain dependency @momo-kits/core',
|
|
28
|
+
'Check Mini App using NativeModule',
|
|
29
|
+
'Calculate miniapp adoption rate',
|
|
30
|
+
'Check Mini App using MaxApi functions will be removed or deprecated',
|
|
31
|
+
'Check Mini App for deprecated @momo-kits packages',
|
|
32
|
+
'Check Mini App for deprecated 0.x.x dependency versions (<0.80.x)',
|
|
33
|
+
'Check Mini App using invalid @momo-kits/foundation imports',
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
]);
|
|
37
|
+
|
|
38
|
+
switch (task) {
|
|
39
|
+
case 'Check Mini App using @momo-kits/core or package contain dependency @momo-kits/core':
|
|
40
|
+
coreLog.info('Running core dependency check');
|
|
41
|
+
checkCoreDependencies();
|
|
42
|
+
break;
|
|
43
|
+
case 'Check Mini App using NativeModule':
|
|
44
|
+
nativeLog.info('Scanning for native module usage');
|
|
45
|
+
await checkNativeModuleUsage();
|
|
46
|
+
break;
|
|
47
|
+
case 'Calculate miniapp adoption rate':
|
|
48
|
+
adoptionLog.info('Calculating component adoption rate');
|
|
49
|
+
await scanComponentUsage();
|
|
50
|
+
break;
|
|
51
|
+
case 'Check Mini App using MaxApi functions will be removed or deprecated':
|
|
52
|
+
maxApiLog.info('Scanning for deprecated MaxAPI usage');
|
|
53
|
+
await scanMaxApiUsage();
|
|
54
|
+
break;
|
|
55
|
+
case 'Check Mini App for deprecated @momo-kits packages':
|
|
56
|
+
deprecatedPkgLog.info('Scanning for deprecated @momo-kits packages');
|
|
57
|
+
checkDeprecatedPackages();
|
|
58
|
+
break;
|
|
59
|
+
case 'Check Mini App for deprecated 0.x.x dependency versions (<0.80.x)':
|
|
60
|
+
deprecatedVerLog.info('Scanning for deprecated 0.x.x dependency versions (<0.80.x)');
|
|
61
|
+
checkDeprecatedVersion();
|
|
62
|
+
break;
|
|
63
|
+
case 'Check Mini App using invalid @momo-kits/foundation imports':
|
|
64
|
+
foundationLog.info('Scanning for invalid foundation imports');
|
|
65
|
+
const results = scanFoundationImports();
|
|
66
|
+
const files = Object.keys(results);
|
|
67
|
+
if (files.length === 0) {
|
|
68
|
+
foundationLog.success('✅ No invalid foundation imports found.');
|
|
69
|
+
} else {
|
|
70
|
+
foundationLog.error(`⚠️ Found invalid foundation imports in ${files.length} file(s):`);
|
|
71
|
+
for (const file of files) {
|
|
72
|
+
foundationLog.info(` ${file}: ${results[file].join(', ')}`);
|
|
73
|
+
}
|
|
74
|
+
foundationLog.info('Only imports from @momo-kits/foundation are allowed, not from internal paths.');
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
default:
|
|
78
|
+
logger.error('Invalid task');
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import {logger} from '../logger';
|
|
2
|
+
import {
|
|
3
|
+
checkCoreDependencies,
|
|
4
|
+
scanCoreNodeModule,
|
|
5
|
+
} from '../utils/checkCoreDependencies';
|
|
6
|
+
import {checkNativeModuleUsage} from '../task/native';
|
|
7
|
+
import scanComponentUsage from '../utils/scanComponentUsage';
|
|
8
|
+
import {scanNativeModulesUsage} from '../utils/scanNativeModulesUsage';
|
|
9
|
+
import {scanMaxApiUsage} from '../utils/scanMaxApiUsage';
|
|
10
|
+
import {checkDeprecatedPackages} from '../utils/checkDeprecatedPackages';
|
|
11
|
+
import {checkDeprecatedVersion} from '../utils/checkDeprecatedVersion';
|
|
12
|
+
import {sendMessage} from '../utils/sendMessage';
|
|
13
|
+
import {getErrorMessage} from '../utils/getErrorMessage';
|
|
14
|
+
import {checkWrongVersionCommunityPackage} from '../utils/checkWrongVersionCommunityPackage';
|
|
15
|
+
import {
|
|
16
|
+
scanFoundationImports,
|
|
17
|
+
scanInternalImportsBuckets,
|
|
18
|
+
} from '../utils/scanFoundationImports';
|
|
19
|
+
import {checkDeletedPackages} from '../utils/checkDeletedPackage';
|
|
20
|
+
import checkShareDependencies from '../utils/checkShareDependencies';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Runs all health checks: core dependencies, native modules, deprecated MaxAPI usage, and foundation imports.
|
|
24
|
+
* Logs results and outputs a final app health summary.
|
|
25
|
+
*/
|
|
26
|
+
export async function doctorCommand(appIdArg?: string): Promise<void> {
|
|
27
|
+
logger.info('🧰 Running doctor: performing all checks...');
|
|
28
|
+
|
|
29
|
+
const BranchOwners: {[key: string]: string} = await fetch(
|
|
30
|
+
'https://static.momocdn.net/app/json/component-kits/Users.json'
|
|
31
|
+
)
|
|
32
|
+
.then(res => res.json())
|
|
33
|
+
.catch(e => {
|
|
34
|
+
console.log(e);
|
|
35
|
+
return;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const WhiteListAppId: string[] = await fetch(
|
|
39
|
+
'https://static.momocdn.net/app/json/component-kits/Whitelist.json'
|
|
40
|
+
)
|
|
41
|
+
.then(res => res.json())
|
|
42
|
+
.catch(e => {
|
|
43
|
+
console.log(e);
|
|
44
|
+
return;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const isWhitelist = WhiteListAppId.includes(appIdArg || 'vn.momo');
|
|
48
|
+
|
|
49
|
+
let allHealthy = true;
|
|
50
|
+
|
|
51
|
+
// Core dependency check
|
|
52
|
+
const coreHealthy = checkCoreDependencies();
|
|
53
|
+
const nodeModuleHaveCore = scanCoreNodeModule();
|
|
54
|
+
if (!coreHealthy || !nodeModuleHaveCore) {
|
|
55
|
+
if (isWhitelist) {
|
|
56
|
+
allHealthy = false;
|
|
57
|
+
} else {
|
|
58
|
+
throw new Error(
|
|
59
|
+
'Core dependencies check failed. Please ensure all required dependencies are installed and up-to-date.'
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Native modules usage check
|
|
65
|
+
const nativeResults = scanNativeModulesUsage();
|
|
66
|
+
const nativeHealthy = await checkNativeModuleUsage();
|
|
67
|
+
const nativeUsageCount = Object.keys(nativeResults).length;
|
|
68
|
+
if (!nativeHealthy) {
|
|
69
|
+
if (isWhitelist) {
|
|
70
|
+
allHealthy = false;
|
|
71
|
+
} else {
|
|
72
|
+
throw new Error(
|
|
73
|
+
'Native module usage check failed. Please ensure all native modules are correctly implemented.'
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const deletedPackages = checkDeletedPackages();
|
|
79
|
+
if (deletedPackages.found.length > 0) {
|
|
80
|
+
if (isWhitelist) {
|
|
81
|
+
allHealthy = false;
|
|
82
|
+
} else {
|
|
83
|
+
throw new Error(
|
|
84
|
+
`Deleted packages found: ${deletedPackages.found.join(
|
|
85
|
+
', '
|
|
86
|
+
)}. Please remove them from your package.json.`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Component usage scan
|
|
92
|
+
logger.info('🔍 Scanning component usage...');
|
|
93
|
+
let componentRate: number = 0;
|
|
94
|
+
try {
|
|
95
|
+
const {rate = 0} = await scanComponentUsage();
|
|
96
|
+
componentRate = rate;
|
|
97
|
+
if (rate < 0.5) {
|
|
98
|
+
allHealthy = false;
|
|
99
|
+
}
|
|
100
|
+
} catch (error) {
|
|
101
|
+
logger.error(`Component scan failed: ${error}`);
|
|
102
|
+
allHealthy = false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Deprecated MaxAPI usage check
|
|
106
|
+
const maxApiResults = scanMaxApiUsage();
|
|
107
|
+
const maxApiHealthy = Object.keys(maxApiResults).length === 0;
|
|
108
|
+
if (maxApiHealthy) {
|
|
109
|
+
logger.success('✅ No deprecated MaxAPI usage found.');
|
|
110
|
+
} else {
|
|
111
|
+
allHealthy = false;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Deprecated packages check
|
|
115
|
+
const {healthy: deprecatedPkgHealthy, found: deprecatedPkgList} =
|
|
116
|
+
checkDeprecatedPackages();
|
|
117
|
+
if (!deprecatedPkgHealthy) {
|
|
118
|
+
allHealthy = false;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Deprecated version check
|
|
122
|
+
const {healthy: deprecatedVerHealthy, found: deprecatedVerList} =
|
|
123
|
+
checkDeprecatedVersion();
|
|
124
|
+
if (!deprecatedVerHealthy) {
|
|
125
|
+
allHealthy = false;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Wrong version check
|
|
129
|
+
const {healthy: wrongVersionHealthy, found: wrongVersionList} =
|
|
130
|
+
checkWrongVersionCommunityPackage();
|
|
131
|
+
if (!wrongVersionHealthy) {
|
|
132
|
+
allHealthy = false;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const sharedDependenciesResult = checkShareDependencies();
|
|
136
|
+
if (!sharedDependenciesResult.healthy) {
|
|
137
|
+
allHealthy = false;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Foundation imports check
|
|
141
|
+
logger.info('🔍 Scanning foundation imports...');
|
|
142
|
+
const foundationResults = scanFoundationImports();
|
|
143
|
+
const {foundations: foundationInternalImports, momoKitsOthers} =
|
|
144
|
+
scanInternalImportsBuckets();
|
|
145
|
+
const foundationHealthy =
|
|
146
|
+
foundationInternalImports.length === 0 && momoKitsOthers.length === 0;
|
|
147
|
+
if (foundationHealthy) {
|
|
148
|
+
logger.success('✅ No invalid foundation imports found.');
|
|
149
|
+
} else {
|
|
150
|
+
logger.error(
|
|
151
|
+
`⚠️ Found invalid foundation imports in ${
|
|
152
|
+
Object.keys(foundationResults).length
|
|
153
|
+
} file(s). Only imports from @momo-kits/foundation are allowed, not from internal paths.`
|
|
154
|
+
);
|
|
155
|
+
throw new Error(
|
|
156
|
+
'Invalid nested imports found. Please import from entry only'
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Final app health summary
|
|
161
|
+
if (allHealthy) {
|
|
162
|
+
logger.success('🎉 App health is good! All checks passed.');
|
|
163
|
+
} else {
|
|
164
|
+
logger.error(
|
|
165
|
+
'⚠️ App health issues detected. Please review the above errors.'
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const appId = appIdArg || 'vn.momo';
|
|
170
|
+
const url =
|
|
171
|
+
'https://chat.googleapis.com/v1/spaces/AAAAbP8987c/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=UGSFRvk_oYb9uGsAgs31bVvMm6jDkmD8zihGm3eyaQA';
|
|
172
|
+
|
|
173
|
+
const messageTest = getErrorMessage(
|
|
174
|
+
coreHealthy,
|
|
175
|
+
nativeHealthy,
|
|
176
|
+
nativeUsageCount,
|
|
177
|
+
componentRate,
|
|
178
|
+
maxApiHealthy,
|
|
179
|
+
maxApiResults,
|
|
180
|
+
deprecatedPkgList,
|
|
181
|
+
deprecatedVerList,
|
|
182
|
+
wrongVersionList,
|
|
183
|
+
sharedDependenciesResult.issues,
|
|
184
|
+
foundationResults
|
|
185
|
+
);
|
|
186
|
+
const userId = BranchOwners[appId];
|
|
187
|
+
|
|
188
|
+
console.log('Doctor check output:\n', appId, messageTest);
|
|
189
|
+
|
|
190
|
+
if (appId && userId && messageTest) {
|
|
191
|
+
sendMessage(url, messageTest, userId, appId);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import {program} from 'commander';
|
|
4
|
+
import {logger} from './logger';
|
|
5
|
+
|
|
6
|
+
// Import commands
|
|
7
|
+
import {checkCommand} from './commands/check';
|
|
8
|
+
import {doctorCommand} from './commands/doctor';
|
|
9
|
+
|
|
10
|
+
// Set up CLI
|
|
11
|
+
program.name('momo-kits').description('MoMo Kits doctor CLI').version('0.1.0');
|
|
12
|
+
|
|
13
|
+
// Add check command
|
|
14
|
+
program
|
|
15
|
+
.command('check')
|
|
16
|
+
.description(
|
|
17
|
+
'Run check mini app with common rule and compatible with MoMo Platform App'
|
|
18
|
+
)
|
|
19
|
+
.action(checkCommand);
|
|
20
|
+
|
|
21
|
+
// Add doctor command to run all checks
|
|
22
|
+
program
|
|
23
|
+
.command('doctor [appId]')
|
|
24
|
+
.description('Run all checks and log app health summary')
|
|
25
|
+
.action((appId?: string) => doctorCommand(appId));
|
|
26
|
+
|
|
27
|
+
// Handle when no command is specified
|
|
28
|
+
if (process.argv.length <= 2) {
|
|
29
|
+
logger.info('🧰 Welcome to Momo-kits doctor CLI!');
|
|
30
|
+
logger.info('Run `momo-kits --help` to see available commands');
|
|
31
|
+
program.help();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Parse args
|
|
35
|
+
program.parse();
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
|
|
3
|
+
// Define log levels
|
|
4
|
+
export enum LogLevel {
|
|
5
|
+
DEBUG = 0,
|
|
6
|
+
INFO = 1,
|
|
7
|
+
WARN = 2,
|
|
8
|
+
ERROR = 3,
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// String identifiers for log levels, used for environment variable lookup and tagging
|
|
12
|
+
const LOG_LEVELS = ['debug', 'info', 'warn', 'error'] as const;
|
|
13
|
+
type LogLevelName = typeof LOG_LEVELS[number];
|
|
14
|
+
|
|
15
|
+
// Determine current log level from environment (default to INFO)
|
|
16
|
+
const envLevel = (process.env.LOG_LEVEL || 'info').toLowerCase() as LogLevelName;
|
|
17
|
+
const currentLevel: LogLevel =
|
|
18
|
+
LOG_LEVELS.includes(envLevel)
|
|
19
|
+
? (LOG_LEVELS.indexOf(envLevel) as LogLevel)
|
|
20
|
+
: LogLevel.INFO;
|
|
21
|
+
|
|
22
|
+
// Check if a message at the given level should be logged
|
|
23
|
+
function shouldLog(level: LogLevel): boolean {
|
|
24
|
+
return level >= currentLevel;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Format the message with a level tag and color
|
|
28
|
+
function formatMessage(level: LogLevel, message: string): string {
|
|
29
|
+
const tag = `[${LOG_LEVELS[level].toUpperCase()}]`;
|
|
30
|
+
switch (level) {
|
|
31
|
+
case LogLevel.DEBUG:
|
|
32
|
+
return chalk.gray(`${tag} ${message}`);
|
|
33
|
+
case LogLevel.INFO:
|
|
34
|
+
return chalk.blue(`${tag} ${message}`);
|
|
35
|
+
case LogLevel.WARN:
|
|
36
|
+
return chalk.yellow(`${tag} ${message}`);
|
|
37
|
+
case LogLevel.ERROR:
|
|
38
|
+
return chalk.red(`${tag} ${message}`);
|
|
39
|
+
default:
|
|
40
|
+
return message;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Common logger with methods for each level
|
|
45
|
+
export const logger = {
|
|
46
|
+
debug: (message: string) => {
|
|
47
|
+
if (shouldLog(LogLevel.DEBUG)) {
|
|
48
|
+
console.log(formatMessage(LogLevel.DEBUG, message));
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
info: (message: string) => {
|
|
52
|
+
if (shouldLog(LogLevel.INFO)) {
|
|
53
|
+
console.log(formatMessage(LogLevel.INFO, message));
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
warn: (message: string) => {
|
|
57
|
+
if (shouldLog(LogLevel.WARN)) {
|
|
58
|
+
console.warn(formatMessage(LogLevel.WARN, message));
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
error: (message: string) => {
|
|
62
|
+
if (shouldLog(LogLevel.ERROR)) {
|
|
63
|
+
console.error(formatMessage(LogLevel.ERROR, message));
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
// Shortcut for success messages (green)
|
|
67
|
+
success: (message: string) => {
|
|
68
|
+
if (shouldLog(LogLevel.INFO)) {
|
|
69
|
+
console.log(chalk.green(`[SUCCESS] ${message}`));
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// Factory to create a logger with a context tag prefix
|
|
75
|
+
export function getLogger(context: string) {
|
|
76
|
+
const prefix = `[${context}] `;
|
|
77
|
+
return {
|
|
78
|
+
debug: (message: string) => logger.debug(prefix + message),
|
|
79
|
+
info: (message: string) => logger.info(prefix + message),
|
|
80
|
+
warn: (message: string) => logger.warn(prefix + message),
|
|
81
|
+
error: (message: string) => logger.error(prefix + message),
|
|
82
|
+
success: (message: string) => logger.success(prefix + message),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { logger } from '../logger';
|
|
2
|
+
import {scanNativeModulesUsage, ScanResult} from '../utils/scanNativeModulesUsage';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Checks for Native Modules usage in code directories and logs results.
|
|
6
|
+
*/
|
|
7
|
+
export async function checkNativeModuleUsage(): Promise<boolean> {
|
|
8
|
+
logger.info('Scanning for Native modules usage...');
|
|
9
|
+
const results: ScanResult = scanNativeModulesUsage();
|
|
10
|
+
const files = Object.keys(results);
|
|
11
|
+
if (files.length === 0) {
|
|
12
|
+
logger.success('✅ No native modules usage found.');
|
|
13
|
+
return true;
|
|
14
|
+
} else {
|
|
15
|
+
logger.error(`⚠️ Found native modules usage in ${files.length} file(s):`);
|
|
16
|
+
for (const file of files) {
|
|
17
|
+
logger.info(` ${file}: ${results[file].join(', ')}`);
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {clearInterval} from 'node:timers';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Displays an animated loading indicator
|
|
5
|
+
* @returns Promise that resolves when loading completes
|
|
6
|
+
*/
|
|
7
|
+
export function simulateLoading() {
|
|
8
|
+
const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
9
|
+
let i = 0;
|
|
10
|
+
|
|
11
|
+
process.stdout.write('\r');
|
|
12
|
+
const interval = setInterval(() => {
|
|
13
|
+
process.stdout.write(`\r${frames[i]} Processing...`);
|
|
14
|
+
i = (i + 1) % frames.length;
|
|
15
|
+
}, 80);
|
|
16
|
+
|
|
17
|
+
return () => {
|
|
18
|
+
clearInterval(interval);
|
|
19
|
+
};
|
|
20
|
+
}
|