@open-dy/vibecoding-cli 0.1.18 → 0.1.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-dy/vibecoding-cli",
3
- "version": "0.1.18",
3
+ "version": "0.1.20",
4
4
  "description": "Command orchestration, validation and packaging for Douyin vibecoding Taro and OpenCard projects.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -43,8 +43,8 @@
43
43
  "ajv": "^8.18.0"
44
44
  },
45
45
  "peerDependencies": {
46
- "@open-dy/vibecoding-sdk-taro": "0.1.14",
47
- "@open-dy/vibecoding-sdk-opencard": "0.1.15"
46
+ "@open-dy/vibecoding-sdk-taro": "0.1.16",
47
+ "@open-dy/vibecoding-sdk-opencard": "0.1.17"
48
48
  },
49
49
  "peerDependenciesMeta": {
50
50
  "@open-dy/vibecoding-sdk-taro": {
@@ -2,12 +2,12 @@
2
2
  "schema": 1,
3
3
  "producer": "vibecoding-cli",
4
4
  "packageName": "@open-dy/vibecoding-cli",
5
- "version": "0.1.18",
5
+ "version": "0.1.20",
6
6
  "source": {
7
- "digest": "sha256-32af390f82dec595258084370815fcc01698ee6288bf88f9afb77b9207b02b5f",
7
+ "digest": "sha256-915118d0f66a99584b9f2ae289f4149ce848df7ee066c9c41029f17854830233",
8
8
  "files": 96
9
9
  },
10
- "payload": "sha256-ca7031f69f6b7d43189ae117e836fe803ef3df27304b758892f38891fc29d12c",
10
+ "payload": "sha256-a33c1747b088f7cd4df77235f225648f3e2bc4d397f02174f95c89f15c039e3f",
11
11
  "toolchain": {
12
12
  "node": "v22.22.3",
13
13
  "runtime": {
@@ -16,19 +16,32 @@ export function validateDependencies(context) {
16
16
  const roots = context.target === 'opencard'
17
17
  ? [context.root]
18
18
  : [context.root, ...(context.hasOpenCard ? [context.opencardRoot] : [])]
19
- const issues = []
19
+ const unsupportedDependencies = []
20
+ const missingPackageManagers = []
20
21
  for (const root of roots) {
21
- if (!existsSync(path.join(root, 'package.json'))) continue
22
- const manifest = JSON.parse(readFileSync(path.join(root, 'package.json'), 'utf8'))
22
+ const manifestPath = path.join(root, 'package.json')
23
+ if (!existsSync(manifestPath)) continue
24
+ const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'))
25
+ if (typeof manifest.packageManager !== 'string' || !manifest.packageManager.trim()) {
26
+ missingPackageManagers.push(manifestPath)
27
+ }
23
28
  for (const field of FIELDS) {
24
29
  for (const name of FORBIDDEN) {
25
- if (manifest[field]?.[name]) issues.push(`${path.join(root, 'package.json')}: ${field}.${name}`)
30
+ if (manifest[field]?.[name]) unsupportedDependencies.push(`${manifestPath}: ${field}.${name}`)
26
31
  }
27
32
  }
28
33
  }
29
- if (issues.length > 0) {
30
- throw new CliError(
31
- `Unsupported web Three.js dependencies found:\n${issues.map((item) => `- ${item}`).join('\n')}\nUse @open-dy/threejs instead.`,
34
+ const errors = []
35
+ if (missingPackageManagers.length > 0) {
36
+ errors.push(
37
+ `Missing or empty packageManager in project manifests:\n${missingPackageManagers.map((file) => `- ${file}`).join('\n')}\n` +
38
+ 'Set the top-level "packageManager": "pnpm@10.4.1" in each listed package.json, then rerun pnpm verify.',
39
+ )
40
+ }
41
+ if (unsupportedDependencies.length > 0) {
42
+ errors.push(
43
+ `Unsupported web Three.js dependencies found:\n${unsupportedDependencies.map((item) => `- ${item}`).join('\n')}\nUse @open-dy/threejs instead.`,
32
44
  )
33
45
  }
46
+ if (errors.length > 0) throw new CliError(errors.join('\n\n'))
34
47
  }