@ohos-cpf/3rdloop 0.0.1
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/README.md +425 -0
- package/bin/3rdloop.mjs +48 -0
- package/lib/cli.js +741 -0
- package/lib/config.js +318 -0
- package/lib/doctor.js +114 -0
- package/lib/exit-codes.js +31 -0
- package/lib/opencode.js +156 -0
- package/lib/orch.js +427 -0
- package/lib/queries.js +264 -0
- package/lib/runner.js +979 -0
- package/lib/step.js +326 -0
- package/lib/ui.js +223 -0
- package/lib/workflow.js +291 -0
- package/lib/workflows.js +132 -0
- package/package.json +50 -0
- package/vendor/Server/Agent/SkillSelector/README.md +344 -0
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -0
- package/vendor/Server/Agent/SkillSelector/index.js +14 -0
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -0
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -0
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -0
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -0
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -0
- package/vendor/Server/Agent/SkillSelector/types.js +63 -0
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +60 -0
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -0
- package/vendor/Server/Brain/Brain.js +686 -0
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -0
- package/vendor/Server/Brain/PlanPersistence.js +196 -0
- package/vendor/Server/Brain/SkillExecutor.js +251 -0
- package/vendor/Server/Brain/index.js +11 -0
- package/vendor/Server/CLI/cli.js +243 -0
- package/vendor/Server/CLI/opencode/index.js +804 -0
- package/vendor/Server/CLI/opencode.js +5 -0
- package/vendor/Server/DbUse/MessageArchive.js +61 -0
- package/vendor/Server/DbUse/StorageManager.js +107 -0
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -0
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -0
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -0
- package/vendor/Server/DbUse/index.js +160 -0
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -0
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -0
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -0
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -0
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -0
- package/vendor/Server/FlexRunner/index.js +12 -0
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -0
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -0
- package/vendor/Server/Knowledge/index.js +33 -0
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -0
- package/vendor/Server/LoopEngine/index.js +11 -0
- package/vendor/Server/Orchestrator/Orchestrator.js +1425 -0
- package/vendor/Server/Orchestrator/StepNode.js +312 -0
- package/vendor/Server/Orchestrator/index.js +13 -0
- package/vendor/Server/Routes/controllers/BrainController.js +241 -0
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -0
- package/vendor/Server/Routes/controllers/HealthController.js +44 -0
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -0
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -0
- package/vendor/Server/Routes/controllers/OrchestratorController.js +911 -0
- package/vendor/Server/Routes/controllers/StatsController.js +57 -0
- package/vendor/Server/Routes/controllers/StreamController.js +67 -0
- package/vendor/Server/Routes/library/logger.js +179 -0
- package/vendor/Server/Routes/library/zipArchive.js +172 -0
- package/vendor/Server/Routes/router/Router.js +204 -0
- package/vendor/Server/Routes/routes/brain.js +47 -0
- package/vendor/Server/Routes/routes/flexrunner.js +72 -0
- package/vendor/Server/Routes/routes/health.js +28 -0
- package/vendor/Server/Routes/routes/index.js +57 -0
- package/vendor/Server/Routes/routes/knowledge.js +55 -0
- package/vendor/Server/Routes/routes/loopengine.js +58 -0
- package/vendor/Server/Routes/routes/orchestrator.js +61 -0
- package/vendor/Server/Routes/routes/registry.js +98 -0
- package/vendor/Server/Routes/routes/stats.js +23 -0
- package/vendor/Server/Routes/routes/stream.js +30 -0
- package/vendor/Server/Routes/server.js +202 -0
- package/vendor/Server/Routes/sse/SseHub.js +308 -0
- package/vendor/Server/Skills/acceptance-check/SKILL.md +174 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +314 -0
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +160 -0
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +29 -0
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +222 -0
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +220 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +329 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +99 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +234 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +103 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +108 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +392 -0
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -0
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +313 -0
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +166 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +309 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -0
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +361 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +146 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +253 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +115 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +263 -0
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -0
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +519 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -0
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +229 -0
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +576 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +575 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +491 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -0
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +312 -0
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -0
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +134 -0
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/flutter-interface/README.md +75 -0
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -0
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -0
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -0
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -0
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +518 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +382 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +342 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +519 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +407 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +653 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +397 -0
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +745 -0
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +721 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -0
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -0
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +301 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +105 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +208 -0
- package/vendor/Server/Skills/rn-code-check/SKILL.md +321 -0
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +235 -0
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +189 -0
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +247 -0
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -0
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -0
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -0
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -0
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -0
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +684 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -0
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +58 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +75 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +339 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +83 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +859 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +122 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +279 -0
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -0
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -0
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +506 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +280 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +209 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +498 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -0
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -0
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +255 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +77 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +174 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -0
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -0
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -0
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -0
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -0
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -0
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -0
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -0
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -0
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -0
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -0
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -0
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -0
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -0
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -0
- package/vendor/Server/Skills/task-decomposition/SKILL.md +529 -0
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -0
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -0
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -0
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -0
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -0
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -0
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -0
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +425 -0
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -0
- package/vendor/Server/TestCheck/TestCheck.js +775 -0
- package/vendor/Server/TestCheck/index.js +11 -0
- package/vendor/Server/library/McpToolGuide.js +280 -0
- package/vendor/Server/library/StatsService.js +127 -0
- package/vendor/Server/library/cstTime.js +16 -0
- package/vendor/Server/package.json +17 -0
- package/vendor/VERSION +3 -0
- package/workflows/pr-check.mjs +106 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rn-library-documentation-quality-check
|
|
3
|
+
description: 对 RN 三方库的鸿蒙化代码进行文档质量检视,聚焦 source/ohos/ 下的 API 注释完整性、鸿蒙化适配说明、README/CHANGELOG 规范、代码示例质量、类型声明文档、国际化等维度,生成严苛评分报告(0-100分)。作为 RN 仓库检视流程的第六阶段。Use when 需要对 RN 鸿蒙化库进行文档质量评估、API 文档审查、适配说明完整性检查。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要访问源码目录、分析文档和注释,读取 README/CHANGELOG/.d.ts 等文件;可选调用 MCP Gateway 的 gitcode_get_raw_file 获取外部文档
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# RN 鸿蒙化库文档质量检视
|
|
11
|
+
|
|
12
|
+
对 RN 三方库的**鸿蒙化实现代码**进行文档质量检视,评估 API 文档完整性、鸿蒙化适配说明、README/CHANGELOG 规范、代码示例质量、类型声明文档、国际化等关键文档指标。
|
|
13
|
+
|
|
14
|
+
> ⚠️ **核心原则:不凭空捏造。** 所有检视结果必须基于实际读取到的文档和源码,禁止输出推测性结论。
|
|
15
|
+
|
|
16
|
+
> ⚠️ **核心定位**:本 SKILL **仅检视鸿蒙化版本的文档质量**,检视范围:源码 API 注释(TSDoc/JSDoc)、`.d.ts` 类型声明注释、README/CHANGELOG 文档、鸿蒙化适配说明、使用示例和集成指南、`module.json5` 权限与配置说明。
|
|
17
|
+
|
|
18
|
+
> ⚠️ **排除范围**:上游 RN 原库文档不在检视范围内,仅评估鸿蒙化新增/修改的文档内容。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 任务参数
|
|
23
|
+
|
|
24
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
25
|
+
|------|------|------|------|
|
|
26
|
+
| `repoUrl` | string | ✅ | 鸿蒙化仓库地址 |
|
|
27
|
+
| `outputDir` | string | ✅ | 输出目录绝对路径 |
|
|
28
|
+
| `interfaceDocPath` | string | ✅ | 接口规格说明文档路径(通常为 `{outputDir}/接口规格说明.md`,由前置 `rn-library-interface-analyzer` 生成) |
|
|
29
|
+
| `repoName` | string | ✅ | 仓库名称 |
|
|
30
|
+
| `rndocUrl` | string | ❌ | 外部文档地址。当识别到跳转文档模式时,如果传入了 rndocUrl,优先使用 rndocUrl 下载文档,而非从 README 链接提取或构造标准 URL |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 输入依赖
|
|
35
|
+
|
|
36
|
+
本 SKILL 是 RN 仓库检视流程的**第六阶段**,依赖:
|
|
37
|
+
|
|
38
|
+
- **前置 SKILL**: `rn-library-interface-analyzer`(第一阶段已生成接口规格说明文档)
|
|
39
|
+
- **前置 SKILL**: `rn-library-memory-leak-check`(内存泄露检视已完成)
|
|
40
|
+
- **输入文件**: `接口规格说明.md`、`内存泄露检视报告.md`(位于 outputDir)
|
|
41
|
+
- **仓库源码**: `{outputDir}/source/ohos/`
|
|
42
|
+
- **接口规格说明文档**(`{outputDir}/接口规格说明.md`):包含完整的 API 列表、参数签名、鸿蒙化差异(缺失/新增/变更),是交叉验证的权威基准
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 工作流程概览
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Phase 1: 文档文件定位与收集(识别内嵌/跳转模式,收集本地+外部文档)
|
|
50
|
+
↓
|
|
51
|
+
Phase 2: 逐维度文档质量检视(7大维度,按检查项清单逐一检视)
|
|
52
|
+
↓
|
|
53
|
+
Phase 2.5: 文档与接口规格交叉验证(强制环节,以接口规格说明为权威基准)
|
|
54
|
+
↓
|
|
55
|
+
Phase 3: 文档质量评分计算(维度加权扣分制,0-100分)
|
|
56
|
+
↓
|
|
57
|
+
Phase 4: 报告生成(六章节结构化报告)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 检视维度与评分标准
|
|
63
|
+
|
|
64
|
+
### 维度权重分配
|
|
65
|
+
|
|
66
|
+
| 维度 | 权重 | 扣分上限 | 说明 |
|
|
67
|
+
|------|------|----------|------|
|
|
68
|
+
| API 文档完整性 | 20% | -20 | TSDoc/JSDoc 注释、参数/返回值/异常说明 |
|
|
69
|
+
| 鸿蒙化适配说明 | 20% | -20 | 适配说明文档、差异说明、平台限制 |
|
|
70
|
+
| 代码仓基础信息 | 15% | -15 | package.json 元数据、README 结构、LICENSE、发布配置 |
|
|
71
|
+
| 代码示例质量 | 10% | -10 | 示例可编译性、集成步骤、Demo |
|
|
72
|
+
| 变更记录与版本规范 | 10% | -10 | CHANGELOG、版本号、鸿蒙化变更 |
|
|
73
|
+
| 文档与代码交叉验证 | 15% | -15 | 文档接口与代码实现双向一致性、接口规格对齐 |
|
|
74
|
+
| 文档准确性与国际化 | 10% | -10 | 文档代码一致性、国际化支持 |
|
|
75
|
+
|
|
76
|
+
### 严重度定义
|
|
77
|
+
|
|
78
|
+
| 严重度 | 单项扣分 | 说明 |
|
|
79
|
+
|--------|----------|------|
|
|
80
|
+
| Critical | -8 | 文档严重缺失导致用户无法使用核心功能 |
|
|
81
|
+
| Major | -4 | 文档缺失或不规范,影响用户理解和使用 |
|
|
82
|
+
| Minor | -1 | 文档轻微不规范,不影响功能使用 |
|
|
83
|
+
|
|
84
|
+
### 归零规则
|
|
85
|
+
|
|
86
|
+
- 文档完全空白(无 README、无 API 注释、无任何示例)→ 评分直接 **0 分**
|
|
87
|
+
- 核心 TurboModule/NAPI 接口无任何文档说明 → 评分直接 **0 分**
|
|
88
|
+
|
|
89
|
+
> 各维度的详细检查项清单(编号 AD/DT/NP/NC/CE/TG/HA/RM/CF/EX/CL/AC/XC-xxx)参考 [references/CHECK_CHECKLIST.md](references/CHECK_CHECKLIST.md)(按需加载)。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Phase 1:文档文件定位与收集
|
|
94
|
+
|
|
95
|
+
RN 三方库的文档存在**两种分布模式**,必须先识别模式再进行收集:
|
|
96
|
+
|
|
97
|
+
| 模式 | 特征 | 典型库 |
|
|
98
|
+
|------|------|--------|
|
|
99
|
+
| **内嵌文档** | README.md / README_zh.md 包含完整的安装、链接、接口说明、约束与限制 | `react-native-svg`、`react-native-linear-gradient` |
|
|
100
|
+
| **跳转文档** | README.md 极简(仅含包名+许可证),"文档"章节指向外部集中式文档仓库 | `react-native-network-info`、`react-native-device-info` |
|
|
101
|
+
|
|
102
|
+
### 步骤 1.1:识别文档模式
|
|
103
|
+
|
|
104
|
+
读取仓库根目录的 `README.md`,检查是否包含跳转特征(`OpenHarmony-RN/usage-docs` 链接等)。
|
|
105
|
+
|
|
106
|
+
### 步骤 1.2:收集本地文档文件
|
|
107
|
+
|
|
108
|
+
收集 `*.md`、`*.d.ts`、`*.json5`、`*.txt` 等文档文件。确认关键文件清单存在性。
|
|
109
|
+
|
|
110
|
+
### 步骤 1.3:收集外部跳转文档(跳转模式专属)
|
|
111
|
+
|
|
112
|
+
若识别为跳转模式,**必须**获取外部文档内容作为检视依据。获取优先级:**rndocUrl > README 链接提取 > 标准 URL 构造**。
|
|
113
|
+
|
|
114
|
+
> **MCP 工具可选**:若 MCP Gateway 可用,可调用 `gitcode_get_raw_file` 工具获取 GitCode 上的外部 usage-docs,比 curl 更可靠。
|
|
115
|
+
|
|
116
|
+
> 完整的文档收集流程、识别信号、文件分类规则、边界场景处理参见 [references/DOC_COLLECTION_GUIDE.md](references/DOC_COLLECTION_GUIDE.md)。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Phase 2:逐维度文档质量检视
|
|
121
|
+
|
|
122
|
+
按维度 1-7 逐一检视,对每个发现的问题记录:
|
|
123
|
+
|
|
124
|
+
1. **严重度**:Critical / Major / Minor
|
|
125
|
+
2. **文件路径**:问题所在文件
|
|
126
|
+
3. **行号/位置**:问题在文件中的位置
|
|
127
|
+
4. **检查项编号**:AD/DT/NP/NC/CE/TG/HA/RM/CF/EX/CL/AC/XC-xxx
|
|
128
|
+
5. **问题描述**:缺少什么或存在什么问题
|
|
129
|
+
6. **修复建议**:具体的改进方案
|
|
130
|
+
|
|
131
|
+
**检视顺序建议**:README → .d.ts 文件 → 配置文件 → CHANGELOG 和示例
|
|
132
|
+
|
|
133
|
+
> 完整检查项清单参考 [references/CHECK_CHECKLIST.md](references/CHECK_CHECKLIST.md)。检视示例参考 [references/EXAMPLES.md](references/EXAMPLES.md)。
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Phase 2.5:文档与接口规格交叉验证(强制环节)
|
|
138
|
+
|
|
139
|
+
> ⚠️ **本环节为强制执行**,不可跳过。
|
|
140
|
+
|
|
141
|
+
以**前置 SKILL `RNLibraryInterfaceAnalyzer` 生成的接口规格说明文档**为权威基准,与用户文档(README/外部 usage-docs)中的 API 描述进行比对。
|
|
142
|
+
|
|
143
|
+
**核心步骤**:
|
|
144
|
+
1. **加载接口规格说明文档** — 从 `{outputDir}/接口规格说明.md` 提取 API 清单、签名、鸿蒙化差异
|
|
145
|
+
2. **从用户文档提取 API 清单** — 从 README/外部 usage-docs 提取文档声称的接口信息
|
|
146
|
+
3. **双向比对** — 规格→文档、文档→规格、签名与类型、鸿蒙化差异
|
|
147
|
+
4. **权限与配置比对** — module.json5 权限声明 vs 文档说明
|
|
148
|
+
5. **生成交叉验证差异报告** — 结构化表格输出
|
|
149
|
+
|
|
150
|
+
> 若接口规格说明文档不存在,记录 XC-001 Critical,跳过交叉验证,在报告中注明。
|
|
151
|
+
|
|
152
|
+
> 完整交叉验证流程、比对逻辑、差异分类参见 [references/CROSS_VALIDATION_GUIDE.md](references/CROSS_VALIDATION_GUIDE.md)。
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Phase 3:文档质量评分计算
|
|
157
|
+
|
|
158
|
+
基于检视结果进行**严苛评分**(0-100分),采用维度加权扣分制:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
基础分 = 100
|
|
162
|
+
|
|
163
|
+
每个维度内扣分规则:
|
|
164
|
+
- Critical: 每项 -8 分
|
|
165
|
+
- Major: 每项 -4 分
|
|
166
|
+
- Minor: 每项 -1 分
|
|
167
|
+
|
|
168
|
+
维度实际扣分 = min(扣分上限, Critical扣分 + Major扣分 + Minor扣分)
|
|
169
|
+
|
|
170
|
+
归零检查:
|
|
171
|
+
- 文档完全空白 → 最终分 = 0
|
|
172
|
+
- 核心 TurboModule/NAPI 接口无任何文档说明 → 最终分 = 0
|
|
173
|
+
|
|
174
|
+
最终分 = max(0, 100 - 各维度实际扣分之和)
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**评分等级**:90-100 优秀 | 80-89 良好 | 70-79 一般 | 60-69 较差 | 50-59 严重不足 | <50 极差
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Phase 4:报告生成
|
|
182
|
+
|
|
183
|
+
在 `{outputDir}` 下生成 `文档质量检视报告.md`,包含六个章节:检视概览、综合评分、各维度评分明细、检视维度详情、问题清单、改进建议。
|
|
184
|
+
|
|
185
|
+
> 完整报告模板和评分计算示例参考 [assets/REPORT_TEMPLATE.md](assets/REPORT_TEMPLATE.md)。
|
|
186
|
+
|
|
187
|
+
**关键格式要求**:
|
|
188
|
+
- 报告必须包含 `**综合评分:XX/100**` 格式,位于"二、综合评分"章节
|
|
189
|
+
- 确保可被 `_parseRNLibraryScore` 函数正确解析
|
|
190
|
+
- 评分正则匹配优先级为 `综合评分` > `总体评分/评分` > `得分`
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 输出产物
|
|
195
|
+
|
|
196
|
+
| 产物 | 文件名 | 说明 |
|
|
197
|
+
|------|--------|------|
|
|
198
|
+
| 文档质量检视报告 | `文档质量检视报告.md` | 各维度评分明细 + 问题清单 + 修复建议 |
|
|
199
|
+
|
|
200
|
+
所有产物写入 `{outputDir}` 目录。
|
|
201
|
+
|
|
202
|
+
> ⚠️ **输出文件自检**:写入结果文件前,先确认 `文档质量检视报告.md` 已存在且内容完整(**独立文件,禁止只写入 result 执行结果文件**)。若报告内容仅在草稿中,必须先将其保存为上述独立文件。
|
|
203
|
+
|
|
204
|
+
### 结构化指标输出(必须执行)
|
|
205
|
+
|
|
206
|
+
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
207
|
+
检视完成后,**必须**将最终评分以下述 JSON 对象写入该路径:
|
|
208
|
+
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"documentationScore": 85,
|
|
212
|
+
"scoreReason": "API注释缺失率40%-8等(一句话判定依据,≤50字;触发一票否决时必须注明)"
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
| 字段 | 类型 | 说明 |
|
|
217
|
+
|------|------|------|
|
|
218
|
+
| `documentationScore` | number | 文档质量评分(0-100 整数,与报告中 `**综合评分:XX/100**` 的数值一致) |
|
|
219
|
+
| `scoreReason` | string | 评分判定依据摘要(可选,前端悬浮提示展示;0 分时强烈建议写明触发规则,如"核心接口无任何文档说明触发归零") |
|
|
220
|
+
|
|
221
|
+
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取评分,无需解析报告文本)。若 prompt 未下发该路径则跳过本节。
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 评分权重
|
|
226
|
+
|
|
227
|
+
本 SKILL 在 RN 仓库检视综合评分中权重为 **10%**。
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## 常见陷阱(Gotchas)
|
|
232
|
+
|
|
233
|
+
以下为检视中最高频的 5 个陷阱,完整列表参见 [references/GOTCHAS.md](references/GOTCHAS.md)。
|
|
234
|
+
|
|
235
|
+
- **跳转文档模式误判为"文档缺失"**:跳转模式的 README 极简是设计选择,不应扣分为 RM-002/RM-004,应转而检视外部 usage-docs
|
|
236
|
+
- **async/Promise 返回类型遗漏**:文档写 `getConfig(): Config` 但代码为 `getConfig(): Promise<Config>`,是最常见的签名不一致
|
|
237
|
+
- **命名导出 vs 默认导出**:`export { lottie }` 是命名导出,示例必须用 `import { lottie }` 而非 `import lottie`
|
|
238
|
+
- **CHANGELOG 未记录鸿蒙化变更**:CHANGELOG 存在但仅含原库版本历史,无鸿蒙化适配条目
|
|
239
|
+
- **接口规格说明文档是权威基准**:交叉验证时直接使用,无需再从源码逐条提取
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 与前置/后置 SKILL 的衔接
|
|
244
|
+
|
|
245
|
+
- **前置依赖**:`rn-library-interface-analyzer`(第1阶段)输出的 `接口规格说明.md` — **交叉验证的权威基准**
|
|
246
|
+
- **前置依赖**:`rn-library-memory-leak-check`(第5阶段)输出的 `内存泄露检视报告.md`
|
|
247
|
+
- **后置输入**:本 SKILL 输出的 `文档质量检视报告.md` 将作为 `rn-library-test-coverage-check`(第7阶段)的输入依赖
|
|
248
|
+
- 确保报告中的问题清单包含足够的定位信息(文件路径+行号+检查项编号),便于后续 SKILL 参考和综合报告汇总
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 参考文件
|
|
253
|
+
|
|
254
|
+
| 文件 | 用途 | 加载时机 |
|
|
255
|
+
|------|------|----------|
|
|
256
|
+
| [references/CHECK_CHECKLIST.md](references/CHECK_CHECKLIST.md) | 各维度详细检查项清单与编号 | Phase 2 检视时按需加载 |
|
|
257
|
+
| [references/DOC_COLLECTION_GUIDE.md](references/DOC_COLLECTION_GUIDE.md) | 文档模式识别与收集完整流程 | Phase 1 文档收集时按需加载 |
|
|
258
|
+
| [references/CROSS_VALIDATION_GUIDE.md](references/CROSS_VALIDATION_GUIDE.md) | 交叉验证完整流程与比对方法 | Phase 2.5 交叉验证时按需加载 |
|
|
259
|
+
| [references/EXAMPLES.md](references/EXAMPLES.md) | 检视示例与常见场景 | 理解检视流程时按需加载 |
|
|
260
|
+
| [references/GOTCHAS.md](references/GOTCHAS.md) | 完整常见陷阱列表 | 检视过程中按需加载 |
|
|
261
|
+
| [assets/REPORT_TEMPLATE.md](assets/REPORT_TEMPLATE.md) | 报告模板与评分计算示例 | Phase 4 报告生成时按需加载 |
|
|
262
|
+
| [assets/MODEL.md](assets/MODEL.md) | 中文文档模板规范 | 检视文档规范性时按需加载 |
|
|
263
|
+
| [assets/MODEL_en.md](assets/MODEL_en.md) | 英文文档模板规范 | 检视英文文档规范性时按需加载 |
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
> 文档模板:v0.4.1,[文档规范](./文档规范.md)(删除)
|
|
2
|
+
|
|
3
|
+
# <center>lottie-react-native</center>
|
|
4
|
+
|
|
5
|
+
本项目基于 [lottie-react-native](https://github.com/lottie-react-native/lottie-react-native) 开发。
|
|
6
|
+
|
|
7
|
+
该第三方库的仓库已迁移至 Gitcode,且支持直接从 npm 下载,新的包名为:`@react-native-ohos/lottie-react-native` 版本所属关系如下:
|
|
8
|
+
| 三方库名称 | 三方库版本 | 发布信息 | 支持RN版本 | Autolink | 编译API版本 | 社区基线版本 | npm地址 |
|
|
9
|
+
| ------------ | ------------ | ------------------------------ | ------------- | ------------- |------------------------ | ------------- | ------------- |
|
|
10
|
+
| @react-native-ohos/lottie-react-native | [~ 7.3.0](https://gitcode.com/CPF-RN/rntpc_lottie-react-native/tree/br_rnoh0.82) | [Gitcode Releases](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/releases) | 0.82.* | 否 | API12+ | 7.3.4 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
11
|
+
| @react-native-ohos/lottie-react-native | [~ 7.2.3](https://gitcode.com/CPF-RN/rntpc_lottie-react-native/tree/br_rnoh0.77) | [Gitcode Releases](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/releases) | 0.77.* | 否 | API12+ | 7.3.4 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) | 否 | API12+ | 7.2.2 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
12
|
+
| @react-native-ohos/lottie-react-native | [~ 6.4.2](https://gitcode.com/CPF-RN/rntpc_lottie-react-native/tree/br_rnoh0.72) | [Gitcode Releases](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/releases) | 0.72.* | 否 | API12+ | 7.3.4 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) | 是 | API12+ | 6.4.1 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
13
|
+
| @react-native-oh-tpl/lottie-react-native | [<= 6.4.1-0.1.17@deprecated](https://github.com/react-native-oh-library/lottie-react-native/tree/sig) | [Github Releases(deprecated)](https://github.com/react-native-oh-library/lottie-react-native/releases) | 0.72.* | 否 | API12+ | 7.3.4 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) | 否 | API12+ | 6.4.1 | [Npm Address](https://www.npmjs.com/package/@react-native-oh-tpl/lottie-react-native) |
|
|
14
|
+
|
|
15
|
+
## 简介
|
|
16
|
+
|
|
17
|
+
Lottie 组件用于 React Native。<br/>
|
|
18
|
+
Lottie 是一个库生态系统,用于解析 Adobe After Effects 动画导出为 JSON 并带 bodymovin 原生渲染的动画!<br/>
|
|
19
|
+
设计师首次可以在无需工程师手工繁琐重现的情况下,创造并交付精美的动画。
|
|
20
|
+
|
|
21
|
+
## 下载安装
|
|
22
|
+
|
|
23
|
+
进入到工程目录并输入以下命令:
|
|
24
|
+
|
|
25
|
+
**npm**
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @react-native-ohos/lottie-react-native
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**yarn**
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
yarn add @react-native-ohos/lottie-react-native
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## Link
|
|
39
|
+
|
|
40
|
+
| | 是否支持autolink | RN框架版本 |
|
|
41
|
+
|--------------------------------------|-----------------|------------|
|
|
42
|
+
| ~ 7.3.0 | No | 0.82 |
|
|
43
|
+
| ~ 7.2.3 | No | 0.77 |
|
|
44
|
+
| ~ 6.4.2 | Yes | 0.72 |
|
|
45
|
+
| <= 6.4.1-0.1.17@deprecated | No | 0.72 |
|
|
46
|
+
|
|
47
|
+
使用AutoLink的工程需要根据该文档配置,Autolink框架指导文档:https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/Autolinking.md
|
|
48
|
+
|
|
49
|
+
如您使用的版本支持 Autolink,并且工程已接入 Autolink,可跳过ManualLink配置。
|
|
50
|
+
<details>
|
|
51
|
+
<summary>ManualLink: 此步骤为手动配置原生依赖项的指导</summary>
|
|
52
|
+
|
|
53
|
+
首先需要使用 DevEco Studio 打开项目里的 HarmonyOS 工程 `harmony`。
|
|
54
|
+
|
|
55
|
+
### 1. Overrides RN SDK
|
|
56
|
+
|
|
57
|
+
为了让工程依赖同一个版本的 RN SDK,需要在工程根目录的 `oh-package.json5` 添加 overrides 字段,指向工程需要使用的 RN SDK 版本。替换的版本既可以是一个具体的版本号,也可以是一个模糊版本,还可以是本地存在的 HAR 包或源码目录。
|
|
58
|
+
|
|
59
|
+
关于该字段的作用请阅读[官方说明](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-oh-package-json5-V5#zh-cn_topic_0000001792256137_overrides)
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"overrides": {
|
|
64
|
+
"@rnoh/react-native-openharmony": "^0.72.38" // ohpm 在线版本
|
|
65
|
+
// "@rnoh/react-native-openharmony" : "./react_native_openharmony.har" // 指向本地 har 包的路径
|
|
66
|
+
// "@rnoh/react-native-openharmony" : "./react_native_openharmony" // 指向源码路径
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 2. 引入原生端代码
|
|
72
|
+
|
|
73
|
+
目前有两种方法:
|
|
74
|
+
|
|
75
|
+
- 通过 har 包引入;
|
|
76
|
+
- 直接链接源码。
|
|
77
|
+
|
|
78
|
+
方法一:通过 har 包引入(推荐)
|
|
79
|
+
|
|
80
|
+
> [!TIP] har 包位于三方库安装路径的 `harmony` 文件夹下。
|
|
81
|
+
|
|
82
|
+
打开 `entry/oh-package.json5`,添加以下依赖
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
"dependencies": {
|
|
86
|
+
"@react-native-ohos/lottie-react-native": "file:../../node_modules/@react-native-ohos/lottie-react-native/harmony/lottie.har"
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
点击右上角的 `sync` 按钮
|
|
91
|
+
|
|
92
|
+
或者在命令行终端执行:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
cd entry
|
|
96
|
+
ohpm install
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
方法二:直接链接源码
|
|
100
|
+
|
|
101
|
+
> [!TIP] 如需使用直接链接源码,请参考[直接链接源码说明](/zh-cn/link-source-code.md)
|
|
102
|
+
|
|
103
|
+
### 3. 配置 CMakeLists 和引入 LottieAnimationViewPackage
|
|
104
|
+
|
|
105
|
+
打开 `entry/src/main/cpp/CMakeLists.txt`,添加:
|
|
106
|
+
|
|
107
|
+
```diff
|
|
108
|
+
project(rnapp)
|
|
109
|
+
cmake_minimum_required(VERSION 3.4.1)
|
|
110
|
+
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
|
111
|
+
set(RNOH_APP_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
112
|
+
set(NODE_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules")
|
|
113
|
+
+ set(OH_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules")
|
|
114
|
+
set(RNOH_CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../react-native-harmony/harmony/cpp")
|
|
115
|
+
set(LOG_VERBOSITY_LEVEL 1)
|
|
116
|
+
set(CMAKE_ASM_FLAGS "-Wno-error=unused-command-line-argument -Qunused-arguments")
|
|
117
|
+
set(CMAKE_CXX_FLAGS "-fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -s -fPIE -pie")
|
|
118
|
+
set(WITH_HITRACE_SYSTRACE 1) # for other CMakeLists.txt files to use
|
|
119
|
+
add_compile_definitions(WITH_HITRACE_SYSTRACE)
|
|
120
|
+
|
|
121
|
+
add_subdirectory("${RNOH_CPP_DIR}" ./rn)
|
|
122
|
+
|
|
123
|
+
# RNOH_BEGIN: manual_package_linking_1
|
|
124
|
+
add_subdirectory("../../../../sample_package/src/main/cpp" ./sample-package)
|
|
125
|
+
+ add_subdirectory("${OH_MODULES}/@react-native-ohos/lottie-react-native/src/main/cpp" ./lottie)
|
|
126
|
+
# RNOH_END: manual_package_linking_1
|
|
127
|
+
|
|
128
|
+
file(GLOB GENERATED_CPP_FILES "./generated/*.cpp")
|
|
129
|
+
|
|
130
|
+
add_library(rnoh_app SHARED
|
|
131
|
+
${GENERATED_CPP_FILES}
|
|
132
|
+
"./PackageProvider.cpp"
|
|
133
|
+
"${RNOH_CPP_DIR}/RNOHAppNapiBridge.cpp"
|
|
134
|
+
)
|
|
135
|
+
target_link_libraries(rnoh_app PUBLIC rnoh)
|
|
136
|
+
|
|
137
|
+
# RNOH_BEGIN: manual_package_linking_2
|
|
138
|
+
target_link_libraries(rnoh_app PUBLIC rnoh_sample_package)
|
|
139
|
+
+ target_link_libraries(rnoh_app PUBLIC rnoh_lottie)
|
|
140
|
+
# RNOH_END: manual_package_linking_2
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
打开 `entry/src/main/cpp/PackageProvider.cpp`,添加:
|
|
144
|
+
|
|
145
|
+
```diff
|
|
146
|
+
#include "RNOH/PackageProvider.h"
|
|
147
|
+
#include "SamplePackage.h"
|
|
148
|
+
+ #include "LottieAnimationViewPackage.h"
|
|
149
|
+
|
|
150
|
+
using namespace rnoh;
|
|
151
|
+
|
|
152
|
+
std::vector<std::shared_ptr<Package>> PackageProvider::getPackages(Package::Context ctx) {
|
|
153
|
+
return {
|
|
154
|
+
std::make_shared<SamplePackage>(ctx),
|
|
155
|
+
+ std::make_shared<LottieAnimationViewPackage>(ctx)
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 4. 在 ArkTs 侧引入 Lottie 组件
|
|
161
|
+
|
|
162
|
+
找到 **function buildCustomComponent()**,一般位于 `entry/src/main/ets/pages/index.ets` 或 `entry/src/main/ets/rn/LoadBundle.ets`,添加:
|
|
163
|
+
|
|
164
|
+
```diff
|
|
165
|
+
...
|
|
166
|
+
+ import { LottieAnimationView, LOTTIE_TYPE } from "@react-native-ohos/lottie-react-native"
|
|
167
|
+
|
|
168
|
+
@Builder
|
|
169
|
+
export function buildCustomRNComponent(ctx: ComponentBuilderContext) {
|
|
170
|
+
...
|
|
171
|
+
+ if (ctx.componentName === LOTTIE_TYPE) {
|
|
172
|
+
+ LottieAnimationView({
|
|
173
|
+
+ ctx: ctx.rnComponentContext,
|
|
174
|
+
+ tag: ctx.tag
|
|
175
|
+
+ })
|
|
176
|
+
+ }
|
|
177
|
+
...
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
> [!TIP] 本库使用了混合方案,需要添加组件名。
|
|
182
|
+
|
|
183
|
+
在`entry/src/main/ets/pages/index.ets` 或 `entry/src/main/ets/rn/LoadBundle.ets` 找到常量 `arkTsComponentNames` 在其数组里添加组件名
|
|
184
|
+
|
|
185
|
+
```diff
|
|
186
|
+
const arkTsComponentNames: Array<string> = [
|
|
187
|
+
SampleView.NAME,
|
|
188
|
+
GeneratedSampleView.NAME,
|
|
189
|
+
PropsDisplayer.NAME,
|
|
190
|
+
+ LOTTIE_TYPE
|
|
191
|
+
];
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 5. 在 ArkTs 侧引入 LottieAnimationViewPackage
|
|
195
|
+
|
|
196
|
+
打开 `entry/src/main/ets/RNPackagesFactory.ts`,添加:
|
|
197
|
+
|
|
198
|
+
> [!TIP] 版本 6.4.1-0.1.13 及以上需要
|
|
199
|
+
|
|
200
|
+
```diff
|
|
201
|
+
...
|
|
202
|
+
+ import {LottieAnimationViewPackage} from '@react-native-ohos/lottie-react-native/ts';
|
|
203
|
+
|
|
204
|
+
export function createRNPackages(ctx: RNPackageContext): RNPackage[] {
|
|
205
|
+
return [
|
|
206
|
+
+ new LottieAnimationViewPackage(ctx)
|
|
207
|
+
];
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
</details>
|
|
211
|
+
|
|
212
|
+
### 运行
|
|
213
|
+
|
|
214
|
+
点击右上角的 `sync` 按钮
|
|
215
|
+
|
|
216
|
+
或者在命令行终端执行:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
cd entry
|
|
220
|
+
ohpm install
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
然后编译、运行即可。
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
## 约束与限制
|
|
228
|
+
|
|
229
|
+
### 兼容性
|
|
230
|
+
|
|
231
|
+
本文档内容基于以下版本验证通过:
|
|
232
|
+
|
|
233
|
+
1. RNOH: 0.72.96; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112;
|
|
234
|
+
2. RNOH: 0.72.33; SDK: HarmonyOS NEXT B1; IDE: DevEco Studio: 5.0.3.900; ROM: Next.0.0.71;
|
|
235
|
+
3. RNOH: 0.77.18; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112;
|
|
236
|
+
4. RNOH: 0.82.1; SDK: HarmonyOS 6.0.1 Release SDK; IDE: DevEco Studio 6.0.1 Release; ROM:6.0.0.120 SP7;
|
|
237
|
+
|
|
238
|
+
### 权限要求
|
|
239
|
+
|
|
240
|
+
- 如果 source 使用网络 url 应用需要申请网络权限
|
|
241
|
+
|
|
242
|
+
在`entry/src/main/module.json5`中添加
|
|
243
|
+
|
|
244
|
+
```json
|
|
245
|
+
requestPermissions: [
|
|
246
|
+
{
|
|
247
|
+
name: "ohos.permission.INTERNET",
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
- 如果使用的 json 文件里有依赖图片资源或使用 imageAssetsFolder 属性,需要将资源文件放置到 HarmonyOS 工程 rawfile 下对应的路径中
|
|
253
|
+
|
|
254
|
+
rawfile 路径:`entry/src/main/resources/rawfile`
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
## 使用示例
|
|
258
|
+
下面的代码展示了这个库的基本使用场景:
|
|
259
|
+
|
|
260
|
+
> [!WARNING] 使用时 import 的库名不变。
|
|
261
|
+
|
|
262
|
+
```javascript
|
|
263
|
+
import React from "react";
|
|
264
|
+
import { View } from "react-native";
|
|
265
|
+
import LottieView from "lottie-react-native";
|
|
266
|
+
|
|
267
|
+
const App = () => {
|
|
268
|
+
return (
|
|
269
|
+
<View style={{ flex: 1 }}>
|
|
270
|
+
<LottieView
|
|
271
|
+
style={{ width: 300, height: 300 }}
|
|
272
|
+
source={require("./assets/xxx.json")}
|
|
273
|
+
autoPlay
|
|
274
|
+
loop />
|
|
275
|
+
</View>
|
|
276
|
+
);
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
export default App;
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## 使用说明
|
|
283
|
+
**动画设置**
|
|
284
|
+
```javascript
|
|
285
|
+
<LottieView
|
|
286
|
+
source={require('./assets/animations/loading.json')} // JSON文件路径
|
|
287
|
+
style={{ width: 200, height: 200 }}
|
|
288
|
+
duration={6000}
|
|
289
|
+
resizeMode={'center'}
|
|
290
|
+
autoPlay // 自动播放
|
|
291
|
+
loop // 循环播放
|
|
292
|
+
|
|
293
|
+
/>
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**事件监听**
|
|
297
|
+
```javascript
|
|
298
|
+
<LottieView
|
|
299
|
+
style={{ width: 300, height: 300 }}
|
|
300
|
+
source={require("../assets/data_base64s.json")}
|
|
301
|
+
loop
|
|
302
|
+
onAnimationFinish={() => {
|
|
303
|
+
// 动画播放完成时调用
|
|
304
|
+
}}
|
|
305
|
+
onAnimationLoaded={() => {
|
|
306
|
+
// 加载完成时调用
|
|
307
|
+
}}
|
|
308
|
+
onAnimationFailure={(event)=>{
|
|
309
|
+
// 动画加载或播放失败时调用
|
|
310
|
+
}}
|
|
311
|
+
/>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**播放控制**
|
|
315
|
+
```javascript
|
|
316
|
+
const animationRef = useRef<LottieView>(null);
|
|
317
|
+
|
|
318
|
+
<LottieView
|
|
319
|
+
ref={animationRef}
|
|
320
|
+
style={{ width: 300, height: 300 }}
|
|
321
|
+
source={require("../assets/data_base64s.json")}
|
|
322
|
+
loop={true}
|
|
323
|
+
/>
|
|
324
|
+
|
|
325
|
+
// 重置动画
|
|
326
|
+
animationRef.current.reset();
|
|
327
|
+
// 播放动画
|
|
328
|
+
animationRef.current.play();
|
|
329
|
+
// 暂停动画
|
|
330
|
+
animationRef.current.pause();
|
|
331
|
+
// 恢复暂停的动画。
|
|
332
|
+
animationRef.current.resume();
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
## 接口说明
|
|
337
|
+
|
|
338
|
+
> [!TIP] "Platform"列表示该属性在原三方库上支持的平台。
|
|
339
|
+
|
|
340
|
+
> [!TIP] "OpenHarmony Support"列为 yes 表示 OpenHarmony平台支持 该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。
|
|
341
|
+
|
|
342
|
+
### 组件
|
|
343
|
+
| 名称 | 参数类型 | 必填 | 平台 | OpenHarmony平台支持| 描述 |
|
|
344
|
+
|------------|------------|----------------------|------|-----|----------------|
|
|
345
|
+
| LottieView | [LottieViewProps](#LottieViewProps) | yes | all | yes | LottieView组件 |
|
|
346
|
+
|
|
347
|
+
### 属性
|
|
348
|
+
LottieViewProps
|
|
349
|
+
|
|
350
|
+
| 名称 | 参数类型 | 默认值 | 必填 | 平台 | HarmonyOS平台支持 | 描述 |
|
|
351
|
+
|------------------------------|--------------------|------------|---------------|------|------------------|---------------|
|
|
352
|
+
| source | string | AnimationObject | { uri: string } | None | Yes | 必填 - 动画来源。可以通过字符串引用本地资源,或通过带有 uri 属性的对象引用远程资源,也可以是动画的实际 JS 对象(例如通过 require('../path/to/animation.json') 获取)|
|
|
353
|
+
| progress | number | 0 | No | iOS, Android, Windows | Yes | 0 到 1 之间的数字。该数字表示动画的标准进度。如果更新此属性,动画将相应更新到该进度值对应的帧。如果使用命令式 API,则不需要此属性。|
|
|
354
|
+
| speed | number | 1 | No | All | Yes | 动画播放的速度。设置为负值将使动画倒放 |
|
|
355
|
+
| duration | number | undefined | No | iOS, Android, Windows | Yes | 动画的持续时间(毫秒)。设置后将优先于速度属性。此属性仅在 source 为动画的实际 JS 对象时有效。|
|
|
356
|
+
| loop | boolean | true | No | All | Yes | 布尔值,指示动画是否应循环播放。 |
|
|
357
|
+
| autoPlay | boolean | false | No | All | Yes | 布尔值,指示组件挂载时是否自动开始播放动画。这仅影响命令式 API。 |
|
|
358
|
+
| resizeMode | 'cover'/ 'contain' /'center' | contain | No | iOS, Android, Windows | Yes | 确定当动画帧与原始图像尺寸不匹配时如何调整动画视图的大小。支持 cover、contain 和 center。|
|
|
359
|
+
| style | StyleProp<ViewStyle> | None | No | iOS, Android, Windows | Yes | 视图的样式属性,与标准 View 组件期望的样式相同,不包括边框样式 |
|
|
360
|
+
| containerStyle<sup>7.3.0+</sup> | StyleProp<ViewStyle> | None | No | iOS, Android, VisionOS | Yes | 最外层容器视图的样式属性,与标准 View 组件期望的样式相同。用于布局和定位。 |
|
|
361
|
+
| webStyle | CSSProperties | None | No | Web | No | 视图的样式属性,使用 CSSProperties。 |
|
|
362
|
+
| imageAssetsFolder | string | None | No | Android | Yes | Android 和 HarmonyOS 正确处理资源所需,iOS 将忽略此属性。 |
|
|
363
|
+
| useNativeLooping | boolean | false | No | Windows | No | 仅适用于 Windows。启用后,使用平台级循环以提高流畅度,但 onAnimationLoop 不会触发,且更改 loop 属性将重置播放而不是正常结束。|
|
|
364
|
+
| onAnimationLoop | callback | None | No | Windows, Web | No | 仅适用于 Windows 和 Web。动画循环播放时调用的回调函数。|
|
|
365
|
+
| onAnimationFinish | callback | None | No | All | Yes | 动画完成时调用的回调函数。此回调带有一个布尔值 isCancelled 参数,指示动画是实际完成播放,还是被取消(例如在播放时调用了 play() 或 reset())。注意:仅在 loop 设置为 false 时才会调用此回调。|
|
|
366
|
+
| onAnimationFailure | callback | None | No | All | Yes | 处理动画(加载、运行等)过程中发生错误时调用的回调函数。此回调带有一个字符串 error 参数,其中包含发生的错误信息。|
|
|
367
|
+
| onAnimationLoaded | callback | None | No | All | Yes | 动画加载完成时调用的回调函数。此回调不带参数。 |
|
|
368
|
+
| renderMode | 'AUTOMATIC' | 'HARDWARE' | 'SOFTWARE' | AUTOMATIC | No | iOS, Android | No | 字符串标志,用于设置使用 HARDWARE(硬件)还是 SOFTWARE(软件)加速渲染 |
|
|
369
|
+
| cacheComposition | boolean | true | No | Android | Yes | 仅适用于 Android 和 HarmonyOS,布尔值指示是否应对动画进行缓存。 |
|
|
370
|
+
| colorFilters | Array<ColorFilter> | [] | No | iOS, Android, Windows | Yes | 对象数组,表示通过 KeyPath 指定的图层以及新的颜色滤镜值(十六进制字符串)。 |
|
|
371
|
+
| textFiltersAndroid | Array<TextFilterAndroid> | [] | No | Android | No | 仅适用于 Android,表示要查找和替换的文本值的对象数组。 |
|
|
372
|
+
| textFiltersIOS | Array<TextFilterIOS> | [] | No | iOS | No | 仅适用于 iOS,表示通过 KeyPath 指定的文本图层以及新的字符串值的对象数组。 |
|
|
373
|
+
| hover | boolean | false | No | Web | No | 仅适用于 Web,布尔值表示鼠标悬停时是否播放。 |
|
|
374
|
+
| direction | 1 | -1 | 1 | No | Web | No | 仅适用于 Web,数值 1 或 -1 表示播放方向。 |
|
|
375
|
+
|
|
376
|
+
### API
|
|
377
|
+
| 名称 | 类型 | 参数类型 | 返回值 | 必填 | 平台 | OpenHarmony平台支持 | 描述 |
|
|
378
|
+
|--------|---------|-----|-------|-------|--------|-----|-----------------|
|
|
379
|
+
| play | function | / | / | No | All | Yes | 按指定的属性速度完整播放动画。也可以在调用 play(startFrame, endFrame) 时播放动画的一个部分(网页上不可用)。 |
|
|
380
|
+
| reset | function | / | / | No | All | Yes | 将动画重置回 0 进度。 |
|
|
381
|
+
| pause | function | / | / | No | All | Yes | 暂停动画。 |
|
|
382
|
+
| resume | function | / | / | No | All | Yes | 恢复暂停的动画。 |
|
|
383
|
+
|
|
384
|
+
## 遗留问题
|
|
385
|
+
|
|
386
|
+
- 原库部分接口在 HarmonyOS 中没有对应属性及接口处理相关逻辑,问题: [issue#18](https://github.com/react-native-oh-library/lottie-react-native/issues/18)
|
|
387
|
+
|
|
388
|
+
## 其他
|
|
389
|
+
无
|
|
390
|
+
|
|
391
|
+
## 目录结构
|
|
392
|
+
````
|
|
393
|
+
/rntpc_lottie-react-native # 项目根目录
|
|
394
|
+
├── harmony # 鸿蒙适配代码
|
|
395
|
+
│ └─ lottie.har # har包
|
|
396
|
+
│ └─ lottie # 鸿蒙适配核心代码
|
|
397
|
+
│ └─ index.ets # 鸿蒙适配代码入口
|
|
398
|
+
│ └─ src/main/ets
|
|
399
|
+
│ └─ LottieAnimationView # lottieView组件 。基于ohos/lottie库封装的lottieView组件
|
|
400
|
+
├── src # RN代码
|
|
401
|
+
│ └─ index.tsx # 入口文件
|
|
402
|
+
│ └─ LottieAnimationViewNativeComponent.ts 类型文件
|
|
403
|
+
│ └─ codegenUtils.ts # 类型文件
|
|
404
|
+
├── README.md # 英文安装使用方法
|
|
405
|
+
├── README_zh.md # 中文安装使用方法
|
|
406
|
+
````
|
|
407
|
+
|
|
408
|
+
## 贡献代码
|
|
409
|
+
|
|
410
|
+
使用过程中发现任何问题都可以提交 [Issue](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/issues),当然,也非常欢迎提交 [PR](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/pulls) 。
|
|
411
|
+
|
|
412
|
+
## 开源协议
|
|
413
|
+
|
|
414
|
+
本项目基于 [Apache License 2.0](https://github.com/lottie-react-native/lottie-react-native/blob/master/LICENSE) ,请自由地享受和参与开源。
|