@momo-kits/native-kits 0.156.1-test.1 → 0.156.1-test.10-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 +318 -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 +394 -0
- package/publish_beta.sh +275 -0
- package/publish_release.sh +334 -0
- package/settings.gradle.kts +52 -0
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,394 @@
|
|
|
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 npm # Phase 2 only: Publish to NPM (beta)
|
|
13
|
+
# sh publish.sh beta maven # Phase 3 only: Publish to Maven (beta)
|
|
14
|
+
# sh publish.sh release check # Phase 1 only: Check version (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
|
+
# ============================================================================
|
|
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 | npm | maven | 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
|
+
# Set NPM tag based on mode
|
|
40
|
+
if [ "$MODE" == "beta" ]; then
|
|
41
|
+
NPM_TAG="beta"
|
|
42
|
+
else
|
|
43
|
+
NPM_TAG="latest"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# ============================================================================
|
|
47
|
+
# PHASE 1: CHECK AND UPDATE VERSION
|
|
48
|
+
# ============================================================================
|
|
49
|
+
phase_check_version() {
|
|
50
|
+
echo ""
|
|
51
|
+
echo "==============================================="
|
|
52
|
+
echo "📋 PHASE 1: CHECK AND UPDATE VERSION ($MODE)"
|
|
53
|
+
echo "==============================================="
|
|
54
|
+
|
|
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"
|
|
66
|
+
|
|
67
|
+
# ==============================================================
|
|
68
|
+
# BETA MODE: Fail if version exists
|
|
69
|
+
# ==============================================================
|
|
70
|
+
if [ "$MODE" == "beta" ]; then
|
|
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..."
|
|
74
|
+
|
|
75
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
76
|
+
|
|
77
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
78
|
+
echo ""
|
|
79
|
+
echo "❌ ERROR: Version $VERSION already exists on npm!"
|
|
80
|
+
echo ""
|
|
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
|
+
echo ""
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
echo "✅ Version $VERSION does not exist on npm. Safe to publish."
|
|
90
|
+
fi
|
|
91
|
+
|
|
92
|
+
# ==============================================================
|
|
93
|
+
# RELEASE MODE: Convert to beta format and auto-increment
|
|
94
|
+
# ==============================================================
|
|
95
|
+
if [ "$MODE" == "release" ]; then
|
|
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
|
|
119
|
+
fi
|
|
120
|
+
|
|
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..."
|
|
124
|
+
|
|
125
|
+
# Loop until we find a version that doesn't exist on npm
|
|
126
|
+
while true; do
|
|
127
|
+
# Try to get the version info from npm
|
|
128
|
+
NPM_VERSION_INFO=$(npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null || echo "")
|
|
129
|
+
|
|
130
|
+
if [ -n "$NPM_VERSION_INFO" ]; then
|
|
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..."
|
|
169
|
+
else
|
|
170
|
+
echo "✅ Version $VERSION does not exist on npm. Using this version."
|
|
171
|
+
break
|
|
172
|
+
fi
|
|
173
|
+
done
|
|
174
|
+
fi
|
|
175
|
+
|
|
176
|
+
# Update gradle.properties with the same version
|
|
177
|
+
echo "📝 Updating gradle.properties..."
|
|
178
|
+
# Get current gradle version
|
|
179
|
+
CURRENT_GRADLE_VERSION=$(grep "^version=" gradle.properties | cut -d'=' -f2 | tr -d '"')
|
|
180
|
+
|
|
181
|
+
# Update version in gradle.properties using sed
|
|
182
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
183
|
+
# macOS
|
|
184
|
+
sed -i '' "s/^version=.*/version=$VERSION/" gradle.properties
|
|
185
|
+
else
|
|
186
|
+
# Linux
|
|
187
|
+
sed -i "s/^version=.*/version=$VERSION/" gradle.properties
|
|
188
|
+
fi
|
|
189
|
+
|
|
190
|
+
echo " Gradle version updated: $CURRENT_GRADLE_VERSION → $VERSION"
|
|
191
|
+
|
|
192
|
+
export VERSION="$VERSION"
|
|
193
|
+
|
|
194
|
+
echo "✅ Using version: $VERSION"
|
|
195
|
+
echo "✅ PHASE 1 COMPLETED"
|
|
196
|
+
echo ""
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# ============================================================================
|
|
200
|
+
# PHASE 2: PUBLISH TO NPM
|
|
201
|
+
# ============================================================================
|
|
202
|
+
phase_publish_npm() {
|
|
203
|
+
echo ""
|
|
204
|
+
echo "==============================================="
|
|
205
|
+
echo "📦 PHASE 2: PUBLISH TO NPM ($MODE - tag: $NPM_TAG)"
|
|
206
|
+
echo "==============================================="
|
|
207
|
+
|
|
208
|
+
# Get version from package.json
|
|
209
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
210
|
+
export VERSION="$VERSION"
|
|
211
|
+
|
|
212
|
+
echo "📦 Publishing version: $VERSION"
|
|
213
|
+
|
|
214
|
+
./gradlew clean
|
|
215
|
+
|
|
216
|
+
# First publish: normal version (compose/ is excluded via .npmignore)
|
|
217
|
+
echo "📤 Publishing normal version (without compose)..."
|
|
218
|
+
npm publish --tag $NPM_TAG --access=public
|
|
219
|
+
|
|
220
|
+
echo "✅ Normal version published successfully!"
|
|
221
|
+
|
|
222
|
+
# Second publish: debug version with compose kits included
|
|
223
|
+
echo ""
|
|
224
|
+
echo "🔧 Preparing debug version with compose kits..."
|
|
225
|
+
|
|
226
|
+
# Create debug version
|
|
227
|
+
DEBUG_VERSION="${VERSION}-debug"
|
|
228
|
+
echo "📦 Debug version: $DEBUG_VERSION"
|
|
229
|
+
|
|
230
|
+
# Update package.json version to debug version
|
|
231
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
232
|
+
# macOS
|
|
233
|
+
sed -i '' "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
234
|
+
else
|
|
235
|
+
# Linux
|
|
236
|
+
sed -i "s/\"version\": \"$VERSION\"/\"version\": \"$DEBUG_VERSION\"/" package.json
|
|
237
|
+
fi
|
|
238
|
+
|
|
239
|
+
# Backup compose/build.gradle.kts
|
|
240
|
+
echo "📦 Backing up compose/build.gradle.kts..."
|
|
241
|
+
cp compose/build.gradle.kts compose/build.gradle.kts.backup
|
|
242
|
+
|
|
243
|
+
# Comment out maven publish in compose/build.gradle.kts
|
|
244
|
+
echo "💬 Commenting out maven publish in compose/build.gradle.kts..."
|
|
245
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
246
|
+
# macOS - Comment out imports
|
|
247
|
+
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
248
|
+
sed -i '' 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
249
|
+
# Comment out plugin
|
|
250
|
+
sed -i '' 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
251
|
+
# Comment out publishing block
|
|
252
|
+
sed -i '' '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
253
|
+
# Comment out entire mavenPublishing block (lines starting from mavenPublishing { to its closing })
|
|
254
|
+
sed -i '' '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
255
|
+
else
|
|
256
|
+
# Linux - Comment out imports
|
|
257
|
+
sed -i 's/^import com\.vanniktech\.maven\.publish\.JavadocJar$/\/\/ &/' compose/build.gradle.kts
|
|
258
|
+
sed -i 's/^import com\.vanniktech\.maven\.publish\.KotlinMultiplatform$/\/\/ &/' compose/build.gradle.kts
|
|
259
|
+
# Comment out plugin
|
|
260
|
+
sed -i 's/^ alias(libs\.plugins\.vanniktech\.mavenPublish)$/\/\/ &/' compose/build.gradle.kts
|
|
261
|
+
# Comment out publishing block
|
|
262
|
+
sed -i '/^publishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
263
|
+
# Comment out entire mavenPublishing block
|
|
264
|
+
sed -i '/^mavenPublishing {$/,/^}$/s/^/\/\/ /' compose/build.gradle.kts
|
|
265
|
+
fi
|
|
266
|
+
|
|
267
|
+
# Modify android configuration for debug version
|
|
268
|
+
echo "🔧 Modifying android configuration for debug version..."
|
|
269
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
270
|
+
# macOS
|
|
271
|
+
sed -i '' 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
272
|
+
sed -i '' 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
273
|
+
sed -i '' 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
274
|
+
sed -i '' "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
275
|
+
else
|
|
276
|
+
# Linux
|
|
277
|
+
sed -i 's/namespace = "\$gitlabGroup\.\$gitlabArtifactId"/namespace = "vn.momo.kits.kits"/' compose/build.gradle.kts
|
|
278
|
+
sed -i 's/compileSdk = libs\.versions\.android\.compileSdk\.get()\.toInt()/compileSdk = 35/' compose/build.gradle.kts
|
|
279
|
+
sed -i 's/minSdk = libs\.versions\.android\.minSdk\.get()\.toInt()/minSdk = 24/' compose/build.gradle.kts
|
|
280
|
+
sed -i "s/version = gitlabVersion/version = \"$DEBUG_VERSION\"/" compose/build.gradle.kts
|
|
281
|
+
fi
|
|
282
|
+
|
|
283
|
+
# Backup .npmignore
|
|
284
|
+
cp .npmignore .npmignore.backup
|
|
285
|
+
|
|
286
|
+
# Create minimal .npmignore for debug version (only exclude build artifacts and IDE configs)
|
|
287
|
+
cat > .npmignore << 'EOF'
|
|
288
|
+
sample/
|
|
289
|
+
build/
|
|
290
|
+
|
|
291
|
+
.fleet
|
|
292
|
+
.gradle
|
|
293
|
+
.idea
|
|
294
|
+
.kotlin
|
|
295
|
+
.run
|
|
296
|
+
|
|
297
|
+
.gitattributes
|
|
298
|
+
.gitlab-ci.yml
|
|
299
|
+
.npmignore.backup
|
|
300
|
+
EOF
|
|
301
|
+
|
|
302
|
+
echo "📤 Publishing debug version (with compose)..."
|
|
303
|
+
npm publish --tag $NPM_TAG --access=public
|
|
304
|
+
|
|
305
|
+
# Restore .npmignore
|
|
306
|
+
mv .npmignore.backup .npmignore
|
|
307
|
+
echo "✅ .npmignore restored"
|
|
308
|
+
|
|
309
|
+
# Restore compose/build.gradle.kts
|
|
310
|
+
mv compose/build.gradle.kts.backup compose/build.gradle.kts
|
|
311
|
+
echo "✅ compose/build.gradle.kts restored"
|
|
312
|
+
|
|
313
|
+
# Restore package.json version to original
|
|
314
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
315
|
+
# macOS
|
|
316
|
+
sed -i '' "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
317
|
+
else
|
|
318
|
+
# Linux
|
|
319
|
+
sed -i "s/\"version\": \"$DEBUG_VERSION\"/\"version\": \"$VERSION\"/" package.json
|
|
320
|
+
fi
|
|
321
|
+
|
|
322
|
+
echo "✅ package.json version restored"
|
|
323
|
+
|
|
324
|
+
echo ""
|
|
325
|
+
echo "✅ PHASE 2 COMPLETED"
|
|
326
|
+
echo " 📦 Normal version: $VERSION (without compose)"
|
|
327
|
+
echo " 🐛 Debug version: $DEBUG_VERSION (with compose)"
|
|
328
|
+
echo " 🏷️ NPM Tag: $NPM_TAG"
|
|
329
|
+
echo ""
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
# ============================================================================
|
|
333
|
+
# PHASE 3: PUBLISH TO MAVEN
|
|
334
|
+
# ============================================================================
|
|
335
|
+
phase_publish_maven() {
|
|
336
|
+
echo ""
|
|
337
|
+
echo "==============================================="
|
|
338
|
+
echo "🔧 PHASE 3: PUBLISH TO MAVEN ($MODE)"
|
|
339
|
+
echo "==============================================="
|
|
340
|
+
|
|
341
|
+
# Get version from package.json
|
|
342
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
343
|
+
export VERSION="$VERSION"
|
|
344
|
+
|
|
345
|
+
echo "📦 Publishing KMP artifacts to Maven (version ${VERSION})..."
|
|
346
|
+
|
|
347
|
+
./gradlew :compose:publishAllPublicationsToGitLabPackagesRepository
|
|
348
|
+
|
|
349
|
+
echo "✅ Maven publishing completed successfully!"
|
|
350
|
+
echo "✅ PHASE 3 COMPLETED"
|
|
351
|
+
echo ""
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
# ============================================================================
|
|
355
|
+
# MAIN EXECUTION
|
|
356
|
+
# ============================================================================
|
|
357
|
+
|
|
358
|
+
echo ""
|
|
359
|
+
echo "🚀 PUBLISH SCRIPT - MODE: $(echo $MODE | tr '[:lower:]' '[:upper:]')"
|
|
360
|
+
echo "================================================="
|
|
361
|
+
|
|
362
|
+
case "$PHASE" in
|
|
363
|
+
"check")
|
|
364
|
+
echo "Running PHASE 1 only: Check and update version"
|
|
365
|
+
phase_check_version
|
|
366
|
+
;;
|
|
367
|
+
"npm")
|
|
368
|
+
echo "Running PHASE 2 only: Publish to NPM"
|
|
369
|
+
phase_publish_npm
|
|
370
|
+
;;
|
|
371
|
+
"maven")
|
|
372
|
+
echo "Running PHASE 3 only: Publish to Maven"
|
|
373
|
+
phase_publish_maven
|
|
374
|
+
;;
|
|
375
|
+
"all")
|
|
376
|
+
echo "Running ALL PHASES"
|
|
377
|
+
phase_check_version
|
|
378
|
+
phase_publish_npm
|
|
379
|
+
phase_publish_maven
|
|
380
|
+
echo ""
|
|
381
|
+
echo "🎉 ALL PHASES COMPLETED SUCCESSFULLY!"
|
|
382
|
+
echo "================================================="
|
|
383
|
+
;;
|
|
384
|
+
*)
|
|
385
|
+
echo "❌ Error: Invalid phase '$PHASE'"
|
|
386
|
+
echo ""
|
|
387
|
+
echo "Usage:"
|
|
388
|
+
echo " sh publish.sh $MODE # Run all phases"
|
|
389
|
+
echo " sh publish.sh $MODE check # Phase 1: Check and update version"
|
|
390
|
+
echo " sh publish.sh $MODE npm # Phase 2: Publish to NPM"
|
|
391
|
+
echo " sh publish.sh $MODE maven # Phase 3: Publish to Maven"
|
|
392
|
+
exit 1
|
|
393
|
+
;;
|
|
394
|
+
esac
|