@momo-kits/native-kits 0.156.1-test.15 → 0.156.1-test.20-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/PUBLISH_GUIDE.md +255 -386
- package/build.gradle.kts +11 -0
- package/compose/build.gradle.kts +180 -0
- package/compose/build.gradle.kts.backup +180 -0
- package/compose/compose.podspec +54 -0
- package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +113 -0
- package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
- package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
- package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +57 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +95 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +201 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +222 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +48 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +86 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +305 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +33 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +715 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +121 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +405 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +69 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +83 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +32 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +340 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +348 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +94 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +136 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +543 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +23 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +76 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +148 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +188 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +116 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +447 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +172 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +244 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +231 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +234 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +254 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +241 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +364 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +56 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +41 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +92 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +40 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +352 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +103 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +70 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +17 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +96 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +96 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +92 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +130 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +214 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +177 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +205 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +29 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +239 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +191 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +306 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +12 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +13 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +189 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +285 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +35 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +2 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +59 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +68 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +11 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +14 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +50 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +51 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +239 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +119 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +99 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +166 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +333 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +552 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +162 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +226 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +86 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +187 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +274 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +80 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +306 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +31 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +370 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +132 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +219 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +42 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +1329 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +62 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +88 -0
- package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +152 -0
- package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Example.xcscheme +32 -0
- package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/WorkspaceSettings.xcsettings +16 -0
- package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +6 -0
- package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +5 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Pods-Example.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImage.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SkeletonUI.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios.xcscheme +58 -0
- package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +60 -0
- package/gradle/libs.versions.toml +57 -0
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +8 -0
- package/gradle.properties +26 -0
- package/gradlew +252 -0
- package/gradlew.bat +94 -0
- package/local.properties +8 -0
- package/package.json +1 -1
- package/publish.sh +156 -151
- package/settings.gradle.kts +52 -0
package/publish.sh
CHANGED
|
@@ -9,11 +9,11 @@ set -e # Exit on error
|
|
|
9
9
|
# sh publish.sh beta # Run all phases for beta
|
|
10
10
|
# sh publish.sh release # Run all phases for release
|
|
11
11
|
# sh publish.sh beta check # Phase 1 only: Check version (beta)
|
|
12
|
-
# sh publish.sh beta
|
|
13
|
-
# sh publish.sh beta
|
|
12
|
+
# sh publish.sh beta npm # Phase 2 only: Publish to NPM (beta)
|
|
13
|
+
# sh publish.sh beta maven # Phase 3 only: Publish to Maven (beta)
|
|
14
14
|
# sh publish.sh release check # Phase 1 only: Check version (release)
|
|
15
|
-
# sh publish.sh release
|
|
16
|
-
# sh publish.sh release
|
|
15
|
+
# sh publish.sh release npm # Phase 2 only: Publish to NPM (release)
|
|
16
|
+
# sh publish.sh release maven # Phase 3 only: Publish to Maven (release)
|
|
17
17
|
# ============================================================================
|
|
18
18
|
|
|
19
19
|
MODE="${1:-}"
|
|
@@ -27,7 +27,7 @@ if [ -z "$MODE" ]; then
|
|
|
27
27
|
echo " sh publish.sh beta [phase] # Beta publishing"
|
|
28
28
|
echo " sh publish.sh release [phase] # Release publishing"
|
|
29
29
|
echo ""
|
|
30
|
-
echo "Phases: check |
|
|
30
|
+
echo "Phases: check | npm | maven | all (default: all)"
|
|
31
31
|
exit 1
|
|
32
32
|
fi
|
|
33
33
|
|
|
@@ -36,6 +36,13 @@ if [ "$MODE" != "beta" ] && [ "$MODE" != "release" ]; then
|
|
|
36
36
|
exit 1
|
|
37
37
|
fi
|
|
38
38
|
|
|
39
|
+
# Set NPM tag based on mode
|
|
40
|
+
if [ "$MODE" == "beta" ]; then
|
|
41
|
+
NPM_TAG="beta"
|
|
42
|
+
else
|
|
43
|
+
NPM_TAG="latest"
|
|
44
|
+
fi
|
|
45
|
+
|
|
39
46
|
# ============================================================================
|
|
40
47
|
# PHASE 1: CHECK AND UPDATE VERSION
|
|
41
48
|
# ============================================================================
|
|
@@ -45,36 +52,26 @@ phase_check_version() {
|
|
|
45
52
|
echo "📋 PHASE 1: CHECK AND UPDATE VERSION ($MODE)"
|
|
46
53
|
echo "==============================================="
|
|
47
54
|
|
|
48
|
-
|
|
55
|
+
echo "🔍 Reading version from local package.json..."
|
|
56
|
+
|
|
57
|
+
# Get the version from local package.json
|
|
58
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
59
|
+
|
|
60
|
+
if [ -z "$VERSION" ]; then
|
|
61
|
+
echo "❌ Error: Could not read version from package.json"
|
|
62
|
+
exit 1
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
echo "📦 Version from package.json: $VERSION"
|
|
49
66
|
|
|
50
67
|
# ==============================================================
|
|
51
|
-
# BETA MODE:
|
|
68
|
+
# BETA MODE: Fail if version exists
|
|
52
69
|
# ==============================================================
|
|
53
70
|
if [ "$MODE" == "beta" ]; then
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if [ -z "$VERSION" ]; then
|
|
58
|
-
echo "❌ Error: Could not read version from package.json"
|
|
59
|
-
exit 1
|
|
60
|
-
fi
|
|
71
|
+
# Check if this version already exists on npm
|
|
72
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
73
|
+
echo "🔎 Checking if version $VERSION already exists on npm for package $PACKAGE_NAME..."
|
|
61
74
|
|
|
62
|
-
echo "📦 Version from package.json: $VERSION"
|
|
63
|
-
|
|
64
|
-
# Detect tag based on version format
|
|
65
|
-
# Has "beta" in version → tag beta
|
|
66
|
-
# No "beta" in version → tag alpha
|
|
67
|
-
|
|
68
|
-
if [[ "$VERSION" == *"beta"* ]]; then
|
|
69
|
-
NPM_TAG="beta"
|
|
70
|
-
echo "🏷️ Detected: Version contains 'beta' → tag: beta"
|
|
71
|
-
else
|
|
72
|
-
NPM_TAG="alpha"
|
|
73
|
-
echo "🏷️ Detected: Version does not contain 'beta' → tag: alpha"
|
|
74
|
-
fi
|
|
75
|
-
|
|
76
|
-
# Check if version exists on npm
|
|
77
|
-
echo "🔎 Checking if version $VERSION exists on npm..."
|
|
78
75
|
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
79
76
|
|
|
80
77
|
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
@@ -82,6 +79,9 @@ phase_check_version() {
|
|
|
82
79
|
echo "❌ ERROR: Version $VERSION already exists on npm!"
|
|
83
80
|
echo ""
|
|
84
81
|
echo "Please update the version in package.json before publishing."
|
|
82
|
+
echo "You can increment the version manually, for example:"
|
|
83
|
+
echo " - Current: $VERSION"
|
|
84
|
+
echo " - Suggested: Increment patch, minor, or major version"
|
|
85
85
|
echo ""
|
|
86
86
|
exit 1
|
|
87
87
|
fi
|
|
@@ -90,143 +90,126 @@ phase_check_version() {
|
|
|
90
90
|
fi
|
|
91
91
|
|
|
92
92
|
# ==============================================================
|
|
93
|
-
# RELEASE MODE:
|
|
93
|
+
# RELEASE MODE: Convert to beta format and auto-increment
|
|
94
94
|
# ==============================================================
|
|
95
95
|
if [ "$MODE" == "release" ]; then
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
96
|
+
# Check if version has prerelease suffix and convert to beta format if needed
|
|
97
|
+
if [[ "$VERSION" == *"-"* ]]; then
|
|
98
|
+
# Extract base version (e.g., 0.156.1 from 0.156.1-test.5)
|
|
99
|
+
BASE_VERSION=$(echo "$VERSION" | cut -d'-' -f1)
|
|
100
|
+
PRERELEASE_SUFFIX=$(echo "$VERSION" | cut -d'-' -f2)
|
|
101
|
+
|
|
102
|
+
# If it's not already in beta format, convert to beta.1
|
|
103
|
+
if [[ "$PRERELEASE_SUFFIX" != "beta."* ]]; then
|
|
104
|
+
BETA_VERSION="${BASE_VERSION}-beta.1"
|
|
105
|
+
echo "🔄 Converting to beta format: $VERSION → $BETA_VERSION"
|
|
106
|
+
|
|
107
|
+
# Update package.json with beta version
|
|
108
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
109
|
+
# macOS
|
|
110
|
+
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$BETA_VERSION\"/" package.json
|
|
111
|
+
else
|
|
112
|
+
# Linux
|
|
113
|
+
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$BETA_VERSION\"/" package.json
|
|
114
|
+
fi
|
|
115
|
+
|
|
116
|
+
VERSION="$BETA_VERSION"
|
|
117
|
+
echo "✅ Version updated to beta format: $VERSION"
|
|
118
|
+
fi
|
|
105
119
|
fi
|
|
106
120
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
# Extract major.minor.patch (handle versions like 0.156.2 or 0.156.2-beta.1)
|
|
111
|
-
MAJOR=$(echo "$LATEST_VERSION" | cut -d'.' -f1)
|
|
112
|
-
MINOR=$(echo "$LATEST_VERSION" | cut -d'.' -f2)
|
|
113
|
-
PATCH=$(echo "$LATEST_VERSION" | cut -d'.' -f3 | cut -d'-' -f1)
|
|
114
|
-
|
|
115
|
-
# Increment patch
|
|
116
|
-
NEW_PATCH=$((PATCH + 1))
|
|
117
|
-
VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
121
|
+
# Check if this version already exists on npm and increment until we find one that doesn't
|
|
122
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
123
|
+
echo "🔎 Checking if version $VERSION already exists on npm for package $PACKAGE_NAME..."
|
|
118
124
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
# Check if new version exists and continue incrementing
|
|
122
|
-
echo "🔎 Checking if version $VERSION exists on npm..."
|
|
125
|
+
# Loop until we find a version that doesn't exist on npm
|
|
123
126
|
while true; do
|
|
127
|
+
# Try to get the version info from npm
|
|
124
128
|
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
125
129
|
|
|
126
130
|
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
127
|
-
echo "⚠️ Version $VERSION already exists on npm. Auto-incrementing..."
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
+
echo "⚠️ Version $VERSION already exists on npm. Auto-incrementing version..."
|
|
132
|
+
|
|
133
|
+
# Check if it's a beta version
|
|
134
|
+
if [[ "$VERSION" == *"-beta."* ]]; then
|
|
135
|
+
# Extract base version and beta number (e.g., 0.156.1-beta.5)
|
|
136
|
+
BASE_VERSION=$(echo "$VERSION" | cut -d'-' -f1)
|
|
137
|
+
BETA_NUMBER=$(echo "$VERSION" | cut -d'.' -f4)
|
|
138
|
+
|
|
139
|
+
# Increment beta number
|
|
140
|
+
NEW_BETA_NUMBER=$((BETA_NUMBER + 1))
|
|
141
|
+
NEW_VERSION="${BASE_VERSION}-beta.${NEW_BETA_NUMBER}"
|
|
142
|
+
|
|
143
|
+
echo " Version incremented: $VERSION → $NEW_VERSION"
|
|
144
|
+
else
|
|
145
|
+
# Regular version without beta suffix
|
|
146
|
+
# Extract major.minor.patch
|
|
147
|
+
MAJOR=$(echo "$VERSION" | cut -d'.' -f1)
|
|
148
|
+
MINOR=$(echo "$VERSION" | cut -d'.' -f2)
|
|
149
|
+
PATCH=$(echo "$VERSION" | cut -d'.' -f3 | cut -d'-' -f1)
|
|
150
|
+
|
|
151
|
+
# Increment patch version
|
|
152
|
+
NEW_PATCH=$((PATCH + 1))
|
|
153
|
+
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
154
|
+
|
|
155
|
+
echo " Version incremented: $VERSION → $NEW_VERSION"
|
|
156
|
+
fi
|
|
157
|
+
|
|
158
|
+
# Update package.json with new version
|
|
159
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
160
|
+
# macOS
|
|
161
|
+
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$NEW_VERSION\"/" package.json
|
|
162
|
+
else
|
|
163
|
+
# Linux
|
|
164
|
+
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$NEW_VERSION\"/" package.json
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
VERSION="$NEW_VERSION"
|
|
168
|
+
echo "🔄 Checking version $VERSION on npm..."
|
|
131
169
|
else
|
|
132
170
|
echo "✅ Version $VERSION does not exist on npm. Using this version."
|
|
133
171
|
break
|
|
134
172
|
fi
|
|
135
173
|
done
|
|
136
|
-
|
|
137
|
-
# Update package.json with new version
|
|
138
|
-
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
139
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
140
|
-
sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
141
|
-
else
|
|
142
|
-
sed -i "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
143
|
-
fi
|
|
144
|
-
echo "📝 Updated package.json: $CURRENT_VERSION → $VERSION"
|
|
145
|
-
|
|
146
|
-
# Set NPM tag to latest
|
|
147
|
-
NPM_TAG="latest"
|
|
148
174
|
fi
|
|
149
175
|
|
|
150
176
|
# Update gradle.properties with the same version
|
|
151
177
|
echo "📝 Updating gradle.properties..."
|
|
178
|
+
# Get current gradle version
|
|
152
179
|
CURRENT_GRADLE_VERSION=$(grep "^version=" gradle.properties | cut -d'=' -f2 | tr -d '"')
|
|
153
180
|
|
|
181
|
+
# Update version in gradle.properties using sed
|
|
154
182
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
183
|
+
# macOS
|
|
155
184
|
sed -i '' "s/^version=.*/version=$VERSION/" gradle.properties
|
|
156
185
|
else
|
|
186
|
+
# Linux
|
|
157
187
|
sed -i "s/^version=.*/version=$VERSION/" gradle.properties
|
|
158
188
|
fi
|
|
159
189
|
|
|
160
190
|
echo " Gradle version updated: $CURRENT_GRADLE_VERSION → $VERSION"
|
|
161
191
|
|
|
162
192
|
export VERSION="$VERSION"
|
|
163
|
-
export NPM_TAG="$NPM_TAG"
|
|
164
193
|
|
|
165
194
|
echo "✅ Using version: $VERSION"
|
|
166
|
-
echo "✅ NPM tag: $NPM_TAG"
|
|
167
195
|
echo "✅ PHASE 1 COMPLETED"
|
|
168
196
|
echo ""
|
|
169
197
|
}
|
|
170
198
|
|
|
171
199
|
# ============================================================================
|
|
172
|
-
# PHASE 2: PUBLISH TO
|
|
173
|
-
# ============================================================================
|
|
174
|
-
phase_publish_maven() {
|
|
175
|
-
echo ""
|
|
176
|
-
echo "==============================================="
|
|
177
|
-
echo "🔧 PHASE 2: PUBLISH TO MAVEN ($MODE)"
|
|
178
|
-
echo "==============================================="
|
|
179
|
-
|
|
180
|
-
# Get version from package.json
|
|
181
|
-
VERSION=$(node -p "require('./package.json').version")
|
|
182
|
-
export VERSION="$VERSION"
|
|
183
|
-
|
|
184
|
-
echo "📦 Publishing KMP artifacts to Maven (version ${VERSION})..."
|
|
185
|
-
|
|
186
|
-
./gradlew :compose:publishAllPublicationsToGitLabPackagesRepository
|
|
187
|
-
|
|
188
|
-
echo "✅ Maven publishing completed successfully!"
|
|
189
|
-
echo "✅ PHASE 2 COMPLETED"
|
|
190
|
-
echo ""
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
# ============================================================================
|
|
194
|
-
# PHASE 3: PUBLISH TO NPM
|
|
200
|
+
# PHASE 2: PUBLISH TO NPM
|
|
195
201
|
# ============================================================================
|
|
196
202
|
phase_publish_npm() {
|
|
197
203
|
echo ""
|
|
198
204
|
echo "==============================================="
|
|
199
|
-
echo "📦 PHASE
|
|
205
|
+
echo "📦 PHASE 2: PUBLISH TO NPM ($MODE - tag: $NPM_TAG)"
|
|
200
206
|
echo "==============================================="
|
|
201
207
|
|
|
202
208
|
# Get version from package.json
|
|
203
209
|
VERSION=$(node -p "require('./package.json').version")
|
|
204
210
|
export VERSION="$VERSION"
|
|
205
211
|
|
|
206
|
-
echo "📦 Version from package.json: $VERSION"
|
|
207
|
-
|
|
208
|
-
# Determine NPM tag (should already be set from phase 1, but fallback just in case)
|
|
209
|
-
if [ -z "$NPM_TAG" ]; then
|
|
210
|
-
echo "⚠️ NPM_TAG not set, re-detecting..."
|
|
211
|
-
if [ "$MODE" == "beta" ]; then
|
|
212
|
-
# Re-detect based on version format
|
|
213
|
-
if [[ "$VERSION" == *"beta"* ]]; then
|
|
214
|
-
NPM_TAG="beta"
|
|
215
|
-
echo "🏷️ Detected: Version contains 'beta' → tag: beta"
|
|
216
|
-
else
|
|
217
|
-
NPM_TAG="alpha"
|
|
218
|
-
echo "🏷️ Detected: Version does not contain 'beta' → tag: alpha"
|
|
219
|
-
fi
|
|
220
|
-
else
|
|
221
|
-
NPM_TAG="latest"
|
|
222
|
-
echo "🏷️ Release mode → tag: latest"
|
|
223
|
-
fi
|
|
224
|
-
else
|
|
225
|
-
echo "✅ NPM_TAG already set: $NPM_TAG"
|
|
226
|
-
fi
|
|
227
|
-
|
|
228
212
|
echo "📦 Publishing version: $VERSION"
|
|
229
|
-
echo "🏷️ NPM tag: $NPM_TAG"
|
|
230
213
|
|
|
231
214
|
./gradlew clean
|
|
232
215
|
|
|
@@ -240,14 +223,13 @@ phase_publish_npm() {
|
|
|
240
223
|
DEBUG_VERSION="${VERSION}-debug"
|
|
241
224
|
echo "📦 Debug version: $DEBUG_VERSION"
|
|
242
225
|
|
|
243
|
-
# Get current version from package.json (in case it's different from $VERSION)
|
|
244
|
-
CURRENT_PKG_VERSION=$(node -p "require('./package.json').version")
|
|
245
|
-
|
|
246
226
|
# Update package.json version to debug version
|
|
247
227
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
248
|
-
|
|
228
|
+
# macOS
|
|
229
|
+
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
249
230
|
else
|
|
250
|
-
|
|
231
|
+
# Linux
|
|
232
|
+
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
251
233
|
fi
|
|
252
234
|
|
|
253
235
|
# Backup compose/build.gradle.kts
|
|
@@ -257,27 +239,37 @@ phase_publish_npm() {
|
|
|
257
239
|
# Comment out maven publish in compose/build.gradle.kts
|
|
258
240
|
echo "💬 Commenting out maven publish in compose/build.gradle.kts..."
|
|
259
241
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
242
|
+
# macOS - Comment out imports
|
|
260
243
|
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
261
244
|
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
245
|
+
# Comment out plugin
|
|
262
246
|
sed -i '' 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
247
|
+
# Comment out publishing block
|
|
263
248
|
sed -i '' '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
249
|
+
# Comment out entire mavenPublishing block (lines starting from mavenPublishing { to its closing })
|
|
264
250
|
sed -i '' '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
265
251
|
else
|
|
252
|
+
# Linux - Comment out imports
|
|
266
253
|
sed -i 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
267
254
|
sed -i 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
255
|
+
# Comment out plugin
|
|
268
256
|
sed -i 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
257
|
+
# Comment out publishing block
|
|
269
258
|
sed -i '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
259
|
+
# Comment out entire mavenPublishing block
|
|
270
260
|
sed -i '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
271
261
|
fi
|
|
272
262
|
|
|
273
263
|
# Modify android configuration for debug version
|
|
274
264
|
echo "🔧 Modifying android configuration for debug version..."
|
|
275
265
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
266
|
+
# macOS
|
|
276
267
|
sed -i '' 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
277
268
|
sed -i '' 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
278
269
|
sed -i '' 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
279
270
|
sed -i '' "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
280
271
|
else
|
|
272
|
+
# Linux
|
|
281
273
|
sed -i 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
282
274
|
sed -i 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
283
275
|
sed -i 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
@@ -287,7 +279,7 @@ phase_publish_npm() {
|
|
|
287
279
|
# Backup .npmignore
|
|
288
280
|
cp .npmignore .npmignore.backup
|
|
289
281
|
|
|
290
|
-
# Create minimal .npmignore for debug version
|
|
282
|
+
# Create minimal .npmignore for debug version (only exclude build artifacts and IDE configs)
|
|
291
283
|
cat > .npmignore << 'EOF'
|
|
292
284
|
sample/
|
|
293
285
|
build/
|
|
@@ -317,25 +309,16 @@ EOF
|
|
|
317
309
|
echo "✅ compose/build.gradle.kts restored"
|
|
318
310
|
|
|
319
311
|
# Restore package.json version to original
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
324
|
-
sed -i '' "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
325
|
-
else
|
|
326
|
-
sed -i "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
327
|
-
fi
|
|
328
|
-
echo "✅ package.json version restored: $DEBUG_VERSION → $VERSION"
|
|
312
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
313
|
+
# macOS
|
|
314
|
+
sed -i '' "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
329
315
|
else
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
333
|
-
sed -i '' "s/\"version\": \"$CURRENT_VERSION_CHECK\"/\"version\": \"$VERSION\"/" package.json
|
|
334
|
-
else
|
|
335
|
-
sed -i "s/\"version\": \"$CURRENT_VERSION_CHECK\"/\"version\": \"$VERSION\"/" package.json
|
|
336
|
-
fi
|
|
316
|
+
# Linux
|
|
317
|
+
sed -i "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
337
318
|
fi
|
|
338
319
|
|
|
320
|
+
echo "✅ package.json version restored"
|
|
321
|
+
|
|
339
322
|
# ============================================================
|
|
340
323
|
# SECOND PUBLISH: NORMAL VERSION (without compose)
|
|
341
324
|
# ============================================================
|
|
@@ -346,13 +329,35 @@ EOF
|
|
|
346
329
|
echo "✅ Normal version published successfully!"
|
|
347
330
|
|
|
348
331
|
echo ""
|
|
349
|
-
echo "✅ PHASE
|
|
332
|
+
echo "✅ PHASE 2 COMPLETED"
|
|
350
333
|
echo " 🐛 Debug version: $DEBUG_VERSION (with compose) - Published first"
|
|
351
334
|
echo " 📦 Normal version: $VERSION (without compose) - Published second"
|
|
352
335
|
echo " 🏷️ NPM Tag: $NPM_TAG"
|
|
353
336
|
echo ""
|
|
354
337
|
}
|
|
355
338
|
|
|
339
|
+
# ============================================================================
|
|
340
|
+
# PHASE 3: PUBLISH TO MAVEN
|
|
341
|
+
# ============================================================================
|
|
342
|
+
phase_publish_maven() {
|
|
343
|
+
echo ""
|
|
344
|
+
echo "==============================================="
|
|
345
|
+
echo "🔧 PHASE 3: PUBLISH TO MAVEN ($MODE)"
|
|
346
|
+
echo "==============================================="
|
|
347
|
+
|
|
348
|
+
# Get version from package.json
|
|
349
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
350
|
+
export VERSION="$VERSION"
|
|
351
|
+
|
|
352
|
+
echo "📦 Publishing KMP artifacts to Maven (version ${VERSION})..."
|
|
353
|
+
|
|
354
|
+
./gradlew :compose:publishAllPublicationsToGitLabPackagesRepository
|
|
355
|
+
|
|
356
|
+
echo "✅ Maven publishing completed successfully!"
|
|
357
|
+
echo "✅ PHASE 3 COMPLETED"
|
|
358
|
+
echo ""
|
|
359
|
+
}
|
|
360
|
+
|
|
356
361
|
# ============================================================================
|
|
357
362
|
# MAIN EXECUTION
|
|
358
363
|
# ============================================================================
|
|
@@ -366,19 +371,19 @@ case "$PHASE" in
|
|
|
366
371
|
echo "Running PHASE 1 only: Check and update version"
|
|
367
372
|
phase_check_version
|
|
368
373
|
;;
|
|
369
|
-
"maven")
|
|
370
|
-
echo "Running PHASE 2 only: Publish to Maven"
|
|
371
|
-
phase_publish_maven
|
|
372
|
-
;;
|
|
373
374
|
"npm")
|
|
374
|
-
echo "Running PHASE
|
|
375
|
+
echo "Running PHASE 2 only: Publish to NPM"
|
|
375
376
|
phase_publish_npm
|
|
376
377
|
;;
|
|
378
|
+
"maven")
|
|
379
|
+
echo "Running PHASE 3 only: Publish to Maven"
|
|
380
|
+
phase_publish_maven
|
|
381
|
+
;;
|
|
377
382
|
"all")
|
|
378
383
|
echo "Running ALL PHASES"
|
|
379
384
|
phase_check_version
|
|
380
|
-
phase_publish_maven
|
|
381
385
|
phase_publish_npm
|
|
386
|
+
phase_publish_maven
|
|
382
387
|
echo ""
|
|
383
388
|
echo "🎉 ALL PHASES COMPLETED SUCCESSFULLY!"
|
|
384
389
|
echo "================================================="
|
|
@@ -389,8 +394,8 @@ case "$PHASE" in
|
|
|
389
394
|
echo "Usage:"
|
|
390
395
|
echo " sh publish.sh $MODE # Run all phases"
|
|
391
396
|
echo " sh publish.sh $MODE check # Phase 1: Check and update version"
|
|
392
|
-
echo " sh publish.sh $MODE
|
|
393
|
-
echo " sh publish.sh $MODE
|
|
397
|
+
echo " sh publish.sh $MODE npm # Phase 2: Publish to NPM"
|
|
398
|
+
echo " sh publish.sh $MODE maven # Phase 3: Publish to Maven"
|
|
394
399
|
exit 1
|
|
395
400
|
;;
|
|
396
401
|
esac
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import org.gradle.kotlin.dsl.maven
|
|
2
|
+
|
|
3
|
+
rootProject.name = "momo-native-kits"
|
|
4
|
+
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
|
5
|
+
|
|
6
|
+
pluginManagement {
|
|
7
|
+
repositories {
|
|
8
|
+
google {
|
|
9
|
+
mavenContent {
|
|
10
|
+
includeGroupAndSubgroups("androidx")
|
|
11
|
+
includeGroupAndSubgroups("com.android")
|
|
12
|
+
includeGroupAndSubgroups("com.google")
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
mavenCentral()
|
|
16
|
+
gradlePluginPortal()
|
|
17
|
+
maven {
|
|
18
|
+
url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
|
|
19
|
+
credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
|
|
20
|
+
}
|
|
21
|
+
maven {
|
|
22
|
+
url = uri("http://nexus.mservice.com.vn:8081/repository/maven-public/")
|
|
23
|
+
isAllowInsecureProtocol = true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
dependencyResolutionManagement {
|
|
29
|
+
repositories {
|
|
30
|
+
google {
|
|
31
|
+
mavenContent {
|
|
32
|
+
includeGroupAndSubgroups("androidx")
|
|
33
|
+
includeGroupAndSubgroups("com.android")
|
|
34
|
+
includeGroupAndSubgroups("com.google")
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
mavenCentral()
|
|
38
|
+
maven {
|
|
39
|
+
url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
|
|
40
|
+
credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
|
|
41
|
+
}
|
|
42
|
+
maven {
|
|
43
|
+
url = uri("http://nexus.mservice.com.vn:8081/repository/maven-public/")
|
|
44
|
+
isAllowInsecureProtocol = true
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
include(":compose")
|
|
50
|
+
|
|
51
|
+
include(":sample:androidApp")
|
|
52
|
+
include(":sample:shared")
|