@momo-kits/native-kits 0.156.1-test.5 → 0.156.1-test.6-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 +675 -0
- 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 +98 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +163 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +331 -0
- package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +497 -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/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/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 +431 -0
- package/settings.gradle.kts +52 -0
- package/publish_beta.sh +0 -153
package/gradlew.bat
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
@rem
|
|
2
|
+
@rem Copyright 2015 the original author or authors.
|
|
3
|
+
@rem
|
|
4
|
+
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
@rem you may not use this file except in compliance with the License.
|
|
6
|
+
@rem You may obtain a copy of the License at
|
|
7
|
+
@rem
|
|
8
|
+
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
@rem
|
|
10
|
+
@rem Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
@rem See the License for the specific language governing permissions and
|
|
14
|
+
@rem limitations under the License.
|
|
15
|
+
@rem
|
|
16
|
+
@rem SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
@rem
|
|
18
|
+
|
|
19
|
+
@if "%DEBUG%"=="" @echo off
|
|
20
|
+
@rem ##########################################################################
|
|
21
|
+
@rem
|
|
22
|
+
@rem Gradle startup script for Windows
|
|
23
|
+
@rem
|
|
24
|
+
@rem ##########################################################################
|
|
25
|
+
|
|
26
|
+
@rem Set local scope for the variables with windows NT shell
|
|
27
|
+
if "%OS%"=="Windows_NT" setlocal
|
|
28
|
+
|
|
29
|
+
set DIRNAME=%~dp0
|
|
30
|
+
if "%DIRNAME%"=="" set DIRNAME=.
|
|
31
|
+
@rem This is normally unused
|
|
32
|
+
set APP_BASE_NAME=%~n0
|
|
33
|
+
set APP_HOME=%DIRNAME%
|
|
34
|
+
|
|
35
|
+
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
36
|
+
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
37
|
+
|
|
38
|
+
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
39
|
+
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
40
|
+
|
|
41
|
+
@rem Find java.exe
|
|
42
|
+
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
43
|
+
|
|
44
|
+
set JAVA_EXE=java.exe
|
|
45
|
+
%JAVA_EXE% -version >NUL 2>&1
|
|
46
|
+
if %ERRORLEVEL% equ 0 goto execute
|
|
47
|
+
|
|
48
|
+
echo. 1>&2
|
|
49
|
+
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
|
50
|
+
echo. 1>&2
|
|
51
|
+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
52
|
+
echo location of your Java installation. 1>&2
|
|
53
|
+
|
|
54
|
+
goto fail
|
|
55
|
+
|
|
56
|
+
:findJavaFromJavaHome
|
|
57
|
+
set JAVA_HOME=%JAVA_HOME:"=%
|
|
58
|
+
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
59
|
+
|
|
60
|
+
if exist "%JAVA_EXE%" goto execute
|
|
61
|
+
|
|
62
|
+
echo. 1>&2
|
|
63
|
+
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
|
64
|
+
echo. 1>&2
|
|
65
|
+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
66
|
+
echo location of your Java installation. 1>&2
|
|
67
|
+
|
|
68
|
+
goto fail
|
|
69
|
+
|
|
70
|
+
:execute
|
|
71
|
+
@rem Setup the command line
|
|
72
|
+
|
|
73
|
+
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@rem Execute Gradle
|
|
77
|
+
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
|
78
|
+
|
|
79
|
+
:end
|
|
80
|
+
@rem End local scope for the variables with windows NT shell
|
|
81
|
+
if %ERRORLEVEL% equ 0 goto mainEnd
|
|
82
|
+
|
|
83
|
+
:fail
|
|
84
|
+
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
85
|
+
rem the _cmd.exe /c_ return code!
|
|
86
|
+
set EXIT_CODE=%ERRORLEVEL%
|
|
87
|
+
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
|
88
|
+
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
|
89
|
+
exit /b %EXIT_CODE%
|
|
90
|
+
|
|
91
|
+
:mainEnd
|
|
92
|
+
if "%OS%"=="Windows_NT" endlocal
|
|
93
|
+
|
|
94
|
+
:omega
|
package/local.properties
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## This file must *NOT* be checked into Version Control Systems,
|
|
2
|
+
# as it contains information specific to your local configuration.
|
|
3
|
+
#
|
|
4
|
+
# Location of the SDK. This is only used by Gradle.
|
|
5
|
+
# For customization when using a Version Control System, please read the
|
|
6
|
+
# header note.
|
|
7
|
+
#Mon Dec 22 10:07:29 ICT 2025
|
|
8
|
+
sdk.dir=/Users/phuc/Library/Android/sdk
|
package/package.json
CHANGED
package/publish.sh
ADDED
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e # Exit on error
|
|
4
|
+
|
|
5
|
+
# ============================================================================
|
|
6
|
+
# UNIVERSAL PUBLISH SCRIPT
|
|
7
|
+
# ============================================================================
|
|
8
|
+
# Usage:
|
|
9
|
+
# sh publish.sh beta # Run all phases for beta
|
|
10
|
+
# sh publish.sh release # Run all phases for release
|
|
11
|
+
# sh publish.sh beta check # Phase 1 only: Check version (beta)
|
|
12
|
+
# sh publish.sh beta maven # Phase 2 only: Publish to Maven (beta)
|
|
13
|
+
# sh publish.sh beta npm # Phase 3 only: Publish to NPM (beta)
|
|
14
|
+
# sh publish.sh release check # Phase 1 only: Check version (release)
|
|
15
|
+
# sh publish.sh release maven # Phase 2 only: Publish to Maven (release)
|
|
16
|
+
# sh publish.sh release npm # Phase 3 only: Publish to NPM (release)
|
|
17
|
+
# ============================================================================
|
|
18
|
+
|
|
19
|
+
MODE="${1:-}"
|
|
20
|
+
PHASE="${2:-all}"
|
|
21
|
+
|
|
22
|
+
# Validate MODE
|
|
23
|
+
if [ -z "$MODE" ]; then
|
|
24
|
+
echo "❌ Error: MODE is required"
|
|
25
|
+
echo ""
|
|
26
|
+
echo "Usage:"
|
|
27
|
+
echo " sh publish.sh beta [phase] # Beta publishing"
|
|
28
|
+
echo " sh publish.sh release [phase] # Release publishing"
|
|
29
|
+
echo ""
|
|
30
|
+
echo "Phases: check | maven | npm | all (default: all)"
|
|
31
|
+
exit 1
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
if [ "$MODE" != "beta" ] && [ "$MODE" != "release" ]; then
|
|
35
|
+
echo "❌ Error: Invalid MODE '$MODE'. Must be 'beta' or 'release'"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# ============================================================================
|
|
40
|
+
# PHASE 1: CHECK AND UPDATE VERSION
|
|
41
|
+
# ============================================================================
|
|
42
|
+
phase_check_version() {
|
|
43
|
+
echo ""
|
|
44
|
+
echo "==============================================="
|
|
45
|
+
echo "📋 PHASE 1: CHECK AND UPDATE VERSION ($MODE)"
|
|
46
|
+
echo "==============================================="
|
|
47
|
+
|
|
48
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
49
|
+
|
|
50
|
+
# ==============================================================
|
|
51
|
+
# BETA MODE: Detect specific vs normal, format accordingly
|
|
52
|
+
# ==============================================================
|
|
53
|
+
if [ "$MODE" == "beta" ]; then
|
|
54
|
+
echo "🔍 Reading version from package.json..."
|
|
55
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
56
|
+
|
|
57
|
+
if [ -z "$VERSION" ]; then
|
|
58
|
+
echo "❌ Error: Could not read version from package.json"
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
echo "📦 Version from package.json: $VERSION"
|
|
63
|
+
|
|
64
|
+
# Detect version type: specific vs normal
|
|
65
|
+
# Specific: has suffix but NOT "beta" (e.g., 0.156.2-test.1, 0.156.2-alpha.1)
|
|
66
|
+
# Normal: has "beta" suffix OR no suffix (e.g., 0.156.2-beta.1, 0.156.2)
|
|
67
|
+
|
|
68
|
+
if [[ "$VERSION" == *"-"* ]] && [[ "$VERSION" != *"-beta."* ]]; then
|
|
69
|
+
# Has suffix but not beta → specific
|
|
70
|
+
VERSION_TYPE="specific"
|
|
71
|
+
NPM_TAG="alpha"
|
|
72
|
+
echo "🏷️ Detected: SPECIFIC version (tag: alpha)"
|
|
73
|
+
else
|
|
74
|
+
# Has beta suffix or no suffix → normal
|
|
75
|
+
VERSION_TYPE="normal"
|
|
76
|
+
NPM_TAG="beta"
|
|
77
|
+
echo "🏷️ Detected: NORMAL version (tag: beta)"
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# Format version based on type
|
|
81
|
+
if [ "$VERSION_TYPE" == "specific" ]; then
|
|
82
|
+
# Specific: Check existence, FAIL if exists
|
|
83
|
+
echo "🔎 Checking if specific version $VERSION exists on npm..."
|
|
84
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
85
|
+
|
|
86
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
87
|
+
echo ""
|
|
88
|
+
echo "❌ ERROR: Specific version $VERSION already exists on npm!"
|
|
89
|
+
echo ""
|
|
90
|
+
echo "Please update the version in package.json before publishing."
|
|
91
|
+
echo ""
|
|
92
|
+
exit 1
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
echo "✅ Specific version $VERSION does not exist on npm. Safe to publish."
|
|
96
|
+
else
|
|
97
|
+
# Normal: Auto-format and increment
|
|
98
|
+
# If no beta suffix, add -beta.1
|
|
99
|
+
if [[ "$VERSION" != *"-beta."* ]]; then
|
|
100
|
+
echo "🔄 Adding beta suffix: $VERSION → ${VERSION}-beta.1"
|
|
101
|
+
VERSION="${VERSION}-beta.1"
|
|
102
|
+
|
|
103
|
+
# Update package.json with beta version
|
|
104
|
+
ORIGINAL_VERSION=$(node -p "require('./package.json').version")
|
|
105
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
106
|
+
sed -i '' "s/\"version\": \"$ORIGINAL_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
107
|
+
else
|
|
108
|
+
sed -i "s/\"version\": \"$ORIGINAL_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
109
|
+
fi
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# Check if version exists and auto-increment
|
|
113
|
+
echo "🔎 Checking version $VERSION on npm..."
|
|
114
|
+
while true; do
|
|
115
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
116
|
+
|
|
117
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
118
|
+
echo "⚠️ Version $VERSION already exists on npm. Auto-incrementing..."
|
|
119
|
+
|
|
120
|
+
# Extract base version and beta number (e.g., 0.156.1-beta.5)
|
|
121
|
+
BASE_VERSION=$(echo "$VERSION" | cut -d'-' -f1)
|
|
122
|
+
BETA_NUMBER=$(echo "$VERSION" | grep -oE 'beta\.([0-9]+)' | cut -d'.' -f2)
|
|
123
|
+
|
|
124
|
+
# Increment beta number
|
|
125
|
+
NEW_BETA_NUMBER=$((BETA_NUMBER + 1))
|
|
126
|
+
NEW_VERSION="${BASE_VERSION}-beta.${NEW_BETA_NUMBER}"
|
|
127
|
+
|
|
128
|
+
echo " Version incremented: $VERSION → $NEW_VERSION"
|
|
129
|
+
VERSION="$NEW_VERSION"
|
|
130
|
+
else
|
|
131
|
+
echo "✅ Version $VERSION does not exist on npm. Using this version."
|
|
132
|
+
break
|
|
133
|
+
fi
|
|
134
|
+
done
|
|
135
|
+
|
|
136
|
+
# Update package.json with final version
|
|
137
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
138
|
+
if [ "$CURRENT_VERSION" != "$VERSION" ]; then
|
|
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
|
+
fi
|
|
146
|
+
fi
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
# ==============================================================
|
|
150
|
+
# RELEASE MODE: Read from npm@latest and auto-increment
|
|
151
|
+
# ==============================================================
|
|
152
|
+
if [ "$MODE" == "release" ]; then
|
|
153
|
+
echo "🔍 Reading latest version from npm@latest (NOT from package.json)..."
|
|
154
|
+
|
|
155
|
+
# Read version from npm@latest
|
|
156
|
+
LATEST_VERSION=$(npm view "$PACKAGE_NAME@latest" version 2>/dev/null || echo "")
|
|
157
|
+
|
|
158
|
+
if [ -z "$LATEST_VERSION" ]; then
|
|
159
|
+
echo "❌ Error: Could not read version from npm@latest"
|
|
160
|
+
echo "Package may not exist on npm yet."
|
|
161
|
+
exit 1
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
echo "📦 Current @latest version on npm: $LATEST_VERSION"
|
|
165
|
+
|
|
166
|
+
# Parse and increment patch version
|
|
167
|
+
# Extract major.minor.patch (handle versions like 0.156.2 or 0.156.2-beta.1)
|
|
168
|
+
MAJOR=$(echo "$LATEST_VERSION" | cut -d'.' -f1)
|
|
169
|
+
MINOR=$(echo "$LATEST_VERSION" | cut -d'.' -f2)
|
|
170
|
+
PATCH=$(echo "$LATEST_VERSION" | cut -d'.' -f3 | cut -d'-' -f1)
|
|
171
|
+
|
|
172
|
+
# Increment patch
|
|
173
|
+
NEW_PATCH=$((PATCH + 1))
|
|
174
|
+
VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
175
|
+
|
|
176
|
+
echo "🔼 Auto-incremented version: $LATEST_VERSION → $VERSION"
|
|
177
|
+
|
|
178
|
+
# Check if new version exists and continue incrementing
|
|
179
|
+
echo "🔎 Checking if version $VERSION exists on npm..."
|
|
180
|
+
while true; do
|
|
181
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
182
|
+
|
|
183
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
184
|
+
echo "⚠️ Version $VERSION already exists on npm. Auto-incrementing..."
|
|
185
|
+
NEW_PATCH=$((NEW_PATCH + 1))
|
|
186
|
+
VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
187
|
+
echo " Version incremented: → $VERSION"
|
|
188
|
+
else
|
|
189
|
+
echo "✅ Version $VERSION does not exist on npm. Using this version."
|
|
190
|
+
break
|
|
191
|
+
fi
|
|
192
|
+
done
|
|
193
|
+
|
|
194
|
+
# Update package.json with new version
|
|
195
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
196
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
197
|
+
sed -i '' "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
198
|
+
else
|
|
199
|
+
sed -i "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
200
|
+
fi
|
|
201
|
+
echo "📝 Updated package.json: $CURRENT_VERSION → $VERSION"
|
|
202
|
+
|
|
203
|
+
# Set NPM tag to latest
|
|
204
|
+
NPM_TAG="latest"
|
|
205
|
+
fi
|
|
206
|
+
|
|
207
|
+
# Update gradle.properties with the same version
|
|
208
|
+
echo "📝 Updating gradle.properties..."
|
|
209
|
+
CURRENT_GRADLE_VERSION=$(grep "^version=" gradle.properties | cut -d'=' -f2 | tr -d '"')
|
|
210
|
+
|
|
211
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
212
|
+
sed -i '' "s/^version=.*/version=$VERSION/" gradle.properties
|
|
213
|
+
else
|
|
214
|
+
sed -i "s/^version=.*/version=$VERSION/" gradle.properties
|
|
215
|
+
fi
|
|
216
|
+
|
|
217
|
+
echo " Gradle version updated: $CURRENT_GRADLE_VERSION → $VERSION"
|
|
218
|
+
|
|
219
|
+
export VERSION="$VERSION"
|
|
220
|
+
export NPM_TAG="$NPM_TAG"
|
|
221
|
+
|
|
222
|
+
echo "✅ Using version: $VERSION"
|
|
223
|
+
echo "✅ NPM tag: $NPM_TAG"
|
|
224
|
+
echo "✅ PHASE 1 COMPLETED"
|
|
225
|
+
echo ""
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
# ============================================================================
|
|
229
|
+
# PHASE 2: PUBLISH TO MAVEN
|
|
230
|
+
# ============================================================================
|
|
231
|
+
phase_publish_maven() {
|
|
232
|
+
echo ""
|
|
233
|
+
echo "==============================================="
|
|
234
|
+
echo "🔧 PHASE 2: PUBLISH TO MAVEN ($MODE)"
|
|
235
|
+
echo "==============================================="
|
|
236
|
+
|
|
237
|
+
# Get version from package.json
|
|
238
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
239
|
+
export VERSION="$VERSION"
|
|
240
|
+
|
|
241
|
+
echo "📦 Publishing KMP artifacts to Maven (version ${VERSION})..."
|
|
242
|
+
|
|
243
|
+
./gradlew :compose:publishAllPublicationsToGitLabPackagesRepository
|
|
244
|
+
|
|
245
|
+
echo "✅ Maven publishing completed successfully!"
|
|
246
|
+
echo "✅ PHASE 2 COMPLETED"
|
|
247
|
+
echo ""
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
# ============================================================================
|
|
251
|
+
# PHASE 3: PUBLISH TO NPM
|
|
252
|
+
# ============================================================================
|
|
253
|
+
phase_publish_npm() {
|
|
254
|
+
echo ""
|
|
255
|
+
echo "==============================================="
|
|
256
|
+
echo "📦 PHASE 3: PUBLISH TO NPM ($MODE)"
|
|
257
|
+
echo "==============================================="
|
|
258
|
+
|
|
259
|
+
# Get version from package.json
|
|
260
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
261
|
+
export VERSION="$VERSION"
|
|
262
|
+
|
|
263
|
+
# Determine NPM tag (should already be set from phase 1, but fallback just in case)
|
|
264
|
+
if [ -z "$NPM_TAG" ]; then
|
|
265
|
+
if [ "$MODE" == "beta" ]; then
|
|
266
|
+
# Re-detect version type
|
|
267
|
+
if [[ "$VERSION" == *"-"* ]] && [[ "$VERSION" != *"-beta."* ]]; then
|
|
268
|
+
NPM_TAG="alpha"
|
|
269
|
+
else
|
|
270
|
+
NPM_TAG="beta"
|
|
271
|
+
fi
|
|
272
|
+
else
|
|
273
|
+
NPM_TAG="latest"
|
|
274
|
+
fi
|
|
275
|
+
fi
|
|
276
|
+
|
|
277
|
+
echo "📦 Publishing version: $VERSION"
|
|
278
|
+
echo "🏷️ NPM tag: $NPM_TAG"
|
|
279
|
+
|
|
280
|
+
./gradlew clean
|
|
281
|
+
|
|
282
|
+
# ============================================================
|
|
283
|
+
# FIRST PUBLISH: DEBUG VERSION (with compose kits included)
|
|
284
|
+
# ============================================================
|
|
285
|
+
echo ""
|
|
286
|
+
echo "🔧 Preparing debug version with compose kits..."
|
|
287
|
+
|
|
288
|
+
# Create debug version
|
|
289
|
+
DEBUG_VERSION="${VERSION}-debug"
|
|
290
|
+
echo "📦 Debug version: $DEBUG_VERSION"
|
|
291
|
+
|
|
292
|
+
# Update package.json version to debug version
|
|
293
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
294
|
+
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
295
|
+
else
|
|
296
|
+
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
297
|
+
fi
|
|
298
|
+
|
|
299
|
+
# Backup compose/build.gradle.kts
|
|
300
|
+
echo "📦 Backing up compose/build.gradle.kts..."
|
|
301
|
+
cp compose/build.gradle.kts compose/build.gradle.kts.backup
|
|
302
|
+
|
|
303
|
+
# Comment out maven publish in compose/build.gradle.kts
|
|
304
|
+
echo "💬 Commenting out maven publish in compose/build.gradle.kts..."
|
|
305
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
306
|
+
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
307
|
+
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
308
|
+
sed -i '' 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
309
|
+
sed -i '' '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
310
|
+
sed -i '' '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
311
|
+
else
|
|
312
|
+
sed -i 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
313
|
+
sed -i 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
314
|
+
sed -i 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
315
|
+
sed -i '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
316
|
+
sed -i '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
317
|
+
fi
|
|
318
|
+
|
|
319
|
+
# Modify android configuration for debug version
|
|
320
|
+
echo "🔧 Modifying android configuration for debug version..."
|
|
321
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
322
|
+
sed -i '' 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
323
|
+
sed -i '' 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
324
|
+
sed -i '' 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
325
|
+
sed -i '' "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
326
|
+
else
|
|
327
|
+
sed -i 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
328
|
+
sed -i 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
329
|
+
sed -i 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
330
|
+
sed -i "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
331
|
+
fi
|
|
332
|
+
|
|
333
|
+
# Backup .npmignore
|
|
334
|
+
cp .npmignore .npmignore.backup
|
|
335
|
+
|
|
336
|
+
# Create minimal .npmignore for debug version
|
|
337
|
+
cat > .npmignore << 'EOF'
|
|
338
|
+
sample/
|
|
339
|
+
build/
|
|
340
|
+
|
|
341
|
+
.fleet
|
|
342
|
+
.gradle
|
|
343
|
+
.idea
|
|
344
|
+
.kotlin
|
|
345
|
+
.run
|
|
346
|
+
|
|
347
|
+
.gitattributes
|
|
348
|
+
.gitlab-ci.yml
|
|
349
|
+
.npmignore.backup
|
|
350
|
+
EOF
|
|
351
|
+
|
|
352
|
+
echo "📤 Publishing debug version (with compose)..."
|
|
353
|
+
npm publish --tag $NPM_TAG --access=public
|
|
354
|
+
|
|
355
|
+
echo "✅ Debug version published successfully!"
|
|
356
|
+
|
|
357
|
+
# Restore .npmignore
|
|
358
|
+
mv .npmignore.backup .npmignore
|
|
359
|
+
echo "✅ .npmignore restored"
|
|
360
|
+
|
|
361
|
+
# Restore compose/build.gradle.kts
|
|
362
|
+
mv compose/build.gradle.kts.backup compose/build.gradle.kts
|
|
363
|
+
echo "✅ compose/build.gradle.kts restored"
|
|
364
|
+
|
|
365
|
+
# Restore package.json version to original
|
|
366
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
367
|
+
sed -i '' "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
368
|
+
else
|
|
369
|
+
sed -i "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
370
|
+
fi
|
|
371
|
+
|
|
372
|
+
echo "✅ package.json version restored"
|
|
373
|
+
|
|
374
|
+
# ============================================================
|
|
375
|
+
# SECOND PUBLISH: NORMAL VERSION (without compose)
|
|
376
|
+
# ============================================================
|
|
377
|
+
echo ""
|
|
378
|
+
echo "📤 Publishing normal version (without compose)..."
|
|
379
|
+
npm publish --tag $NPM_TAG --access=public
|
|
380
|
+
|
|
381
|
+
echo "✅ Normal version published successfully!"
|
|
382
|
+
|
|
383
|
+
echo ""
|
|
384
|
+
echo "✅ PHASE 3 COMPLETED"
|
|
385
|
+
echo " 🐛 Debug version: $DEBUG_VERSION (with compose) - Published first"
|
|
386
|
+
echo " 📦 Normal version: $VERSION (without compose) - Published second"
|
|
387
|
+
echo " 🏷️ NPM Tag: $NPM_TAG"
|
|
388
|
+
echo ""
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
# ============================================================================
|
|
392
|
+
# MAIN EXECUTION
|
|
393
|
+
# ============================================================================
|
|
394
|
+
|
|
395
|
+
echo ""
|
|
396
|
+
echo "🚀 PUBLISH SCRIPT - MODE: $(echo $MODE | tr '[:lower:]' '[:upper:]')"
|
|
397
|
+
echo "================================================="
|
|
398
|
+
|
|
399
|
+
case "$PHASE" in
|
|
400
|
+
"check")
|
|
401
|
+
echo "Running PHASE 1 only: Check and update version"
|
|
402
|
+
phase_check_version
|
|
403
|
+
;;
|
|
404
|
+
"maven")
|
|
405
|
+
echo "Running PHASE 2 only: Publish to Maven"
|
|
406
|
+
phase_publish_maven
|
|
407
|
+
;;
|
|
408
|
+
"npm")
|
|
409
|
+
echo "Running PHASE 3 only: Publish to NPM"
|
|
410
|
+
phase_publish_npm
|
|
411
|
+
;;
|
|
412
|
+
"all")
|
|
413
|
+
echo "Running ALL PHASES"
|
|
414
|
+
phase_check_version
|
|
415
|
+
phase_publish_maven
|
|
416
|
+
phase_publish_npm
|
|
417
|
+
echo ""
|
|
418
|
+
echo "🎉 ALL PHASES COMPLETED SUCCESSFULLY!"
|
|
419
|
+
echo "================================================="
|
|
420
|
+
;;
|
|
421
|
+
*)
|
|
422
|
+
echo "❌ Error: Invalid phase '$PHASE'"
|
|
423
|
+
echo ""
|
|
424
|
+
echo "Usage:"
|
|
425
|
+
echo " sh publish.sh $MODE # Run all phases"
|
|
426
|
+
echo " sh publish.sh $MODE check # Phase 1: Check and update version"
|
|
427
|
+
echo " sh publish.sh $MODE maven # Phase 2: Publish to Maven"
|
|
428
|
+
echo " sh publish.sh $MODE npm # Phase 3: Publish to NPM"
|
|
429
|
+
exit 1
|
|
430
|
+
;;
|
|
431
|
+
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")
|