@pob/version 1.2.1 → 1.3.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 (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index-node.mjs +45 -22
  3. package/dist/index-node.mjs.map +1 -1
  4. package/package.json +6 -1
  5. package/src/commands/version.ts +14 -2
  6. package/src/pm/BunPackageManager.ts +20 -3
  7. package/src/pm/PackageManager.ts +12 -2
  8. package/src/pm/YarnPackageManager.ts +28 -18
  9. package/.editorconfig +0 -13
  10. package/.yo-rc.json +0 -13
  11. package/__fixtures__/bun-basic/package.json +0 -4
  12. package/__fixtures__/bun-no-version/package.json +0 -3
  13. package/__fixtures__/yarn-basic/package.json +0 -4
  14. package/__fixtures__/yarn-basic/yarn.lock +0 -12
  15. package/__fixtures__/yarn-monorepo/package.json +0 -7
  16. package/__fixtures__/yarn-monorepo/packages/package-1/package.json +0 -4
  17. package/__fixtures__/yarn-monorepo/packages/package-2/package.json +0 -7
  18. package/__fixtures__/yarn-monorepo/packages/package-3/package.json +0 -7
  19. package/__fixtures__/yarn-monorepo/packages/package-4/package.json +0 -7
  20. package/__fixtures__/yarn-monorepo/packages/package-5/package.json +0 -8
  21. package/__fixtures__/yarn-monorepo/yarn.lock +0 -0
  22. package/__fixtures__/yarn-monorepo-duplicate-names/package.json +0 -7
  23. package/__fixtures__/yarn-monorepo-duplicate-names/packages/pkg-a/package.json +0 -4
  24. package/__fixtures__/yarn-monorepo-duplicate-names/packages/pkg-b/package.json +0 -4
  25. package/__fixtures__/yarn-monorepo-invalid-package-json/package.json +0 -7
  26. package/__fixtures__/yarn-monorepo-invalid-package-json/packages/pkg-with-invalid-json/package.json +0 -5
  27. package/__fixtures__/yarn-monorepo-nested/package.json +0 -9
  28. package/__fixtures__/yarn-monorepo-nested/packages/deep-nested/package.json +0 -4
  29. package/__fixtures__/yarn-monorepo-nested/packages/nested-1/packages/package-nested.json +0 -4
  30. package/__fixtures__/yarn-monorepo-nested/packages/nested-1/packages/package.json +0 -4
  31. package/__fixtures__/yarn-monorepo-nested/packages/package-1/package.json +0 -4
  32. package/__fixtures__/yarn-monorepo-no-name/package.json +0 -7
  33. package/__fixtures__/yarn-monorepo-no-name/packages/no-name-package/package.json +0 -3
  34. package/__fixtures__/yarn-monorepo-object-form/package.json +0 -9
  35. package/__fixtures__/yarn-monorepo-object-form/packages/package-1/package.json +0 -4
  36. package/__fixtures__/yarn-monorepo-object-form/packages/package-2/package.json +0 -4
  37. package/__fixtures__/yarn-monorepo-object-form/packages/package-3/package.json +0 -4
  38. package/__fixtures__/yarn-monorepo-object-form/packages/package-4/package.json +0 -4
  39. package/__fixtures__/yarn-monorepo-object-form/packages/package-5/package.json +0 -4
  40. package/__fixtures__/yarn-no-version/package.json +0 -3
  41. package/__fixtures__/yarn-no-version/yarn.lock +0 -0
  42. package/__fixtures__/yarn-with-lifecycle/package.json +0 -7
  43. package/__fixtures__/yarn-with-lifecycle/yarn.lock +0 -11
  44. package/rollup.config.mjs +0 -12
  45. package/tsconfig.json +0 -21
  46. package/vitest.config.js +0 -9
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.3.0](https://github.com/christophehurpeau/pob/compare/@pob/version@1.2.2...@pob/version@1.3.0) (2025-12-06)
7
+
8
+ ### Features
9
+
10
+ * try to implement provenance publish with bun
11
+
12
+ ## [1.2.2](https://github.com/christophehurpeau/pob/compare/@pob/version@1.2.1...@pob/version@1.2.2) (2025-12-06)
13
+
14
+ ### Bug Fixes
15
+
16
+ * properly configure app published to npm
17
+
6
18
  ## [1.2.1](https://github.com/christophehurpeau/pob/compare/@pob/version@1.2.0...@pob/version@1.2.1) (2025-12-06)
7
19
 
8
20
  ### Bug Fixes
@@ -167,8 +167,18 @@ const BunPackageManager = {
167
167
  async runScript(workspace, scriptName) {
168
168
  await execCommand(workspace, ["bun", "run", scriptName], "inherit");
169
169
  },
170
- async publish(workspace) {
171
- await execCommand(workspace, ["bun", "publish"], "inherit");
170
+ async publish(workspace, options) {
171
+ if (options?.provenance) {
172
+ const packResult = await execCommand(workspace, ["bun", "pack"]);
173
+ const lines = packResult.stdout.trim().split("\n");
174
+ const tgzPath = lines.find((line) => line.endsWith(".tgz")) ?? lines.at(-1);
175
+ if (!tgzPath) {
176
+ throw new Error("Failed to extract .tgz path from bun pack output");
177
+ }
178
+ await execCommand(workspace, ["npm", "publish", "--provenance", tgzPath]);
179
+ } else {
180
+ await execCommand(workspace, ["bun", "publish"], "inherit");
181
+ }
172
182
  }
173
183
  };
174
184
 
@@ -179,24 +189,28 @@ const YarnPackageManager = {
179
189
  async runScript(workspace, scriptName) {
180
190
  await execCommand(workspace, ["yarn", "run", scriptName], "inherit");
181
191
  },
182
- async publish(workspace) {
183
- await execCommand(workspace, ["yarn", "npm", "publish"], "inherit");
192
+ async publish(workspace, options) {
193
+ const publishArgs = ["yarn", "npm", "publish"];
194
+ if (options?.provenance) {
195
+ publishArgs.push("--provenance");
196
+ }
197
+ await execCommand(workspace, publishArgs, "inherit");
184
198
  },
185
- async publishWorkspaces(rootWorkspace) {
186
- await execCommand(
187
- rootWorkspace,
188
- [
189
- "yarn",
190
- "workspaces",
191
- "foreach",
192
- "--all",
193
- "--parallel",
194
- "--no-private",
195
- "npm",
196
- "publish"
197
- ],
198
- "inherit"
199
- );
199
+ async publishWorkspaces(rootWorkspace, options) {
200
+ const publishArgs = [
201
+ "yarn",
202
+ "workspaces",
203
+ "foreach",
204
+ "--all",
205
+ "--parallel",
206
+ "--no-private",
207
+ "npm",
208
+ "publish"
209
+ ];
210
+ if (options?.provenance) {
211
+ publishArgs.push("--provenance");
212
+ }
213
+ await execCommand(rootWorkspace, publishArgs, "inherit");
200
214
  }
201
215
  };
202
216
 
@@ -1313,7 +1327,9 @@ ${tagsInCommitMessage}` : rootNewVersion
1313
1327
  }
1314
1328
  await logger.group("Publishing packages", async () => {
1315
1329
  if (packageManager.publishWorkspaces) {
1316
- await packageManager.publishWorkspaces(rootWorkspace);
1330
+ await packageManager.publishWorkspaces(rootWorkspace, {
1331
+ provenance: options.publishProvenance
1332
+ });
1317
1333
  } else {
1318
1334
  for (const [workspace] of bumpedWorkspaces.entries()) {
1319
1335
  if (workspace.pkg.private) {
@@ -1323,7 +1339,9 @@ ${tagsInCommitMessage}` : rootNewVersion
1323
1339
  continue;
1324
1340
  }
1325
1341
  logger.info(`Publishing ${getWorkspaceName(workspace)}`);
1326
- await packageManager.publish(workspace);
1342
+ await packageManager.publish(workspace, {
1343
+ provenance: options.publishProvenance
1344
+ });
1327
1345
  }
1328
1346
  }
1329
1347
  });
@@ -1411,7 +1429,12 @@ program.command("version", { isDefault: true }).usage("Bump package version usin
1411
1429
  "--package-manager <manager>",
1412
1430
  "Specify the package manager to use (bun or yarn). Autodetected if not specified."
1413
1431
  ).choices(["bun", "yarn"])
1414
- ).addOption(new Option("--publish", "Publish after versioning").default(false)).action((options) => versionCommandAction(options));
1432
+ ).addOption(new Option("--publish", "Publish after versioning").default(false)).addOption(
1433
+ new Option(
1434
+ "--publish-provenance",
1435
+ "Generate provenance attestation when publishing (if supported by package manager)"
1436
+ ).default(false)
1437
+ ).action((options) => versionCommandAction(options));
1415
1438
 
1416
1439
  const pkg = JSON.parse(
1417
1440
  // eslint-disable-next-line unicorn/prefer-json-parse-buffer