@byline/cli 3.21.0 → 4.0.0

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 (179) hide show
  1. package/README.md +29 -3
  2. package/dist/cli.js +5 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/doctor.d.ts.map +1 -1
  5. package/dist/commands/doctor.js +1 -0
  6. package/dist/commands/doctor.js.map +1 -1
  7. package/dist/commands/init.d.ts +3 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +10 -14
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/setup-checks.d.ts +9 -0
  12. package/dist/commands/setup-checks.d.ts.map +1 -1
  13. package/dist/commands/setup-checks.js +43 -18
  14. package/dist/commands/setup-checks.js.map +1 -1
  15. package/dist/commands/setup.js +1 -1
  16. package/dist/commands/setup.js.map +1 -1
  17. package/dist/context.d.ts +2 -0
  18. package/dist/context.d.ts.map +1 -1
  19. package/dist/context.js +6 -0
  20. package/dist/context.js.map +1 -1
  21. package/dist/lib/dependency-version.d.ts +12 -0
  22. package/dist/lib/dependency-version.d.ts.map +1 -0
  23. package/dist/lib/dependency-version.js +101 -0
  24. package/dist/lib/dependency-version.js.map +1 -0
  25. package/dist/lib/planned-writes.d.ts +8 -0
  26. package/dist/lib/planned-writes.d.ts.map +1 -0
  27. package/dist/lib/planned-writes.js +177 -0
  28. package/dist/lib/planned-writes.js.map +1 -0
  29. package/dist/lib/planned-writes.test.d.ts +2 -0
  30. package/dist/lib/planned-writes.test.d.ts.map +1 -0
  31. package/dist/lib/planned-writes.test.js +113 -0
  32. package/dist/lib/planned-writes.test.js.map +1 -0
  33. package/dist/lib/release-policy.d.ts +12 -0
  34. package/dist/lib/release-policy.d.ts.map +1 -0
  35. package/dist/lib/release-policy.js +20 -0
  36. package/dist/lib/release-policy.js.map +1 -0
  37. package/dist/lib/release-policy.test.d.ts +2 -0
  38. package/dist/lib/release-policy.test.d.ts.map +1 -0
  39. package/dist/lib/release-policy.test.js +36 -0
  40. package/dist/lib/release-policy.test.js.map +1 -0
  41. package/dist/lib/route-config.d.ts +40 -0
  42. package/dist/lib/route-config.d.ts.map +1 -0
  43. package/dist/lib/route-config.js +322 -0
  44. package/dist/lib/route-config.js.map +1 -0
  45. package/dist/lib/static-config.d.ts +20 -0
  46. package/dist/lib/static-config.d.ts.map +1 -0
  47. package/dist/lib/static-config.js +444 -0
  48. package/dist/lib/static-config.js.map +1 -0
  49. package/dist/lib/static-config.test.d.ts +2 -0
  50. package/dist/lib/static-config.test.d.ts.map +1 -0
  51. package/dist/lib/static-config.test.js +105 -0
  52. package/dist/lib/static-config.test.js.map +1 -0
  53. package/dist/lib/template-hook-boundary.test.node.d.ts +2 -0
  54. package/dist/lib/template-hook-boundary.test.node.d.ts.map +1 -0
  55. package/dist/lib/template-hook-boundary.test.node.js +30 -0
  56. package/dist/lib/template-hook-boundary.test.node.js.map +1 -0
  57. package/dist/lib/template-path.d.ts +5 -0
  58. package/dist/lib/template-path.d.ts.map +1 -0
  59. package/dist/lib/template-path.js +9 -0
  60. package/dist/lib/template-path.js.map +1 -0
  61. package/dist/lib/workspace-root.d.ts +28 -0
  62. package/dist/lib/workspace-root.d.ts.map +1 -0
  63. package/dist/lib/workspace-root.js +205 -0
  64. package/dist/lib/workspace-root.js.map +1 -0
  65. package/dist/manifest/deps.d.ts +1 -1
  66. package/dist/manifest/deps.d.ts.map +1 -1
  67. package/dist/manifest/deps.js +18 -8
  68. package/dist/manifest/deps.js.map +1 -1
  69. package/dist/phases/deps.d.ts +14 -1
  70. package/dist/phases/deps.d.ts.map +1 -1
  71. package/dist/phases/deps.js +312 -137
  72. package/dist/phases/deps.js.map +1 -1
  73. package/dist/phases/deps.test.d.ts +2 -0
  74. package/dist/phases/deps.test.d.ts.map +1 -0
  75. package/dist/phases/deps.test.js +343 -0
  76. package/dist/phases/deps.test.js.map +1 -0
  77. package/dist/phases/preflight.d.ts.map +1 -1
  78. package/dist/phases/preflight.js +59 -11
  79. package/dist/phases/preflight.js.map +1 -1
  80. package/dist/phases/prompts.d.ts +2 -0
  81. package/dist/phases/prompts.d.ts.map +1 -1
  82. package/dist/phases/prompts.js +51 -2
  83. package/dist/phases/prompts.js.map +1 -1
  84. package/dist/phases/routes-ui.test.d.ts +2 -0
  85. package/dist/phases/routes-ui.test.d.ts.map +1 -0
  86. package/dist/phases/routes-ui.test.js +766 -0
  87. package/dist/phases/routes-ui.test.js.map +1 -0
  88. package/dist/phases/routes.d.ts +4 -1
  89. package/dist/phases/routes.d.ts.map +1 -1
  90. package/dist/phases/routes.js +610 -122
  91. package/dist/phases/routes.js.map +1 -1
  92. package/dist/phases/scaffold-smoke.test.d.ts +2 -0
  93. package/dist/phases/scaffold-smoke.test.d.ts.map +1 -0
  94. package/dist/phases/scaffold-smoke.test.js +168 -0
  95. package/dist/phases/scaffold-smoke.test.js.map +1 -0
  96. package/dist/phases/scaffold.d.ts +3 -2
  97. package/dist/phases/scaffold.d.ts.map +1 -1
  98. package/dist/phases/scaffold.js +268 -91
  99. package/dist/phases/scaffold.js.map +1 -1
  100. package/dist/phases/scaffold.test.js +171 -22
  101. package/dist/phases/scaffold.test.js.map +1 -1
  102. package/dist/phases/ui.d.ts +4 -1
  103. package/dist/phases/ui.d.ts.map +1 -1
  104. package/dist/phases/ui.js +51 -59
  105. package/dist/phases/ui.js.map +1 -1
  106. package/dist/phases/wire/index.d.ts.map +1 -1
  107. package/dist/phases/wire/index.js +10 -6
  108. package/dist/phases/wire/index.js.map +1 -1
  109. package/dist/phases/wire/shared.d.ts +4 -1
  110. package/dist/phases/wire/shared.d.ts.map +1 -1
  111. package/dist/phases/wire/vite-config.d.ts.map +1 -1
  112. package/dist/phases/wire/vite-config.js +69 -20
  113. package/dist/phases/wire/vite-config.js.map +1 -1
  114. package/dist/phases/wire/vite-config.test.d.ts +2 -0
  115. package/dist/phases/wire/vite-config.test.d.ts.map +1 -0
  116. package/dist/phases/wire/vite-config.test.js +97 -0
  117. package/dist/phases/wire/vite-config.test.js.map +1 -0
  118. package/dist/prompts.d.ts +1 -0
  119. package/dist/prompts.d.ts.map +1 -1
  120. package/dist/prompts.js +7 -2
  121. package/dist/prompts.js.map +1 -1
  122. package/dist/runner.js +1 -1
  123. package/dist/runner.js.map +1 -1
  124. package/dist/templates/byline/clients.server.ts +77 -0
  125. package/dist/templates/byline/collection-types.contract.ts +25 -0
  126. package/dist/templates/byline/collections/server-hooks.ts +7 -0
  127. package/dist/templates/byline/routes.ts +7 -6
  128. package/dist/templates/byline/server.config.ts +3 -1
  129. package/dist/templates/byline-examples/admin.config.ts +7 -12
  130. package/dist/templates/byline-examples/blocks/photo-block.ts +3 -2
  131. package/dist/templates/byline-examples/clients.server.ts +77 -0
  132. package/dist/templates/byline-examples/collection-types.contract.ts +25 -0
  133. package/dist/templates/byline-examples/collections/docs/hooks.ts +23 -13
  134. package/dist/templates/byline-examples/collections/docs/schema.ts +2 -11
  135. package/dist/templates/byline-examples/collections/media/components/media-list-view.tsx +11 -6
  136. package/dist/templates/byline-examples/collections/media/schema.ts +3 -0
  137. package/dist/templates/byline-examples/collections/news/schema.ts +4 -3
  138. package/dist/templates/byline-examples/collections/server-hooks.ts +8 -0
  139. package/dist/templates/byline-examples/fields/ai-text.ts +1 -1
  140. package/dist/templates/byline-examples/fields/ai-textarea.ts +1 -1
  141. package/dist/templates/byline-examples/fields/lexical-richtext-ai.tsx +3 -3
  142. package/dist/templates/byline-examples/routes.ts +7 -6
  143. package/dist/templates/byline-examples/scripts/backfill-version-locales.ts +1 -1
  144. package/dist/templates/byline-examples/scripts/import-docs.ts +11 -12
  145. package/dist/templates/byline-examples/scripts/lib/mdast-to-lexical.test.node.ts +93 -233
  146. package/dist/templates/byline-examples/scripts/lib/mdast-to-lexical.ts +2 -2
  147. package/dist/templates/byline-examples/scripts/lib/strip-leading-h1.test.node.ts +0 -4
  148. package/dist/templates/byline-examples/scripts/re-anchor.ts +3 -3
  149. package/dist/templates/byline-examples/scripts/regenerate-media.ts +6 -5
  150. package/dist/templates/byline-examples/server.config.ts +5 -4
  151. package/dist/templates/host/vite.config.ts +2 -0
  152. package/dist/templates/routes/_byline/route.lazy.tsx +1 -2
  153. package/dist/templates/routes/_byline/route.tsx +1 -1
  154. package/dist/templates/ui-byline/blocks/photo-block/index.tsx +18 -22
  155. package/dist/templates/ui-byline/components/admonition/index.tsx +11 -8
  156. package/dist/templates/ui-byline/components/code/code.tsx +6 -4
  157. package/dist/templates/ui-byline/components/link/lang-link.tsx +4 -8
  158. package/dist/templates/ui-byline/components/link/link-field.tsx +3 -2
  159. package/dist/templates/ui-byline/components/link/link-lexical.tsx +9 -8
  160. package/dist/templates/ui-byline/render-blocks.tsx +38 -34
  161. package/dist/templates/ui-byline/types/content.ts +25 -0
  162. package/dist/templates/ui-byline/types/i18n.ts +4 -8
  163. package/dist/test-helpers.d.ts +5 -0
  164. package/dist/test-helpers.d.ts.map +1 -0
  165. package/dist/test-helpers.js +52 -0
  166. package/dist/test-helpers.js.map +1 -0
  167. package/dist/types.d.ts +21 -1
  168. package/dist/types.d.ts.map +1 -1
  169. package/dist/ui-template-contract.test.d.ts +2 -0
  170. package/dist/ui-template-contract.test.d.ts.map +1 -0
  171. package/dist/ui-template-contract.test.js +130 -0
  172. package/dist/ui-template-contract.test.js.map +1 -0
  173. package/dist/workspace-root.test.d.ts +2 -0
  174. package/dist/workspace-root.test.d.ts.map +1 -0
  175. package/dist/workspace-root.test.js +307 -0
  176. package/dist/workspace-root.test.js.map +1 -0
  177. package/package.json +9 -1
  178. package/dist/templates/byline/client.server.ts +0 -32
  179. package/dist/templates/byline-examples/client.server.ts +0 -32
@@ -1,6 +1,10 @@
1
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { relative } from 'node:path';
2
3
  import { execa } from 'execa';
3
- import { parseDocument } from 'yaml';
4
+ import { isMap, isScalar, parseDocument } from 'yaml';
5
+ import { evaluateDependencyCompatibility, } from '../lib/dependency-version.js';
6
+ import { applyPlannedWrites } from '../lib/planned-writes.js';
7
+ import { resolveWorkspaceOwnership, validateWorkspacePackageManager, } from '../lib/workspace-root.js';
4
8
  import { DEP_SPECS } from '../manifest/deps.js';
5
9
  /**
6
10
  * Packages pnpm refuses to build post-install without an explicit opt-in.
@@ -23,14 +27,19 @@ export const depsPhase = {
23
27
  title: 'Deps — install required @byline/* and runtime packages',
24
28
  defaultMode: 'auto',
25
29
  async detect(ctx) {
26
- if (ctx.state.isComplete('deps'))
27
- return 'done';
30
+ if (!validateWorkspacePackageManager(ctx.cwd, ctx.pm).valid)
31
+ return 'blocked';
28
32
  const missing = computeMissing(ctx);
29
33
  if (missing === null)
30
34
  return 'blocked';
31
- return missing.length === 0 ? 'done' : 'pending';
35
+ const settings = inspectDependencySettings(ctx);
36
+ return missing.length === 0 && settings.complete ? 'done' : 'pending';
32
37
  },
33
38
  async plan(ctx) {
39
+ const managerValidation = validateWorkspacePackageManager(ctx.cwd, ctx.pm);
40
+ if (!managerValidation.valid) {
41
+ return { writes: [], commands: [], notes: [managerValidation.reason] };
42
+ }
34
43
  const missing = computeMissing(ctx);
35
44
  if (missing === null) {
36
45
  return {
@@ -39,59 +48,77 @@ export const depsPhase = {
39
48
  notes: ['package.json not readable — run host phase first'],
40
49
  };
41
50
  }
42
- const notes = [];
43
- if (ctx.pm === 'pnpm') {
44
- const missingBuilds = computeMissingPnpmBuilds(ctx);
45
- if (missingBuilds.length > 0) {
46
- notes.push(`pnpm-workspace.yaml: will add allowBuilds entries for ${missingBuilds.join(', ')} (so pnpm doesn't pause the install)`);
47
- }
48
- if (hasStalePnpmFieldInPackageJson(ctx)) {
49
- notes.push('package.json: will remove stale `pnpm.onlyBuiltDependencies` (pnpm v10+ reads pnpm-workspace.yaml instead)');
50
- }
51
- }
51
+ const settings = inspectDependencySettings(ctx);
52
+ const notes = [...settings.notes];
53
+ const preconditions = dependencyPlanPreconditions(ctx);
52
54
  if (missing.length === 0) {
53
55
  notes.push('all required dependencies already declared');
54
- return { writes: [], commands: [], notes };
56
+ return { writes: settings.writes, commands: [], notes, preconditions };
55
57
  }
56
- notes.push(`${missing.length} package(s) to install via ${ctx.pm}`);
57
- for (const { spec } of missing) {
58
- notes.push(` + ${spec.name}@${spec.version} (${spec.group}) — ${spec.note}`);
58
+ const installable = missing.filter((status) => !status.manual);
59
+ const manual = missing.length - installable.length;
60
+ if (installable.length > 0)
61
+ notes.push(`${installable.length} package(s) to install via ${ctx.pm}`);
62
+ if (manual > 0)
63
+ notes.push(`${manual} workspace package(s) require manual compatibility work`);
64
+ for (const { spec, presentVersion, compatibility, manual } of missing) {
65
+ if (manual) {
66
+ notes.push(` ! ${spec.name}@${presentVersion}: manual — ${compatibility?.reason}`);
67
+ continue;
68
+ }
69
+ const action = presentVersion ? `upgrade from ${presentVersion} to` : 'add';
70
+ notes.push(` + ${spec.name}: ${action} ${spec.version} (${spec.group}) — ${spec.note}`);
59
71
  }
60
- return { writes: [], commands: buildInstallCommands(ctx.pm, missing), notes };
72
+ return {
73
+ writes: settings.writes,
74
+ commands: buildInstallCommands(ctx, installable),
75
+ notes,
76
+ preconditions,
77
+ };
61
78
  },
62
- async apply(_plan, ctx) {
63
- const missing = computeMissing(ctx);
64
- if (missing === null)
79
+ async apply(plan, ctx) {
80
+ const validation = validateDependencyPlan(plan, ctx);
81
+ if (!validation.valid) {
82
+ ctx.logger.error(`${validation.reason}; dependency plan was not applied`);
83
+ ctx.logger.info('re-run the deps phase to preview current dependency state');
65
84
  return { state: 'blocked' };
66
- if (ctx.pm === 'pnpm') {
67
- const added = ensurePnpmAllowedBuilds(ctx);
68
- if (added.length > 0) {
69
- ctx.logger.success(`pnpm-workspace.yaml: added allowBuilds entries for ${added.join(', ')}`);
70
- }
71
- const stripped = stripStalePnpmFieldFromPackageJson(ctx);
72
- if (stripped) {
73
- ctx.logger.info('package.json: removed stale `pnpm.onlyBuiltDependencies` (pnpm v10+ ignores it)');
85
+ }
86
+ const current = computeMissing(ctx);
87
+ if (current === null)
88
+ return { state: 'blocked' };
89
+ const preservedIssues = current.filter((status) => status.manual);
90
+ if (preservedIssues.length > 0) {
91
+ for (const issue of preservedIssues) {
92
+ ctx.logger.error(`${issue.spec.name}@${issue.presentVersion}: ${issue.compatibility?.reason}`);
74
93
  }
94
+ ctx.logger.info('workspace declarations were preserved; fix the linked package and re-run');
95
+ return { state: 'blocked' };
75
96
  }
76
- if (missing.length === 0) {
77
- ctx.logger.info('all required dependencies already declared — nothing to install');
78
- return { state: 'done' };
97
+ const writes = applyPlannedWrites(plan.writes);
98
+ if (writes.conflicts.length > 0) {
99
+ ctx.logger.warn('dependency settings changed after preview and were left untouched');
100
+ return { state: 'blocked' };
79
101
  }
80
- const commands = buildInstallCommands(ctx.pm, missing);
81
- for (const c of commands) {
102
+ if (writes.written.length > 0) {
103
+ ctx.logger.success(`wrote ${writes.written.length} planned dependency settings file(s)`);
104
+ }
105
+ for (const c of plan.commands) {
82
106
  ctx.logger.step(`${c.command} ${c.args.join(' ')}`);
83
107
  try {
84
- await execa(c.command, c.args, { cwd: ctx.cwd, stdio: 'inherit' });
108
+ await execa(c.command, c.args, { cwd: c.cwd ?? ctx.cwd, stdio: 'inherit' });
85
109
  }
86
110
  catch (e) {
87
111
  ctx.logger.error(`install failed: ${e.message}`);
88
112
  return { state: 'blocked' };
89
113
  }
90
114
  }
91
- const stillMissing = computeMissing(ctx);
92
- if (stillMissing && stillMissing.length > 0) {
93
- ctx.logger.warn(`${stillMissing.length} package(s) still missing after install — package.json may not have been updated`);
94
- return { state: 'partial' };
115
+ const postcondition = validateDependencyPostconditions(ctx);
116
+ if (!postcondition.valid) {
117
+ ctx.logger.error(postcondition.reason);
118
+ return { state: 'blocked' };
119
+ }
120
+ if (plan.commands.length === 0 && plan.writes.length === 0) {
121
+ ctx.logger.info('all required dependencies and settings are already present');
95
122
  }
96
123
  return { state: 'done' };
97
124
  },
@@ -117,109 +144,214 @@ function computeMissing(ctx) {
117
144
  const inDeps = deps[spec.name];
118
145
  const inDev = devDeps[spec.name];
119
146
  const present = inDeps ?? inDev ?? null;
120
- if (present !== null)
147
+ const compatibility = present === null ? undefined : evaluateDependencyCompatibility(ctx, spec, present);
148
+ if (compatibility?.status === 'compatible')
121
149
  continue;
122
150
  missing.push({
123
151
  spec,
124
152
  presentIn: inDeps !== undefined ? 'dependencies' : inDev !== undefined ? 'devDependencies' : null,
125
153
  presentVersion: present,
154
+ compatibility,
155
+ manual: compatibility?.preserveDeclared === true,
126
156
  });
127
157
  }
128
158
  return missing;
129
159
  }
130
- function readHostPackageJson(ctx) {
131
- const path = ctx.resolve('package.json');
132
- if (!existsSync(path))
133
- return null;
134
- try {
135
- return { path, pkg: JSON.parse(readFileSync(path, 'utf8')) };
160
+ function inspectDependencySettings(ctx) {
161
+ if (ctx.pm !== 'pnpm')
162
+ return { complete: true, manual: false, writes: [], notes: [] };
163
+ const writes = [];
164
+ const notes = [];
165
+ const packagePath = ctx.resolve('package.json');
166
+ const packageBefore = existsSync(packagePath) ? readFileSync(packagePath, 'utf8') : null;
167
+ if (packageBefore !== null) {
168
+ try {
169
+ const pkg = JSON.parse(packageBefore);
170
+ if (pkg.pnpm?.onlyBuiltDependencies !== undefined) {
171
+ const nextPnpm = { ...pkg.pnpm };
172
+ delete nextPnpm.onlyBuiltDependencies;
173
+ const next = { ...pkg };
174
+ if (Object.keys(nextPnpm).length === 0)
175
+ delete next.pnpm;
176
+ else
177
+ next.pnpm = nextPnpm;
178
+ writes.push({
179
+ path: packagePath,
180
+ contents: `${JSON.stringify(next, null, 2)}\n`,
181
+ mode: 'patch',
182
+ before: packageBefore,
183
+ });
184
+ notes.push('package.json: will remove stale pnpm.onlyBuiltDependencies');
185
+ }
186
+ }
187
+ catch {
188
+ return {
189
+ complete: false,
190
+ manual: true,
191
+ writes: [],
192
+ notes: ['package.json is not valid JSON'],
193
+ };
194
+ }
136
195
  }
137
- catch {
138
- return null;
196
+ const workspacePath = ctx.resolveWorkspace('pnpm-workspace.yaml');
197
+ const workspaceExists = existsSync(workspacePath);
198
+ const workspaceBefore = workspaceExists ? readFileSync(workspacePath, 'utf8') : '';
199
+ const doc = parseDocument(workspaceBefore);
200
+ if (doc.errors.length > 0) {
201
+ return {
202
+ complete: false,
203
+ manual: true,
204
+ writes,
205
+ notes: [...notes, 'pnpm-workspace.yaml: manual — YAML could not be parsed'],
206
+ };
139
207
  }
208
+ const ownership = resolveWorkspaceOwnership(ctx.cwd);
209
+ const packages = doc.toJS()?.packages;
210
+ if (ownership.kind === 'package-json') {
211
+ if (packages !== undefined && !Array.isArray(packages)) {
212
+ return {
213
+ complete: false,
214
+ manual: true,
215
+ writes,
216
+ notes: [...notes, 'pnpm-workspace.yaml: manual — packages must be an array'],
217
+ };
218
+ }
219
+ if (!Array.isArray(packages) || packages.length === 0) {
220
+ doc.set('packages', ownership.patterns);
221
+ notes.push('pnpm-workspace.yaml: will add package.json workspace patterns');
222
+ }
223
+ }
224
+ const allowBuilds = doc.get('allowBuilds', true);
225
+ if (allowBuilds !== undefined && !isMap(allowBuilds)) {
226
+ return {
227
+ complete: false,
228
+ manual: true,
229
+ writes,
230
+ notes: [...notes, 'pnpm-workspace.yaml: manual — allowBuilds must be a map'],
231
+ };
232
+ }
233
+ const existing = new Set(isMap(allowBuilds)
234
+ ? allowBuilds.items
235
+ .filter((item) => isScalar(item.value) && item.value.value === true)
236
+ .map((item) => String(item.key))
237
+ : []);
238
+ const missingBuilds = PNPM_ALLOWED_BUILDS.filter((name) => !existing.has(name));
239
+ const packagesChanged = ownership.kind === 'package-json' && (!Array.isArray(packages) || packages.length === 0);
240
+ if (missingBuilds.length > 0) {
241
+ if (!doc.has('allowBuilds'))
242
+ doc.set('allowBuilds', doc.createNode({}));
243
+ for (const name of missingBuilds)
244
+ doc.setIn(['allowBuilds', name], true);
245
+ writes.push({
246
+ path: workspacePath,
247
+ contents: doc.toString(),
248
+ mode: workspaceExists ? 'patch' : 'create',
249
+ ...(workspaceExists ? { before: workspaceBefore } : {}),
250
+ });
251
+ notes.push(`pnpm-workspace.yaml: will add allowBuilds entries for ${missingBuilds.join(', ')}`);
252
+ }
253
+ else if (packagesChanged) {
254
+ writes.push({
255
+ path: workspacePath,
256
+ contents: doc.toString(),
257
+ mode: workspaceExists ? 'patch' : 'create',
258
+ ...(workspaceExists ? { before: workspaceBefore } : {}),
259
+ });
260
+ }
261
+ return { complete: writes.length === 0, manual: false, writes, notes };
140
262
  }
141
- /**
142
- * Reads `pnpm-workspace.yaml` from the host project. Returns an empty
143
- * document (not null) if the file doesn't exist — pnpm v10+ tolerates a
144
- * single-package repo creating the file just for settings, so we'll write
145
- * one if needed.
146
- */
147
- function readPnpmWorkspaceYaml(ctx) {
148
- const path = ctx.resolve('pnpm-workspace.yaml');
149
- if (!existsSync(path))
150
- return { path, doc: parseDocument('') };
151
- const text = readFileSync(path, 'utf8');
152
- return { path, doc: parseDocument(text) };
153
- }
154
- function readAllowBuildsKeys(doc) {
155
- const node = doc.get('allowBuilds');
156
- if (!node || typeof node !== 'object')
157
- return new Set();
158
- // yaml's Document.get returns a YAMLMap node; toJSON gives us plain object
159
- const map = doc.get('allowBuilds')?.toJSON?.();
160
- if (!map || typeof map !== 'object')
161
- return new Set();
162
- return new Set(Object.keys(map));
163
- }
164
- function computeMissingPnpmBuilds(ctx) {
165
- const { doc } = readPnpmWorkspaceYaml(ctx);
166
- const existing = readAllowBuildsKeys(doc);
167
- return PNPM_ALLOWED_BUILDS.filter((name) => !existing.has(name));
168
- }
169
- /**
170
- * Adds every entry in `PNPM_ALLOWED_BUILDS` that isn't already present to
171
- * `pnpm-workspace.yaml` under `allowBuilds:` (the pnpm v10+ location).
172
- * Returns the entries that were newly added.
173
- *
174
- * We preserve any existing entries (e.g. user-added allowBuilds) and any
175
- * unrelated top-level keys / comments by going through the `yaml`
176
- * document API rather than re-serialising from JSON.
177
- */
178
- function ensurePnpmAllowedBuilds(ctx) {
179
- const { path, doc } = readPnpmWorkspaceYaml(ctx);
180
- const existing = readAllowBuildsKeys(doc);
181
- const toAdd = PNPM_ALLOWED_BUILDS.filter((name) => !existing.has(name));
182
- if (toAdd.length === 0)
183
- return [];
184
- if (!doc.has('allowBuilds'))
185
- doc.set('allowBuilds', {});
186
- for (const name of toAdd) {
187
- doc.setIn(['allowBuilds', name], true);
188
- }
189
- writeFileSync(path, doc.toString(), 'utf8');
190
- return [...toAdd];
263
+ export function validateDependencyPlan(plan, ctx) {
264
+ const managerValidation = validateWorkspacePackageManager(ctx.cwd, ctx.pm);
265
+ if (!managerValidation.valid)
266
+ return managerValidation;
267
+ if (!plan.preconditions)
268
+ return { valid: false, reason: 'dependency plan has no preconditions' };
269
+ const ownership = resolveWorkspaceOwnership(ctx.cwd);
270
+ for (const precondition of plan.preconditions) {
271
+ if (precondition.type === 'file') {
272
+ const current = existsSync(precondition.path) ? readFileSync(precondition.path, 'utf8') : null;
273
+ if (current !== precondition.contents) {
274
+ return { valid: false, reason: `${precondition.path} changed after preview` };
275
+ }
276
+ continue;
277
+ }
278
+ if (precondition.type !== 'value') {
279
+ return { valid: false, reason: 'dependency plan has an unsupported precondition' };
280
+ }
281
+ const current = precondition.key === 'package-manager'
282
+ ? ctx.pm
283
+ : precondition.key === 'workspace-root'
284
+ ? ownership.root
285
+ : precondition.key === 'workspace-kind'
286
+ ? ownership.kind
287
+ : undefined;
288
+ if (current !== precondition.value) {
289
+ return { valid: false, reason: `${precondition.key} changed after preview` };
290
+ }
291
+ }
292
+ const missing = computeMissing(ctx);
293
+ if (missing === null)
294
+ return { valid: false, reason: 'package.json is unreadable' };
295
+ if (missing.some((status) => status.manual)) {
296
+ return { valid: false, reason: 'workspace dependency compatibility requires manual work' };
297
+ }
298
+ const commands = buildInstallCommands(ctx, missing.filter((status) => !status.manual));
299
+ if (JSON.stringify(commands) !== JSON.stringify(plan.commands)) {
300
+ return { valid: false, reason: 'dependency install candidates changed after preview' };
301
+ }
302
+ const settings = inspectDependencySettings(ctx);
303
+ if (settings.manual) {
304
+ return { valid: false, reason: 'dependency settings require manual repair' };
305
+ }
306
+ return { valid: true };
191
307
  }
192
- function hasStalePnpmFieldInPackageJson(ctx) {
193
- const read = readHostPackageJson(ctx);
194
- if (!read)
195
- return false;
196
- return read.pkg.pnpm?.onlyBuiltDependencies !== undefined;
308
+ export function validateDependencyPostconditions(ctx) {
309
+ const missing = computeMissing(ctx);
310
+ if (missing === null)
311
+ return { valid: false, reason: 'package.json is unreadable after install' };
312
+ if (missing.length > 0) {
313
+ return {
314
+ valid: false,
315
+ reason: `${missing.length} required dependency package(s) remain missing or incompatible`,
316
+ };
317
+ }
318
+ const settings = inspectDependencySettings(ctx);
319
+ if (!settings.complete) {
320
+ return { valid: false, reason: 'required dependency settings remain incomplete' };
321
+ }
322
+ const ownership = resolveWorkspaceOwnership(ctx.cwd);
323
+ if (ownership.root !== ctx.workspaceRoot) {
324
+ return { valid: false, reason: 'workspace root changed after dependency setup' };
325
+ }
326
+ if (ctx.pm === 'pnpm' && ownership.kind !== 'pnpm') {
327
+ return { valid: false, reason: 'pnpm workspace metadata does not own the application' };
328
+ }
329
+ return { valid: true };
197
330
  }
198
- /**
199
- * Older versions of this CLI (and pnpm v9) used the `pnpm` field in
200
- * `package.json`. pnpm v10+ ignores it and emits a warning. Strip it on
201
- * upgrade so the file doesn't confuse readers.
202
- */
203
- function stripStalePnpmFieldFromPackageJson(ctx) {
204
- const read = readHostPackageJson(ctx);
205
- if (!read)
206
- return false;
207
- const { path, pkg } = read;
208
- if (pkg.pnpm?.onlyBuiltDependencies === undefined)
209
- return false;
210
- const nextPnpm = { ...pkg.pnpm };
211
- delete nextPnpm.onlyBuiltDependencies;
212
- const next = { ...pkg };
213
- if (Object.keys(nextPnpm).length === 0) {
214
- delete next.pnpm;
215
- }
216
- else {
217
- next.pnpm = nextPnpm;
218
- }
219
- writeFileSync(path, `${JSON.stringify(next, null, 2)}\n`, 'utf8');
220
- return true;
331
+ function dependencyPlanPreconditions(ctx) {
332
+ const ownership = resolveWorkspaceOwnership(ctx.cwd);
333
+ const paths = new Set([
334
+ ctx.resolve('package.json'),
335
+ ctx.resolveWorkspace('package.json'),
336
+ ctx.resolveWorkspace('pnpm-workspace.yaml'),
337
+ ctx.resolveWorkspace('pnpm-lock.yaml'),
338
+ ctx.resolveWorkspace('yarn.lock'),
339
+ ctx.resolveWorkspace('package-lock.json'),
340
+ ctx.resolveWorkspace('bun.lock'),
341
+ ctx.resolveWorkspace('bun.lockb'),
342
+ ]);
343
+ return [
344
+ ...[...paths].map((path) => ({
345
+ type: 'file',
346
+ path,
347
+ contents: existsSync(path) ? readFileSync(path, 'utf8') : null,
348
+ })),
349
+ { type: 'value', key: 'package-manager', value: ctx.pm },
350
+ { type: 'value', key: 'workspace-root', value: ownership.root },
351
+ { type: 'value', key: 'workspace-kind', value: ownership.kind },
352
+ ];
221
353
  }
222
- function buildInstallCommands(pm, missing) {
354
+ function buildInstallCommands(ctx, missing) {
223
355
  const runtime = missing
224
356
  .filter((m) => m.spec.group !== 'dev')
225
357
  .map((m) => `${m.spec.name}@${m.spec.version}`);
@@ -228,21 +360,64 @@ function buildInstallCommands(pm, missing) {
228
360
  .map((m) => `${m.spec.name}@${m.spec.version}`);
229
361
  const cmds = [];
230
362
  if (runtime.length > 0)
231
- cmds.push(installCommand(pm, runtime, false));
363
+ cmds.push(installCommand(ctx, runtime, false));
232
364
  if (dev.length > 0)
233
- cmds.push(installCommand(pm, dev, true));
365
+ cmds.push(installCommand(ctx, dev, true));
234
366
  return cmds;
235
367
  }
236
- function installCommand(pm, packages, dev) {
237
- switch (pm) {
368
+ function installCommand(ctx, packages, dev) {
369
+ const appRelative = relative(ctx.workspaceRoot, ctx.cwd).replaceAll('\\', '/');
370
+ const appSelector = appRelative ? `./${appRelative}` : '.';
371
+ const monorepo = ctx.workspaceRoot !== ctx.cwd;
372
+ switch (ctx.pm) {
238
373
  case 'pnpm':
239
- return { command: 'pnpm', args: ['add', ...(dev ? ['-D'] : []), ...packages] };
374
+ return {
375
+ command: 'pnpm',
376
+ args: [
377
+ ...(monorepo ? ['--filter', appSelector] : []),
378
+ 'add',
379
+ ...(!monorepo ? ['-w'] : []),
380
+ ...(dev ? ['-D'] : []),
381
+ ...packages,
382
+ ],
383
+ cwd: ctx.workspaceRoot,
384
+ };
240
385
  case 'yarn':
241
- return { command: 'yarn', args: ['add', ...(dev ? ['-D'] : []), ...packages] };
386
+ return monorepo && readAppPackageName(ctx)
387
+ ? {
388
+ command: 'yarn',
389
+ args: [
390
+ 'workspace',
391
+ readAppPackageName(ctx),
392
+ 'add',
393
+ ...(dev ? ['-D'] : []),
394
+ ...packages,
395
+ ],
396
+ cwd: ctx.workspaceRoot,
397
+ }
398
+ : { command: 'yarn', args: ['add', ...(dev ? ['-D'] : []), ...packages], cwd: ctx.cwd };
242
399
  case 'bun':
243
- return { command: 'bun', args: ['add', ...(dev ? ['-d'] : []), ...packages] };
400
+ return { command: 'bun', args: ['add', ...(dev ? ['-d'] : []), ...packages], cwd: ctx.cwd };
244
401
  case 'npm':
245
- return { command: 'npm', args: ['install', dev ? '--save-dev' : '--save', ...packages] };
402
+ return {
403
+ command: 'npm',
404
+ args: [
405
+ 'install',
406
+ ...(monorepo ? ['--workspace', appSelector] : []),
407
+ dev ? '--save-dev' : '--save',
408
+ ...packages,
409
+ ],
410
+ cwd: ctx.workspaceRoot,
411
+ };
412
+ }
413
+ }
414
+ function readAppPackageName(ctx) {
415
+ try {
416
+ const pkg = JSON.parse(readFileSync(ctx.resolve('package.json'), 'utf8'));
417
+ return pkg.name;
418
+ }
419
+ catch {
420
+ return undefined;
246
421
  }
247
422
  }
248
423
  //# sourceMappingURL=deps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/phases/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/phases/deps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deps.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.test.d.ts","sourceRoot":"","sources":["../../src/phases/deps.test.ts"],"names":[],"mappings":""}