@canyonjs/babel-plugin 1.0.3 → 1.0.6

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Canyon Platforms, Inc. and affiliates.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,4 +1,4 @@
1
- import type { CanyonBabelPluginConfig } from '../types';
1
+ import type { CanyonBabelPluginConfig } from "../types";
2
2
  /**
3
3
  * 从 CI/CD 环境变量中自动检测配置
4
4
  * 支持 GitLab CI 和 GitHub Actions
@@ -1 +1 @@
1
- {"version":3,"file":"detect-ci-config.d.ts","sourceRoot":"","sources":["../../src/helpers/detect-ci-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAgCjE"}
1
+ {"version":3,"file":"detect-ci-config.d.ts","sourceRoot":"","sources":["../../src/helpers/detect-ci-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC,CA0BjE"}
@@ -8,26 +8,22 @@ exports.detectCIConfig = detectCIConfig;
8
8
  function detectCIConfig() {
9
9
  const ciConfig = {};
10
10
  // 检测是否在 CI 环境中
11
- const isCI = !!(process.env.CI ||
12
- process.env.GITLAB_CI ||
13
- process.env.GITHUB_ACTIONS);
11
+ const isCI = !!(process.env.CI || process.env.GITLAB_CI || process.env.GITHUB_ACTIONS);
14
12
  if (!isCI) {
15
13
  return ciConfig;
16
14
  }
17
15
  ciConfig.ci = true;
18
16
  // 检测 GitLab CI
19
17
  if (process.env.GITLAB_CI || process.env.CI_PROJECT_ID) {
20
- ciConfig.provider = 'gitlab';
21
- ciConfig.repoID =
22
- process.env.CI_PROJECT_ID || process.env.CI_PROJECT_PATH || '';
23
- ciConfig.sha = process.env.CI_COMMIT_SHA || '';
18
+ ciConfig.provider = "gitlab";
19
+ ciConfig.repoID = process.env.CI_PROJECT_ID || process.env.CI_PROJECT_PATH || "";
20
+ ciConfig.sha = process.env.CI_COMMIT_SHA || "";
24
21
  }
25
22
  // 检测 GitHub Actions
26
23
  else if (process.env.GITHUB_ACTIONS || process.env.GITHUB_REPOSITORY) {
27
- ciConfig.provider = 'github';
28
- ciConfig.repoID =
29
- process.env.GITHUB_REPOSITORY_ID || process.env.GITHUB_REPOSITORY || '';
30
- ciConfig.sha = process.env.GITHUB_SHA || '';
24
+ ciConfig.provider = "github";
25
+ ciConfig.repoID = process.env.GITHUB_REPOSITORY_ID || process.env.GITHUB_REPOSITORY || "";
26
+ ciConfig.sha = process.env.GITHUB_SHA || "";
31
27
  }
32
28
  return ciConfig;
33
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"detect-ci-config.js","sourceRoot":"","sources":["../../src/helpers/detect-ci-config.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,0BAAmE;IACjE,MAAM,QAAQ,GAAqC,EAAE,CAAC;IAEtD,+BAAe;IACf,MAAM,IAAI,GAAG,CAAC,CAAC,CACb,OAAO,CAAC,GAAG,CAAC,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,OAAO,CAAC,GAAG,CAAC,cAAc,CAC3B,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC;IAEnB,mBAAe;IACf,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvD,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,MAAM;YACb,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QACjE,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,wBAAoB;SACf,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACrE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,MAAM;YACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1E,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC;AAAA,CACjB"}
1
+ {"version":3,"file":"detect-ci-config.js","sourceRoot":"","sources":["../../src/helpers/detect-ci-config.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,0BAAmE;IACjE,MAAM,QAAQ,GAAqC,EAAE,CAAC;IAEtD,+BAAe;IACf,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEvF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC;IAEnB,mBAAe;IACf,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvD,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QACjF,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,wBAAoB;SACf,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACrE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1F,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC;AAAA,CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract-coverage-data.d.ts","sourceRoot":"","sources":["../../src/helpers/extract-coverage-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgChC"}
1
+ {"version":3,"file":"extract-coverage-data.d.ts","sourceRoot":"","sources":["../../src/helpers/extract-coverage-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA4BzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract-coverage-data.js","sourceRoot":"","sources":["../../src/helpers/extract-coverage-data.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACH,6BACE,aAAqB,EACW;IAChC,2CAAiC;IACjC,MAAM,mBAAmB,GAAG,wCAAwC,CAAC;IACrE,+CAAqC;IACrC,MAAM,eAAe,GACnB,yDAAyD,CAAC;IAE5D,IAAI,CAAC;QACH,8BAAY;QACZ,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,IAAI,QAAQ,CAAC,UAAU,YAAY,EAAE,CAAC,EAG5C,CAAC;QACJ,CAAC;QAED,8BAAY;QACZ,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,sBAAsB,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;YACtB,OAAO,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,6BAAe;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACb"}
1
+ {"version":3,"file":"extract-coverage-data.js","sourceRoot":"","sources":["../../src/helpers/extract-coverage-data.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACH,6BAAoC,aAAqB,EAAkC;IACzF,2CAAiC;IACjC,MAAM,mBAAmB,GAAG,wCAAwC,CAAC;IACrE,+CAAqC;IACrC,MAAM,eAAe,GAAG,yDAAyD,CAAC;IAElF,IAAI,CAAC;QACH,8BAAY;QACZ,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,IAAI,QAAQ,CAAC,UAAU,YAAY,EAAE,CAAC,EAA6B,CAAC;QAC7E,CAAC;QAED,8BAAY;QACZ,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,sBAAsB,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;YACtB,OAAO,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,6BAAe;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACb"}
@@ -1,4 +1,4 @@
1
- import type { CanyonBabelPluginConfig } from '../types';
1
+ import type { CanyonBabelPluginConfig } from "../types";
2
2
  /**
3
3
  * 生成 buildHash
4
4
  * 基于 provider, repoID, sha, buildTarget 四个字段生成稳定的构建身份标识
@@ -1 +1 @@
1
- {"version":3,"file":"generate-build-hash.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-build-hash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GACxC,MAAM,CAiBR"}
1
+ {"version":3,"file":"generate-build-hash.d.ts","sourceRoot":"","sources":["../../src/helpers/generate-build-hash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAiBnF"}
@@ -17,16 +17,16 @@ function generateBuildHash(config) {
17
17
  // buildHash 包含这些核心字段:
18
18
  // provider + repoID + sha + buildTarget + instrumentCwd
19
19
  const buildHashFields = {
20
- provider: config.provider || '',
21
- repoID: config.repoID || '',
22
- sha: config.sha || '',
23
- buildTarget: config.buildTarget || '',
24
- instrumentCwd: config.instrumentCwd || '',
20
+ provider: config.provider || "",
21
+ repoID: config.repoID || "",
22
+ sha: config.sha || "",
23
+ buildTarget: config.buildTarget || "",
24
+ instrumentCwd: config.instrumentCwd || "",
25
25
  };
26
26
  // 使用 json-stable-stringify 确保键顺序稳定,与后端保持一致
27
- const hash = (0, node_crypto_1.createHash)('sha1')
28
- .update((0, json_stable_stringify_1.default)(buildHashFields) || '')
29
- .digest('hex');
27
+ const hash = (0, node_crypto_1.createHash)("sha1")
28
+ .update((0, json_stable_stringify_1.default)(buildHashFields) || "")
29
+ .digest("hex");
30
30
  return hash;
31
31
  }
32
32
  //# sourceMappingURL=generate-build-hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-build-hash.js","sourceRoot":"","sources":["../../src/helpers/generate-build-hash.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AACzC,kFAA8C;AAG9C;;;;;;GAMG;AACH,2BACE,MAAyC,EACjC;IACR,wCAAsB;IACtB,wDAAwD;IACxD,MAAM,eAAe,GAA2B;QAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;KAC1C,CAAC;IAEF,6EAA2C;IAC3C,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC;SAC5B,MAAM,CAAC,IAAA,+BAAS,EAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SACxC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AAAA,CACb"}
1
+ {"version":3,"file":"generate-build-hash.js","sourceRoot":"","sources":["../../src/helpers/generate-build-hash.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AACzC,kFAA8C;AAG9C;;;;;;GAMG;AACH,2BAAkC,MAAyC,EAAU;IACnF,wCAAsB;IACtB,wDAAwD;IACxD,MAAM,eAAe,GAA2B;QAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;KAC1C,CAAC;IAEF,6EAA2C;IAC3C,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC;SAC5B,MAAM,CAAC,IAAA,+BAAS,EAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SACxC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AAAA,CACb"}
@@ -1,4 +1,4 @@
1
- import type { CanyonBabelPluginConfig } from '../types';
1
+ import type { CanyonBabelPluginConfig } from "../types";
2
2
  /**
3
3
  * 覆盖率数据接口
4
4
  */
@@ -9,6 +9,6 @@ const node_crypto_1 = require("node:crypto");
9
9
  * @returns SHA1 hash 字符串
10
10
  */
11
11
  function computeHash(content) {
12
- return (0, node_crypto_1.createHash)('sha1').update(content).digest('hex');
12
+ return (0, node_crypto_1.createHash)("sha1").update(content).digest("hex");
13
13
  }
14
14
  //# sourceMappingURL=hash.js.map
@@ -15,8 +15,8 @@ interface Location {
15
15
  * StatementMap 条目接口
16
16
  */
17
17
  interface StatementMapEntry {
18
- start: Location['start'];
19
- end: Location['end'];
18
+ start: Location["start"];
19
+ end: Location["end"];
20
20
  contentHash?: string;
21
21
  }
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"statement-map-hash.d.ts","sourceRoot":"","sources":["../../src/helpers/statement-map-hash.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,UAAU,QAAQ;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgDD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC/C,UAAU,EAAE,MAAM,GACjB,IAAI,CA+BN"}
1
+ {"version":3,"file":"statement-map-hash.d.ts","sourceRoot":"","sources":["../../src/helpers/statement-map-hash.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,UAAU,QAAQ;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgDD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC/C,UAAU,EAAE,MAAM,GACjB,IAAI,CA2BN"}
@@ -11,18 +11,18 @@ const hash_1 = require("./hash");
11
11
  * @returns 提取的代码片段
12
12
  */
13
13
  function extractCodeSnippet(sourceCode, start, end) {
14
- const lines = sourceCode.split('\n');
14
+ const lines = sourceCode.split("\n");
15
15
  // 行号从 1 开始,数组索引从 0 开始
16
16
  const startLineIndex = start.line - 1;
17
17
  const endLineIndex = end.line - 1;
18
18
  if (startLineIndex < 0 || endLineIndex >= lines.length) {
19
- return '';
19
+ return "";
20
20
  }
21
21
  // 如果是同一行
22
22
  if (startLineIndex === endLineIndex) {
23
23
  const line = lines[startLineIndex];
24
24
  if (!line) {
25
- return '';
25
+ return "";
26
26
  }
27
27
  return line.slice(start.column, end.column);
28
28
  }
@@ -30,12 +30,12 @@ function extractCodeSnippet(sourceCode, start, end) {
30
30
  const startLine = lines[startLineIndex];
31
31
  const endLine = lines[endLineIndex];
32
32
  if (!startLine || !endLine) {
33
- return '';
33
+ return "";
34
34
  }
35
35
  const firstLinePart = startLine.slice(start.column);
36
36
  const middleLines = lines.slice(startLineIndex + 1, endLineIndex);
37
37
  const lastLinePart = endLine.slice(0, end.column);
38
- return [firstLinePart, ...middleLines, lastLinePart].join('\n');
38
+ return [firstLinePart, ...middleLines, lastLinePart].join("\n");
39
39
  }
40
40
  /**
41
41
  * 为 statementMap 中的每个条目添加 contentHash 字段
@@ -45,19 +45,19 @@ function extractCodeSnippet(sourceCode, start, end) {
45
45
  * @param sourceCode - 源代码内容
46
46
  */
47
47
  function enrichStatementMapWithHash(statementMap, sourceCode) {
48
- if (!statementMap || typeof statementMap !== 'object') {
48
+ if (!statementMap || typeof statementMap !== "object") {
49
49
  return;
50
50
  }
51
51
  Object.keys(statementMap).forEach((key) => {
52
52
  const entry = statementMap[key];
53
53
  if (entry &&
54
- typeof entry === 'object' &&
54
+ typeof entry === "object" &&
55
55
  entry.start &&
56
56
  entry.end &&
57
- typeof entry.start.line === 'number' &&
58
- typeof entry.start.column === 'number' &&
59
- typeof entry.end.line === 'number' &&
60
- typeof entry.end.column === 'number') {
57
+ typeof entry.start.line === "number" &&
58
+ typeof entry.start.column === "number" &&
59
+ typeof entry.end.line === "number" &&
60
+ typeof entry.end.column === "number") {
61
61
  try {
62
62
  const codeSnippet = extractCodeSnippet(sourceCode, entry.start, entry.end);
63
63
  if (codeSnippet) {
@@ -1 +1 @@
1
- {"version":3,"file":"statement-map-hash.js","sourceRoot":"","sources":["../../src/helpers/statement-map-hash.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAyBrC;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,UAAkB,EAClB,KAAwB,EACxB,GAAoB,EACZ;IACR,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAErC,gDAAsB;IACtB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAElC,IAAI,cAAc,GAAG,CAAC,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,qBAAS;IACT,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,qBAAS;IACT,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,CAAC,aAAa,EAAE,GAAG,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,CACjE;AAED;;;;;;GAMG;AACH,oCACE,YAA+C,EAC/C,UAAkB,EACZ;IACN,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,CAAC,KAAK;YACX,KAAK,CAAC,GAAG;YACT,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YACpC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YACtC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ;YAClC,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,EACpC,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,kBAAkB,CACpC,UAAU,EACV,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,GAAG,CACV,CAAC;gBACF,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,CAAC,WAAW,GAAG,IAAA,kBAAW,EAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,0CAAgB;YAClB,CAAC;QACH,CAAC;IAAA,CACF,CAAC,CAAC;AAAA,CACJ"}
1
+ {"version":3,"file":"statement-map-hash.js","sourceRoot":"","sources":["../../src/helpers/statement-map-hash.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAyBrC;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,UAAkB,EAClB,KAAwB,EACxB,GAAoB,EACZ;IACR,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAErC,gDAAsB;IACtB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAElC,IAAI,cAAc,GAAG,CAAC,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,qBAAS;IACT,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,qBAAS;IACT,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,CAAC,aAAa,EAAE,GAAG,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,CACjE;AAED;;;;;;GAMG;AACH,oCACE,YAA+C,EAC/C,UAAkB,EACZ;IACN,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,CAAC,KAAK;YACX,KAAK,CAAC,GAAG;YACT,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YACpC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YACtC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ;YAClC,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,EACpC,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3E,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,CAAC,WAAW,GAAG,IAAA,kBAAW,EAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,0CAAgB;YAClB,CAAC;QACH,CAAC;IAAA,CACF,CAAC,CAAC;AAAA,CACJ"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { NodePath } from '@babel/core';
2
- import type * as t from '@babel/types';
1
+ import type { NodePath } from "@babel/core";
2
+ import type * as t from "@babel/types";
3
3
  /**
4
4
  * Babel 插件主入口
5
5
  * 用于在代码中注入覆盖率收集逻辑和元数据
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAC;AA+CvC;;;GAGG;;;;;;;;AACH,wBAoBE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAC;AAgDvC;;;GAGG;;;;;;;;AACH,wBAoBE"}
package/dist/index.js CHANGED
@@ -7,12 +7,13 @@ const visitor_program_exit_1 = require("./visitor-program-exit");
7
7
  * 默认配置对象
8
8
  */
9
9
  const defaultConfig = {
10
- repoID: '',
11
- sha: '',
12
- provider: '',
13
- buildTarget: '',
10
+ repoID: "",
11
+ sha: "",
12
+ provider: "",
13
+ buildTarget: "",
14
14
  ci: false,
15
15
  instrumentCwd: process.cwd(),
16
+ keepMap: false,
16
17
  };
17
18
  /**
18
19
  * 合并用户配置、CI 自动检测配置和默认配置
@@ -32,6 +33,7 @@ function mergeConfig(config) {
32
33
  buildTarget: config?.buildTarget ?? ciConfig.buildTarget ?? defaultConfig.buildTarget,
33
34
  ci: config?.ci ?? ciConfig.ci ?? defaultConfig.ci,
34
35
  instrumentCwd: config?.instrumentCwd ?? defaultConfig.instrumentCwd,
36
+ keepMap: config?.keepMap ?? defaultConfig.keepMap,
35
37
  // buildProvider:
36
38
  // config?.buildProvider ??
37
39
  // ciConfig.buildProvider ??
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,oEAAqD;AAErD,iEAA4D;AAE5D,iEAA4D;AAE5D;;GAEG;AACH,MAAM,aAAa,GAAsC;IACvD,MAAM,EAAE,EAAE;IACV,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,EAAE,EAAE,KAAK;IACT,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,SAAS,WAAW,CAClB,MAA2C,EACR;IACnC,iDAAqB;IACrB,MAAM,QAAQ,GAAG,IAAA,iCAAc,GAAE,CAAC;IAElC,kEAA8B;IAC9B,OAAO;QACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM;QACjE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG;QACrD,qEAAqE;QACrE,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ;QACzE,WAAW,EACT,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW;QAC1E,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,CAAC,EAAE,IAAI,aAAa,CAAC,EAAE;QACjD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,aAAa,CAAC,aAAa;QACnE,iBAAiB;QACjB,6BAA6B;QAC7B,8BAA8B;QAC9B,iCAAiC;QACjC,yEAAyE;KAC1E,CAAC;AAAA,CACH;AAED;;;GAGG;kBACY,IAAA,6BAAO,EACpB,CACE,GAAc,EACd,MAAe,EAGf,EAAE,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,MAA6C,CAAC;IACjE,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC,WAAgC,EAAE,EAAE,CAAC;oBAC1C,IAAA,yCAAkB,EAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAAA,CACvD;aACF;SACF;KACF,CAAC;AAAA,CACH,CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,oEAAqD;AAErD,iEAA4D;AAE5D,iEAA4D;AAE5D;;GAEG;AACH,MAAM,aAAa,GAAsC;IACvD,MAAM,EAAE,EAAE;IACV,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,EAAE,EAAE,KAAK;IACT,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE;IAC5B,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;;;;GAKG;AACH,SAAS,WAAW,CAClB,MAA2C,EACR;IACnC,iDAAqB;IACrB,MAAM,QAAQ,GAAG,IAAA,iCAAc,GAAE,CAAC;IAElC,kEAA8B;IAC9B,OAAO;QACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM;QACjE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG;QACrD,qEAAqE;QACrE,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ;QACzE,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW;QACrF,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,CAAC,EAAE,IAAI,aAAa,CAAC,EAAE;QACjD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,aAAa,CAAC,aAAa;QACnE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,CAAC,OAAO;QACjD,iBAAiB;QACjB,6BAA6B;QAC7B,8BAA8B;QAC9B,iCAAiC;QACjC,yEAAyE;KAC1E,CAAC;AAAA,CACH;AAED;;;GAGG;kBACY,IAAA,6BAAO,EACpB,CACE,GAAc,EACd,MAAe,EAGf,EAAE,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,MAA6C,CAAC;IACjE,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC,WAAgC,EAAE,EAAE,CAAC;oBAC1C,IAAA,yCAAkB,EAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAAA,CACvD;aACF;SACF;KACF,CAAC;AAAA,CACH,CACF"}
package/dist/types.d.ts CHANGED
@@ -14,5 +14,6 @@ export interface CanyonBabelPluginConfig {
14
14
  ci?: boolean;
15
15
  /** 插桩工作目录,默认为当前路径 */
16
16
  instrumentCwd?: string;
17
+ keepMap?: boolean;
17
18
  }
18
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAAgB;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,iDAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAAgB;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,iDAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -1,5 +1,5 @@
1
- import type { types as BabelTypes, ConfigAPI, NodePath } from '@babel/core';
2
- import type { CanyonBabelPluginConfig } from './types';
1
+ import type { types as BabelTypes, ConfigAPI, NodePath } from "@babel/core";
2
+ import type { CanyonBabelPluginConfig } from "./types";
3
3
  /**
4
4
  * 覆盖率数据接口
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"visitor-program-exit.d.ts","sourceRoot":"","sources":["../src/visitor-program-exit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,wBAAwB;IAChC,oCAAoC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EACzC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GACxC,wBAAwB,CAgQ1B"}
1
+ {"version":3,"file":"visitor-program-exit.d.ts","sourceRoot":"","sources":["../src/visitor-program-exit.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,UAAU,wBAAwB;IAChC,oCAAoC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EACzC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GACxC,wBAAwB,CAyK1B"}
@@ -37,7 +37,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.visitorProgramExit = visitorProgramExit;
40
- const console = __importStar(require("node:console"));
41
40
  const node_crypto_1 = require("node:crypto");
42
41
  const fs = __importStar(require("node:fs"));
43
42
  const path = __importStar(require("node:path"));
@@ -45,7 +44,6 @@ const generator_1 = __importDefault(require("@babel/generator"));
45
44
  const generate_build_hash_1 = require("./helpers/generate-build-hash");
46
45
  const generate_initial_coverage_1 = require("./helpers/generate-initial-coverage");
47
46
  const hash_1 = require("./helpers/hash");
48
- const remap_coverage_1 = require("./helpers/remap-coverage");
49
47
  const statement_map_hash_1 = require("./helpers/statement-map-hash");
50
48
  /**
51
49
  * Program 节点退出时的访问器函数
@@ -68,7 +66,7 @@ function visitorProgramExit(api, programPath, config) {
68
66
  try {
69
67
  if (initialCoverageData &&
70
68
  initialCoverageData.statementMap &&
71
- typeof initialCoverageData.statementMap === 'object') {
69
+ typeof initialCoverageData.statementMap === "object") {
72
70
  (0, statement_map_hash_1.enrichStatementMapWithHash)(initialCoverageData.statementMap, originalCode);
73
71
  }
74
72
  }
@@ -77,7 +75,7 @@ function visitorProgramExit(api, programPath, config) {
77
75
  }
78
76
  // 基于文件内容计算 contentHash,并写入内存对象
79
77
  try {
80
- if (initialCoverageData && typeof initialCoverageData === 'object') {
78
+ if (initialCoverageData && typeof initialCoverageData === "object") {
81
79
  const contentHash = (0, hash_1.computeHash)(originalCode);
82
80
  initialCoverageData.contentHash = contentHash;
83
81
  }
@@ -89,8 +87,8 @@ function visitorProgramExit(api, programPath, config) {
89
87
  if (initialCoverageData && !initialCoverageData.inputSourceMap) {
90
88
  try {
91
89
  if (initialCoverageData.path) {
92
- const mapFilePath = path.resolve(initialCoverageData.path + '.map');
93
- const pathString = fs.readFileSync(mapFilePath, 'utf-8');
90
+ const mapFilePath = path.resolve(initialCoverageData.path + ".map");
91
+ const pathString = fs.readFileSync(mapFilePath, "utf-8");
94
92
  initialCoverageData.inputSourceMap = JSON.parse(pathString);
95
93
  }
96
94
  }
@@ -101,14 +99,14 @@ function visitorProgramExit(api, programPath, config) {
101
99
  // CI 环境下生成覆盖率文件
102
100
  if (config.ci) {
103
101
  // 这里要注意,就在当下生成,插桩路径可以改,但是工作目录不能改
104
- const outputDir = './.canyon_output';
102
+ const outputDir = "./.canyon_output";
105
103
  if (!fs.existsSync(outputDir)) {
106
104
  fs.mkdirSync(outputDir, { recursive: true });
107
105
  }
108
106
  // 确保覆盖率数据有效
109
107
  if (initialCoverageData?.path) {
110
108
  // 使用 crypto.randomBytes 生成更安全的随机后缀(16 字节 = 32 个十六进制字符)
111
- const randomSuffix = (0, node_crypto_1.randomBytes)(16).toString('hex');
109
+ const randomSuffix = (0, node_crypto_1.randomBytes)(16).toString("hex");
112
110
  const outputFilePath = `./.canyon_output/coverage-final-init-${randomSuffix}.json`;
113
111
  // 添加 buildHash 和核心四字段到 .canyon_output 的产物中
114
112
  // 根据架构设计,不再将 repoID、sha、provider 等业务信息直接插桩到代码产物中
@@ -127,111 +125,59 @@ function visitorProgramExit(api, programPath, config) {
127
125
  const coverageDataObject = {
128
126
  [initialCoverageData.path]: coverageDataWithMetadata,
129
127
  };
130
- fs.writeFileSync(outputFilePath, JSON.stringify(coverageDataObject, null, 2), 'utf-8');
131
- // 如果有 sourceMap,需要对 remap 后的覆盖率数据做 hash 处理
132
- if (initialCoverageData.inputSourceMap && initialCoverageData.path) {
133
- // 使用 Promise 处理异步 remap 操作,不阻塞主流程
134
- (0, remap_coverage_1.remapCoverageByOld)({
135
- [initialCoverageData.path]: initialCoverageData,
136
- })
137
- .then((remappedCoverage) => {
138
- if (Object.keys(remappedCoverage).length > 0) {
139
- const originCodePath = Object.keys(remappedCoverage)[0];
140
- if (!originCodePath) {
141
- return;
142
- }
143
- // 检测源码文件是否存在
144
- if (fs.existsSync(originCodePath)) {
145
- // @ts-expect-error
146
- const remappedCoverageEntry = remappedCoverage[originCodePath];
147
- if (!remappedCoverageEntry) {
148
- return;
149
- }
150
- const originCodeContent = fs.readFileSync(originCodePath, 'utf-8');
151
- // 对 remap 后的覆盖率数据做 hash 处理(只对语句维度)
152
- try {
153
- if (remappedCoverageEntry.statementMap &&
154
- typeof remappedCoverageEntry.statementMap === 'object') {
155
- (0, statement_map_hash_1.enrichStatementMapWithHash)(remappedCoverageEntry.statementMap, originCodeContent);
156
- }
157
- }
158
- catch (_error) {
159
- // 忽略提取失败,保持现有行为
160
- }
161
- // 计算源码文件的 contentHash
162
- const remappedContentHash = (0, hash_1.computeHash)(originCodeContent);
163
- try {
164
- if (typeof remappedCoverageEntry === 'object') {
165
- remappedCoverageEntry.contentHash = remappedContentHash;
166
- }
167
- }
168
- catch (_error) {
169
- // 忽略
170
- }
171
- // 写入 remap 后的覆盖率文件
172
- const remapRandomSuffix = (0, node_crypto_1.randomBytes)(16).toString('hex');
173
- const remapOutputFilePath = `./.canyon_output/cov-final-remap-${remapRandomSuffix}.json`;
174
- fs.writeFileSync(remapOutputFilePath, JSON.stringify({
175
- [originCodePath]: remappedCoverageEntry,
176
- }, null, 2), 'utf-8');
177
- }
178
- }
179
- })
180
- .catch((_error) => {
181
- console.log(_error);
182
- // 忽略 remap 失败,保持现有行为
183
- });
184
- }
128
+ fs.writeFileSync(outputFilePath, JSON.stringify(coverageDataObject, null, 2), "utf-8");
185
129
  }
186
130
  }
187
131
  // 处理代码中的 coverageData 变量
188
- if (sourceCode.includes('coverageData')) {
132
+ if (sourceCode.includes("coverageData")) {
189
133
  // 使用 api 的 types,Babel 类型定义可能不完整,使用类型断言
190
134
  const types = api.types;
191
135
  programPath.traverse({
192
136
  VariableDeclarator(variablePath) {
193
137
  const { id, init } = variablePath.node;
194
138
  // 检查是否是 coverageData 变量且初始化为对象表达式
195
- if (types.isIdentifier(id, { name: 'coverageData' }) &&
139
+ if (types.isIdentifier(id, { name: "coverageData" }) &&
196
140
  init &&
197
141
  types.isObjectExpression(init)) {
198
142
  const objectExpression = init;
199
143
  // 过滤掉 SpreadElement,只处理 ObjectProperty 和 ObjectMethod
200
- const validProperties = objectExpression.properties.filter((property) => types.isObjectProperty(property) ||
201
- types.isObjectMethod(property));
144
+ const validProperties = objectExpression.properties.filter((property) => types.isObjectProperty(property) || types.isObjectMethod(property));
202
145
  const hasInstrumentation = validProperties.some((property) => types.isObjectProperty(property) &&
203
- types.isIdentifier(property.key, { name: '_coverageSchema' }));
146
+ types.isIdentifier(property.key, { name: "_coverageSchema" }));
204
147
  if (hasInstrumentation) {
205
148
  const objectProperties = objectExpression.properties;
206
149
  // 注意:keepMap 属性不在配置接口中,这里保留原逻辑但添加注释说明
207
- const shouldKeepMap = false; // 默认不保留 map
150
+ const shouldKeepMap = config.keepMap; // 默认不保留 map
208
151
  if (!shouldKeepMap) {
209
- const keysToRemove = [
210
- 'statementMap',
211
- 'fnMap',
212
- 'branchMap',
213
- 'inputSourceMap',
214
- ];
152
+ const keysToRemove = ["statementMap", "fnMap", "branchMap", "inputSourceMap"];
215
153
  keysToRemove.forEach((keyToRemove) => {
216
- const propertyIndex = objectProperties.findIndex((property) => (types.isObjectProperty(property) ||
217
- types.isObjectMethod(property)) &&
154
+ const propertyIndex = objectProperties.findIndex((property) => (types.isObjectProperty(property) || types.isObjectMethod(property)) &&
218
155
  types.isObjectProperty(property) &&
219
156
  types.isIdentifier(property.key, { name: keyToRemove }));
220
157
  if (propertyIndex !== -1) {
221
158
  objectProperties.splice(propertyIndex, 1);
222
159
  }
223
160
  });
224
- // 添加 hasInputSourceMap 属性
225
- const hasInputSourceMap = !!initialCoverageData?.inputSourceMap;
226
- const hasInputSourceMapProperty = types.objectProperty(types.identifier('hasInputSourceMap'), types.booleanLiteral(hasInputSourceMap));
227
- objectProperties.push(hasInputSourceMapProperty);
228
161
  }
229
162
  // 添加 buildHash 元数据属性
230
163
  // 根据架构设计,不再将 repoID、sha、provider 等业务信息直接插桩到产物中
231
164
  // 而是生成 buildHash,服务端通过 buildHash 查询对应的构建信息
232
165
  const buildHash = (0, generate_build_hash_1.generateBuildHash)(config);
233
- const buildHashProperty = types.objectProperty(types.identifier('buildHash'), types.stringLiteral(buildHash));
166
+ const buildHashProperty = types.objectProperty(types.identifier("buildHash"), types.stringLiteral(buildHash));
234
167
  objectProperties.push(buildHashProperty);
168
+ const emptyStringMetadataKeys = [
169
+ "sha",
170
+ "instrumentCwd",
171
+ "dsn",
172
+ "reporter",
173
+ "branch",
174
+ "compareTarget",
175
+ "provider",
176
+ "repoID",
177
+ ];
178
+ emptyStringMetadataKeys.forEach((key) => {
179
+ objectProperties.push(types.objectProperty(types.identifier(key), types.stringLiteral("")));
180
+ });
235
181
  }
236
182
  }
237
183
  },
@@ -1 +1 @@
1
- {"version":3,"file":"visitor-program-exit.js","sourceRoot":"","sources":["../src/visitor-program-exit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitor-program-exit.js","sourceRoot":"","sources":["../src/visitor-program-exit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,31 +1,29 @@
1
1
  {
2
2
  "name": "@canyonjs/babel-plugin",
3
- "version": "1.0.3",
3
+ "version": "1.0.6",
4
4
  "description": "",
5
5
  "keywords": [],
6
- "main": "dist/index.js",
6
+ "license": "ISC",
7
+ "author": "",
7
8
  "files": [
8
9
  "dist"
9
10
  ],
10
- "author": "",
11
- "license": "ISC",
11
+ "main": "dist/index.js",
12
+ "dependencies": {
13
+ "@babel/core": "^7.25.6",
14
+ "@babel/helper-plugin-utils": "^7.0.0",
15
+ "@babel/types": "^7.25.6",
16
+ "json-stable-stringify": "^1.3.0"
17
+ },
12
18
  "devDependencies": {
13
19
  "@babel/cli": "^7.24.1",
14
20
  "@types/babel__core": "^7.20.5",
15
21
  "@types/babel__generator": "^7.6.8",
16
22
  "@types/babel__helper-plugin-utils": "^7.10.3",
17
23
  "@types/node": "^24.10.1",
18
- "@typescript/native-preview": "^7.0.0-dev.20251215.1",
24
+ "@typescript/native-preview": "7.0.0-dev.20260223.1",
19
25
  "babel-plugin-istanbul": "latest"
20
26
  },
21
- "dependencies": {
22
- "@babel/core": "^7.25.6",
23
- "@babel/helper-plugin-utils": "^7.0.0",
24
- "@babel/types": "^7.25.6",
25
- "istanbul-lib-coverage": "^3.2.2",
26
- "istanbul-lib-source-maps": "^4.0.1",
27
- "json-stable-stringify": "^1.3.0"
28
- },
29
27
  "scripts": {
30
28
  "build": "tsgo",
31
29
  "release": "tsgo",
@@ -1,3 +0,0 @@
1
- export declare function remapCoverage(obj: any): Promise<{}>;
2
- export declare function remapCoverageByOld(obj: any): Promise<{}>;
3
- //# sourceMappingURL=remap-coverage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remap-coverage.d.ts","sourceRoot":"","sources":["../../src/helpers/remap-coverage.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,eAe3C;AAcD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,GAAG,eA2ChD"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.remapCoverage = remapCoverage;
7
- exports.remapCoverageByOld = remapCoverageByOld;
8
- // @ts-nocheck // 这行注释会让 TS 忽略当前文件的所有类型检查报错
9
- const istanbul_lib_coverage_1 = __importDefault(require("istanbul-lib-coverage"));
10
- const istanbul_lib_source_maps_1 = __importDefault(require("istanbul-lib-source-maps"));
11
- async function remapCoverage(obj) {
12
- const res = await istanbul_lib_source_maps_1.default
13
- .createSourceMapStore()
14
- .transformCoverage(istanbul_lib_coverage_1.default.createCoverageMap(obj));
15
- const { data: data_1 } = res;
16
- const obj_1 = {};
17
- Object.entries(data_1).forEach(([key, value], index) => {
18
- // @ts-expect-error
19
- const x = value['data'];
20
- // @ts-expect-error
21
- obj_1[x.path] = {
22
- ...x,
23
- };
24
- });
25
- return obj_1;
26
- }
27
- function eee(newMap, oldMap) {
28
- const o = {};
29
- Object.entries(newMap).forEach(([key, value]) => {
30
- o[key] = {
31
- // @ts-expect-errorr
32
- ...value,
33
- contentHash: oldMap[key]?.contentHash || '',
34
- };
35
- });
36
- return o;
37
- }
38
- async function remapCoverageByOld(obj) {
39
- const aaa = await Promise.all(Object.values(obj).map((item) => {
40
- return remapCoverage({
41
- // @ts-expect-errorr
42
- [item.path]: item,
43
- })
44
- .then((res) => {
45
- return Object.values(res);
46
- })
47
- .then((res) => {
48
- return res[0];
49
- })
50
- .then((res) => {
51
- const r = {
52
- // @ts-expect-errorr
53
- ...res,
54
- // @ts-expect-errorr
55
- statementMap: eee(res.statementMap, item.statementMap),
56
- // @ts-expect-errorr
57
- fnMap: eee(res.fnMap, item.fnMap),
58
- // @ts-expect-errorr
59
- oldPath: item.path,
60
- // @ts-expect-errorr
61
- contentHash: item.contentHash,
62
- };
63
- return r;
64
- })
65
- .catch((err) => {
66
- return {};
67
- });
68
- }));
69
- const obj2 = {};
70
- // @ts-expect-errorr
71
- aaa.forEach((item) => {
72
- // 过滤作用
73
- if (item.path) {
74
- // @ts-expect-errorr
75
- obj2[item.path] = item;
76
- }
77
- });
78
- return obj2;
79
- }
80
- //# sourceMappingURL=remap-coverage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remap-coverage.js","sourceRoot":"","sources":["../../src/helpers/remap-coverage.ts"],"names":[],"mappings":"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"}