@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.
- package/node_modules/@hmos-library-adapter/executer/README.md +2 -2
- package/node_modules/@hmos-library-adapter/executer/shared/skill-map.json +5 -1
- package/node_modules/@hmos-library-adapter/executer/shared/skills/arkts-rules/SKILL.md +400 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/CHANGELOG.md +1391 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/COMPATIBILITY.md +53 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/README.md +123 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/SKILL.md +48 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/agents/upgrade-assess-change.md +37 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/agents/upgrade-fix-file.md +23 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/package.json +19 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/changelogs-index.json +883 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/arkts-coding-standards.md +53 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/compatibility.md +207 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/native-adaptation.md +21 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/runtime-functional-tests.md +62 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/sdk-versions.md +77 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/troubleshooting.md +54 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/verification.md +79 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/common/workflow-scan.md +41 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/deprecated/context-migration.md +274 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/deprecated/deprecated-api-adaptation.md +157 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/deprecated/deprecated-api-examples.md +219 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/toolchain/hvigor.md +50 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/har-upgrade.md +60 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/scanner-missed-cases.md +171 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/upgrade-compatibility.md +112 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/upgrade-examples.md +289 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/references/upgrade/upgrade-workflow.md +122 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/references/generate-behavior-policy.mjs +96 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/references/references.mjs +9 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/regression/compare-deprecated.mjs +57 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/regression/compare-golden.mjs +130 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/regression/regress-deprecated.mjs +120 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/behavior-catalog-generation.test.mjs +59 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/behavior-local-sources.test.mjs +44 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/changelog-index.test.mjs +66 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/compare-golden.test.mjs +103 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/fixtures/behavior/local-sources.csv +5 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/references.test.mjs +16 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/skill-content.test.mjs +139 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/skill-frontmatter.test.mjs +11 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/test/test-suite.test.mjs +65 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/validation/skill-content.mjs +125 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/validation/skill-frontmatter.mjs +6 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/maintenance/validation/validate-skill.mjs +57 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/CHANGELOG.md +506 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/GOLDEN_VALIDATION.md +42 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/README.md +137 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/behavior/behavior-policy.mjs +117 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/behavior/upgrade-coverage.mjs +29 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/bin/deveco-worker-compat.cjs +21 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/bin/harmony-api-scan.mjs +17 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/cli.mjs +416 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/deveco.mjs +348 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/project.mjs +81 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/rules.mjs +425 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/runtime-identity.mjs +23 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/scan-runner.mjs +521 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/core/sdk-deprecations.mjs +204 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/data/behavior-change-policy.json +4378 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/deprecated/arkts-deprecations.mjs +363 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/deprecated/build-log.mjs +72 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/native/native.mjs +95 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/package.json +16 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/batch-layout.test.mjs +94 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/behavior-policy.test.mjs +75 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/build-log.test.mjs +69 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/cli.test.mjs +102 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/csv.test.mjs +35 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/deprecations.test.mjs +283 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/deveco.test.mjs +262 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/helpers/scan-batch.mjs +10 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/native.test.mjs +108 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/project.test.mjs +42 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/rules.test.mjs +190 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/runtime-identity.test.mjs +53 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/scan-mode.test.mjs +38 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/scan-runner.test.mjs +481 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/scan-scope.test.mjs +110 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/source-inputs.test.mjs +64 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/scanner/test/upgrade.test.mjs +164 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/args.mjs +66 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/csv.mjs +85 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/json5.mjs +92 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/upgrade-results.mjs +45 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/format/zip.mjs +87 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/io/fs-utils.mjs +60 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/artifact-layout.mjs +74 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/changelog-index.mjs +29 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/deveco-version.mjs +40 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/document-links.mjs +30 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/errors.mjs +41 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/fs.mjs +72 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/paths.mjs +34 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/process.mjs +154 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-mode.mjs +7 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-statistics.mjs +7 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-version-catalog.json +43 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/scan-versions.mjs +51 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/sdk-layout.mjs +27 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/source-scope.mjs +108 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/source-types.mjs +7 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/platform/version.mjs +76 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/deveco-version.test.mjs +50 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/document-links.test.mjs +13 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/errors.test.mjs +40 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/fs-utils.test.mjs +31 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/platform-paths.test.mjs +19 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/process-utils.test.mjs +68 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/scan-versions.test.mjs +26 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/sdk-version.test.mjs +17 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/shared/test/upgrade-results.test.mjs +140 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/scripts/test-suite.mjs +29 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/deprecated-report.md +86 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/progress.md +150 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/results.md +110 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/upgrade-report.md +105 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/upgrade-spec.md +58 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-api-upgrade-adapter/templates/upgrade-test-report.md +47 -0
- package/node_modules/@hmos-library-adapter/executer/shared/skills/harmonyos-knowledge/SKILL.md +70 -0
- package/node_modules/@hmos-library-adapter/executer/src/config.js +3 -4
- package/node_modules/@hmos-library-adapter/executer/src/doctor.js +1 -1
- package/node_modules/@hmos-library-adapter/executer/src/install.js +1 -1
- package/node_modules/@hmos-library-adapter/executer/src/paths.js +4 -4
- 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
|
+
}
|