create-bubbles 0.1.27 → 0.1.28

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 (105) hide show
  1. package/dist/index.js +4 -4
  2. package/package.json +10 -2
  3. package/template-pnpm-vp-monorepo/.changeset/README.md +8 -0
  4. package/template-pnpm-vp-monorepo/.changeset/config.json +11 -0
  5. package/template-pnpm-vp-monorepo/.gitattributes +5 -0
  6. package/template-pnpm-vp-monorepo/.github/workflows/ci.yml +33 -0
  7. package/template-pnpm-vp-monorepo/.github/workflows/docs.yml +55 -0
  8. package/template-pnpm-vp-monorepo/.github/workflows/release.yml +54 -0
  9. package/template-pnpm-vp-monorepo/.vite-hooks/commit-msg +1 -0
  10. package/template-pnpm-vp-monorepo/.vite-hooks/pre-commit +1 -0
  11. package/template-pnpm-vp-monorepo/.vite-hooks/run.mjs +17 -0
  12. package/template-pnpm-vp-monorepo/.vscode/settings.json +23 -0
  13. package/{LICENSE → template-pnpm-vp-monorepo/LICENSE} +2 -2
  14. package/template-pnpm-vp-monorepo/README.md +93 -0
  15. package/template-pnpm-vp-monorepo/_gitignore +43 -0
  16. package/template-pnpm-vp-monorepo/apps/docs/.vitepress/config.mts +69 -0
  17. package/template-pnpm-vp-monorepo/apps/docs/guide/getting-started.md +70 -0
  18. package/template-pnpm-vp-monorepo/apps/docs/guide/release.md +73 -0
  19. package/template-pnpm-vp-monorepo/apps/docs/guide/workspace.md +84 -0
  20. package/template-pnpm-vp-monorepo/apps/docs/index.md +22 -0
  21. package/template-pnpm-vp-monorepo/apps/docs/package.json +23 -0
  22. package/template-pnpm-vp-monorepo/apps/docs/tsconfig.json +7 -0
  23. package/template-pnpm-vp-monorepo/apps/docs/vite.config.ts +12 -0
  24. package/template-pnpm-vp-monorepo/apps/playground/index.html +14 -0
  25. package/template-pnpm-vp-monorepo/apps/playground/package.json +24 -0
  26. package/template-pnpm-vp-monorepo/apps/playground/src/App.vue +214 -0
  27. package/template-pnpm-vp-monorepo/apps/playground/src/env.d.ts +6 -0
  28. package/template-pnpm-vp-monorepo/apps/playground/src/main.ts +6 -0
  29. package/template-pnpm-vp-monorepo/apps/playground/src/style.css +728 -0
  30. package/template-pnpm-vp-monorepo/apps/playground/tsconfig.json +10 -0
  31. package/template-pnpm-vp-monorepo/apps/playground/vite.config.ts +29 -0
  32. package/template-pnpm-vp-monorepo/commitlint.config.mjs +3 -0
  33. package/template-pnpm-vp-monorepo/eslint.config.mjs +22 -0
  34. package/template-pnpm-vp-monorepo/mise.toml +3 -0
  35. package/template-pnpm-vp-monorepo/package.json +40 -0
  36. package/template-pnpm-vp-monorepo/packages/utils/LICENSE +21 -0
  37. package/template-pnpm-vp-monorepo/packages/utils/README.md +26 -0
  38. package/template-pnpm-vp-monorepo/packages/utils/_gitignore +4 -0
  39. package/template-pnpm-vp-monorepo/packages/utils/package.json +42 -0
  40. package/template-pnpm-vp-monorepo/packages/utils/scripts/verify-package.mjs +127 -0
  41. package/template-pnpm-vp-monorepo/packages/utils/src/index.ts +12 -0
  42. package/template-pnpm-vp-monorepo/packages/utils/tests/consumer/commonjs.cts +20 -0
  43. package/template-pnpm-vp-monorepo/packages/utils/tests/consumer/esm.mts +20 -0
  44. package/template-pnpm-vp-monorepo/packages/utils/tests/consumer/tsconfig.json +10 -0
  45. package/template-pnpm-vp-monorepo/packages/utils/tests/index.test.ts +30 -0
  46. package/template-pnpm-vp-monorepo/packages/utils/tsconfig.json +4 -0
  47. package/template-pnpm-vp-monorepo/packages/utils/vite.config.ts +20 -0
  48. package/template-pnpm-vp-monorepo/pnpm-workspace.yaml +27 -0
  49. package/template-pnpm-vp-monorepo/tsconfig/base.json +22 -0
  50. package/template-pnpm-vp-monorepo/tsconfig/node.json +8 -0
  51. package/template-pnpm-vp-monorepo/tsconfig/vue.json +7 -0
  52. package/template-pnpm-vp-monorepo/tsconfig.json +4 -0
  53. package/template-pnpm-vp-monorepo/vite.config.ts +38 -0
  54. package/template-vp-monorepo-react-nestjs/.spaces/01./344/274/201/344/270/232/347/272/247/351/241/271/347/233/256/347/272/247//346/235/203/351/231/220/344/270/216/350/217/234/345/215/225//346/212/200/346/234/257/345/245/221/347/272/246.md +5 -3
  55. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//344/272/244/344/273/230/350/256/260/345/275/225.md +9 -0
  56. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//345/217/221/345/270/203/350/257/204/344/274/260.md +93 -0
  57. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//345/267/245/345/205/267//350/277/220/350/241/214/346/227/266/345/217/221/345/270/203/346/243/200/346/237/245.mjs +340 -0
  58. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/346/212/245/345/221/212.md +28 -6
  59. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/comment-clean/catalog/en_US.json +4 -0
  60. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/comment-clean/i18n.config.mjs +9 -0
  61. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/comment-clean/report.json +16 -0
  62. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/comment-clean/source/app.ts +2 -0
  63. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/empty-scan/catalog/en_US.json +4 -0
  64. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/empty-scan/i18n.config.mjs +9 -0
  65. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/empty-scan/report.json +19 -0
  66. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214/output.json +84 -0
  67. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214//345/275/223/345/211/215/345/244/215/351/252/214.json +86 -0
  68. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214//346/243/200/346/237/245/347/273/223/346/236/234.json +30 -0
  69. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256/cli-/346/211/253/346/217/217/350/276/271/347/225/214//346/263/250/351/207/212/345/233/236/345/275/222.json +40 -0
  70. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256//345/214/205/345/217/221/345/270/203/bubblesjs-i18n-core-0.0.0.tgz +0 -0
  71. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256//345/214/205/345/217/221/345/270/203/bubblesjs-i18n-react-0.0.0.tgz +0 -0
  72. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256//345/214/205/345/217/221/345/270/203/bubblesjs-i18n-vue-0.0.1.tgz +0 -0
  73. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256//345/214/205/345/217/221/345/270/203//344/272/247/347/211/251/345/244/215/351/252/214.json +419 -0
  74. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256//345/214/205/345/217/221/345/270/203//346/243/200/346/237/245/347/273/223/346/236/234.json +339 -0
  75. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//346/265/213/350/257/225/350/257/201/346/215/256//350/277/220/350/241/214/346/227/266/345/217/221/345/270/203/346/243/200/346/237/245.json +131 -0
  76. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//350/256/276/350/256/241/346/226/271/346/241/210.md +19 -0
  77. package/template-vp-monorepo-react-nestjs/.spaces/04./347/225/214/351/235/242/344/270/216/344/270/273/351/242/230//345/233/275/351/231/205/345/214/226//351/234/200/346/261/202/346/226/207/346/241/243.md +21 -3
  78. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/274/232/350/257/235/347/256/241/347/220/206//346/212/200/346/234/257/345/245/221/347/272/246.md +5 -2
  79. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/274/232/350/257/235/347/256/241/347/220/206//351/234/200/346/261/202/346/226/207/346/241/243.md +4 -3
  80. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/277/256/346/224/271/345/257/206/347/240/201/PRD.md +2 -1
  81. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/277/256/346/224/271/345/257/206/347/240/201//346/212/200/346/234/257/345/245/221/347/272/246.md +3 -2
  82. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/277/256/346/224/271/345/257/206/347/240/201//346/265/213/350/257/225/346/212/245/345/221/212.md +15 -12
  83. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/277/256/346/224/271/345/257/206/347/240/201//350/201/224/350/260/203/350/256/260/345/275/225.md +6 -5
  84. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/277/256/346/224/271/345/257/206/347/240/201//350/256/276/350/256/241/346/226/271/346/241/210.md +2 -1
  85. package/template-vp-monorepo-react-nestjs/.spaces/06./350/256/244/350/257/201/344/270/216/344/274/232/350/257/235//344/277/256/346/224/271/345/257/206/347/240/201//351/234/200/346/261/202/346/226/207/346/241/243.md +4 -3
  86. package/template-vp-monorepo-react-nestjs/.spaces/README.md +3 -2
  87. package/template-vp-monorepo-react-nestjs/apps/web/test/{password-actions.spec.ts → password/password-actions.spec.ts} +3 -3
  88. package/template-vp-monorepo-react-nestjs/apps/web/test/{password-reset-action.spec.ts → password/password-reset-action.spec.ts} +4 -2
  89. package/template-vp-monorepo-react-nestjs/apps/web/test/{workspaces-password-entry.spec.tsx → password/workspaces-password-entry.spec.tsx} +7 -7
  90. package/template-vp-monorepo-react-nestjs/packages/i18n/cli/README.md +2 -0
  91. package/template-vp-monorepo-react-nestjs/packages/i18n/cli/src/scanner.test.ts +88 -0
  92. package/template-vp-monorepo-react-nestjs/packages/i18n/cli/src/scanner.ts +34 -11
  93. package/template-vp-monorepo-react-nestjs/packages/i18n/cli/test/command.test.ts +36 -0
  94. package/template-vp-monorepo-react-nestjs/packages/i18n/react/src/use-store.ts +15 -5
  95. package/template-vp-monorepo-react-nestjs/tsconfig.lib.json +1 -1
  96. package/template-vp-react/package.json +5 -5
  97. package/template-vp-vue-eslint-vapor/.vscode/settings.json +53 -0
  98. package/template-vp-vue-eslint-vapor/package.json +1 -0
  99. package/template-vp-vue-eslint-vapor/pnpm-workspace.yaml +0 -24
  100. package/template-vp-vue-eslint-vapor/src/main.ts +2 -3
  101. package/template-vp-vue-eslint-vapor/vite.config.ts +26 -31
  102. package/template-vp-react/.vscode/settings.json +0 -18
  103. /package/{template-vp-vue-eslint-vapor → template-pnpm-vp-monorepo}/.vscode/extensions.json +0 -0
  104. /package/template-vp-monorepo-react-nestjs/apps/server/test/auth/{password-operations.spec.ts → password/password-operations.spec.ts} +0 -0
  105. /package/template-vp-monorepo-react-nestjs/apps/server/test/auth/{password.integration.spec.ts → password/password.integration.spec.ts} +0 -0
@@ -0,0 +1,86 @@
1
+ {
2
+ "status": "验证记录",
3
+ "assessmentDate": "2026-10-09",
4
+ "executedAtUtc": "2026-10-09T06:04:52.4474679Z",
5
+ "build": "父代理完成四包构建后,直接执行当前 packages/i18n/cli/dist/cli.mjs",
6
+ "tests": {
7
+ "testsPassed": 71,
8
+ "freshCommand": "vp test run",
9
+ "freshWorkingDirectory": "packages/i18n/cli",
10
+ "taskExitCode": 0,
11
+ "filesPassed": 6,
12
+ "taskCache": "hit",
13
+ "taskCommand": "vp run --filter @bubblesjs/i18n-cli test",
14
+ "freshExitCode": 0
15
+ },
16
+ "isolation": "将既有场景复制到系统临时目录执行;原始配置、源码、词条及报告不被覆盖",
17
+ "scenarios": [
18
+ {
19
+ "scenario": "comment-clean",
20
+ "entry": "packages/i18n/cli/dist/cli.mjs",
21
+ "arguments": [
22
+ "sync",
23
+ "--clean",
24
+ "--dry-run",
25
+ "--config",
26
+ "i18n.config.mjs"
27
+ ],
28
+ "exitCode": 0,
29
+ "output": "bubbles-i18n sync dry-run\r\nConfig: i18n.config.mjs\r\nProject sample: 1 source files, 2 keys.\r\n en_US catalog/en_US.json: added 0, unused 0, deleted 0, unchanged 2.\r\nTotal: added 0, unused 0, deleted 0, unchanged 2.\r\nReport: report.json",
30
+ "report": {
31
+ "command": "sync",
32
+ "clean": true,
33
+ "dryRun": true,
34
+ "files": [
35
+ {
36
+ "project": "sample",
37
+ "path": "catalog/en_US.json",
38
+ "locale": "en_US",
39
+ "added": [],
40
+ "unused": [],
41
+ "deleted": [],
42
+ "unchangedCount": 2
43
+ }
44
+ ]
45
+ },
46
+ "catalogHashBefore": "A47F0302D7F0345DFBC94A15BAF9C80C7FA23EA7F6E6D2C67D6F6C26D86DAF58",
47
+ "catalogHashAfter": "A47F0302D7F0345DFBC94A15BAF9C80C7FA23EA7F6E6D2C67D6F6C26D86DAF58",
48
+ "originalCatalogHashAfter": "A47F0302D7F0345DFBC94A15BAF9C80C7FA23EA7F6E6D2C67D6F6C26D86DAF58",
49
+ "catalogUnchanged": true
50
+ },
51
+ {
52
+ "scenario": "empty-scan",
53
+ "entry": "packages/i18n/cli/dist/cli.mjs",
54
+ "arguments": [
55
+ "check",
56
+ "--config",
57
+ "i18n.config.mjs"
58
+ ],
59
+ "exitCode": 0,
60
+ "output": "bubbles-i18n check\r\nConfig: i18n.config.mjs\r\nProject sample: 0 source files, 0 keys.\r\n en_US catalog/en_US.json: added 0, unused 2, deleted 0, unchanged 0.\r\nTotal: added 0, unused 2, deleted 0, unchanged 0.\r\nReport: report.json\r\nCheck passed.",
61
+ "report": {
62
+ "command": "check",
63
+ "clean": false,
64
+ "dryRun": true,
65
+ "files": [
66
+ {
67
+ "project": "sample",
68
+ "path": "catalog/en_US.json",
69
+ "locale": "en_US",
70
+ "added": [],
71
+ "unused": [
72
+ "保留",
73
+ "正常"
74
+ ],
75
+ "deleted": [],
76
+ "unchangedCount": 0
77
+ }
78
+ ]
79
+ },
80
+ "catalogHashBefore": "A47F0302D7F0345DFBC94A15BAF9C80C7FA23EA7F6E6D2C67D6F6C26D86DAF58",
81
+ "catalogHashAfter": "A47F0302D7F0345DFBC94A15BAF9C80C7FA23EA7F6E6D2C67D6F6C26D86DAF58",
82
+ "originalCatalogHashAfter": "A47F0302D7F0345DFBC94A15BAF9C80C7FA23EA7F6E6D2C67D6F6C26D86DAF58",
83
+ "catalogUnchanged": true
84
+ }
85
+ ]
86
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "status": "验证记录",
3
+ "verifiedAt": "2026-10-08T04:09:49.157Z",
4
+ "scope": "CLI 调用边界注释修复",
5
+ "results": [
6
+ {
7
+ "command": "vp run --filter @bubblesjs/i18n-cli test",
8
+ "chunk_id": "569a7c",
9
+ "wall_time_seconds": 2.0589472,
10
+ "exit_code": 0,
11
+ "original_token_count": 163,
12
+ "output": "~/packages/i18n/cli$ vp test run ○ cache miss: 'command-DJ1XZyRI.mjs' removed from 'packages/i18n/cli/dist', executing\n\n RUN v4.1.11 C:/malei/stu/bubbles/packages/create-bubbles/template-vp-monorepo-react-nestjs/packages/i18n/cli\n\n ✓ test/report.test.ts (2 tests) 26ms\n ✓ src/scanner.test.ts (25 tests) 8ms\n ✓ test/sync.test.ts (8 tests) 94ms\n ✓ test/config.test.ts (1 test) 2ms\n ✓ test/load-config.test.ts (25 tests) 162ms\n ✓ test/command.test.ts (10 tests) 165ms\n\n Test Files 6 passed (6)\n Tests 71 passed (71)\n Start at 12:08:44\n Duration 783ms (transform 364ms, setup 0ms, import 518ms, tests 457ms, environment 1ms)\n\n\n"
13
+ },
14
+ {
15
+ "command": "vp check src/scanner.ts src/scanner.test.ts test/command.test.ts README.md",
16
+ "cwd": "packages/i18n/cli",
17
+ "chunk_id": "4a77d7",
18
+ "wall_time_seconds": 2.9565270999999997,
19
+ "exit_code": 0,
20
+ "original_token_count": 50,
21
+ "output": "pass: All 4 files are correctly formatted (1466ms, 24 threads)\npass: Found no warnings, lint errors, or type errors in 3 files (413ms, 24 threads)\n"
22
+ },
23
+ {
24
+ "command": "vp run --filter @bubblesjs/i18n-cli build",
25
+ "exit_code": 0,
26
+ "result": "构建成功,生成 dist/index.mjs、dist/cli.mjs 与声明产物"
27
+ }
28
+ ],
29
+ "note": "检查限定于本次修改文件,不能代替整个 i18n 目录检查。构建产物 clean dry-run 结果见注释回归.json。"
30
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "status": "验证记录",
3
+ "verifiedAt": "2026-10-08T04:08:44.385Z",
4
+ "scope": "CLI 调用边界注释修复后,构建产物的 clean dry-run 回归",
5
+ "environment": {
6
+ "node": "v24.21.0",
7
+ "platform": "win32"
8
+ },
9
+ "command": [
10
+ "C:\\Users\\Administrator\\.vite-plus\\js_runtime\\node\\24.21.0\\node.exe",
11
+ "C:\\malei\\stu\\bubbles\\packages\\create-bubbles\\template-vp-monorepo-react-nestjs\\packages\\i18n\\cli\\dist\\cli.mjs",
12
+ "sync",
13
+ "--clean",
14
+ "--dry-run",
15
+ "--config",
16
+ "C:\\malei\\stu\\bubbles\\packages\\create-bubbles\\template-vp-monorepo-react-nestjs\\.spaces\\04.界面与主题\\国际化\\测试证据\\cli-扫描边界\\comment-clean\\i18n.config.mjs"
17
+ ],
18
+ "exitCode": 0,
19
+ "stdout": "bubbles-i18n sync dry-run\nConfig: .spaces/04.界面与主题/国际化/测试证据/cli-扫描边界/comment-clean/i18n.config.mjs\nProject sample: 1 source files, 2 keys.\n en_US catalog/en_US.json: added 0, unused 0, deleted 0, unchanged 2.\nTotal: added 0, unused 0, deleted 0, unchanged 2.\nReport: report.json\n",
20
+ "stderr": "",
21
+ "report": {
22
+ "command": "sync",
23
+ "clean": true,
24
+ "dryRun": true,
25
+ "files": [
26
+ {
27
+ "project": "sample",
28
+ "path": "catalog/en_US.json",
29
+ "locale": "en_US",
30
+ "added": [],
31
+ "unused": [],
32
+ "deleted": [],
33
+ "unchangedCount": 2
34
+ }
35
+ ]
36
+ },
37
+ "catalogUnchanged": true,
38
+ "catalogSha256Before": "a47f0302d7f0345dfbc94a15baf9c80c7fa23ea7f6e6d2c67d6f6c26d86daf58",
39
+ "catalogSha256After": "a47f0302d7f0345dfbc94a15baf9c80c7fa23ea7f6e6d2c67d6f6c26d86daf58"
40
+ }
@@ -0,0 +1,419 @@
1
+ {
2
+ "assessmentDate": "2026-10-09",
3
+ "executedAtUtc": "2026-10-09T06:06:48.244Z",
4
+ "scope": "四个 i18n 包在最新构建后的本地打包及外部消费者入口复验;未修改业务源码和 manifest,未执行远端发布。",
5
+ "environment": {
6
+ "node": "24.21.0",
7
+ "pnpm": "12.10.1",
8
+ "platform": "win32"
9
+ },
10
+ "dryRun": [
11
+ {
12
+ "packageName": "core",
13
+ "command": "pnpm pack --dry-run --json",
14
+ "exitCode": 0,
15
+ "result": {
16
+ "name": "@bubblesjs/i18n-core",
17
+ "version": "0.0.0",
18
+ "filename": "bubblesjs-i18n-core-0.0.0.tgz",
19
+ "files": [
20
+ {
21
+ "path": "package.json"
22
+ },
23
+ {
24
+ "path": "src/format.ts"
25
+ },
26
+ {
27
+ "path": "src/i18n.ts"
28
+ },
29
+ {
30
+ "path": "src/index.ts"
31
+ },
32
+ {
33
+ "path": "src/storage.ts"
34
+ },
35
+ {
36
+ "path": "src/store.ts"
37
+ },
38
+ {
39
+ "path": "src/types.ts"
40
+ },
41
+ {
42
+ "path": "tsconfig.json"
43
+ },
44
+ {
45
+ "path": "vite.config.ts"
46
+ }
47
+ ]
48
+ }
49
+ },
50
+ {
51
+ "packageName": "react",
52
+ "command": "pnpm pack --dry-run --json",
53
+ "exitCode": 0,
54
+ "result": {
55
+ "name": "@bubblesjs/i18n-react",
56
+ "version": "0.0.0",
57
+ "filename": "bubblesjs-i18n-react-0.0.0.tgz",
58
+ "files": [
59
+ {
60
+ "path": "package.json"
61
+ },
62
+ {
63
+ "path": "src/index.tsx"
64
+ },
65
+ {
66
+ "path": "src/use-store.ts"
67
+ },
68
+ {
69
+ "path": "tsconfig.json"
70
+ },
71
+ {
72
+ "path": "vite.config.ts"
73
+ }
74
+ ]
75
+ }
76
+ },
77
+ {
78
+ "packageName": "vue",
79
+ "command": "pnpm pack --dry-run --json",
80
+ "exitCode": 0,
81
+ "result": {
82
+ "name": "@bubblesjs/i18n-vue",
83
+ "version": "0.0.1",
84
+ "filename": "bubblesjs-i18n-vue-0.0.1.tgz",
85
+ "files": [
86
+ {
87
+ "path": "package.json"
88
+ },
89
+ {
90
+ "path": "src/index.ts"
91
+ },
92
+ {
93
+ "path": "src/use-store.ts"
94
+ },
95
+ {
96
+ "path": "tsconfig.json"
97
+ },
98
+ {
99
+ "path": "vite.config.ts"
100
+ }
101
+ ]
102
+ }
103
+ },
104
+ {
105
+ "packageName": "cli",
106
+ "command": "pnpm pack --dry-run --json",
107
+ "exitCode": 1,
108
+ "result": {
109
+ "error": {
110
+ "code": "ERR_PNPM_BIN_CRLF",
111
+ "message": "The bin file \"src/cli.ts\" has a shebang line ending with CRLF (\\r\\n)."
112
+ }
113
+ }
114
+ }
115
+ ],
116
+ "actualPack": [
117
+ {
118
+ "packageName": "core",
119
+ "command": "pnpm pack --json --pack-destination <本功能测试证据/包发布>",
120
+ "exitCode": 0,
121
+ "result": {
122
+ "name": "@bubblesjs/i18n-core",
123
+ "version": "0.0.0",
124
+ "filename": "C:\\malei\\stu\\bubbles\\packages\\create-bubbles\\template-vp-monorepo-react-nestjs\\.spaces\\04.界面与主题\\国际化\\测试证据\\包发布\\bubblesjs-i18n-core-0.0.0.tgz",
125
+ "files": [
126
+ {
127
+ "path": "package.json"
128
+ },
129
+ {
130
+ "path": "src/format.ts"
131
+ },
132
+ {
133
+ "path": "src/i18n.ts"
134
+ },
135
+ {
136
+ "path": "src/index.ts"
137
+ },
138
+ {
139
+ "path": "src/storage.ts"
140
+ },
141
+ {
142
+ "path": "src/store.ts"
143
+ },
144
+ {
145
+ "path": "src/types.ts"
146
+ },
147
+ {
148
+ "path": "tsconfig.json"
149
+ },
150
+ {
151
+ "path": "vite.config.ts"
152
+ }
153
+ ]
154
+ }
155
+ },
156
+ {
157
+ "packageName": "react",
158
+ "command": "pnpm pack --json --pack-destination <本功能测试证据/包发布>",
159
+ "exitCode": 0,
160
+ "result": {
161
+ "name": "@bubblesjs/i18n-react",
162
+ "version": "0.0.0",
163
+ "filename": "C:\\malei\\stu\\bubbles\\packages\\create-bubbles\\template-vp-monorepo-react-nestjs\\.spaces\\04.界面与主题\\国际化\\测试证据\\包发布\\bubblesjs-i18n-react-0.0.0.tgz",
164
+ "files": [
165
+ {
166
+ "path": "package.json"
167
+ },
168
+ {
169
+ "path": "src/index.tsx"
170
+ },
171
+ {
172
+ "path": "src/use-store.ts"
173
+ },
174
+ {
175
+ "path": "tsconfig.json"
176
+ },
177
+ {
178
+ "path": "vite.config.ts"
179
+ }
180
+ ]
181
+ }
182
+ },
183
+ {
184
+ "packageName": "vue",
185
+ "command": "pnpm pack --json --pack-destination <本功能测试证据/包发布>",
186
+ "exitCode": 0,
187
+ "result": {
188
+ "name": "@bubblesjs/i18n-vue",
189
+ "version": "0.0.1",
190
+ "filename": "C:\\malei\\stu\\bubbles\\packages\\create-bubbles\\template-vp-monorepo-react-nestjs\\.spaces\\04.界面与主题\\国际化\\测试证据\\包发布\\bubblesjs-i18n-vue-0.0.1.tgz",
191
+ "files": [
192
+ {
193
+ "path": "package.json"
194
+ },
195
+ {
196
+ "path": "src/index.ts"
197
+ },
198
+ {
199
+ "path": "src/use-store.ts"
200
+ },
201
+ {
202
+ "path": "tsconfig.json"
203
+ },
204
+ {
205
+ "path": "vite.config.ts"
206
+ }
207
+ ]
208
+ }
209
+ },
210
+ {
211
+ "packageName": "cli",
212
+ "command": "pnpm pack --json --pack-destination <本功能测试证据/包发布>",
213
+ "exitCode": 1,
214
+ "result": {
215
+ "error": {
216
+ "code": "ERR_PNPM_BIN_CRLF",
217
+ "message": "The bin file \"src/cli.ts\" has a shebang line ending with CRLF (\\r\\n)."
218
+ }
219
+ }
220
+ }
221
+ ],
222
+ "tarballs": [
223
+ {
224
+ "archive": "bubblesjs-i18n-core-0.0.0.tgz",
225
+ "sha256": "35AE07DFAA3C880AC36E01819E8DF58A58F9F913FB574744B1DF8DFB102E63FF",
226
+ "files": [
227
+ "package/package.json",
228
+ "package/tsconfig.json",
229
+ "package/src/format.ts",
230
+ "package/src/i18n.ts",
231
+ "package/src/index.ts",
232
+ "package/src/storage.ts",
233
+ "package/src/store.ts",
234
+ "package/src/types.ts",
235
+ "package/vite.config.ts"
236
+ ],
237
+ "manifest": {
238
+ "name": "@bubblesjs/i18n-core",
239
+ "version": "0.0.0",
240
+ "private": true,
241
+ "type": "module",
242
+ "exports": {
243
+ ".": {
244
+ "types": "./src/index.ts",
245
+ "import": "./src/index.ts"
246
+ }
247
+ },
248
+ "devDependencies": {
249
+ "typescript": "^6.0.3",
250
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.3.1",
251
+ "vite-plus": "0.3.1"
252
+ },
253
+ "scripts": {
254
+ "build": "vp pack"
255
+ }
256
+ }
257
+ },
258
+ {
259
+ "archive": "bubblesjs-i18n-react-0.0.0.tgz",
260
+ "sha256": "E2040112B5E6B4693849DE438F029B64A7E6123EA15B47FA90EC1A29863AB27C",
261
+ "files": [
262
+ "package/package.json",
263
+ "package/tsconfig.json",
264
+ "package/src/use-store.ts",
265
+ "package/vite.config.ts",
266
+ "package/src/index.tsx"
267
+ ],
268
+ "manifest": {
269
+ "name": "@bubblesjs/i18n-react",
270
+ "version": "0.0.0",
271
+ "private": true,
272
+ "type": "module",
273
+ "exports": {
274
+ ".": {
275
+ "types": "./src/index.tsx",
276
+ "import": "./src/index.tsx"
277
+ }
278
+ },
279
+ "dependencies": {
280
+ "@bubblesjs/i18n-core": "0.0.0"
281
+ },
282
+ "devDependencies": {
283
+ "@types/react": "^19.3.0",
284
+ "react": "^19.3.0",
285
+ "typescript": "^6.0.3",
286
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.3.1",
287
+ "vite-plus": "0.3.1"
288
+ },
289
+ "peerDependencies": {
290
+ "react": ">=18.0.0"
291
+ },
292
+ "scripts": {
293
+ "build": "vp pack"
294
+ }
295
+ }
296
+ },
297
+ {
298
+ "archive": "bubblesjs-i18n-vue-0.0.1.tgz",
299
+ "sha256": "E7D406D0254D645645E1B6FA823972394558FEBB59D3D9112A53D408C3CC5EAA",
300
+ "files": [
301
+ "package/package.json",
302
+ "package/tsconfig.json",
303
+ "package/src/index.ts",
304
+ "package/src/use-store.ts",
305
+ "package/vite.config.ts"
306
+ ],
307
+ "manifest": {
308
+ "name": "@bubblesjs/i18n-vue",
309
+ "version": "0.0.1",
310
+ "private": true,
311
+ "type": "module",
312
+ "exports": {
313
+ ".": {
314
+ "types": "./src/index.ts",
315
+ "import": "./src/index.ts"
316
+ }
317
+ },
318
+ "dependencies": {
319
+ "@bubblesjs/i18n-core": "0.0.0"
320
+ },
321
+ "devDependencies": {
322
+ "typescript": "^6.0.3",
323
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.3.1",
324
+ "vite-plus": "0.3.1",
325
+ "vue": "^3.5.42"
326
+ },
327
+ "peerDependencies": {
328
+ "vue": "^3.5.39"
329
+ },
330
+ "scripts": {
331
+ "build": "vp pack"
332
+ }
333
+ }
334
+ }
335
+ ],
336
+ "builtCliHelp": {
337
+ "command": "node packages/i18n/cli/dist/cli.mjs --help",
338
+ "exitCode": 0,
339
+ "output": "用法:\n bubbles-i18n sync [options]\n bubbles-i18n check [options]\n\n命令:\n sync 把源码中缺失的静态 tr() key 添加到配置的语言包。\n check 只检查、不修改语言包;存在缺失 key 时返回失败。\n\n选项:\n --config <path> 使用指定配置文件,不再自动查找 i18n.config.ts。\n --project <name> 只处理指定项目;可以多次传入。\n --dry-run 预览同步结果,不修改语言包。\n --clean 删除源码中已不存在的 key。\n --allow-empty 配合 --clean,允许空扫描结果清空语言包。\n --fail-on-stale check 时发现废弃 key 也返回失败。\n -h, --help 显示帮助信息。\n\n安全保护:\n 项目的 include 未匹配到任何源文件时,--clean 始终拒绝执行。\n 已有翻译保持不变;新增项默认使用 key 作为翻译值。\n"
340
+ },
341
+ "externalConsumer": {
342
+ "method": "将三个实际 tgz 解压至隔离临时目录的 node_modules/@bubblesjs/<包名>,在该目录执行 Node 动态 import。",
343
+ "checks": [
344
+ {
345
+ "package": "@bubblesjs/i18n-core",
346
+ "command": "node --input-type=module --eval <dynamic import> @bubblesjs/i18n-core",
347
+ "exitCode": 1,
348
+ "result": {
349
+ "ok": false,
350
+ "code": "ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING",
351
+ "message": "Stripping types is currently unsupported for files under node_modules, for \"file:///C:/Users/Administrator/AppData/Local/Temp/i18n-pack-consumer-4d1a55e25578428986678bb5029b4011/node_modules/@bubblesjs/i18n-core/src/index.ts\""
352
+ }
353
+ },
354
+ {
355
+ "package": "@bubblesjs/i18n-react",
356
+ "command": "node --input-type=module --eval <dynamic import> @bubblesjs/i18n-react",
357
+ "exitCode": 1,
358
+ "result": {
359
+ "ok": false,
360
+ "code": "ERR_UNKNOWN_FILE_EXTENSION",
361
+ "message": "Unknown file extension \".tsx\" for C:\\Users\\Administrator\\AppData\\Local\\Temp\\i18n-pack-consumer-4d1a55e25578428986678bb5029b4011\\node_modules\\@bubblesjs\\i18n-react\\src\\index.tsx"
362
+ }
363
+ },
364
+ {
365
+ "package": "@bubblesjs/i18n-vue",
366
+ "command": "node --input-type=module --eval <dynamic import> @bubblesjs/i18n-vue",
367
+ "exitCode": 1,
368
+ "result": {
369
+ "ok": false,
370
+ "code": "ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING",
371
+ "message": "Stripping types is currently unsupported for files under node_modules, for \"file:///C:/Users/Administrator/AppData/Local/Temp/i18n-pack-consumer-4d1a55e25578428986678bb5029b4011/node_modules/@bubblesjs/i18n-vue/src/index.ts\""
372
+ }
373
+ }
374
+ ],
375
+ "fixturePath": "C:/Users/Administrator/AppData/Local/Temp/i18n-pack-consumer-4d1a55e25578428986678bb5029b4011",
376
+ "fixtureRetained": true,
377
+ "cleanupNote": "首次合并执行、校验与清理命令被自动审批拦截。分拆后实际导入验证成功执行;按根代理要求保留隔离临时目录,审批结果不计作产品缺陷。"
378
+ },
379
+ "findings": [
380
+ {
381
+ "status": "blocked",
382
+ "problem": "四包 manifest 仍 private:true,不具备公开发布配置。",
383
+ "source": "packages/i18n/{core,react,vue,cli}/package.json:4"
384
+ },
385
+ {
386
+ "status": "blocked",
387
+ "problem": "已构建的 dist 没有进入三个实际 tarball;没有发布文件白名单,exports 仍指向 .ts/.tsx 源码。",
388
+ "sources": [
389
+ "packages/i18n/core/package.json:9",
390
+ "packages/i18n/react/package.json:9",
391
+ "packages/i18n/vue/package.json:9",
392
+ ".gitignore:12"
393
+ ],
394
+ "evidence": "tarballs[].files"
395
+ },
396
+ {
397
+ "status": "blocked",
398
+ "problem": "三个实际 tarball 放入 node_modules 后,Node 24 原生导入均失败;core/vue 不允许对 node_modules 下的 TS 源码 strip types,React .tsx 扩展不可执行。",
399
+ "evidence": "externalConsumer.checks"
400
+ },
401
+ {
402
+ "status": "blocked",
403
+ "problem": "CLI bin 仍指向 src/cli.ts,shebang 使用 CRLF,实际 pack 与 dry-run 均报 ERR_PNPM_BIN_CRLF。",
404
+ "source": "packages/i18n/cli/package.json:6",
405
+ "evidence": "dryRun[3]、actualPack[3]"
406
+ },
407
+ {
408
+ "status": "passed",
409
+ "problem": "构建产物 dist/cli.mjs 的 --help 可以正常执行。",
410
+ "evidence": "builtCliHelp"
411
+ },
412
+ {
413
+ "status": "passed",
414
+ "problem": "pnpm pack 会正确把 workspace:* 和 catalog: 转成真实依赖版本;不把这两种源码协议判定为发布问题。",
415
+ "evidence": "tarballs[].manifest.dependencies、tarballs[].manifest.devDependencies"
416
+ }
417
+ ],
418
+ "conclusion": "当前仍不能直接作为公开 npm 包发布;打包配置与入口的问题在本轮复验中仍然存在。"
419
+ }