@hmos-library-adapter/fast 0.0.17-beta.0 → 0.0.17-beta.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.
Files changed (149) hide show
  1. package/node_modules/@hmos-library-adapter/executer/README.md +2 -2
  2. package/node_modules/@hmos-library-adapter/executer/shared/skill-map.json +5 -1
  3. package/node_modules/@hmos-library-adapter/executer/shared/skills/arkts-rules/SKILL.md +400 -0
  4. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/CHANGELOG.md +1391 -0
  5. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/COMPATIBILITY.md +53 -0
  6. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/README.md +123 -0
  7. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/SKILL.md +48 -0
  8. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/agents/upgrade-assess-change.md +37 -0
  9. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/agents/upgrade-fix-file.md +23 -0
  10. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/package.json +19 -0
  11. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/26.0.0/beta1-changes-for-all-apps.md +1793 -0
  12. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/26.0.0/beta1-ux-style-and-effect-changes.md +288 -0
  13. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/26.0.0/beta2-changes-for-all-apps.md +148 -0
  14. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/26.0.0/release-changes-for-all-apps.md +662 -0
  15. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.1(13)/beta3-os-api-behavior-changes.md +652 -0
  16. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.1(13)/beta3-ux-style-and-effect-changes.md +222 -0
  17. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.1(13)/release-os-api-behavior-changes.md +444 -0
  18. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.1(13)/release-ux-style-and-effect-changes.md +221 -0
  19. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.2(14)/os-api-behavior-changes.md +1767 -0
  20. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.2(14)/ux-style-and-effect-changes.md +134 -0
  21. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.3(15)/beta1-os-api-behavior-changes.md +430 -0
  22. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.3(15)/beta1-ux-style-and-effect-changes.md +49 -0
  23. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.3(15)/beta2-os-api-behavior-changes.md +240 -0
  24. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.3(15)/beta2-ux-style-and-effect-changes.md +90 -0
  25. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.0.3(15)/release-os-api-behavior-changes.md +69 -0
  26. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.1.0(18)/os-api-behavior-changes.md +1294 -0
  27. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/5.1.0(18)/ux-style-and-effect-changes.md +147 -0
  28. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.0.0(20)/beta1-os-api-behavior-changes.md +1019 -0
  29. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.0.0(20)/beta1-ux-style-and-effect-changes.md +153 -0
  30. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.0.0(20)/beta2-os-api-behavior-changes.md +662 -0
  31. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.0.0(20)/beta2-ux-style-and-effect-changes.md +78 -0
  32. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.0.0(20)/beta3-os-api-behavior-changes.md +167 -0
  33. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.0.0(20)/beta5-os-api-behavior-changes.md +52 -0
  34. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs/6.1.0(23)/changes-for-all-apps.md +397 -0
  35. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs-index.json +883 -0
  36. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/arkts-coding-standards.md +53 -0
  37. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/compatibility.md +207 -0
  38. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/native-adaptation.md +21 -0
  39. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/runtime-functional-tests.md +62 -0
  40. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/sdk-versions.md +77 -0
  41. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/troubleshooting.md +54 -0
  42. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/verification.md +79 -0
  43. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/workflow-scan.md +41 -0
  44. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/deprecated/context-migration.md +274 -0
  45. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/deprecated/deprecated-api-adaptation.md +157 -0
  46. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/deprecated/deprecated-api-examples.md +219 -0
  47. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/toolchain/hvigor.md +50 -0
  48. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/har-upgrade.md +60 -0
  49. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/scanner-missed-cases.md +171 -0
  50. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/upgrade-compatibility.md +112 -0
  51. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/upgrade-examples.md +289 -0
  52. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/upgrade-workflow.md +122 -0
  53. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/references/generate-behavior-policy.mjs +96 -0
  54. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/references/references.mjs +9 -0
  55. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/regression/compare-deprecated.mjs +57 -0
  56. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/regression/compare-golden.mjs +130 -0
  57. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/regression/regress-deprecated.mjs +120 -0
  58. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/behavior-catalog-generation.test.mjs +59 -0
  59. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/behavior-local-sources.test.mjs +44 -0
  60. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/changelog-index.test.mjs +66 -0
  61. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/compare-golden.test.mjs +103 -0
  62. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/fixtures/behavior/local-sources.csv +5 -0
  63. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/references.test.mjs +16 -0
  64. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/skill-content.test.mjs +139 -0
  65. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/skill-frontmatter.test.mjs +11 -0
  66. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/test-suite.test.mjs +65 -0
  67. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/validation/skill-content.mjs +125 -0
  68. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/validation/skill-frontmatter.mjs +6 -0
  69. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/validation/validate-skill.mjs +57 -0
  70. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/CHANGELOG.md +506 -0
  71. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/GOLDEN_VALIDATION.md +42 -0
  72. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/README.md +137 -0
  73. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/behavior/behavior-policy.mjs +117 -0
  74. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/behavior/upgrade-coverage.mjs +29 -0
  75. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/bin/deveco-worker-compat.cjs +21 -0
  76. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/bin/harmony-api-scan.mjs +17 -0
  77. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/cli.mjs +416 -0
  78. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/deveco.mjs +348 -0
  79. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/project.mjs +81 -0
  80. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/rules.mjs +425 -0
  81. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/runtime-identity.mjs +23 -0
  82. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/scan-runner.mjs +521 -0
  83. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/sdk-deprecations.mjs +204 -0
  84. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/data/behavior-change-policy.json +4378 -0
  85. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/deprecated/arkts-deprecations.mjs +363 -0
  86. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/deprecated/build-log.mjs +72 -0
  87. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/native/native.mjs +95 -0
  88. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/package.json +16 -0
  89. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/batch-layout.test.mjs +94 -0
  90. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/behavior-policy.test.mjs +75 -0
  91. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/build-log.test.mjs +69 -0
  92. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/cli.test.mjs +102 -0
  93. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/csv.test.mjs +35 -0
  94. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/deprecations.test.mjs +283 -0
  95. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/deveco.test.mjs +262 -0
  96. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/helpers/scan-batch.mjs +10 -0
  97. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/native.test.mjs +108 -0
  98. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/project.test.mjs +42 -0
  99. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/rules.test.mjs +190 -0
  100. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/runtime-identity.test.mjs +53 -0
  101. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/scan-mode.test.mjs +38 -0
  102. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/scan-runner.test.mjs +481 -0
  103. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/scan-scope.test.mjs +110 -0
  104. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/source-inputs.test.mjs +64 -0
  105. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/upgrade.test.mjs +164 -0
  106. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/args.mjs +66 -0
  107. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/csv.mjs +85 -0
  108. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/json5.mjs +92 -0
  109. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/upgrade-results.mjs +45 -0
  110. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/zip.mjs +87 -0
  111. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/io/fs-utils.mjs +60 -0
  112. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/artifact-layout.mjs +74 -0
  113. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/changelog-index.mjs +29 -0
  114. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/deveco-version.mjs +40 -0
  115. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/document-links.mjs +30 -0
  116. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/errors.mjs +41 -0
  117. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/fs.mjs +72 -0
  118. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/paths.mjs +34 -0
  119. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/process.mjs +154 -0
  120. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-mode.mjs +7 -0
  121. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-statistics.mjs +7 -0
  122. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-version-catalog.json +43 -0
  123. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-versions.mjs +51 -0
  124. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/sdk-layout.mjs +27 -0
  125. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/source-scope.mjs +108 -0
  126. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/source-types.mjs +7 -0
  127. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/version.mjs +76 -0
  128. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/deveco-version.test.mjs +50 -0
  129. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/document-links.test.mjs +13 -0
  130. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/errors.test.mjs +40 -0
  131. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/fs-utils.test.mjs +31 -0
  132. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/platform-paths.test.mjs +19 -0
  133. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/process-utils.test.mjs +68 -0
  134. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/scan-versions.test.mjs +26 -0
  135. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/sdk-version.test.mjs +17 -0
  136. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/upgrade-results.test.mjs +140 -0
  137. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/test-suite.mjs +29 -0
  138. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/deprecated-report.md +86 -0
  139. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/progress.md +150 -0
  140. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/results.md +110 -0
  141. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/upgrade-report.md +105 -0
  142. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/upgrade-spec.md +58 -0
  143. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/upgrade-test-report.md +47 -0
  144. package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-knowledge/SKILL.md +70 -0
  145. package/node_modules/@hmos-library-adapter/executer/src/config.js +3 -4
  146. package/node_modules/@hmos-library-adapter/executer/src/doctor.js +1 -1
  147. package/node_modules/@hmos-library-adapter/executer/src/install.js +1 -1
  148. package/node_modules/@hmos-library-adapter/executer/src/paths.js +4 -4
  149. package/package.json +1 -1
@@ -0,0 +1,204 @@
1
+ import { compareConfigurationVersions } from '../../shared/platform/version.mjs';
2
+ import { readFile, readdir, realpath } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { createRequire } from 'node:module';
5
+ import { exists, portableRelative, sha256, sha256File } from '../../shared/io/fs-utils.mjs';
6
+ import { compareHarmonyVersions as compareVersions, canonicalHarmonyVersion as canonicalVersion } from '../../shared/platform/version.mjs';
7
+ import { normalizeComparablePath } from '../../shared/platform/paths.mjs';
8
+
9
+ const require = createRequire(import.meta.url);
10
+
11
+ export function loadArkTsParser(toolchain) {
12
+ const parserPath = toolchain.parserPath ?? path.join(toolchain.sdkRoot, 'default/openharmony/ets/build-tools/ets-loader/node_modules/typescript/lib/typescript.js');
13
+ try {
14
+ const ts = require(parserPath);
15
+ if (ts.ScriptKind.ETS === undefined || typeof ts.isStructDeclaration !== 'function') throw new Error('Not an ArkTS parser');
16
+ return ts;
17
+ } catch (cause) {
18
+ const error = new Error(`Target SDK ArkTS parser unavailable: ${parserPath}`, { cause });
19
+ error.code = 'ARKTS_PARSER_UNAVAILABLE';
20
+ throw error;
21
+ }
22
+ }
23
+
24
+ export function normalizedSignature(text) {
25
+ return String(text).replace(/\b(?:export|declare)\s+/g, '').replace(/\s+/g, ' ').replace(/\s*([():,;<>|?{}\[\]])\s*/g, '$1').replace(/;$/, '').trim();
26
+ }
27
+
28
+ export function sdkLocationKey(file, start, platform = process.platform) {
29
+ return `${normalizeComparablePath(file, platform)}\0${start}`;
30
+ }
31
+
32
+ function commentText(comment) {
33
+ return typeof comment === 'string' ? comment : comment?.map(part => part.text ?? part.getText?.() ?? '').join('') ?? '';
34
+ }
35
+
36
+ function nodeKind(ts, node) {
37
+ if (ts.isClassDeclaration(node)) return 'class';
38
+ if (ts.isStructDeclaration(node)) return 'struct';
39
+ if (ts.isAnnotationDeclaration?.(node)) return 'annotation';
40
+ if (ts.isInterfaceDeclaration(node)) return 'interface';
41
+ if (ts.isEnumDeclaration(node)) return 'enum_class';
42
+ if (ts.isModuleDeclaration(node)) return 'namespace';
43
+ if (ts.isConstructorDeclaration(node)) return 'constructor';
44
+ if (ts.isFunctionDeclaration(node) || ts.isMethodDeclaration(node) || ts.isMethodSignature(node) || ts.isCallSignatureDeclaration(node) || ts.isGetAccessor(node) || ts.isSetAccessor(node)) return 'method';
45
+ if (ts.isEnumMember(node)) return 'enum_instance';
46
+ if (ts.isPropertyDeclaration(node) || ts.isPropertySignature(node) || ts.isAnnotationPropertyDeclaration?.(node) || ts.isVariableDeclaration(node) || ts.isTypeAliasDeclaration(node)) return 'field';
47
+ return null;
48
+ }
49
+
50
+ const PUBLIC_API_REFERENCE_BASE = 'https://developer.huawei.com/consumer/cn/doc/harmonyos-references';
51
+
52
+ export function deprecatedDocUrl(entry, references = []) {
53
+ const documented = references.find(item => item.url)?.url;
54
+ if (documented) return documented;
55
+ if (!entry || entry.family !== 'openharmony') return '';
56
+ const moduleName = String(entry.relativePath ?? '').replaceAll('\\', '/')
57
+ .match(/^api\/@ohos\.([a-z0-9]+)\.d\.(?:ets|ts)$/i)?.[1];
58
+ return moduleName ? `${PUBLIC_API_REFERENCE_BASE}/js-apis-${moduleName}` : '';
59
+ }
60
+
61
+ export function indexSdkFile(ts, sourceFile, family, relativePath) {
62
+ const declarations = [];
63
+ const errors = [];
64
+ const fileHash = sha256(sourceFile.text);
65
+ function visit(node, scope) {
66
+ const kind = nodeKind(ts, node);
67
+ const name = ts.isConstructorDeclaration(node) ? 'constructor' : node.name?.getText(sourceFile).replace(/^['"]|['"]$/g, '') ?? (ts.isCallSignatureDeclaration(node) ? 'call' : null);
68
+ if (kind && name && node.end > node.getStart(sourceFile)) {
69
+ const tags = ts.getJSDocTags(node) ?? [];
70
+ const deprecated = ts.getJSDocDeprecatedTag(node);
71
+ const deprecatedText = deprecated ? commentText(deprecated.comment) : null;
72
+ const match = deprecatedText?.match(/\bsince\s+(?:\d+\.\d+\.\d+\((\d+)\)|(\d+))/i);
73
+ const since = match ? Number(match[1] ?? match[2]) : null;
74
+ if (deprecated && since === null) errors.push({ file: sourceFile.fileName, name: [...scope, name].join('.'), reason: 'UNPARSEABLE_DEPRECATED_VERSION', text: deprecatedText });
75
+ // Select the replacement from the same JSDoc block as @deprecated.
76
+ const replacement = deprecated?.parent?.tags?.find(tag => tag?.tagName?.text === 'useinstead');
77
+ const position = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile));
78
+ const declarationText = ['class', 'interface', 'struct', 'annotation', 'namespace', 'enum_class'].includes(kind)
79
+ ? `${kind} ${name}${node.heritageClauses?.map(clause => ` ${clause.getText(sourceFile)}`).join('') ?? ''}`
80
+ : node.getText(sourceFile);
81
+ const qualifiedName = [...scope, name].join('.');
82
+ const signature = normalizedSignature(declarationText);
83
+ const isStatic = node.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.StaticKeyword) ?? false;
84
+ declarations.push({
85
+ symbolId: `api-${sha256([family, relativePath, qualifiedName, kind, isStatic, signature].join('\0')).slice(0, 24)}`,
86
+ family, relativePath, file: sourceFile.fileName, fileHash,
87
+ name, owner: scope.join('.'), qualifiedName, kind, isStatic, signature,
88
+ declaration: declarationText, line: position.line + 1, column: position.character + 1,
89
+ parameters: (node.parameters ?? []).map(parameter => ({ name: parameter.name.getText(sourceFile),
90
+ type: parameter.type?.getText(sourceFile) ?? null, optional: Boolean(parameter.questionToken),
91
+ rest: Boolean(parameter.dotDotDotToken) })),
92
+ returnType: node.type?.getText(sourceFile) ?? null,
93
+ start: node.getStart(sourceFile), end: node.end, deprecatedSince: since,
94
+ deprecatedText, replacementApi: replacement ? commentText(replacement.comment).trim() : null,
95
+ throws: tags.filter(tag => tag?.tagName?.text === 'throws').map(tag => tag.getText(sourceFile)),
96
+ heritage: node.heritageClauses?.flatMap(clause => clause.types.map(type => type.getText(sourceFile))) ?? [],
97
+ });
98
+ }
99
+ const nested = kind && name && ['class', 'interface', 'struct', 'annotation', 'namespace', 'enum_class'].includes(kind) ? [...scope, name] : scope;
100
+ ts.forEachChild(node, child => visit(child, nested));
101
+ }
102
+ visit(sourceFile, []);
103
+ return { declarations, errors };
104
+ }
105
+
106
+ export async function buildSdkCatalog(toolchain, targetVersion = toolchain.sdkVersion) {
107
+ if (targetVersion && (!toolchain.sdkVersion || compareConfigurationVersions(toolchain.sdkVersion, targetVersion) < 0)) {
108
+ const error = new Error('Compile SDK must be at least the requested target SDK');
109
+ error.code = !toolchain.sdkVersion ? 'TARGET_SDK_UNRESOLVED' : 'SDK_TARGET_NOT_COVERED';
110
+ throw error;
111
+ }
112
+ toolchain = { ...toolchain, sdkRoot: await realpath(toolchain.sdkRoot) };
113
+ const ts = loadArkTsParser(toolchain);
114
+ const parserPath = toolchain.parserPath ?? path.join(toolchain.sdkRoot, 'default/openharmony/ets/build-tools/ets-loader/node_modules/typescript/lib/typescript.js');
115
+ const parserConfigPath = path.resolve(path.dirname(parserPath), '../../../tsconfig.json');
116
+ const parserConfig = JSON.parse(await readFile(parserConfigPath, 'utf8'));
117
+ const etsOptions = { ...parserConfig.compilerOptions.ets, libs: [] };
118
+ const parserHash = await sha256File(parserPath);
119
+ const sourceFiles = new Map();
120
+ const declarations = [];
121
+ const errors = [];
122
+ for (const family of ['openharmony', 'hms']) {
123
+ const etsRoot = toolchain.sdkFamilies?.[family]
124
+ ?? path.join(toolchain.sdkRoot, 'default', family, 'ets');
125
+ async function visit(directory) {
126
+ if (!(await exists(directory))) return;
127
+ const entries = (await readdir(directory, { withFileTypes: true })).sort((a, b) => a.name.localeCompare(b.name));
128
+ for (const entry of entries) {
129
+ const file = path.join(directory, entry.name);
130
+ if (entry.isDirectory()) await visit(file);
131
+ else if (entry.isFile() && /\.d\.(?:ts|ets)$/.test(file)) {
132
+ const text = await readFile(file, 'utf8');
133
+ const sourceFile = ts.createSourceFile(file, text, ts.ScriptTarget.Latest, true, file.endsWith('.ets') ? ts.ScriptKind.ETS : ts.ScriptKind.TS, { etsAnnotationsEnable: true, ets: etsOptions });
134
+ sourceFiles.set(file, sourceFile);
135
+ if (sourceFile.parseDiagnostics.length) errors.push(...sourceFile.parseDiagnostics.map(d => ({ file, reason: 'SDK_PARSE_ERROR', start: d.start, message: ts.flattenDiagnosticMessageText(d.messageText, ' ') })));
136
+ const indexed = indexSdkFile(ts, sourceFile, family, portableRelative(etsRoot, file));
137
+ declarations.push(...indexed.declarations);
138
+ errors.push(...indexed.errors);
139
+ }
140
+ }
141
+ }
142
+ for (const directory of ['api', 'arkts', 'component', 'kits']) await visit(path.join(etsRoot, directory));
143
+ }
144
+ if (sourceFiles.size === 0) errors.push({ reason: 'SDK_DECLARATIONS_EMPTY' });
145
+ const level = targetVersion?.apiLevel ?? Infinity;
146
+ const deprecatedEntries = declarations.filter(entry => entry.deprecatedSince !== null && entry.deprecatedSince <= level);
147
+ const byLocation = new Map(declarations.map(entry => [`${entry.file}\0${entry.start}`, entry]));
148
+ const platform = process.platform;
149
+ const byComparableLocation = new Map(declarations
150
+ .map(entry => [sdkLocationKey(entry.file, entry.start, platform), entry]));
151
+ const snapshot = sha256(parserHash + JSON.stringify(etsOptions) + '\n' + [...sourceFiles].map(([file, sf]) => `${portableRelative(toolchain.sdkRoot, file)}\0${sha256(sf.text)}`).sort().join('\n'));
152
+ return { ts, etsOptions, toolchain, targetVersion, sourceFiles, declarations, deprecatedEntries,
153
+ byLocation, byComparableLocation, platform, snapshot, coverage: {
154
+ status: errors.length ? 'INCOMPLETE' : 'COMPLETE', sdkSnapshot: snapshot,
155
+ targetSdk: targetVersion ? canonicalVersion(targetVersion) : null,
156
+ compileSdk: toolchain.sdkVersion ? canonicalVersion(toolchain.sdkVersion) : null, parserVersion: ts.version, parserHash,
157
+ fileCount: sourceFiles.size, declarationCount: declarations.length, deprecatedDeclarationCount: deprecatedEntries.length, errors,
158
+ } };
159
+ }
160
+
161
+ export function resolveRuleDeclarations(catalog, api) {
162
+ let relative = api.completePath?.replace(/^\/interface\/sdk-js\//, '').replace(/^api\/@internal\/component\/ets\//, 'component/');
163
+ if (!relative) return [];
164
+ const owner = api.className === 'unnamed' || !api.className ? '' : api.className;
165
+ const types = new Set(['class', 'interface', 'struct', 'namespace', 'enum_class']);
166
+ return catalog.declarations.filter(entry => {
167
+ if (entry.relativePath !== relative || entry.name !== api.interfaceName) return false;
168
+ if (types.has(api.interfaceType)) return entry.kind === api.interfaceType && (!owner || entry.owner === owner || entry.qualifiedName === owner || entry.owner.endsWith(`.${owner}`));
169
+ if (owner && entry.owner !== owner && !entry.owner.endsWith(`.${owner}`)) return false;
170
+ return !api.methodDefinition || entry.signature === normalizedSignature(api.methodDefinition);
171
+ });
172
+ }
173
+
174
+ export function catalogEntry(catalog, node) {
175
+ if (!node) return null;
176
+ const original = catalog.ts.getOriginalNode(node);
177
+ const originalFile = original?.getSourceFile?.() ?? node.getSourceFile?.();
178
+ if (!originalFile) return null;
179
+ const file = originalFile.fileName;
180
+ const entryAt = (targetFile, start) => catalog.byLocation.get(`${targetFile}\0${start}`)
181
+ ?? catalog.byComparableLocation?.get(sdkLocationKey(targetFile, start, catalog.platform));
182
+ const direct = entryAt(file, original.getStart(originalFile));
183
+ if (direct) return direct;
184
+ if (node.end > node.getStart(node.getSourceFile())) return null;
185
+ // ArkTS creates zero-width constructor attributes for SDK structs. Resolve only
186
+ // through the exact declaring SDK container, never through a global member name.
187
+ let parent = node.parent;
188
+ while (parent) {
189
+ const owner = entryAt(file, parent.getStart(parent.getSourceFile()));
190
+ if (owner && ['struct', 'class', 'interface'].includes(owner.kind)) {
191
+ const name = node.name?.getText().replace(/^['"]|['"]$/g, '');
192
+ const fileIdentity = normalizeComparablePath(file, catalog.platform);
193
+ const matches = catalog.declarations.filter(entry => normalizeComparablePath(entry.file, catalog.platform) === fileIdentity
194
+ && entry.owner === owner.qualifiedName && entry.name === name);
195
+ return matches.length === 1 ? matches[0] : null;
196
+ }
197
+ parent = parent.parent;
198
+ }
199
+ return null;
200
+ }
201
+
202
+ export function declarationEvidence(entry, catalog) {
203
+ return { ...entry, sdkSnapshot: catalog.snapshot, targetSdk: catalog.coverage.targetSdk, compileSdk: catalog.coverage.compileSdk };
204
+ }