@ohos-cpf/3rdloop 0.0.2 → 0.0.4
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 +290 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,413 +1,413 @@
|
|
|
1
|
-
> Document Template:v0.4.1, [Document Template](../文档规范.md)(delete)
|
|
2
|
-
|
|
3
|
-
# <center>lottie-react-native</center>
|
|
4
|
-
|
|
5
|
-
This project is based on [lottie-react-native](https://github.com/lottie-react-native/lottie-react-native).
|
|
6
|
-
|
|
7
|
-
This third-party library has been migrated to Gitcode and is now available for direct download from npm, the new package name is: `@react-native-ohos/lottie-react-native`, The version correspondence details are as follows:
|
|
8
|
-
|
|
9
|
-
| Name | Version | Release Information | Supported RN Version | Supported Autolink | Compile API Version | Community Baseline Version | npm Address |
|
|
10
|
-
| --------------| -------------- | ------------------------------ | ------------- | ------------- |------------------------ | ------------- | ------------- |
|
|
11
|
-
| @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.* | No | API12+ | 7.3.4 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
12
|
-
| @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.* | No | API12+ | 7.2.2 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
13
|
-
| @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.* | Yes | API12+ | 6.4.1 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
14
|
-
| @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.* | No | API12+ | 6.4.1 | [Npm Address](https://www.npmjs.com/package/@react-native-oh-tpl/lottie-react-native) |
|
|
15
|
-
|
|
16
|
-
## Introduction
|
|
17
|
-
|
|
18
|
-
Lottie component for React Native.
|
|
19
|
-
Lottie is an ecosystem of libraries for parsing Adobe After Effects animations exported as JSON with bodymovin and rendering them natively!
|
|
20
|
-
For the first time, designers can create and ship beautiful animations without an engineer painstakingly recreating it by hand.
|
|
21
|
-
|
|
22
|
-
## Installation
|
|
23
|
-
|
|
24
|
-
Go to the project directory and execute the following instruction:
|
|
25
|
-
|
|
26
|
-
**npm**
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npm install @react-native-ohos/lottie-react-native
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**yarn**
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
yarn add @react-native-ohos/lottie-react-native
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Link
|
|
39
|
-
|
|
40
|
-
| | Supported Autolink | Supported RN Version |
|
|
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
|
-
Projects using AutoLink need to be configured according to this document, AutoLink framework guide: https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/Autolinking.md
|
|
48
|
-
|
|
49
|
-
If the version you are using supports Autolink and the project has integrated Autolink, you can skip the ManualLink configuration.
|
|
50
|
-
|
|
51
|
-
<details>
|
|
52
|
-
<summary>ManualLink: This step provides guidance for manually configuring native dependencies.</summary>
|
|
53
|
-
|
|
54
|
-
Open the `harmony` directory of the OpenHarmony project in DevEco Studio.
|
|
55
|
-
|
|
56
|
-
### 1. Overrides RN SDK
|
|
57
|
-
|
|
58
|
-
To ensure the project relies on the same version of the RN SDK, you need to add an `overrides` field in the project's root `oh-package.json5` file, specifying the RN SDK version to be used. The replacement version can be a specific version number, a semver range, or a locally available HAR package or source directory.
|
|
59
|
-
|
|
60
|
-
For more information about the purpose of this field, please refer to the [official documentation](https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V5/ide-oh-package-json5-V5#en-us_topic_0000001792256137_overrides).
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
"overrides": {
|
|
65
|
-
"@rnoh/react-native-openharmony": "^0.72.38" // ohpm version
|
|
66
|
-
// "@rnoh/react-native-openharmony" : "./react_native_openharmony.har" // a locally available HAR package
|
|
67
|
-
// "@rnoh/react-native-openharmony" : "./react_native_openharmony" // source code directory
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### 2. Introducing Native Code
|
|
73
|
-
|
|
74
|
-
Currently, two methods are available:
|
|
75
|
-
|
|
76
|
-
- Use the HAR file.
|
|
77
|
-
- Directly link to the source code.
|
|
78
|
-
|
|
79
|
-
Method 1 (recommended): Use the HAR file.
|
|
80
|
-
|
|
81
|
-
> [!TIP] The HAR file is stored in the `harmony` directory in the installation path of the third-party library.
|
|
82
|
-
|
|
83
|
-
Open `entry/oh-package.json5` file and add the following dependencies:
|
|
84
|
-
|
|
85
|
-
```json
|
|
86
|
-
"dependencies": {
|
|
87
|
-
"@react-native-ohos/lottie-react-native": "file:../../node_modules/@react-native-ohos/lottie-react-native/harmony/lottie.har"
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Click the `sync` button in the upper right corner.
|
|
92
|
-
|
|
93
|
-
Alternatively, run the following instruction on the terminal:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
cd entry
|
|
97
|
-
ohpm install
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Method 2: Directly link to the source code.
|
|
101
|
-
|
|
102
|
-
> [!TIP] For details, see [Directly Linking Source Code](/en/link-source-code.md).
|
|
103
|
-
|
|
104
|
-
### 3. Configuring CMakeLists and Introducing LottieAnimationViewPackage
|
|
105
|
-
|
|
106
|
-
Open `entry/src/main/cpp/CMakeLists.txt` and add the following code:
|
|
107
|
-
|
|
108
|
-
```diff
|
|
109
|
-
project(rnapp)
|
|
110
|
-
cmake_minimum_required(VERSION 3.4.1)
|
|
111
|
-
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
|
112
|
-
set(RNOH_APP_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
113
|
-
set(NODE_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules")
|
|
114
|
-
+ set(OH_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules")
|
|
115
|
-
set(RNOH_CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../react-native-harmony/harmony/cpp")
|
|
116
|
-
set(LOG_VERBOSITY_LEVEL 1)
|
|
117
|
-
set(CMAKE_ASM_FLAGS "-Wno-error=unused-command-line-argument -Qunused-arguments")
|
|
118
|
-
set(CMAKE_CXX_FLAGS "-fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -s -fPIE -pie")
|
|
119
|
-
set(WITH_HITRACE_SYSTRACE 1) # for other CMakeLists.txt files to use
|
|
120
|
-
add_compile_definitions(WITH_HITRACE_SYSTRACE)
|
|
121
|
-
|
|
122
|
-
add_subdirectory("${RNOH_CPP_DIR}" ./rn)
|
|
123
|
-
|
|
124
|
-
# RNOH_BEGIN: manual_package_linking_1
|
|
125
|
-
add_subdirectory("../../../../sample_package/src/main/cpp" ./sample-package)
|
|
126
|
-
+ add_subdirectory("${OH_MODULES}/@react-native-ohos/lottie-react-native/src/main/cpp" ./lottie)
|
|
127
|
-
# RNOH_END: manual_package_linking_1
|
|
128
|
-
|
|
129
|
-
file(GLOB GENERATED_CPP_FILES "./generated/*.cpp")
|
|
130
|
-
|
|
131
|
-
add_library(rnoh_app SHARED
|
|
132
|
-
${GENERATED_CPP_FILES}
|
|
133
|
-
"./PackageProvider.cpp"
|
|
134
|
-
"${RNOH_CPP_DIR}/RNOHAppNapiBridge.cpp"
|
|
135
|
-
)
|
|
136
|
-
target_link_libraries(rnoh_app PUBLIC rnoh)
|
|
137
|
-
|
|
138
|
-
# RNOH_BEGIN: manual_package_linking_2
|
|
139
|
-
target_link_libraries(rnoh_app PUBLIC rnoh_sample_package)
|
|
140
|
-
+ target_link_libraries(rnoh_app PUBLIC rnoh_lottie)
|
|
141
|
-
# RNOH_END: manual_package_linking_2
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Open `entry/src/main/cpp/PackageProvider.cpp` and add the following code:
|
|
145
|
-
|
|
146
|
-
```diff
|
|
147
|
-
#include "RNOH/PackageProvider.h"
|
|
148
|
-
#include "SamplePackage.h"
|
|
149
|
-
+ #include "LottieAnimationViewPackage.h"
|
|
150
|
-
|
|
151
|
-
using namespace rnoh;
|
|
152
|
-
|
|
153
|
-
std::vector<std::shared_ptr<Package>> PackageProvider::getPackages(Package::Context ctx) {
|
|
154
|
-
return {
|
|
155
|
-
std::make_shared<SamplePackage>(ctx),
|
|
156
|
-
+ std::make_shared<LottieAnimationViewPackage>(ctx)
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### 4. Introducing Lottie Component to ArkTS
|
|
162
|
-
|
|
163
|
-
Find **function buildCustomComponent()**, which is usually located in `entry/src/main/ets/pages/index.ets` or `entry/src/main/ets/rn/LoadBundle.ets`, and add the following code:
|
|
164
|
-
|
|
165
|
-
```diff
|
|
166
|
-
...
|
|
167
|
-
+ import { LottieAnimationView, LOTTIE_TYPE } from "@react-native-ohos/lottie-react-native"
|
|
168
|
-
|
|
169
|
-
@Builder
|
|
170
|
-
export function buildCustomRNComponent(ctx: ComponentBuilderContext) {
|
|
171
|
-
...
|
|
172
|
-
+ if (ctx.componentName === LOTTIE_TYPE) {
|
|
173
|
-
+ LottieAnimationView({
|
|
174
|
-
+ ctx: ctx.rnComponentContext,
|
|
175
|
-
+ tag: ctx.tag
|
|
176
|
-
+ })
|
|
177
|
-
+ }
|
|
178
|
-
...
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
> [!TIP] This library uses a mixed solution, the component name needs to be added.
|
|
183
|
-
|
|
184
|
-
Find the constant `arkTsComponentNames` in `entry/src/main/ets/pages/index.ets` or `entry/src/main/ets/rn/LoadBundle.ets` and add the component name to the array.
|
|
185
|
-
|
|
186
|
-
```diff
|
|
187
|
-
const arkTsComponentNames: Array<string> = [
|
|
188
|
-
SampleView.NAME,
|
|
189
|
-
GeneratedSampleView.NAME,
|
|
190
|
-
PropsDisplayer.NAME,
|
|
191
|
-
+ LOTTIE_TYPE
|
|
192
|
-
];
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
### 5. Introducing LottieAnimationViewPackage to ArkTS
|
|
196
|
-
|
|
197
|
-
Open `entry/src/main/ets/RNPackagesFactory.ts` and add:
|
|
198
|
-
|
|
199
|
-
> [!TIP] Required for version 6.4.1-0.1.13 and above
|
|
200
|
-
|
|
201
|
-
```diff
|
|
202
|
-
...
|
|
203
|
-
+ import {LottieAnimationViewPackage} from '@react-native-ohos/lottie-react-native/ts';
|
|
204
|
-
|
|
205
|
-
export function createRNPackages(ctx: RNPackageContext): RNPackage[] {
|
|
206
|
-
return [
|
|
207
|
-
+ new LottieAnimationViewPackage(ctx)
|
|
208
|
-
];
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
</details>
|
|
212
|
-
|
|
213
|
-
## Running
|
|
214
|
-
|
|
215
|
-
Click the `sync` button in the upper right corner.
|
|
216
|
-
|
|
217
|
-
Alternatively, run the following instruction on the terminal:
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
cd entry
|
|
221
|
-
ohpm install
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
Then build and run the code.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
## Constraints
|
|
228
|
-
|
|
229
|
-
### Compatibility
|
|
230
|
-
|
|
231
|
-
This document is verified based on the following versions:
|
|
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
|
-
### Permission Requirements
|
|
239
|
-
|
|
240
|
-
- If the source uses a network URL, the application needs to apply for network permissions.
|
|
241
|
-
|
|
242
|
-
Include applicable permissions in the `entry/src/main/module.json5` file within the entry directory.
|
|
243
|
-
|
|
244
|
-
```json
|
|
245
|
-
requestPermissions: [
|
|
246
|
-
{
|
|
247
|
-
name: "ohos.permission.INTERNET",
|
|
248
|
-
},
|
|
249
|
-
],
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
- If the JSON file used has dependent image resources or uses the imageAssetsFolder property, the resource files need to be placed in the corresponding path under the OpenHarmony project rawfile directory.
|
|
253
|
-
|
|
254
|
-
rawfile path: `entry/src/main/resources/rawfile`
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
## Example
|
|
258
|
-
|
|
259
|
-
The following code shows the basic use scenario of the repository:
|
|
260
|
-
|
|
261
|
-
> [!WARNING] The name of the imported repository remains unchanged.
|
|
262
|
-
|
|
263
|
-
```javascript
|
|
264
|
-
import React from "react";
|
|
265
|
-
import { View } from "react-native";
|
|
266
|
-
import LottieView from "lottie-react-native";
|
|
267
|
-
|
|
268
|
-
const App = () => {
|
|
269
|
-
return (
|
|
270
|
-
<View style={{ flex: 1 }}>
|
|
271
|
-
<LottieView
|
|
272
|
-
style={{ width: 300, height: 300 }}
|
|
273
|
-
source={require("./assets/xxx.json")}
|
|
274
|
-
autoPlay
|
|
275
|
-
loop />
|
|
276
|
-
</View>
|
|
277
|
-
);
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
export default App;
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
## How to Use
|
|
284
|
-
**Animation settings**
|
|
285
|
-
```javascript
|
|
286
|
-
<LottieView
|
|
287
|
-
source={require('./assets/animations/loading.json')} // JSON文件路径
|
|
288
|
-
style={{ width: 200, height: 200 }}
|
|
289
|
-
duration={6000}
|
|
290
|
-
resizeMode={'center'}
|
|
291
|
-
autoPlay // Auto play
|
|
292
|
-
loop // loop
|
|
293
|
-
/>
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
**Event Listener**
|
|
297
|
-
```javascript
|
|
298
|
-
<LottieView
|
|
299
|
-
style={{ width: 300, height: 300 }}
|
|
300
|
-
source={require("../assets/data_base64s.json")}
|
|
301
|
-
loop
|
|
302
|
-
onAnimationFinish={() => {
|
|
303
|
-
// Called when animation finishes playing
|
|
304
|
-
}}
|
|
305
|
-
onAnimationLoaded={() => {
|
|
306
|
-
// Called when loading is complete
|
|
307
|
-
}}
|
|
308
|
-
onAnimationFailure={(event)=>{
|
|
309
|
-
// Call when animation fails to load or play
|
|
310
|
-
}}
|
|
311
|
-
/>
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**Playback Control**
|
|
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
|
-
// Reset animation
|
|
326
|
-
animationRef.current.reset();
|
|
327
|
-
// Play animation
|
|
328
|
-
animationRef.current.play();
|
|
329
|
-
// Pause animation
|
|
330
|
-
animationRef.current.pause();
|
|
331
|
-
// Resume the paused animation.
|
|
332
|
-
animationRef.current.resume();
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
## Available APIs
|
|
337
|
-
|
|
338
|
-
> [!TIP] The **Platform** column indicates the platform where the properties are supported in the original third-party library.
|
|
339
|
-
|
|
340
|
-
> [!TIP] If the value of **HarmonyOS Support** is **yes**, it means that the OpenHarmony platform supports this property; **no** means the opposite; **partially** means some capabilities of this property are supported. The usage method is the same on different platforms and the effect is the same as that of iOS or Android.
|
|
341
|
-
|
|
342
|
-
### Components
|
|
343
|
-
| Name | Parameter Type | Required | Platform | OpenHarmony Platform Support | Description |
|
|
344
|
-
|--------------|------------------------|------|------|--------------|----------------------|
|
|
345
|
-
| LottieView | [LottieViewProps](#LottieViewProps) | yes | all | yes | LottieView Component |
|
|
346
|
-
|
|
347
|
-
### Properties
|
|
348
|
-
LottieViewProps
|
|
349
|
-
|
|
350
|
-
| Name | Parameter Type | Default Value | Required | Platform | OpenHarmony Platform Support | Description |
|
|
351
|
-
|---------------------------------|-------------------------------------|-----------------|-----------------|------------------------|----------------------------|-----------|
|
|
352
|
-
| source | string | AnimationObject | { uri: string } | None | Yes | Mandatory - The source of animation. Can be referenced as a local asset by a string, or remotely with an object with a uri property, or it can be an actual JS object of an animation, obtained (for example) with something like require('../path/to/animation.json') |
|
|
353
|
-
| progress | number | 0 | No | iOS, Android, Windows | Yes | A number between 0 and 1. This number represents the normalized progress of the animation. If you update this prop, the animation will correspondingly update to the frame at that progress value. This prop is not required if you are using the imperative API. |
|
|
354
|
-
| speed | number | 1 | No | All | Yes | The animation playback speed. Setting it to a negative value will cause the animation to play in reverse. |
|
|
355
|
-
| duration | number | undefined | No | iOS, Android, Windows | Yes | The duration of the animation (in milliseconds). This property takes precedence over the speed property. This property is only valid if the source is the actual JS object of the animation. |
|
|
356
|
-
| loop | boolean | true | No | All | Yes | A Boolean value indicating whether the animation should loop. |
|
|
357
|
-
| autoPlay | boolean | false | No | All | Yes | A boolean value indicating whether the animation should start automatically when the component is mounted. This only affects the imperative API. |
|
|
358
|
-
| resizeMode | 'cover'/ 'contain' /'center' | contain | No | iOS, Android, Windows | Yes | Determines how to resize the animated view when the frame doesn't match the raw image dimensions. Supports cover, contain and center. |
|
|
359
|
-
| style | StyleProp<ViewStyle> | None | No | iOS, Android, Windows | Yes | Style attributes for the view, as expected in a standard View, aside from border styling. |
|
|
360
|
-
| containerStyle<sup>7.3.0+</sup> | StyleProp<ViewStyle> | None | No | iOS, Android, VisionOS | Yes | Style attributes for the outermost container view, as expected in a standard View. Useful for layout and positioning. |
|
|
361
|
-
| webStyle | CSSProperties | None | No | Web | No | Style attributes for the view, it uses CSSProperties. |
|
|
362
|
-
| imageAssetsFolder | string | None | No | Android | Yes | Needed for Android and HarmonyOS to work properly with assets, iOS will ignore it. |
|
|
363
|
-
| useNativeLooping | boolean | false | No | Windows | No | Only Windows. When enabled, uses platform-level looping to improve smoothness, but onAnimationLoop will not fire and changing the loop prop will reset playback rather than finishing gracefully. |
|
|
364
|
-
| onAnimationLoop | callback | None | No | Windows, Web | No | Only Windows and Web. A callback function invoked when the animation loops. |
|
|
365
|
-
| onAnimationFinish | callback | None | No | All | Yes | A callback function which will be called when animation is finished. This callback is called with a boolean isCancelled argument, indicating if the animation actually completed playing, or if it was cancelled, for instance by calling play() or reset() while is was still playing. Note that this callback will be called only when loop is set to false. |
|
|
366
|
-
| onAnimationFailure | callback | None | No | All | Yes | A callback function which will be called if an error occurs while working with the animation (loading, running, etc). This callback is called with a string error argument, which contains the error message that occured. |
|
|
367
|
-
| onAnimationLoaded | callback | None | No | All | Yes | A callback function which will be called when animation is done loading. This callback is called with no parameters. |
|
|
368
|
-
| renderMode | 'AUTOMATIC' /'HARDWARE' /'SOFTWARE' | AUTOMATIC | No | iOS, Android | No | a String flag to set whether or not to render with HARDWARE or SOFTWARE acceleration |
|
|
369
|
-
| cacheComposition | boolean | true | No | Android | Yes | Only Android and HarmonyOS, a boolean flag indicating whether or not the animation should do caching. |
|
|
370
|
-
| colorFilters | Array<ColorFilter> | [] | No | iOS, Android, Windows | Yes | An array of objects denoting layers by KeyPath and a new color filter value (as hex string). |
|
|
371
|
-
| textFiltersAndroid | Array<TextFilterAndroid> | [] | No | Android | No | Only Android, an array of objects denoting text values to find and replace. |
|
|
372
|
-
| textFiltersIOS | Array<TextFilterIOS> | [] | No | iOS | No | Only iOS, an array of objects denoting text layers by KeyPath and a new string value. |
|
|
373
|
-
| hover | boolean | false | No | Web | No | Only Web, a boolean denoting whether to play on mouse hover. |
|
|
374
|
-
| direction | 1 /-1 | 1 | No | Web | No | Only Web a number from 1 or -1 denoting playing direction.|
|
|
375
|
-
|
|
376
|
-
### API
|
|
377
|
-
| Name | Type | Parameter Type | Return Value | Required | Platform | OpenHarmony Platform Support | Description |
|
|
378
|
-
|--------|-------|----------|---------|-------|--------|-----|-----------------|
|
|
379
|
-
| play | function | / | / | No | All | Yes | Plays the animation completely at the specified speed. A portion of the animation can also be played when play(startFrame, endFrame) is called (not available on web pages).|
|
|
380
|
-
| reset | function | / | / | No | All | Yes | Resets the animation to 0 progress.|
|
|
381
|
-
| pause | function | / | / | No | All | Yes | Pauses the animation. |
|
|
382
|
-
| resume | function | / | / | No | All | Yes | Resumes the paused animation. |
|
|
383
|
-
|
|
384
|
-
## Known Issues
|
|
385
|
-
|
|
386
|
-
- Some interfaces of the original library do not have corresponding properties and interface handling logic in OpenHarmony: [issue#18](https://github.com/react-native-oh-library/lottie-react-native/issues/18)
|
|
387
|
-
|
|
388
|
-
## Other
|
|
389
|
-
|
|
390
|
-
## Directory Structure
|
|
391
|
-
````
|
|
392
|
-
/rntpc_lottie-react-native # Project root directory
|
|
393
|
-
├── harmony # HarmonyOS adaptation code
|
|
394
|
-
│ └─ lottie.har # har package
|
|
395
|
-
│ └─ lottie # HarmonyOS adaptation core code
|
|
396
|
-
│ └─ index.ets # HarmonyOS adaptation code entry point
|
|
397
|
-
│ └─ src/main/ets
|
|
398
|
-
│ └─ LottieAnimationView # lottieView component. A LotteView component based on the ohos/lottie library
|
|
399
|
-
├── src # React Native code
|
|
400
|
-
│ └─ index.tsx # Entry file
|
|
401
|
-
│ └─ LottieAnimationViewNativeComponent.ts //Type file
|
|
402
|
-
│ └─ codegenUtils.ts # Type file
|
|
403
|
-
├── README.md # English document
|
|
404
|
-
├── README_zh.md # Chinese document
|
|
405
|
-
````
|
|
406
|
-
|
|
407
|
-
## How to Contribute
|
|
408
|
-
|
|
409
|
-
If you find any problem when using lottie-react-native, submit an [issue](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/issues)or a[PR](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/pulls).
|
|
410
|
-
|
|
411
|
-
## License
|
|
412
|
-
|
|
413
|
-
The repository is based on [Apache License 2.0](https://github.com/lottie-react-native/lottie-react-native/blob/master/LICENSE).
|
|
1
|
+
> Document Template:v0.4.1, [Document Template](../文档规范.md)(delete)
|
|
2
|
+
|
|
3
|
+
# <center>lottie-react-native</center>
|
|
4
|
+
|
|
5
|
+
This project is based on [lottie-react-native](https://github.com/lottie-react-native/lottie-react-native).
|
|
6
|
+
|
|
7
|
+
This third-party library has been migrated to Gitcode and is now available for direct download from npm, the new package name is: `@react-native-ohos/lottie-react-native`, The version correspondence details are as follows:
|
|
8
|
+
|
|
9
|
+
| Name | Version | Release Information | Supported RN Version | Supported Autolink | Compile API Version | Community Baseline Version | npm Address |
|
|
10
|
+
| --------------| -------------- | ------------------------------ | ------------- | ------------- |------------------------ | ------------- | ------------- |
|
|
11
|
+
| @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.* | No | API12+ | 7.3.4 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
12
|
+
| @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.* | No | API12+ | 7.2.2 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
13
|
+
| @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.* | Yes | API12+ | 6.4.1 | [Npm Address](https://www.npmjs.com/package/@react-native-ohos/lottie-react-native) |
|
|
14
|
+
| @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.* | No | API12+ | 6.4.1 | [Npm Address](https://www.npmjs.com/package/@react-native-oh-tpl/lottie-react-native) |
|
|
15
|
+
|
|
16
|
+
## Introduction
|
|
17
|
+
|
|
18
|
+
Lottie component for React Native.
|
|
19
|
+
Lottie is an ecosystem of libraries for parsing Adobe After Effects animations exported as JSON with bodymovin and rendering them natively!
|
|
20
|
+
For the first time, designers can create and ship beautiful animations without an engineer painstakingly recreating it by hand.
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
Go to the project directory and execute the following instruction:
|
|
25
|
+
|
|
26
|
+
**npm**
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @react-native-ohos/lottie-react-native
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**yarn**
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
yarn add @react-native-ohos/lottie-react-native
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Link
|
|
39
|
+
|
|
40
|
+
| | Supported Autolink | Supported RN Version |
|
|
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
|
+
Projects using AutoLink need to be configured according to this document, AutoLink framework guide: https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/Autolinking.md
|
|
48
|
+
|
|
49
|
+
If the version you are using supports Autolink and the project has integrated Autolink, you can skip the ManualLink configuration.
|
|
50
|
+
|
|
51
|
+
<details>
|
|
52
|
+
<summary>ManualLink: This step provides guidance for manually configuring native dependencies.</summary>
|
|
53
|
+
|
|
54
|
+
Open the `harmony` directory of the OpenHarmony project in DevEco Studio.
|
|
55
|
+
|
|
56
|
+
### 1. Overrides RN SDK
|
|
57
|
+
|
|
58
|
+
To ensure the project relies on the same version of the RN SDK, you need to add an `overrides` field in the project's root `oh-package.json5` file, specifying the RN SDK version to be used. The replacement version can be a specific version number, a semver range, or a locally available HAR package or source directory.
|
|
59
|
+
|
|
60
|
+
For more information about the purpose of this field, please refer to the [official documentation](https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V5/ide-oh-package-json5-V5#en-us_topic_0000001792256137_overrides).
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"overrides": {
|
|
65
|
+
"@rnoh/react-native-openharmony": "^0.72.38" // ohpm version
|
|
66
|
+
// "@rnoh/react-native-openharmony" : "./react_native_openharmony.har" // a locally available HAR package
|
|
67
|
+
// "@rnoh/react-native-openharmony" : "./react_native_openharmony" // source code directory
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 2. Introducing Native Code
|
|
73
|
+
|
|
74
|
+
Currently, two methods are available:
|
|
75
|
+
|
|
76
|
+
- Use the HAR file.
|
|
77
|
+
- Directly link to the source code.
|
|
78
|
+
|
|
79
|
+
Method 1 (recommended): Use the HAR file.
|
|
80
|
+
|
|
81
|
+
> [!TIP] The HAR file is stored in the `harmony` directory in the installation path of the third-party library.
|
|
82
|
+
|
|
83
|
+
Open `entry/oh-package.json5` file and add the following dependencies:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"@react-native-ohos/lottie-react-native": "file:../../node_modules/@react-native-ohos/lottie-react-native/harmony/lottie.har"
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Click the `sync` button in the upper right corner.
|
|
92
|
+
|
|
93
|
+
Alternatively, run the following instruction on the terminal:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
cd entry
|
|
97
|
+
ohpm install
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Method 2: Directly link to the source code.
|
|
101
|
+
|
|
102
|
+
> [!TIP] For details, see [Directly Linking Source Code](/en/link-source-code.md).
|
|
103
|
+
|
|
104
|
+
### 3. Configuring CMakeLists and Introducing LottieAnimationViewPackage
|
|
105
|
+
|
|
106
|
+
Open `entry/src/main/cpp/CMakeLists.txt` and add the following code:
|
|
107
|
+
|
|
108
|
+
```diff
|
|
109
|
+
project(rnapp)
|
|
110
|
+
cmake_minimum_required(VERSION 3.4.1)
|
|
111
|
+
set(CMAKE_SKIP_BUILD_RPATH TRUE)
|
|
112
|
+
set(RNOH_APP_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
113
|
+
set(NODE_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules")
|
|
114
|
+
+ set(OH_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules")
|
|
115
|
+
set(RNOH_CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../react-native-harmony/harmony/cpp")
|
|
116
|
+
set(LOG_VERBOSITY_LEVEL 1)
|
|
117
|
+
set(CMAKE_ASM_FLAGS "-Wno-error=unused-command-line-argument -Qunused-arguments")
|
|
118
|
+
set(CMAKE_CXX_FLAGS "-fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -s -fPIE -pie")
|
|
119
|
+
set(WITH_HITRACE_SYSTRACE 1) # for other CMakeLists.txt files to use
|
|
120
|
+
add_compile_definitions(WITH_HITRACE_SYSTRACE)
|
|
121
|
+
|
|
122
|
+
add_subdirectory("${RNOH_CPP_DIR}" ./rn)
|
|
123
|
+
|
|
124
|
+
# RNOH_BEGIN: manual_package_linking_1
|
|
125
|
+
add_subdirectory("../../../../sample_package/src/main/cpp" ./sample-package)
|
|
126
|
+
+ add_subdirectory("${OH_MODULES}/@react-native-ohos/lottie-react-native/src/main/cpp" ./lottie)
|
|
127
|
+
# RNOH_END: manual_package_linking_1
|
|
128
|
+
|
|
129
|
+
file(GLOB GENERATED_CPP_FILES "./generated/*.cpp")
|
|
130
|
+
|
|
131
|
+
add_library(rnoh_app SHARED
|
|
132
|
+
${GENERATED_CPP_FILES}
|
|
133
|
+
"./PackageProvider.cpp"
|
|
134
|
+
"${RNOH_CPP_DIR}/RNOHAppNapiBridge.cpp"
|
|
135
|
+
)
|
|
136
|
+
target_link_libraries(rnoh_app PUBLIC rnoh)
|
|
137
|
+
|
|
138
|
+
# RNOH_BEGIN: manual_package_linking_2
|
|
139
|
+
target_link_libraries(rnoh_app PUBLIC rnoh_sample_package)
|
|
140
|
+
+ target_link_libraries(rnoh_app PUBLIC rnoh_lottie)
|
|
141
|
+
# RNOH_END: manual_package_linking_2
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Open `entry/src/main/cpp/PackageProvider.cpp` and add the following code:
|
|
145
|
+
|
|
146
|
+
```diff
|
|
147
|
+
#include "RNOH/PackageProvider.h"
|
|
148
|
+
#include "SamplePackage.h"
|
|
149
|
+
+ #include "LottieAnimationViewPackage.h"
|
|
150
|
+
|
|
151
|
+
using namespace rnoh;
|
|
152
|
+
|
|
153
|
+
std::vector<std::shared_ptr<Package>> PackageProvider::getPackages(Package::Context ctx) {
|
|
154
|
+
return {
|
|
155
|
+
std::make_shared<SamplePackage>(ctx),
|
|
156
|
+
+ std::make_shared<LottieAnimationViewPackage>(ctx)
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 4. Introducing Lottie Component to ArkTS
|
|
162
|
+
|
|
163
|
+
Find **function buildCustomComponent()**, which is usually located in `entry/src/main/ets/pages/index.ets` or `entry/src/main/ets/rn/LoadBundle.ets`, and add the following code:
|
|
164
|
+
|
|
165
|
+
```diff
|
|
166
|
+
...
|
|
167
|
+
+ import { LottieAnimationView, LOTTIE_TYPE } from "@react-native-ohos/lottie-react-native"
|
|
168
|
+
|
|
169
|
+
@Builder
|
|
170
|
+
export function buildCustomRNComponent(ctx: ComponentBuilderContext) {
|
|
171
|
+
...
|
|
172
|
+
+ if (ctx.componentName === LOTTIE_TYPE) {
|
|
173
|
+
+ LottieAnimationView({
|
|
174
|
+
+ ctx: ctx.rnComponentContext,
|
|
175
|
+
+ tag: ctx.tag
|
|
176
|
+
+ })
|
|
177
|
+
+ }
|
|
178
|
+
...
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
> [!TIP] This library uses a mixed solution, the component name needs to be added.
|
|
183
|
+
|
|
184
|
+
Find the constant `arkTsComponentNames` in `entry/src/main/ets/pages/index.ets` or `entry/src/main/ets/rn/LoadBundle.ets` and add the component name to the array.
|
|
185
|
+
|
|
186
|
+
```diff
|
|
187
|
+
const arkTsComponentNames: Array<string> = [
|
|
188
|
+
SampleView.NAME,
|
|
189
|
+
GeneratedSampleView.NAME,
|
|
190
|
+
PropsDisplayer.NAME,
|
|
191
|
+
+ LOTTIE_TYPE
|
|
192
|
+
];
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 5. Introducing LottieAnimationViewPackage to ArkTS
|
|
196
|
+
|
|
197
|
+
Open `entry/src/main/ets/RNPackagesFactory.ts` and add:
|
|
198
|
+
|
|
199
|
+
> [!TIP] Required for version 6.4.1-0.1.13 and above
|
|
200
|
+
|
|
201
|
+
```diff
|
|
202
|
+
...
|
|
203
|
+
+ import {LottieAnimationViewPackage} from '@react-native-ohos/lottie-react-native/ts';
|
|
204
|
+
|
|
205
|
+
export function createRNPackages(ctx: RNPackageContext): RNPackage[] {
|
|
206
|
+
return [
|
|
207
|
+
+ new LottieAnimationViewPackage(ctx)
|
|
208
|
+
];
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
## Running
|
|
214
|
+
|
|
215
|
+
Click the `sync` button in the upper right corner.
|
|
216
|
+
|
|
217
|
+
Alternatively, run the following instruction on the terminal:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
cd entry
|
|
221
|
+
ohpm install
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Then build and run the code.
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
## Constraints
|
|
228
|
+
|
|
229
|
+
### Compatibility
|
|
230
|
+
|
|
231
|
+
This document is verified based on the following versions:
|
|
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
|
+
### Permission Requirements
|
|
239
|
+
|
|
240
|
+
- If the source uses a network URL, the application needs to apply for network permissions.
|
|
241
|
+
|
|
242
|
+
Include applicable permissions in the `entry/src/main/module.json5` file within the entry directory.
|
|
243
|
+
|
|
244
|
+
```json
|
|
245
|
+
requestPermissions: [
|
|
246
|
+
{
|
|
247
|
+
name: "ohos.permission.INTERNET",
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
- If the JSON file used has dependent image resources or uses the imageAssetsFolder property, the resource files need to be placed in the corresponding path under the OpenHarmony project rawfile directory.
|
|
253
|
+
|
|
254
|
+
rawfile path: `entry/src/main/resources/rawfile`
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
## Example
|
|
258
|
+
|
|
259
|
+
The following code shows the basic use scenario of the repository:
|
|
260
|
+
|
|
261
|
+
> [!WARNING] The name of the imported repository remains unchanged.
|
|
262
|
+
|
|
263
|
+
```javascript
|
|
264
|
+
import React from "react";
|
|
265
|
+
import { View } from "react-native";
|
|
266
|
+
import LottieView from "lottie-react-native";
|
|
267
|
+
|
|
268
|
+
const App = () => {
|
|
269
|
+
return (
|
|
270
|
+
<View style={{ flex: 1 }}>
|
|
271
|
+
<LottieView
|
|
272
|
+
style={{ width: 300, height: 300 }}
|
|
273
|
+
source={require("./assets/xxx.json")}
|
|
274
|
+
autoPlay
|
|
275
|
+
loop />
|
|
276
|
+
</View>
|
|
277
|
+
);
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
export default App;
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## How to Use
|
|
284
|
+
**Animation settings**
|
|
285
|
+
```javascript
|
|
286
|
+
<LottieView
|
|
287
|
+
source={require('./assets/animations/loading.json')} // JSON文件路径
|
|
288
|
+
style={{ width: 200, height: 200 }}
|
|
289
|
+
duration={6000}
|
|
290
|
+
resizeMode={'center'}
|
|
291
|
+
autoPlay // Auto play
|
|
292
|
+
loop // loop
|
|
293
|
+
/>
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Event Listener**
|
|
297
|
+
```javascript
|
|
298
|
+
<LottieView
|
|
299
|
+
style={{ width: 300, height: 300 }}
|
|
300
|
+
source={require("../assets/data_base64s.json")}
|
|
301
|
+
loop
|
|
302
|
+
onAnimationFinish={() => {
|
|
303
|
+
// Called when animation finishes playing
|
|
304
|
+
}}
|
|
305
|
+
onAnimationLoaded={() => {
|
|
306
|
+
// Called when loading is complete
|
|
307
|
+
}}
|
|
308
|
+
onAnimationFailure={(event)=>{
|
|
309
|
+
// Call when animation fails to load or play
|
|
310
|
+
}}
|
|
311
|
+
/>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Playback Control**
|
|
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
|
+
// Reset animation
|
|
326
|
+
animationRef.current.reset();
|
|
327
|
+
// Play animation
|
|
328
|
+
animationRef.current.play();
|
|
329
|
+
// Pause animation
|
|
330
|
+
animationRef.current.pause();
|
|
331
|
+
// Resume the paused animation.
|
|
332
|
+
animationRef.current.resume();
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
## Available APIs
|
|
337
|
+
|
|
338
|
+
> [!TIP] The **Platform** column indicates the platform where the properties are supported in the original third-party library.
|
|
339
|
+
|
|
340
|
+
> [!TIP] If the value of **HarmonyOS Support** is **yes**, it means that the OpenHarmony platform supports this property; **no** means the opposite; **partially** means some capabilities of this property are supported. The usage method is the same on different platforms and the effect is the same as that of iOS or Android.
|
|
341
|
+
|
|
342
|
+
### Components
|
|
343
|
+
| Name | Parameter Type | Required | Platform | OpenHarmony Platform Support | Description |
|
|
344
|
+
|--------------|------------------------|------|------|--------------|----------------------|
|
|
345
|
+
| LottieView | [LottieViewProps](#LottieViewProps) | yes | all | yes | LottieView Component |
|
|
346
|
+
|
|
347
|
+
### Properties
|
|
348
|
+
LottieViewProps
|
|
349
|
+
|
|
350
|
+
| Name | Parameter Type | Default Value | Required | Platform | OpenHarmony Platform Support | Description |
|
|
351
|
+
|---------------------------------|-------------------------------------|-----------------|-----------------|------------------------|----------------------------|-----------|
|
|
352
|
+
| source | string | AnimationObject | { uri: string } | None | Yes | Mandatory - The source of animation. Can be referenced as a local asset by a string, or remotely with an object with a uri property, or it can be an actual JS object of an animation, obtained (for example) with something like require('../path/to/animation.json') |
|
|
353
|
+
| progress | number | 0 | No | iOS, Android, Windows | Yes | A number between 0 and 1. This number represents the normalized progress of the animation. If you update this prop, the animation will correspondingly update to the frame at that progress value. This prop is not required if you are using the imperative API. |
|
|
354
|
+
| speed | number | 1 | No | All | Yes | The animation playback speed. Setting it to a negative value will cause the animation to play in reverse. |
|
|
355
|
+
| duration | number | undefined | No | iOS, Android, Windows | Yes | The duration of the animation (in milliseconds). This property takes precedence over the speed property. This property is only valid if the source is the actual JS object of the animation. |
|
|
356
|
+
| loop | boolean | true | No | All | Yes | A Boolean value indicating whether the animation should loop. |
|
|
357
|
+
| autoPlay | boolean | false | No | All | Yes | A boolean value indicating whether the animation should start automatically when the component is mounted. This only affects the imperative API. |
|
|
358
|
+
| resizeMode | 'cover'/ 'contain' /'center' | contain | No | iOS, Android, Windows | Yes | Determines how to resize the animated view when the frame doesn't match the raw image dimensions. Supports cover, contain and center. |
|
|
359
|
+
| style | StyleProp<ViewStyle> | None | No | iOS, Android, Windows | Yes | Style attributes for the view, as expected in a standard View, aside from border styling. |
|
|
360
|
+
| containerStyle<sup>7.3.0+</sup> | StyleProp<ViewStyle> | None | No | iOS, Android, VisionOS | Yes | Style attributes for the outermost container view, as expected in a standard View. Useful for layout and positioning. |
|
|
361
|
+
| webStyle | CSSProperties | None | No | Web | No | Style attributes for the view, it uses CSSProperties. |
|
|
362
|
+
| imageAssetsFolder | string | None | No | Android | Yes | Needed for Android and HarmonyOS to work properly with assets, iOS will ignore it. |
|
|
363
|
+
| useNativeLooping | boolean | false | No | Windows | No | Only Windows. When enabled, uses platform-level looping to improve smoothness, but onAnimationLoop will not fire and changing the loop prop will reset playback rather than finishing gracefully. |
|
|
364
|
+
| onAnimationLoop | callback | None | No | Windows, Web | No | Only Windows and Web. A callback function invoked when the animation loops. |
|
|
365
|
+
| onAnimationFinish | callback | None | No | All | Yes | A callback function which will be called when animation is finished. This callback is called with a boolean isCancelled argument, indicating if the animation actually completed playing, or if it was cancelled, for instance by calling play() or reset() while is was still playing. Note that this callback will be called only when loop is set to false. |
|
|
366
|
+
| onAnimationFailure | callback | None | No | All | Yes | A callback function which will be called if an error occurs while working with the animation (loading, running, etc). This callback is called with a string error argument, which contains the error message that occured. |
|
|
367
|
+
| onAnimationLoaded | callback | None | No | All | Yes | A callback function which will be called when animation is done loading. This callback is called with no parameters. |
|
|
368
|
+
| renderMode | 'AUTOMATIC' /'HARDWARE' /'SOFTWARE' | AUTOMATIC | No | iOS, Android | No | a String flag to set whether or not to render with HARDWARE or SOFTWARE acceleration |
|
|
369
|
+
| cacheComposition | boolean | true | No | Android | Yes | Only Android and HarmonyOS, a boolean flag indicating whether or not the animation should do caching. |
|
|
370
|
+
| colorFilters | Array<ColorFilter> | [] | No | iOS, Android, Windows | Yes | An array of objects denoting layers by KeyPath and a new color filter value (as hex string). |
|
|
371
|
+
| textFiltersAndroid | Array<TextFilterAndroid> | [] | No | Android | No | Only Android, an array of objects denoting text values to find and replace. |
|
|
372
|
+
| textFiltersIOS | Array<TextFilterIOS> | [] | No | iOS | No | Only iOS, an array of objects denoting text layers by KeyPath and a new string value. |
|
|
373
|
+
| hover | boolean | false | No | Web | No | Only Web, a boolean denoting whether to play on mouse hover. |
|
|
374
|
+
| direction | 1 /-1 | 1 | No | Web | No | Only Web a number from 1 or -1 denoting playing direction.|
|
|
375
|
+
|
|
376
|
+
### API
|
|
377
|
+
| Name | Type | Parameter Type | Return Value | Required | Platform | OpenHarmony Platform Support | Description |
|
|
378
|
+
|--------|-------|----------|---------|-------|--------|-----|-----------------|
|
|
379
|
+
| play | function | / | / | No | All | Yes | Plays the animation completely at the specified speed. A portion of the animation can also be played when play(startFrame, endFrame) is called (not available on web pages).|
|
|
380
|
+
| reset | function | / | / | No | All | Yes | Resets the animation to 0 progress.|
|
|
381
|
+
| pause | function | / | / | No | All | Yes | Pauses the animation. |
|
|
382
|
+
| resume | function | / | / | No | All | Yes | Resumes the paused animation. |
|
|
383
|
+
|
|
384
|
+
## Known Issues
|
|
385
|
+
|
|
386
|
+
- Some interfaces of the original library do not have corresponding properties and interface handling logic in OpenHarmony: [issue#18](https://github.com/react-native-oh-library/lottie-react-native/issues/18)
|
|
387
|
+
|
|
388
|
+
## Other
|
|
389
|
+
|
|
390
|
+
## Directory Structure
|
|
391
|
+
````
|
|
392
|
+
/rntpc_lottie-react-native # Project root directory
|
|
393
|
+
├── harmony # HarmonyOS adaptation code
|
|
394
|
+
│ └─ lottie.har # har package
|
|
395
|
+
│ └─ lottie # HarmonyOS adaptation core code
|
|
396
|
+
│ └─ index.ets # HarmonyOS adaptation code entry point
|
|
397
|
+
│ └─ src/main/ets
|
|
398
|
+
│ └─ LottieAnimationView # lottieView component. A LotteView component based on the ohos/lottie library
|
|
399
|
+
├── src # React Native code
|
|
400
|
+
│ └─ index.tsx # Entry file
|
|
401
|
+
│ └─ LottieAnimationViewNativeComponent.ts //Type file
|
|
402
|
+
│ └─ codegenUtils.ts # Type file
|
|
403
|
+
├── README.md # English document
|
|
404
|
+
├── README_zh.md # Chinese document
|
|
405
|
+
````
|
|
406
|
+
|
|
407
|
+
## How to Contribute
|
|
408
|
+
|
|
409
|
+
If you find any problem when using lottie-react-native, submit an [issue](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/issues)or a[PR](https://gitcode.com/openharmony-sig/rntpc_lottie-react-native/pulls).
|
|
410
|
+
|
|
411
|
+
## License
|
|
412
|
+
|
|
413
|
+
The repository is based on [Apache License 2.0](https://github.com/lottie-react-native/lottie-react-native/blob/master/LICENSE).
|