biucingcli 0.9.1__py3-none-any.whl
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.
- biucingcli/__init__.py +5 -0
- biucingcli/cli.py +849 -0
- biucingcli/template_data/android/template/.editorconfig +9 -0
- biucingcli/template_data/android/template/.gitignore +26 -0
- biucingcli/template_data/android/template/.mise.toml +3 -0
- biucingcli/template_data/android/template/Brewfile +6 -0
- biucingcli/template_data/android/template/Makefile +103 -0
- biucingcli/template_data/android/template/README.md +163 -0
- biucingcli/template_data/android/template/app/build.gradle.kts +178 -0
- biucingcli/template_data/android/template/app/proguard-rules.pro +1 -0
- biucingcli/template_data/android/template/app/src/androidTest/java/app/HomeRouteUiTest.kt +21 -0
- biucingcli/template_data/android/template/app/src/main/AndroidManifest.xml +18 -0
- biucingcli/template_data/android/template/app/src/main/java/app/MainActivity.kt +36 -0
- biucingcli/template_data/android/template/app/src/main/res/values/strings.xml +4 -0
- biucingcli/template_data/android/template/app/src/main/res/values/themes.xml +8 -0
- biucingcli/template_data/android/template/app/src/test/java/app/AppSmokeTest.kt +19 -0
- biucingcli/template_data/android/template/build.gradle.kts +27 -0
- biucingcli/template_data/android/template/core/designsystem/build.gradle.kts +33 -0
- biucingcli/template_data/android/template/core/designsystem/src/main/java/designsystem/Components.kt +75 -0
- biucingcli/template_data/android/template/core/designsystem/src/main/java/designsystem/DesignTokens.kt +23 -0
- biucingcli/template_data/android/template/core/designsystem/src/main/java/designsystem/Theme.kt +110 -0
- biucingcli/template_data/android/template/core/model/build.gradle.kts +26 -0
- biucingcli/template_data/android/template/core/model/src/main/java/model/Greeting.kt +6 -0
- biucingcli/template_data/android/template/core/model/src/test/java/model/GreetingTest.kt +16 -0
- biucingcli/template_data/android/template/core/network/build.gradle.kts +26 -0
- biucingcli/template_data/android/template/core/network/src/main/java/network/AppEnvironment.kt +17 -0
- biucingcli/template_data/android/template/core/testing/build.gradle.kts +27 -0
- biucingcli/template_data/android/template/core/testing/src/main/java/testing/FakeAppEnvironmentProvider.kt +13 -0
- biucingcli/template_data/android/template/docs/release-delivery.md +68 -0
- biucingcli/template_data/android/template/docs/release-signing.properties.example +20 -0
- biucingcli/template_data/android/template/fastlane/.env.example +22 -0
- biucingcli/template_data/android/template/fastlane/Appfile +1 -0
- biucingcli/template_data/android/template/fastlane/Fastfile +121 -0
- biucingcli/template_data/android/template/feature/home/build.gradle.kts +35 -0
- biucingcli/template_data/android/template/feature/home/src/main/java/home/HomeRoute.kt +38 -0
- biucingcli/template_data/android/template/feature/settings/build.gradle.kts +34 -0
- biucingcli/template_data/android/template/feature/settings/src/main/java/settings/SettingsRoute.kt +35 -0
- biucingcli/template_data/android/template/gradle/libs.versions.toml +35 -0
- biucingcli/template_data/android/template/gradle/verification-metadata.xml +3462 -0
- biucingcli/template_data/android/template/gradle/wrapper/gradle-wrapper.jar +0 -0
- biucingcli/template_data/android/template/gradle/wrapper/gradle-wrapper.jar.sha256 +1 -0
- biucingcli/template_data/android/template/gradle/wrapper/gradle-wrapper.properties +10 -0
- biucingcli/template_data/android/template/gradle.properties +4 -0
- biucingcli/template_data/android/template/gradlew +252 -0
- biucingcli/template_data/android/template/gradlew.bat +94 -0
- biucingcli/template_data/android/template/scripts/artifact-info +11 -0
- biucingcli/template_data/android/template/scripts/bootstrap +17 -0
- biucingcli/template_data/android/template/scripts/doctor +133 -0
- biucingcli/template_data/android/template/scripts/setup-android-sdk +23 -0
- biucingcli/template_data/android/template/scripts/sync-gradle-wrapper +19 -0
- biucingcli/template_data/android/template/scripts/verify-gradle-supply-chain +61 -0
- biucingcli/template_data/android/template/scripts/verify-release-artifact +104 -0
- biucingcli/template_data/android/template/settings.gradle.kts +25 -0
- biucingcli/template_data/android/template.json +146 -0
- biucingcli/template_data/apple/template/.gitignore +28 -0
- biucingcli/template_data/apple/template/.mise.toml +4 -0
- biucingcli/template_data/apple/template/.swiftformat +10 -0
- biucingcli/template_data/apple/template/.swiftlint.yml +33 -0
- biucingcli/template_data/apple/template/App/Config/ProjectDescriptionHelpers/Module.swift +6 -0
- biucingcli/template_data/apple/template/App/Config/XCConfig/Base.xcconfig +4 -0
- biucingcli/template_data/apple/template/App/Project.swift +66 -0
- biucingcli/template_data/apple/template/App/Targets/App/Resources/.gitkeep +1 -0
- biucingcli/template_data/apple/template/App/Targets/App/Sources/AppEntry.swift +9 -0
- biucingcli/template_data/apple/template/App/Targets/App/Sources/HomeView.swift +18 -0
- biucingcli/template_data/apple/template/App/Targets/App/Sources/HomeViewModel.swift +38 -0
- biucingcli/template_data/apple/template/App/Targets/AppTests/Sources/AppTests.swift +59 -0
- biucingcli/template_data/apple/template/Brewfile +8 -0
- biucingcli/template_data/apple/template/Makefile +128 -0
- biucingcli/template_data/apple/template/Packages/AppServices/Package.swift +20 -0
- biucingcli/template_data/apple/template/Packages/AppServices/Sources/AppServices/StarterMetadata.swift +52 -0
- biucingcli/template_data/apple/template/Packages/DesignSystem/Package.swift +20 -0
- biucingcli/template_data/apple/template/Packages/DesignSystem/Sources/DesignSystem/Theme.swift +8 -0
- biucingcli/template_data/apple/template/README.md +133 -0
- biucingcli/template_data/apple/template/Tuist.swift +8 -0
- biucingcli/template_data/apple/template/Workspace.swift +11 -0
- biucingcli/template_data/apple/template/docs/release-delivery.md +55 -0
- biucingcli/template_data/apple/template/fastlane/.env.example +20 -0
- biucingcli/template_data/apple/template/fastlane/Appfile +3 -0
- biucingcli/template_data/apple/template/fastlane/Fastfile +126 -0
- biucingcli/template_data/apple/template/fastlane/Matchfile +7 -0
- biucingcli/template_data/apple/template/scripts/bootstrap +9 -0
- biucingcli/template_data/apple/template/scripts/doctor +163 -0
- biucingcli/template_data/apple/template/scripts/setup-xcode +6 -0
- biucingcli/template_data/apple/template/scripts/test-destination +42 -0
- biucingcli/template_data/apple/template/scripts/verify-release-identity +88 -0
- biucingcli/template_data/apple/template.json +110 -0
- biucingcli/template_data/frontend/template/.dockerignore +8 -0
- biucingcli/template_data/frontend/template/.env.example +1 -0
- biucingcli/template_data/frontend/template/.gitignore +7 -0
- biucingcli/template_data/frontend/template/.npmrc +1 -0
- biucingcli/template_data/frontend/template/.prettierignore +2 -0
- biucingcli/template_data/frontend/template/.prettierrc.json +4 -0
- biucingcli/template_data/frontend/template/Dockerfile +25 -0
- biucingcli/template_data/frontend/template/Dockerfile.dev +35 -0
- biucingcli/template_data/frontend/template/Dockerfile.dev.full +40 -0
- biucingcli/template_data/frontend/template/Makefile +137 -0
- biucingcli/template_data/frontend/template/README.md +146 -0
- biucingcli/template_data/frontend/template/compose.dev.yaml +29 -0
- biucingcli/template_data/frontend/template/eslint.config.js +27 -0
- biucingcli/template_data/frontend/template/index.html +12 -0
- biucingcli/template_data/frontend/template/nginx.conf +11 -0
- biucingcli/template_data/frontend/template/package.json +50 -0
- biucingcli/template_data/frontend/template/playwright.production.config.ts +21 -0
- biucingcli/template_data/frontend/template/playwright.smoke.config.ts +19 -0
- biucingcli/template_data/frontend/template/pnpm-lock.yaml +4054 -0
- biucingcli/template_data/frontend/template/public/.gitkeep +1 -0
- biucingcli/template_data/frontend/template/scripts/browser-smoke-production +55 -0
- biucingcli/template_data/frontend/template/scripts/doctor +46 -0
- biucingcli/template_data/frontend/template/src/App.test.tsx +18 -0
- biucingcli/template_data/frontend/template/src/App.tsx +5 -0
- biucingcli/template_data/frontend/template/src/components/MetricCard.tsx +14 -0
- biucingcli/template_data/frontend/template/src/components/TaskPanel.tsx +32 -0
- biucingcli/template_data/frontend/template/src/config/env.ts +3 -0
- biucingcli/template_data/frontend/template/src/hooks/useProjectOverview.ts +24 -0
- biucingcli/template_data/frontend/template/src/index.css +208 -0
- biucingcli/template_data/frontend/template/src/main.tsx +11 -0
- biucingcli/template_data/frontend/template/src/pages/HomePage.tsx +60 -0
- biucingcli/template_data/frontend/template/src/router/AppRouter.tsx +14 -0
- biucingcli/template_data/frontend/template/src/services/api/client.ts +33 -0
- biucingcli/template_data/frontend/template/src/services/projectOverview.ts +39 -0
- biucingcli/template_data/frontend/template/src/test/setup.ts +1 -0
- biucingcli/template_data/frontend/template/src/types/projectOverview.ts +22 -0
- biucingcli/template_data/frontend/template/src/vite-env.d.ts +9 -0
- biucingcli/template_data/frontend/template/tests/browser-smoke.spec.ts +16 -0
- biucingcli/template_data/frontend/template/tests/production-browser-smoke.spec.ts +22 -0
- biucingcli/template_data/frontend/template/tsconfig.json +21 -0
- biucingcli/template_data/frontend/template/vite.config.ts +12 -0
- biucingcli/template_data/frontend/template.json +81 -0
- biucingcli/template_data/harmonyos/template/.gitignore +21 -0
- biucingcli/template_data/harmonyos/template/.mise.toml +2 -0
- biucingcli/template_data/harmonyos/template/AppScope/app.json5 +10 -0
- biucingcli/template_data/harmonyos/template/AppScope/resources/base/element/string.json +8 -0
- biucingcli/template_data/harmonyos/template/AppScope/resources/base/media/background.svg +3 -0
- biucingcli/template_data/harmonyos/template/AppScope/resources/base/media/foreground.svg +4 -0
- biucingcli/template_data/harmonyos/template/AppScope/resources/base/media/layered_image.json +6 -0
- biucingcli/template_data/harmonyos/template/Makefile +106 -0
- biucingcli/template_data/harmonyos/template/README.md +152 -0
- biucingcli/template_data/harmonyos/template/build-profile.json5 +36 -0
- biucingcli/template_data/harmonyos/template/code-linter.json5 +12 -0
- biucingcli/template_data/harmonyos/template/docs/release-signing.local.properties.example +14 -0
- biucingcli/template_data/harmonyos/template/entry/build-profile.json5 +9 -0
- biucingcli/template_data/harmonyos/template/entry/hvigorfile.ts +6 -0
- biucingcli/template_data/harmonyos/template/entry/oh-package.json5 +9 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/ets/core/config/AppConfig.ets +10 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/ets/core/designsystem/Tokens.ets +28 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/ets/entryability/EntryAbility.ets +29 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/ets/pages/Index.ets +47 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/ets/pages/Settings.ets +96 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/module.json5 +34 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/resources/base/element/color.json +24 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/resources/base/element/string.json +12 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/resources/base/media/app_icon.svg +5 -0
- biucingcli/template_data/harmonyos/template/entry/src/main/resources/base/profile/main_pages.json +6 -0
- biucingcli/template_data/harmonyos/template/entry/src/test/List.test.ets +11 -0
- biucingcli/template_data/harmonyos/template/hvigor/hvigor-config.json5 +8 -0
- biucingcli/template_data/harmonyos/template/hvigorfile.ts +6 -0
- biucingcli/template_data/harmonyos/template/oh-package-lock.json5 +19 -0
- biucingcli/template_data/harmonyos/template/oh-package.json5 +13 -0
- biucingcli/template_data/harmonyos/template/scripts/artifact-info +31 -0
- biucingcli/template_data/harmonyos/template/scripts/bootstrap +38 -0
- biucingcli/template_data/harmonyos/template/scripts/doctor +147 -0
- biucingcli/template_data/harmonyos/template/scripts/lint +105 -0
- biucingcli/template_data/harmonyos/template/scripts/release-build +199 -0
- biucingcli/template_data/harmonyos/template/scripts/release-preflight +109 -0
- biucingcli/template_data/harmonyos/template/scripts/test +28 -0
- biucingcli/template_data/harmonyos/template/scripts/verify-release-artifact +173 -0
- biucingcli/template_data/harmonyos/template/scripts/verify-supply-chain +70 -0
- biucingcli/template_data/harmonyos/template.json +134 -0
- biucingcli/template_data/microservice/template/.air.toml +11 -0
- biucingcli/template_data/microservice/template/.dockerignore +5 -0
- biucingcli/template_data/microservice/template/.gitignore +4 -0
- biucingcli/template_data/microservice/template/.mise.toml +3 -0
- biucingcli/template_data/microservice/template/Brewfile +7 -0
- biucingcli/template_data/microservice/template/Dockerfile +44 -0
- biucingcli/template_data/microservice/template/Dockerfile.dev +50 -0
- biucingcli/template_data/microservice/template/Makefile +145 -0
- biucingcli/template_data/microservice/template/README.md +191 -0
- biucingcli/template_data/microservice/template/api/buf.gen.yaml +11 -0
- biucingcli/template_data/microservice/template/api/buf.yaml +11 -0
- biucingcli/template_data/microservice/template/api/proto/service/v1/service.proto +18 -0
- biucingcli/template_data/microservice/template/cmd/server/main.go +81 -0
- biucingcli/template_data/microservice/template/compose.dev.yaml +49 -0
- biucingcli/template_data/microservice/template/configs/config.yaml +18 -0
- biucingcli/template_data/microservice/template/deploy/compose.yaml +35 -0
- biucingcli/template_data/microservice/template/deploy/otel-collector.yaml +15 -0
- biucingcli/template_data/microservice/template/go.mod +53 -0
- biucingcli/template_data/microservice/template/go.sum +138 -0
- biucingcli/template_data/microservice/template/internal/config/config.go +112 -0
- biucingcli/template_data/microservice/template/internal/config/config_test.go +92 -0
- biucingcli/template_data/microservice/template/internal/handler/health.go +25 -0
- biucingcli/template_data/microservice/template/internal/handler/ping.go +25 -0
- biucingcli/template_data/microservice/template/internal/model/health.go +8 -0
- biucingcli/template_data/microservice/template/internal/model/ping.go +7 -0
- biucingcli/template_data/microservice/template/internal/repository/.gitkeep +1 -0
- biucingcli/template_data/microservice/template/internal/router/router.go +26 -0
- biucingcli/template_data/microservice/template/internal/runtime/server.go +116 -0
- biucingcli/template_data/microservice/template/internal/runtime/server_test.go +161 -0
- biucingcli/template_data/microservice/template/internal/service/health.go +26 -0
- biucingcli/template_data/microservice/template/internal/service/ping.go +23 -0
- biucingcli/template_data/microservice/template/internal/telemetry/telemetry.go +56 -0
- biucingcli/template_data/microservice/template/internal/transport/grpc.go +51 -0
- biucingcli/template_data/microservice/template/internal/transport/ping.go +28 -0
- biucingcli/template_data/microservice/template/scripts/bootstrap +29 -0
- biucingcli/template_data/microservice/template/scripts/doctor +115 -0
- biucingcli/template_data/microservice/template/tests/server_test.go +153 -0
- biucingcli/template_data/microservice/template.json +114 -0
- biucingcli/template_data/web-service/template/.air.toml +11 -0
- biucingcli/template_data/web-service/template/.dockerignore +5 -0
- biucingcli/template_data/web-service/template/.gitignore +5 -0
- biucingcli/template_data/web-service/template/.mise.toml +2 -0
- biucingcli/template_data/web-service/template/Brewfile +5 -0
- biucingcli/template_data/web-service/template/Dockerfile +41 -0
- biucingcli/template_data/web-service/template/Dockerfile.dev +45 -0
- biucingcli/template_data/web-service/template/Makefile +113 -0
- biucingcli/template_data/web-service/template/README.md +164 -0
- biucingcli/template_data/web-service/template/cmd/server/main.go +50 -0
- biucingcli/template_data/web-service/template/compose.dev.yaml +28 -0
- biucingcli/template_data/web-service/template/compose.yaml +14 -0
- biucingcli/template_data/web-service/template/configs/config.yaml +10 -0
- biucingcli/template_data/web-service/template/go.mod +36 -0
- biucingcli/template_data/web-service/template/go.sum +89 -0
- biucingcli/template_data/web-service/template/internal/config/config.go +84 -0
- biucingcli/template_data/web-service/template/internal/config/config_test.go +88 -0
- biucingcli/template_data/web-service/template/internal/handler/health.go +25 -0
- biucingcli/template_data/web-service/template/internal/handler/ping.go +25 -0
- biucingcli/template_data/web-service/template/internal/handler/user.go +40 -0
- biucingcli/template_data/web-service/template/internal/model/health.go +6 -0
- biucingcli/template_data/web-service/template/internal/model/ping.go +7 -0
- biucingcli/template_data/web-service/template/internal/model/user.go +7 -0
- biucingcli/template_data/web-service/template/internal/repository/.gitkeep +1 -0
- biucingcli/template_data/web-service/template/internal/repository/user.go +37 -0
- biucingcli/template_data/web-service/template/internal/router/router.go +28 -0
- biucingcli/template_data/web-service/template/internal/runtime/server.go +76 -0
- biucingcli/template_data/web-service/template/internal/runtime/server_test.go +139 -0
- biucingcli/template_data/web-service/template/internal/service/health.go +22 -0
- biucingcli/template_data/web-service/template/internal/service/ping.go +23 -0
- biucingcli/template_data/web-service/template/internal/service/user.go +27 -0
- biucingcli/template_data/web-service/template/scripts/bootstrap +23 -0
- biucingcli/template_data/web-service/template/scripts/doctor +83 -0
- biucingcli/template_data/web-service/template/tests/server_test.go +160 -0
- biucingcli/template_data/web-service/template.json +88 -0
- biucingcli/template_data/worker/template/.dockerignore +3 -0
- biucingcli/template_data/worker/template/.gitignore +2 -0
- biucingcli/template_data/worker/template/.mise.toml +2 -0
- biucingcli/template_data/worker/template/Brewfile +1 -0
- biucingcli/template_data/worker/template/Dockerfile +19 -0
- biucingcli/template_data/worker/template/Dockerfile.dev +9 -0
- biucingcli/template_data/worker/template/Makefile +105 -0
- biucingcli/template_data/worker/template/README.md +164 -0
- biucingcli/template_data/worker/template/cmd/worker/main.go +41 -0
- biucingcli/template_data/worker/template/compose.dev.yaml +29 -0
- biucingcli/template_data/worker/template/configs/config.json +11 -0
- biucingcli/template_data/worker/template/go.mod +3 -0
- biucingcli/template_data/worker/template/go.sum +1 -0
- biucingcli/template_data/worker/template/internal/config/config.go +108 -0
- biucingcli/template_data/worker/template/internal/config/config_test.go +86 -0
- biucingcli/template_data/worker/template/internal/runtime/runner.go +199 -0
- biucingcli/template_data/worker/template/internal/runtime/runner_test.go +215 -0
- biucingcli/template_data/worker/template/internal/task/heartbeat.go +19 -0
- biucingcli/template_data/worker/template/scripts/bootstrap +6 -0
- biucingcli/template_data/worker/template/scripts/doctor +41 -0
- biucingcli/template_data/worker/template/tests/worker_test.go +44 -0
- biucingcli/template_data/worker/template.json +100 -0
- biucingcli/templates.py +902 -0
- biucingcli-0.9.1.dist-info/METADATA +204 -0
- biucingcli-0.9.1.dist-info/RECORD +269 -0
- biucingcli-0.9.1.dist-info/WHEEL +5 -0
- biucingcli-0.9.1.dist-info/entry_points.txt +2 -0
- biucingcli-0.9.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import react from "@vitejs/plugin-react";
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
plugins: [react()],
|
|
6
|
+
test: {
|
|
7
|
+
environment: "jsdom",
|
|
8
|
+
globals: true,
|
|
9
|
+
setupFiles: "./src/test/setup.ts",
|
|
10
|
+
include: ["src/**/*.test.{ts,tsx}"],
|
|
11
|
+
},
|
|
12
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "frontend",
|
|
3
|
+
"description": "React + TypeScript starter for independent projects",
|
|
4
|
+
"category": "frontend",
|
|
5
|
+
"stack": ["React", "TypeScript"],
|
|
6
|
+
"tags": ["web", "docker", "playwright", "vitest"],
|
|
7
|
+
"platforms": ["web"],
|
|
8
|
+
"maturity": {
|
|
9
|
+
"level": "validated",
|
|
10
|
+
"summary": "Docker-first frontend starter with test and browser-smoke workflows."
|
|
11
|
+
},
|
|
12
|
+
"validation": {
|
|
13
|
+
"status": "real-build-verified",
|
|
14
|
+
"verification_tier": "real-build",
|
|
15
|
+
"evidence": [
|
|
16
|
+
"python unittest template rendering coverage",
|
|
17
|
+
"real docker runtime image builds",
|
|
18
|
+
"real docker development image builds",
|
|
19
|
+
"real Playwright browser checks against the production Nginx image"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"operating_assumptions": [
|
|
23
|
+
"Local development is expected to run through Docker-first workflows.",
|
|
24
|
+
"Browser smoke coverage and runtime packaging are part of the starter contract."
|
|
25
|
+
],
|
|
26
|
+
"workflow_labels": ["bootstrap", "dev", "test", "build", "runtime"],
|
|
27
|
+
"commands": {
|
|
28
|
+
"bootstrap": "make bootstrap",
|
|
29
|
+
"doctor": "make doctor",
|
|
30
|
+
"lint": "make lint",
|
|
31
|
+
"test": "make test",
|
|
32
|
+
"verify": "make verify",
|
|
33
|
+
"build": "make build",
|
|
34
|
+
"clean": "make clean",
|
|
35
|
+
"help": "make help"
|
|
36
|
+
},
|
|
37
|
+
"worktree": {
|
|
38
|
+
"support_level": "worktree-ready",
|
|
39
|
+
"isolation_dimensions": [
|
|
40
|
+
"runtime-names",
|
|
41
|
+
"ports",
|
|
42
|
+
"caches",
|
|
43
|
+
"generated-output",
|
|
44
|
+
"cleanup",
|
|
45
|
+
"diagnostics"
|
|
46
|
+
],
|
|
47
|
+
"diagnostics": [
|
|
48
|
+
"make worktree-info",
|
|
49
|
+
"make worktree-doctor"
|
|
50
|
+
],
|
|
51
|
+
"cleanup": [
|
|
52
|
+
"make clean-worktree"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"variables": [
|
|
56
|
+
{
|
|
57
|
+
"name": "project_name",
|
|
58
|
+
"required": true,
|
|
59
|
+
"validator": "project-name"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "display_name",
|
|
63
|
+
"required": false,
|
|
64
|
+
"default_from": "project_name",
|
|
65
|
+
"validator": "display-name"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "package_name",
|
|
69
|
+
"required": false,
|
|
70
|
+
"default_from": "project_name",
|
|
71
|
+
"validator": "npm-package"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"next_steps": [
|
|
75
|
+
"make bootstrap",
|
|
76
|
+
"make dev",
|
|
77
|
+
"make test",
|
|
78
|
+
"make docker-build",
|
|
79
|
+
"make docker-run"
|
|
80
|
+
]
|
|
81
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.hvigor/
|
|
2
|
+
.ohpm/
|
|
3
|
+
build/
|
|
4
|
+
entry/build/
|
|
5
|
+
node_modules/
|
|
6
|
+
oh_modules/
|
|
7
|
+
local.properties
|
|
8
|
+
*.hap
|
|
9
|
+
*.app
|
|
10
|
+
*.log
|
|
11
|
+
|
|
12
|
+
# Local credentials, signing material, and release backups
|
|
13
|
+
.env
|
|
14
|
+
.env.*
|
|
15
|
+
!.env.example
|
|
16
|
+
/credentials/
|
|
17
|
+
/signing/
|
|
18
|
+
/.biucing/
|
|
19
|
+
*.p8
|
|
20
|
+
*.p12
|
|
21
|
+
*.pfx
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
SHELL := /bin/zsh
|
|
2
|
+
HVIGOR ?= hvigorw
|
|
3
|
+
|
|
4
|
+
APP_NAME={{PROJECT_NAME}}
|
|
5
|
+
WORKTREE_ROOT ?= $(shell git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
6
|
+
WORKTREE_LABEL ?= $(shell basename "$(WORKTREE_ROOT)" | tr '[:upper:]' '[:lower:]' | tr -cs 'a-z0-9' '-' | sed 's/^-//; s/-$$//')
|
|
7
|
+
WORKTREE_ID ?= $(shell printf '%s' "$(WORKTREE_ROOT)" | shasum | cut -c1-8)
|
|
8
|
+
WORKTREE_SLUG ?= $(APP_NAME)-$(WORKTREE_ID)
|
|
9
|
+
HVIGOR_HOME ?= $(WORKTREE_ROOT)/.hvigor/worktree/$(WORKTREE_ID)
|
|
10
|
+
OHPM_HOME ?= $(WORKTREE_ROOT)/.ohpm/worktree/$(WORKTREE_ID)
|
|
11
|
+
OH_MODULES_DIR ?= $(WORKTREE_ROOT)/oh_modules
|
|
12
|
+
MODULE_BUILD_DIR ?= $(WORKTREE_ROOT)/{{HARMONY_MODULE_NAME}}/build
|
|
13
|
+
LOCAL_PROPERTIES ?= $(WORKTREE_ROOT)/local.properties
|
|
14
|
+
DEBUG_BUNDLE_SUFFIX ?= .$(WORKTREE_ID)
|
|
15
|
+
EFFECTIVE_DEBUG_BUNDLE_NAME ?= {{BUNDLE_NAME}}$(DEBUG_BUNDLE_SUFFIX)
|
|
16
|
+
HVIGOR_PROPS := -p module={{HARMONY_MODULE_NAME}} -p biucing.worktree.id=$(WORKTREE_ID) -p biucing.worktree.bundleSuffix=$(DEBUG_BUNDLE_SUFFIX)
|
|
17
|
+
|
|
18
|
+
export HVIGOR_HOME
|
|
19
|
+
export OHPM_HOME
|
|
20
|
+
export BIUCING_HARMONY_DEBUG_BUNDLE_SUFFIX := $(DEBUG_BUNDLE_SUFFIX)
|
|
21
|
+
|
|
22
|
+
.PHONY: bootstrap doctor verify-supply-chain lint test build package artifact-info verify verify-release-artifact release-preflight release signing-info clean open worktree-info worktree-doctor worktree-debug-identity clean-worktree help
|
|
23
|
+
|
|
24
|
+
bootstrap:
|
|
25
|
+
./scripts/bootstrap
|
|
26
|
+
|
|
27
|
+
doctor:
|
|
28
|
+
./scripts/doctor
|
|
29
|
+
|
|
30
|
+
verify-supply-chain:
|
|
31
|
+
./scripts/verify-supply-chain
|
|
32
|
+
|
|
33
|
+
lint test build release-preflight release: verify-supply-chain
|
|
34
|
+
|
|
35
|
+
lint:
|
|
36
|
+
./scripts/lint
|
|
37
|
+
|
|
38
|
+
test:
|
|
39
|
+
./scripts/test
|
|
40
|
+
|
|
41
|
+
build:
|
|
42
|
+
$(HVIGOR) assembleHap --mode module $(HVIGOR_PROPS)
|
|
43
|
+
|
|
44
|
+
package: build
|
|
45
|
+
|
|
46
|
+
artifact-info:
|
|
47
|
+
./scripts/artifact-info
|
|
48
|
+
|
|
49
|
+
verify-release-artifact:
|
|
50
|
+
./scripts/verify-release-artifact
|
|
51
|
+
|
|
52
|
+
verify: verify-supply-chain doctor lint test build artifact-info
|
|
53
|
+
|
|
54
|
+
release-preflight:
|
|
55
|
+
./scripts/release-preflight
|
|
56
|
+
|
|
57
|
+
release:
|
|
58
|
+
./scripts/release-build
|
|
59
|
+
|
|
60
|
+
signing-info:
|
|
61
|
+
@printf '%s\n' "Configure signing in DevEco Studio or copy docs/release-signing.local.properties.example to local.properties, then run make release-preflight and make release."
|
|
62
|
+
|
|
63
|
+
clean:
|
|
64
|
+
$(HVIGOR) clean
|
|
65
|
+
|
|
66
|
+
open:
|
|
67
|
+
open -a "DevEco Studio" .
|
|
68
|
+
|
|
69
|
+
worktree-info:
|
|
70
|
+
@printf '%s\n' "Project: {{PROJECT_NAME}}"
|
|
71
|
+
@printf '%s\n' "Worktree root: $(WORKTREE_ROOT)"
|
|
72
|
+
@printf '%s\n' "WORKTREE_LABEL: $(WORKTREE_LABEL)"
|
|
73
|
+
@printf '%s\n' "WORKTREE_ID: $(WORKTREE_ID)"
|
|
74
|
+
@printf '%s\n' "WORKTREE_SLUG: $(WORKTREE_SLUG)"
|
|
75
|
+
@printf '%s\n' "HVIGOR_HOME: $(HVIGOR_HOME)"
|
|
76
|
+
@printf '%s\n' "OHPM_HOME: $(OHPM_HOME)"
|
|
77
|
+
@printf '%s\n' "oh_modules: $(OH_MODULES_DIR)"
|
|
78
|
+
@printf '%s\n' "Module build dir: $(MODULE_BUILD_DIR)"
|
|
79
|
+
@printf '%s\n' "local.properties: $(LOCAL_PROPERTIES)"
|
|
80
|
+
@printf '%s\n' "Debug bundle suffix: $(DEBUG_BUNDLE_SUFFIX)"
|
|
81
|
+
@printf '%s\n' "Diagnostic debug bundle name: $(EFFECTIVE_DEBUG_BUNDLE_NAME)"
|
|
82
|
+
@printf '%s\n' "Debug bundle rewriting: deferred; AppScope/app.json5 stays stable by default."
|
|
83
|
+
|
|
84
|
+
worktree-doctor:
|
|
85
|
+
@printf '%s\n' "Checking HarmonyOS worktree isolation..."
|
|
86
|
+
@test -n "$(WORKTREE_ID)" || (printf '%s\n' "WORKTREE_ID is empty" && exit 1)
|
|
87
|
+
@case "$(HVIGOR_HOME)" in "$(WORKTREE_ROOT)"/*) ;; *) printf '%s\n' "HVIGOR_HOME should stay inside this worktree: $(HVIGOR_HOME)"; exit 1;; esac
|
|
88
|
+
@case "$(OHPM_HOME)" in "$(WORKTREE_ROOT)"/*) ;; *) printf '%s\n' "OHPM_HOME should stay inside this worktree: $(OHPM_HOME)"; exit 1;; esac
|
|
89
|
+
@if [ -f "$(LOCAL_PROPERTIES)" ]; then printf '%s\n' "local.properties is local to this worktree and must remain untracked."; else printf '%s\n' "local.properties is absent; make release requires local signing material."; fi
|
|
90
|
+
@printf '%s\n' "Debug identity check: make worktree-debug-identity"
|
|
91
|
+
@printf '%s\n' "HarmonyOS worktree isolation looks ready."
|
|
92
|
+
|
|
93
|
+
worktree-debug-identity:
|
|
94
|
+
@printf '%s\n' "HarmonyOS debug identity status"
|
|
95
|
+
@printf '%s\n' "Base bundle name: {{BUNDLE_NAME}}"
|
|
96
|
+
@printf '%s\n' "Debug bundle suffix: $(DEBUG_BUNDLE_SUFFIX)"
|
|
97
|
+
@printf '%s\n' "Diagnostic debug bundle name: $(EFFECTIVE_DEBUG_BUNDLE_NAME)"
|
|
98
|
+
@printf '%s\n' "Hvigor properties: biucing.worktree.id=$(WORKTREE_ID), biucing.worktree.bundleSuffix=$(DEBUG_BUNDLE_SUFFIX)"
|
|
99
|
+
@printf '%s\n' "Status: bundle rewriting is deferred until the DevEco/hvigor app metadata hook is verified."
|
|
100
|
+
@printf '%s\n' "AppScope/app.json5 remains the source of truth for bundleName."
|
|
101
|
+
|
|
102
|
+
clean-worktree:
|
|
103
|
+
rm -rf "$(HVIGOR_HOME)" "$(OHPM_HOME)" "$(MODULE_BUILD_DIR)" build .biucing/release
|
|
104
|
+
|
|
105
|
+
help:
|
|
106
|
+
@printf '%s\n' "Common commands:" " make bootstrap Prepare project dependencies and tooling" " make doctor Check the local environment" " make lint Run static checks" " make test Run automated tests" " make verify Run the template quality gate" " make build Build the project" " make clean Remove generated build state" " make help Show this command contract"
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# {{DISPLAY_NAME}}
|
|
2
|
+
|
|
3
|
+
This project was generated by BiucingCLI as an ArkTS HarmonyOS starter.
|
|
4
|
+
|
|
5
|
+
## Stack
|
|
6
|
+
|
|
7
|
+
- ArkTS
|
|
8
|
+
- ArkUI declarative UI
|
|
9
|
+
- HarmonyOS Stage model
|
|
10
|
+
- DevEco Studio
|
|
11
|
+
- hvigor or hvigorw
|
|
12
|
+
- ohpm
|
|
13
|
+
|
|
14
|
+
## Configuration
|
|
15
|
+
|
|
16
|
+
- Bundle name: `{{BUNDLE_NAME}}`
|
|
17
|
+
- Entry module: `{{HARMONY_MODULE_NAME}}`
|
|
18
|
+
- Entry ability: `{{ABILITY_NAME}}`
|
|
19
|
+
- Compatible SDK: `{{COMPATIBLE_SDK_VERSION}}`
|
|
20
|
+
- Target SDK: `{{TARGET_SDK_VERSION}}`
|
|
21
|
+
- Minimum API: `{{MIN_API_VERSION}}`
|
|
22
|
+
- Version: `{{HARMONY_VERSION_NAME}}` (`{{HARMONY_VERSION_CODE}}`)
|
|
23
|
+
|
|
24
|
+
## Repository Layout
|
|
25
|
+
|
|
26
|
+
- `AppScope/app.json5`: application-level HarmonyOS metadata
|
|
27
|
+
- `entry/`: installable HarmonyOS entry module
|
|
28
|
+
- `entry/src/main/module.json5`: module, ability, device, and page routing metadata
|
|
29
|
+
- `entry/src/main/ets/core/config/`: generated app configuration constants
|
|
30
|
+
- `entry/src/main/ets/core/designsystem/`: shared ArkUI tokens for color, spacing, radius, and type
|
|
31
|
+
- `entry/src/main/ets/entryability/`: Stage model ability lifecycle
|
|
32
|
+
- `entry/src/main/ets/pages/`: ArkUI `Index` and `Settings` pages
|
|
33
|
+
- `scripts/`: bootstrap and local environment checks
|
|
34
|
+
- `docs/`: release signing notes and local-only signing property examples
|
|
35
|
+
|
|
36
|
+
## Getting Started
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
make bootstrap
|
|
40
|
+
make doctor
|
|
41
|
+
make verify-supply-chain
|
|
42
|
+
make lint
|
|
43
|
+
make test
|
|
44
|
+
make build
|
|
45
|
+
make artifact-info
|
|
46
|
+
make verify
|
|
47
|
+
make release-preflight
|
|
48
|
+
make verify-release-artifact
|
|
49
|
+
make release
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
`make doctor` checks Node.js, ohpm, hvigor or hvigorw, `DEVECO_SDK_HOME`, and common HarmonyOS SDK environment variables before you spend time on a build.
|
|
53
|
+
For a default macOS DevEco Studio install, the CLI build environment usually looks like:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
export PATH="/Applications/DevEco-Studio.app/Contents/tools/ohpm/bin:/Applications/DevEco-Studio.app/Contents/tools/hvigor/bin:$PATH"
|
|
57
|
+
export DEVECO_SDK_HOME="/Applications/DevEco-Studio.app/Contents/sdk"
|
|
58
|
+
export HOS_SDK_HOME="/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony"
|
|
59
|
+
```
|
|
60
|
+
Open the project with DevEco Studio when you need signing, device management, previewer, or emulator workflows.
|
|
61
|
+
`make bootstrap` first verifies exact ohpm versions, the approved registry, and every lockfile SHA-512 integrity value; it fails if installation rewrites the lockfile. `make test` runs the starter Hypium suite through `hvigorw test`. `make build` creates an unsigned HAP by default. `make artifact-info` verifies the latest HAP exists, is non-empty, and prints its checksum. `make verify` includes the supply-chain gate before `doctor`, `lint`, `test`, `build`, and `artifact-info`. `make release-preflight` checks local signing material and rejects signing values left in the tracked build profile. `make release` requires a clean tracked `build-profile.json5`, temporarily injects release signing config, runs hvigor with `buildMode=release`, verifies the signed HAP, and restores the exact original profile on exit.
|
|
62
|
+
|
|
63
|
+
## Worktree Workflow
|
|
64
|
+
|
|
65
|
+
Each worktree derives a human-readable `WORKTREE_LABEL` from its directory name
|
|
66
|
+
and a hash-based `WORKTREE_ID` from the worktree root path. Override
|
|
67
|
+
`WORKTREE_ID` when you want a shorter or stable value across renamed folders:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
WORKTREE_ID=feature-a make worktree-info
|
|
71
|
+
WORKTREE_ID=feature-a make worktree-debug-identity
|
|
72
|
+
WORKTREE_ID=feature-a make build
|
|
73
|
+
WORKTREE_ID=feature-a make clean-worktree
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`make worktree-info` prints the isolated hvigor, ohpm, `oh_modules`, module
|
|
77
|
+
build, and signing-file paths. `make worktree-doctor` checks that tool caches
|
|
78
|
+
stay inside this worktree and reminds you that `local.properties` is local-only
|
|
79
|
+
signing material.
|
|
80
|
+
|
|
81
|
+
`make worktree-debug-identity` prints the base bundle name, requested
|
|
82
|
+
`DEBUG_BUNDLE_SUFFIX`, diagnostic debug bundle name, and hvigor properties. It
|
|
83
|
+
is intentionally read-only: `AppScope/app.json5` remains the source of truth for
|
|
84
|
+
`bundleName`. Automatic per-worktree bundle rewriting is deferred until the
|
|
85
|
+
DevEco/hvigor app metadata hook is verified on a configured HarmonyOS
|
|
86
|
+
workstation.
|
|
87
|
+
|
|
88
|
+
## Standard Commands
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
make bootstrap
|
|
92
|
+
make doctor
|
|
93
|
+
make verify-supply-chain
|
|
94
|
+
make lint
|
|
95
|
+
make test
|
|
96
|
+
make build
|
|
97
|
+
make package
|
|
98
|
+
make artifact-info
|
|
99
|
+
make verify
|
|
100
|
+
make release-preflight
|
|
101
|
+
make verify-release-artifact
|
|
102
|
+
make release
|
|
103
|
+
make signing-info
|
|
104
|
+
make clean
|
|
105
|
+
make open
|
|
106
|
+
make help
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Testing
|
|
110
|
+
|
|
111
|
+
The generated starter exposes `make test` through `hvigorw test --mode module -p module={{HARMONY_MODULE_NAME}}`. The template includes `@ohos/hypium` as a dev dependency and a starter smoke suite at `entry/src/test/List.test.ets`. Run `make bootstrap` before `make test` so ohpm can install test dependencies.
|
|
112
|
+
|
|
113
|
+
`make verify` treats tests as a required release-readiness gate. If the local ohpm registry, SDK, or Hypium dependency is unavailable, the test command fails with a clear setup message instead of silently skipping tests.
|
|
114
|
+
|
|
115
|
+
## Linting
|
|
116
|
+
|
|
117
|
+
`make lint` is a project guard, not a full ArkTS linter. It validates `code-linter.json5`, required HarmonyOS source/config files, and unrendered template placeholders. DevEco Studio remains the full lint surface until a stable public CLI lint or format command is verified for generated HAP projects.
|
|
118
|
+
|
|
119
|
+
## Release Signing
|
|
120
|
+
|
|
121
|
+
Local builds produce an unsigned HAP unless signing is configured. Use DevEco Studio for interactive signing setup, or copy `docs/release-signing.local.properties.example` to `local.properties` for local-only signing values. Put `.cer`, `.p7b`, and `.p12` signing material under the ignored `signing/` directory. `make release-preflight` fails fast when required values are missing, paths do not resolve, or signing material remains in tracked `build-profile.json5`.
|
|
122
|
+
|
|
123
|
+
`make release` stores a mode-restricted backup under the ignored `.biucing/release/` directory, writes the injected profile atomically, and restores the original bytes after success, build failure, `HUP`, `INT`, or `TERM`. Before reporting success it uses the SDK's `hap-sign-tool verify-app` and `verify-profile` commands, compares the embedded signer certificate and profile with the configured inputs, and verifies the profile's bundle name is exactly `{{BUNDLE_NAME}}`. Any mismatch fails the release. `SIGKILL` cannot run cleanup handlers; the next preflight detects a non-empty signing configuration. Do not stage Git changes concurrently with a signed release build.
|
|
124
|
+
|
|
125
|
+
Set `HAP_SIGN_TOOL` only when the SDK tool cannot be found under `DEVECO_SDK_HOME` or the default DevEco Studio installation. CI should point it at the reviewed SDK's `hap-sign-tool.jar`, not an arbitrary replacement.
|
|
126
|
+
|
|
127
|
+
The ignore rules also protect `credentials/`, private-key containers, and local environment files. They only apply to untracked files and do not override `git add -f`. If a real credential has already been committed, revoke or rotate it first, remove it from the index, and assess whether repository history must be rewritten.
|
|
128
|
+
|
|
129
|
+
## Pre-Distribution Coverage
|
|
130
|
+
|
|
131
|
+
The template intentionally stops before app-market upload or enterprise distribution. Before that handoff, the supported local stages are:
|
|
132
|
+
|
|
133
|
+
- `make bootstrap`: verify the lockfile, install HarmonyOS dependencies, and reject lockfile drift.
|
|
134
|
+
- `make verify-supply-chain`: enforce exact package versions, approved ohpm registry URLs, and SHA-512 integrity values.
|
|
135
|
+
- `make doctor`: verify DevEco Studio, Node.js, ohpm, hvigor, and SDK paths.
|
|
136
|
+
- `make lint`: validate committed lint/config shape and generated template integrity.
|
|
137
|
+
- `make test`: run ArkTS/Hypium CLI tests.
|
|
138
|
+
- `make build`: produce an unsigned HAP.
|
|
139
|
+
- `make artifact-info`: verify and fingerprint the package artifact.
|
|
140
|
+
- `make release-preflight`: verify signing material is present.
|
|
141
|
+
- `make verify-release-artifact`: cryptographically verify a signed HAP, signer, profile, and bundle identity.
|
|
142
|
+
- `make release`: produce and verify a release HAP when signing material is configured.
|
|
143
|
+
|
|
144
|
+
## Notes
|
|
145
|
+
|
|
146
|
+
- `oh-package.json5` is the project dependency manifest; dependencies must use exact versions and stay aligned with `oh-package-lock.json5`.
|
|
147
|
+
- `build-profile.json5` declares the app signing placeholder and entry module.
|
|
148
|
+
- `code-linter.json5` is committed so DevEco Studio and later CLI lint wiring share one rule source.
|
|
149
|
+
- `docs/release-signing.local.properties.example` documents placeholder-only local signing keys; `local.properties`, `signing/`, `credentials/`, and `.biucing/` are git-ignored.
|
|
150
|
+
- The generated starter keeps app metadata in `AppConfig` and visual constants in `core/designsystem` so feature pages do not duplicate bundle, version, spacing, or color values.
|
|
151
|
+
- Signing is left to DevEco Studio or CI-specific `local.properties` configuration.
|
|
152
|
+
- Keep `bundleName`, module name, and SDK versions aligned with your target HarmonyOS release channel before store packaging.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"app": {
|
|
3
|
+
"signingConfigs": [],
|
|
4
|
+
"products": [
|
|
5
|
+
{
|
|
6
|
+
"name": "default",
|
|
7
|
+
"signingConfig": "default",
|
|
8
|
+
"compatibleSdkVersion": "{{COMPATIBLE_SDK_VERSION}}",
|
|
9
|
+
"targetSdkVersion": "{{TARGET_SDK_VERSION}}",
|
|
10
|
+
"runtimeOS": "HarmonyOS"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"buildModeSet": [
|
|
14
|
+
{
|
|
15
|
+
"name": "debug"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"modules": [
|
|
23
|
+
{
|
|
24
|
+
"name": "{{HARMONY_MODULE_NAME}}",
|
|
25
|
+
"srcPath": "./entry",
|
|
26
|
+
"targets": [
|
|
27
|
+
{
|
|
28
|
+
"name": "default",
|
|
29
|
+
"applyToProducts": [
|
|
30
|
+
"default"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This example must contain placeholders only. Never put real credentials here.
|
|
2
|
+
# Copy these keys into local.properties for local-only HarmonyOS signing setup.
|
|
3
|
+
# Do not commit real signing material.
|
|
4
|
+
#
|
|
5
|
+
# DevEco Studio can manage signing interactively. Use this file only when the
|
|
6
|
+
# team has agreed on CLI/CI signing property names.
|
|
7
|
+
|
|
8
|
+
biucing.harmony.signing.certpath=signing/release.cer
|
|
9
|
+
biucing.harmony.signing.profile=signing/release.p7b
|
|
10
|
+
biucing.harmony.signing.storeFile=signing/release.p12
|
|
11
|
+
biucing.harmony.signing.storePassword=change-me-32-characters-minimum
|
|
12
|
+
biucing.harmony.signing.keyAlias=release
|
|
13
|
+
biucing.harmony.signing.keyPassword=change-me-32-characters-minimum
|
|
14
|
+
biucing.harmony.signing.signAlg=SHA256withECDSA
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class AppConfig {
|
|
2
|
+
static readonly displayName: string = '{{DISPLAY_NAME}}';
|
|
3
|
+
static readonly bundleName: string = '{{BUNDLE_NAME}}';
|
|
4
|
+
static readonly worktreeBundleSuffix: string = '';
|
|
5
|
+
static readonly moduleName: string = '{{HARMONY_MODULE_NAME}}';
|
|
6
|
+
static readonly abilityName: string = '{{ABILITY_NAME}}';
|
|
7
|
+
static readonly versionName: string = '{{HARMONY_VERSION_NAME}}';
|
|
8
|
+
static readonly versionCode: string = '{{HARMONY_VERSION_CODE}}';
|
|
9
|
+
static readonly releaseChannel: string = 'local';
|
|
10
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class BiucingColors {
|
|
2
|
+
static readonly accent: string = '#246BFD';
|
|
3
|
+
static readonly accentSoft: string = '#E8F0FF';
|
|
4
|
+
static readonly success: string = '#137333';
|
|
5
|
+
static readonly successSoft: string = '#E7F4EC';
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class BiucingSpacing {
|
|
9
|
+
static readonly xSmall: number = 4;
|
|
10
|
+
static readonly small: number = 8;
|
|
11
|
+
static readonly medium: number = 12;
|
|
12
|
+
static readonly large: number = 16;
|
|
13
|
+
static readonly xLarge: number = 24;
|
|
14
|
+
static readonly xxLarge: number = 32;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class BiucingRadius {
|
|
18
|
+
static readonly small: number = 8;
|
|
19
|
+
static readonly medium: number = 12;
|
|
20
|
+
static readonly large: number = 16;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class BiucingTypography {
|
|
24
|
+
static readonly title: number = 30;
|
|
25
|
+
static readonly sectionTitle: number = 20;
|
|
26
|
+
static readonly body: number = 16;
|
|
27
|
+
static readonly caption: number = 14;
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
|
|
2
|
+
import UIAbility from '@ohos.app.ability.UIAbility';
|
|
3
|
+
import Want from '@ohos.app.ability.Want';
|
|
4
|
+
import hilog from '@ohos.hilog';
|
|
5
|
+
import window from '@ohos.window';
|
|
6
|
+
|
|
7
|
+
const DOMAIN = 0x0000;
|
|
8
|
+
const TAG = '{{ABILITY_NAME}}';
|
|
9
|
+
|
|
10
|
+
export default class {{ABILITY_NAME}} extends UIAbility {
|
|
11
|
+
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
|
|
12
|
+
hilog.info(DOMAIN, TAG, 'Ability created for {{DISPLAY_NAME}}.');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
onWindowStageCreate(windowStage: window.WindowStage): void {
|
|
16
|
+
windowStage.loadContent('pages/Index', (error) => {
|
|
17
|
+
if (error.code) {
|
|
18
|
+
hilog.error(DOMAIN, TAG, 'Failed to load content. code=%{public}d message=%{public}s', error.code, error.message);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
hilog.info(DOMAIN, TAG, 'Loaded {{DISPLAY_NAME}} content.');
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
onDestroy(): void {
|
|
27
|
+
hilog.info(DOMAIN, TAG, 'Ability destroyed.');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AppConfig } from '../core/config/AppConfig';
|
|
2
|
+
import { BiucingColors, BiucingRadius, BiucingSpacing, BiucingTypography } from '../core/designsystem/Tokens';
|
|
3
|
+
|
|
4
|
+
@Entry
|
|
5
|
+
@Component
|
|
6
|
+
struct Index {
|
|
7
|
+
build() {
|
|
8
|
+
Column({ space: BiucingSpacing.large }) {
|
|
9
|
+
Text(AppConfig.displayName)
|
|
10
|
+
.fontSize(BiucingTypography.title)
|
|
11
|
+
.fontWeight(FontWeight.Bold)
|
|
12
|
+
.fontColor($r('app.color.text_primary'))
|
|
13
|
+
|
|
14
|
+
Text('Generated by BiucingCLI')
|
|
15
|
+
.fontSize(BiucingTypography.body)
|
|
16
|
+
.fontColor($r('app.color.text_secondary'))
|
|
17
|
+
|
|
18
|
+
Column({ space: BiucingSpacing.small }) {
|
|
19
|
+
Text(`Bundle: ${AppConfig.bundleName}`)
|
|
20
|
+
.fontSize(BiucingTypography.caption)
|
|
21
|
+
Text(`Module: ${AppConfig.moduleName}`)
|
|
22
|
+
.fontSize(BiucingTypography.caption)
|
|
23
|
+
Text(`Channel: ${AppConfig.releaseChannel}`)
|
|
24
|
+
.fontSize(BiucingTypography.caption)
|
|
25
|
+
.fontColor(BiucingColors.success)
|
|
26
|
+
}
|
|
27
|
+
.alignItems(HorizontalAlign.Start)
|
|
28
|
+
.padding(BiucingSpacing.large)
|
|
29
|
+
.borderRadius(BiucingRadius.medium)
|
|
30
|
+
.backgroundColor($r('app.color.surface'))
|
|
31
|
+
.width('100%')
|
|
32
|
+
|
|
33
|
+
Button('Open settings')
|
|
34
|
+
.fontSize(BiucingTypography.body)
|
|
35
|
+
.backgroundColor(BiucingColors.accent)
|
|
36
|
+
.onClick(() => {
|
|
37
|
+
this.getUIContext().getRouter().pushUrl({ url: 'pages/Settings' });
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
.justifyContent(FlexAlign.Center)
|
|
41
|
+
.alignItems(HorizontalAlign.Center)
|
|
42
|
+
.height('100%')
|
|
43
|
+
.width('100%')
|
|
44
|
+
.padding(BiucingSpacing.xLarge)
|
|
45
|
+
.backgroundColor($r('app.color.page_background'))
|
|
46
|
+
}
|
|
47
|
+
}
|