@savvy-web/silk 3.2.9 → 3.2.11

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.
@@ -2332,7 +2332,7 @@ var GlobSet = class GlobSet extends effect.Schema.Class("GlobSet")(effect.Schema
2332
2332
  }
2333
2333
  };
2334
2334
  //#endregion
2335
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/BunExtension.js
2335
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/BunExtension.js
2336
2336
  /**
2337
2337
  * Extension data specific to bun lockfiles, attached to `Lockfile.extension`
2338
2338
  * when the format is `"bun"`.
@@ -2353,7 +2353,7 @@ var BunExtension = class extends effect.Schema.Class("BunExtension")({
2353
2353
  trustedDependencies: effect.Schema.optionalKey(effect.Schema.Array(effect.Schema.String))
2354
2354
  }) {};
2355
2355
  //#endregion
2356
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/CatalogResolver.js
2356
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/CatalogResolver.js
2357
2357
  /**
2358
2358
  * Contract for resolving pnpm `catalog:` dependency specifiers to concrete
2359
2359
  * version ranges.
@@ -2399,7 +2399,7 @@ var CatalogResolver = class CatalogResolver extends effect.Context.Service()("@e
2399
2399
  static noop = effect.Layer.succeed(CatalogResolver, { rangeOf: () => effect.Effect.succeed(effect.Option.none()) });
2400
2400
  };
2401
2401
  //#endregion
2402
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/WorkspaceResolver.js
2402
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/WorkspaceResolver.js
2403
2403
  /**
2404
2404
  * Raised when a `catalog:` or `workspace:` specifier cannot be resolved
2405
2405
  * because the resolution mechanism itself failed — not for an ordinary
@@ -2460,7 +2460,7 @@ var WorkspaceResolver = class WorkspaceResolver extends effect.Context.Service()
2460
2460
  static noop = effect.Layer.succeed(WorkspaceResolver, { versionOf: () => effect.Effect.succeed(effect.Option.none()) });
2461
2461
  };
2462
2462
  //#endregion
2463
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/CatalogAssemblyError.js
2463
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/CatalogAssemblyError.js
2464
2464
  /**
2465
2465
  * Raised when a workspace's catalogs cannot be assembled — a `pnpm-workspace.yaml`
2466
2466
  * that is unreadable or not valid YAML, a root `package.json` `workspaces` field
@@ -2504,7 +2504,7 @@ var CatalogAssemblyError = class extends effect.Schema.TaggedErrorClass()("Catal
2504
2504
  }
2505
2505
  };
2506
2506
  //#endregion
2507
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/DependencySection.js
2507
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/DependencySection.js
2508
2508
  /**
2509
2509
  * The short dependency kind: which dependency map an entry came from, named the
2510
2510
  * way consumers branch on it.
@@ -4005,7 +4005,7 @@ const isComparatorSetSubset = (sub, sup) => {
4005
4005
  return true;
4006
4006
  };
4007
4007
  //#endregion
4008
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/DependencySpecifier.js
4008
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/DependencySpecifier.js
4009
4009
  /**
4010
4010
  * Indicates that a string could not be parsed as a valid dependency specifier.
4011
4011
  *
@@ -4212,7 +4212,7 @@ const DependencySpecifier = Object.assign(brandedSpecifier, {
4212
4212
  FromString: fromString
4213
4213
  });
4214
4214
  //#endregion
4215
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/IntegrityHash.js
4215
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/IntegrityHash.js
4216
4216
  const SRI_RE = /^(sha1|sha256|sha384|sha512)-[A-Za-z0-9+/]+={0,2}$/;
4217
4217
  const COREPACK_RE = /^(sha1|sha256|sha384|sha512)\.[0-9a-f]+$/;
4218
4218
  const YARN_RE = /^[0-9]+(c[0-9]+)?\/[0-9a-f]+$/;
@@ -4278,15 +4278,22 @@ const PREFIXES = {
4278
4278
  "--no",
4279
4279
  "--"
4280
4280
  ],
4281
- dlxPrefix: ["npx"]
4281
+ dlxPrefix: ["npx"],
4282
+ scriptPrefix: [
4283
+ "npm",
4284
+ "run",
4285
+ "--"
4286
+ ]
4282
4287
  },
4283
4288
  pnpm: {
4284
4289
  prefix: ["pnpm", "exec"],
4285
- dlxPrefix: ["pnpm", "dlx"]
4290
+ dlxPrefix: ["pnpm", "dlx"],
4291
+ scriptPrefix: ["pnpm", "run"]
4286
4292
  },
4287
4293
  yarn: {
4288
4294
  prefix: ["yarn", "exec"],
4289
- dlxPrefix: ["yarn", "dlx"]
4295
+ dlxPrefix: ["yarn", "dlx"],
4296
+ scriptPrefix: ["yarn", "run"]
4290
4297
  },
4291
4298
  bun: {
4292
4299
  prefix: [
@@ -4294,15 +4301,16 @@ const PREFIXES = {
4294
4301
  "x",
4295
4302
  "--no-install"
4296
4303
  ],
4297
- dlxPrefix: ["bun", "x"]
4304
+ dlxPrefix: ["bun", "x"],
4305
+ scriptPrefix: ["bun", "run"]
4298
4306
  }
4299
4307
  };
4300
4308
  /**
4301
4309
  * How to run a project-local binary here.
4302
4310
  *
4303
4311
  * @remarks
4304
- * This is the whole of what tool discovery needs from a workspace: an argv
4305
- * prefix and a directory to run it in. It deliberately carries no workspace
4312
+ * This is the whole of what tool discovery needs from a workspace: argv
4313
+ * prefixes and a directory to run them in. It deliberately carries no workspace
4306
4314
  * root, no manifest and no package-manager semantics — `label` is for
4307
4315
  * reporting only, and nothing in this package branches on it.
4308
4316
  *
@@ -4315,6 +4323,8 @@ var ExecContext = class extends effect.Schema.Class("ExecContext")({
4315
4323
  prefix: effect.Schema.Array(effect.Schema.String),
4316
4324
  /** argv prefix that fetch-and-runs a package binary, e.g. `["pnpm", "dlx"]`. */
4317
4325
  dlxPrefix: effect.Schema.Array(effect.Schema.String),
4326
+ /** argv prefix that runs a `package.json` script, e.g. `["pnpm", "run"]`. */
4327
+ scriptPrefix: effect.Schema.Array(effect.Schema.String),
4318
4328
  /** Directory the prefix must run in. Omitted means "wherever the caller is". */
4319
4329
  directory: effect.Schema.optionalKey(effect.Schema.String)
4320
4330
  }) {
@@ -4327,6 +4337,19 @@ var ExecContext = class extends effect.Schema.Class("ExecContext")({
4327
4337
  return this.withPrefix(command, this.dlxPrefix);
4328
4338
  }
4329
4339
  /**
4340
+ * As {@link ExecContext.apply}, using `scriptPrefix` — runs a
4341
+ * `package.json` script by name.
4342
+ *
4343
+ * @remarks
4344
+ * The command's `command` is the script name and its `args` are the script's
4345
+ * arguments. Every launcher uses the explicit `run` form, and npm's prefix
4346
+ * carries a trailing `--` because bare `npm run <script> --flag` silently
4347
+ * claims `--flag` for npm itself instead of the script.
4348
+ */
4349
+ applyScript(command) {
4350
+ return this.withPrefix(command, this.scriptPrefix);
4351
+ }
4352
+ /**
4330
4353
  * Core's `prefix` and `setCwd` both return NEW commands, so the caller's
4331
4354
  * value is never mutated.
4332
4355
  */
@@ -4377,9 +4400,21 @@ var LocalExecError = class extends effect.Schema.TaggedErrorClass()("LocalExecEr
4377
4400
  * @public
4378
4401
  */
4379
4402
  var LocalExec = class LocalExec extends effect.Context.Service()("@effected/commands/LocalExec") {
4380
- /** The exec and dlx argv prefixes for a launcher — the single home of that knowledge. */
4403
+ /** The exec, dlx and script-runner argv prefixes for a launcher — the single home of that knowledge. */
4381
4404
  static prefixes = (launcher) => PREFIXES[launcher];
4382
4405
  /**
4406
+ * The argv prefix that runs a `package.json` script for `launcher`.
4407
+ *
4408
+ * @remarks
4409
+ * A projection of {@link LocalExec.prefixes} for the caller that only runs
4410
+ * scripts. Every launcher uses the explicit `run` form —
4411
+ * `["npm", "run", "--"]`, `["pnpm", "run"]`, `["yarn", "run"]` and
4412
+ * `["bun", "run"]` — and npm's carries a trailing `--` because bare
4413
+ * `npm run <script> --flag` silently claims `--flag` for npm itself; the
4414
+ * other three forward post-script arguments without it.
4415
+ */
4416
+ static scriptPrefix = (launcher) => PREFIXES[launcher].scriptPrefix;
4417
+ /**
4383
4418
  * No project-local execution context: every tool resolves globally.
4384
4419
  *
4385
4420
  * @remarks
@@ -4389,11 +4424,12 @@ var LocalExec = class LocalExec extends effect.Context.Service()("@effected/comm
4389
4424
  static layerNone = effect.Layer.succeed(this, { context: effect.Effect.succeed(effect.Option.none()) });
4390
4425
  /** A context for a known package manager, from the static prefix table. */
4391
4426
  static layerFor = (launcher, options) => {
4392
- const { prefix, dlxPrefix } = PREFIXES[launcher];
4427
+ const { prefix, dlxPrefix, scriptPrefix } = PREFIXES[launcher];
4393
4428
  return LocalExec.layerContext(ExecContext.make({
4394
4429
  label: launcher,
4395
4430
  prefix,
4396
4431
  dlxPrefix,
4432
+ scriptPrefix,
4397
4433
  ...options?.directory === void 0 ? {} : { directory: options.directory }
4398
4434
  }));
4399
4435
  };
@@ -4423,7 +4459,7 @@ var LocalExec = class LocalExec extends effect.Context.Service()("@effected/comm
4423
4459
  static layerTest = (overrides = {}) => effect.Layer.succeed(LocalExec, LocalExec.makeTest(overrides));
4424
4460
  };
4425
4461
  //#endregion
4426
- //#region ../../node_modules/.pnpm/@effected+npm@0.5.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/ReleaseAgeGate.js
4462
+ //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/ReleaseAgeGate.js
4427
4463
  const MS_PER_MINUTE = 6e4;
4428
4464
  /**
4429
4465
  * A source's partial contribution to a {@link ReleaseAgeGate}: the effective
@@ -4593,7 +4629,7 @@ var ReleaseAgeGate = class ReleaseAgeGate extends effect.Schema.Class("ReleaseAg
4593
4629
  }
4594
4630
  };
4595
4631
  //#endregion
4596
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/ImporterDependency.js
4632
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/ImporterDependency.js
4597
4633
  /**
4598
4634
  * One declared dependency of one workspace importer, as the lockfile records it.
4599
4635
  *
@@ -4631,7 +4667,7 @@ var ImporterDependency = class extends effect.Schema.Class("ImporterDependency")
4631
4667
  depType: DependencyField
4632
4668
  }) {};
4633
4669
  //#endregion
4634
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/LockfileImporter.js
4670
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/LockfileImporter.js
4635
4671
  /**
4636
4672
  * One workspace importer's declared dependencies, as the lockfile records them.
4637
4673
  *
@@ -4655,7 +4691,7 @@ var LockfileImporter = class extends effect.Schema.Class("LockfileImporter")({
4655
4691
  dependencies: effect.Schema.Array(ImporterDependency)
4656
4692
  }) {};
4657
4693
  //#endregion
4658
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/ResolvedPackage.js
4694
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/ResolvedPackage.js
4659
4695
  const EMPTY_DEPENDENCIES = {};
4660
4696
  /**
4661
4697
  * A package resolved from a lockfile.
@@ -4690,7 +4726,7 @@ var ResolvedPackage = class extends effect.Schema.Class("ResolvedPackage")({
4690
4726
  dependencies: effect.Schema.Record(effect.Schema.String, effect.Schema.String).pipe(effect.Schema.withDecodingDefaultKey(effect.Effect.succeed(EMPTY_DEPENDENCIES)), effect.Schema.withConstructorDefault(effect.Effect.succeed(EMPTY_DEPENDENCIES)))
4691
4727
  }) {};
4692
4728
  //#endregion
4693
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/WorkspaceDependency.js
4729
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/WorkspaceDependency.js
4694
4730
  /**
4695
4731
  * A directed dependency edge between two workspace packages as recorded in
4696
4732
  * the lockfile.
@@ -4712,7 +4748,7 @@ var WorkspaceDependency = class extends effect.Schema.Class("WorkspaceDependency
4712
4748
  constraint: effect.Schema.String
4713
4749
  }) {};
4714
4750
  //#endregion
4715
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/PnpmExtension.js
4751
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/PnpmExtension.js
4716
4752
  /**
4717
4753
  * Extension data specific to pnpm lockfiles, attached to `Lockfile.extension`
4718
4754
  * when the format is `"pnpm"`.
@@ -4737,7 +4773,7 @@ var PnpmExtension = class extends effect.Schema.Class("PnpmExtension")({
4737
4773
  }))
4738
4774
  }) {};
4739
4775
  //#endregion
4740
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/LockfileFormat.js
4776
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/LockfileFormat.js
4741
4777
  /**
4742
4778
  * The lockfile formats this package parses: bun's `bun.lock` (JSONC), npm's
4743
4779
  * `package-lock.json` (v2/v3 JSON), pnpm's `pnpm-lock.yaml` and yarn Berry's
@@ -4771,7 +4807,7 @@ const FILENAMES = {
4771
4807
  */
4772
4808
  const filenameFor = (format) => FILENAMES[format];
4773
4809
  //#endregion
4774
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/internal/shared.js
4810
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/internal/shared.js
4775
4811
  /**
4776
4812
  * The four dependency sections of a manifest, in a stable order — the shared
4777
4813
  * dependency-sections table (v3's `DEP_SECTIONS`). Each entry is both the
@@ -6702,7 +6738,7 @@ var JsoncModifier = class {
6702
6738
  });
6703
6739
  };
6704
6740
  //#endregion
6705
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/internal/bun.js
6741
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/internal/bun.js
6706
6742
  const DepRecord$2 = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
6707
6743
  const BunWorkspaceEntry = effect.Schema.Struct({
6708
6744
  name: effect.Schema.optionalKey(effect.Schema.String),
@@ -6795,7 +6831,7 @@ const toFields$3 = (raw) => effect.Effect.gen(function* () {
6795
6831
  };
6796
6832
  });
6797
6833
  //#endregion
6798
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/internal/npm.js
6834
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/internal/npm.js
6799
6835
  const DepRecord$1 = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
6800
6836
  const NpmPackageEntry = effect.Schema.Struct({
6801
6837
  name: effect.Schema.optionalKey(effect.Schema.String),
@@ -13717,7 +13753,7 @@ function deepEqualValues(a, b) {
13717
13753
  return false;
13718
13754
  }
13719
13755
  //#endregion
13720
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/internal/documents.js
13756
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/internal/documents.js
13721
13757
  /**
13722
13758
  * An empty YAML document composes to `null` (`Yaml.parseAll("")` is `[null]`,
13723
13759
  * and the trailing document of an env-only `pnpm-lock.yaml` is `null` too).
@@ -13787,7 +13823,7 @@ const selectSoleDocument = (content) => effect.Effect.gen(function* () {
13787
13823
  };
13788
13824
  });
13789
13825
  //#endregion
13790
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/internal/pnpm.js
13826
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/internal/pnpm.js
13791
13827
  const PnpmImporterDeps = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.Struct({
13792
13828
  specifier: effect.Schema.String,
13793
13829
  version: effect.Schema.String
@@ -13912,7 +13948,7 @@ const toFields$1 = (raw) => effect.Effect.gen(function* () {
13912
13948
  };
13913
13949
  });
13914
13950
  //#endregion
13915
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/internal/yarn.js
13951
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/internal/yarn.js
13916
13952
  const YarnLockfileRaw = effect.Schema.Record(effect.Schema.String, effect.Schema.Unknown);
13917
13953
  const DepRecord = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
13918
13954
  const YarnEntry = effect.Schema.Struct({
@@ -14035,7 +14071,7 @@ const cleanYarnDeps = (deps) => {
14035
14071
  return Object.fromEntries(Object.entries(deps).map(([name, value]) => [name, value.startsWith("npm:") ? value.slice(4) : value]));
14036
14072
  };
14037
14073
  //#endregion
14038
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/Lockfile.js
14074
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/Lockfile.js
14039
14075
  const EMPTY_IMPORTERS = [];
14040
14076
  /**
14041
14077
  * Failure of `Lockfile.parse`: the given content is not a valid lockfile of
@@ -14279,7 +14315,7 @@ var Lockfile = class Lockfile extends effect.Schema.Class("Lockfile")({
14279
14315
  }
14280
14316
  };
14281
14317
  //#endregion
14282
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._44d8f67a8ab767df898f59f0e01343be/node_modules/@effected/lockfiles/LockfileIntegrity.js
14318
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/LockfileIntegrity.js
14283
14319
  /**
14284
14320
  * The minimal manifest shape {@link LockfileIntegrity.compare} checks a
14285
14321
  * lockfile against: a package name plus the four optional dependency maps.
@@ -14395,7 +14431,7 @@ var LockfileIntegrity = class LockfileIntegrity extends effect.Schema.Class("Loc
14395
14431
  }
14396
14432
  };
14397
14433
  //#endregion
14398
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/Dependency.js
14434
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/Dependency.js
14399
14435
  /**
14400
14436
  * A resolved dependency entry pairing a package name with its version
14401
14437
  * specifier and the `kind` of map it came from (`@effected/npm`'s
@@ -14459,7 +14495,7 @@ var Dependency = class extends effect.Schema.Class("Dependency")({
14459
14495
  }
14460
14496
  };
14461
14497
  //#endregion
14462
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/DevEngines.js
14498
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/DevEngines.js
14463
14499
  /**
14464
14500
  * A single `devEngines` constraint with a name and optional `version` / `onFail`.
14465
14501
  *
@@ -16014,7 +16050,7 @@ effect.Schema.String.pipe(effect.Schema.decodeTo(SpdxExpressionUnion, effect.Sch
16014
16050
  encode: (expression) => effect.Effect.succeed(serialize$1(expression))
16015
16051
  })));
16016
16052
  //#endregion
16017
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/License.js
16053
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/License.js
16018
16054
  /**
16019
16055
  * Indicates that a string is not a valid SPDX license identifier or expression.
16020
16056
  *
@@ -16049,7 +16085,7 @@ const isValidSpdx = (value) => {
16049
16085
  */
16050
16086
  const SpdxLicense = effect.Schema.String.pipe(effect.Schema.check(effect.Schema.makeFilter((value) => isValidSpdx(value) ? void 0 : "Expected a valid SPDX license expression")), effect.Schema.brand("SpdxLicense"));
16051
16087
  //#endregion
16052
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/PackageManager.js
16088
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/PackageManager.js
16053
16089
  const PACKAGE_MANAGER_RE = /^([a-z]+)@(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+)?)(?:\+(.+))?$/;
16054
16090
  /**
16055
16091
  * The `packageManager` field only ever carries corepack's `<algo>.<hex>`
@@ -16107,7 +16143,7 @@ var PackageManager = class PackageManager extends effect.Schema.Class("PackageMa
16107
16143
  }
16108
16144
  };
16109
16145
  //#endregion
16110
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/PackageName.js
16146
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/PackageName.js
16111
16147
  /**
16112
16148
  * Indicates that a string could not be used as a valid npm package name.
16113
16149
  *
@@ -16165,7 +16201,7 @@ const PackageName = Object.assign(effect.Schema.Union([ScopedPackageName, Unscop
16165
16201
  isScoped
16166
16202
  });
16167
16203
  //#endregion
16168
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/Person.js
16204
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/Person.js
16169
16205
  const parsePersonString = (input) => {
16170
16206
  const emailMatch = input.match(/<([^>]+)>/);
16171
16207
  const urlMatch = input.match(/\(([^)]+)\)/);
@@ -16311,7 +16347,7 @@ var Person = class Person extends effect.Schema.Class("Person")({
16311
16347
  }
16312
16348
  };
16313
16349
  //#endregion
16314
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/Repository.js
16350
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/Repository.js
16315
16351
  /** The shorthand hosts npm resolves without a scheme. */
16316
16352
  const SHORTHAND_HOSTS = /* @__PURE__ */ new Map([
16317
16353
  ["github", "https://github.com"],
@@ -16486,7 +16522,7 @@ var Bugs = class Bugs extends effect.Schema.Class("Bugs")({
16486
16522
  })));
16487
16523
  };
16488
16524
  //#endregion
16489
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/internal/format.js
16525
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/internal/format.js
16490
16526
  const KEY_INDEX = new Map([
16491
16527
  "$schema",
16492
16528
  "name",
@@ -16709,7 +16745,7 @@ const renderJson = (raw, options) => {
16709
16745
  return options.newline ? `${json}\n` : json;
16710
16746
  };
16711
16747
  //#endregion
16712
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.0_effect@4.0.0-beta.101/node_modules/@effected/package-json/Package.js
16748
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/Package.js
16713
16749
  const toHashMap = effect.SchemaTransformation.transform({
16714
16750
  decode: (record) => effect.HashMap.fromIterable(Object.entries(record)),
16715
16751
  encode: (map) => Object.fromEntries(effect.HashMap.toEntries(map))
@@ -17024,7 +17060,7 @@ var Package = class Package extends effect.Schema.Class("Package")({
17024
17060
  }
17025
17061
  };
17026
17062
  //#endregion
17027
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspacePackage.js
17063
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspacePackage.js
17028
17064
  const EMPTY$1 = Object.freeze(Object.create(null));
17029
17065
  const EMPTY_MANIFEST = Object.freeze(Object.create(null));
17030
17066
  /**
@@ -17622,7 +17658,7 @@ var Walker$1 = class {
17622
17658
  static findRoot = findRoot$1;
17623
17659
  };
17624
17660
  //#endregion
17625
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceRoot.js
17661
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceRoot.js
17626
17662
  /**
17627
17663
  * The marker filenames {@link WorkspaceRoot} probes for, in priority order.
17628
17664
  *
@@ -17809,7 +17845,7 @@ var WorkspaceRoot = class WorkspaceRoot extends effect.Context.Service()("@effec
17809
17845
  static layerTest = (root) => effect.Layer.effect(WorkspaceRoot, WorkspaceRoot.makeTest(root)).pipe(effect.Layer.provide(effect.Path.layer));
17810
17846
  };
17811
17847
  //#endregion
17812
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/limits.js
17848
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/limits.js
17813
17849
  /**
17814
17850
  * Hard ceiling on directories the enumerator will visit for one pattern set.
17815
17851
  * Guards the pathological case a depth cap alone does not: a wide, shallow
@@ -17827,7 +17863,7 @@ const MAX_ENUMERATION_ENTRIES = 1e5;
17827
17863
  */
17828
17864
  const PRUNED_DIRECTORIES = /* @__PURE__ */ new Set([".git", "node_modules"]);
17829
17865
  //#endregion
17830
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/traverse.js
17866
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/traverse.js
17831
17867
  /** Directory names never descended into. */
17832
17868
  const isPruned = (entry) => PRUNED_DIRECTORIES.has(entry);
17833
17869
  /** Join root-relative POSIX segments; `""` is the root itself. */
@@ -17917,7 +17953,7 @@ var Traversal = class {
17917
17953
  }
17918
17954
  };
17919
17955
  //#endregion
17920
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/enumerate.js
17956
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/enumerate.js
17921
17957
  /** Strip a trailing slash from `GlobPattern.enumerationPrefix` to get a relative directory. */
17922
17958
  const baseOf = (pattern) => pattern.enumerationPrefix.replace(/\/$/, "");
17923
17959
  /**
@@ -17987,7 +18023,7 @@ const enumerate = (root, globs, options) => effect.Effect.gen(function* () {
17987
18023
  return results;
17988
18024
  });
17989
18025
  //#endregion
17990
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/patterns.js
18026
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/patterns.js
17991
18027
  const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
17992
18028
  /** The `packages:` list of a `pnpm-workspace.yaml` document. Total on a parsed document. */
17993
18029
  const pnpmPatternsOf = (document) => {
@@ -18044,7 +18080,7 @@ const readPatterns = (root) => effect.Effect.gen(function* () {
18044
18080
  return manifestPatternsOf(manifest);
18045
18081
  });
18046
18082
  //#endregion
18047
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceDiscovery.js
18083
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceDiscovery.js
18048
18084
  /**
18049
18085
  * Raised when a workspace member's `package.json` cannot be read, parsed, or
18050
18086
  * used — it is missing, malformed, or lacks a `name` or `version`.
@@ -18364,7 +18400,10 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends effect.Context.Service
18364
18400
  * (a fabricated root path would leak into consumer path logic), so an
18365
18401
  * unstubbed `info()` call is a test-wiring mistake and fails loudly as a
18366
18402
  * defect rather than succeeding with a lie or failing with a dishonest
18367
- * typed error.
18403
+ * typed error. A defect is not absorbed by `Effect.catch` or any
18404
+ * typed-error handler — deliberately, so code under test with a
18405
+ * best-effort `catch` cannot make the mandatory stub look optional; the
18406
+ * unstubbed call still fails the test.
18368
18407
  *
18369
18408
  * @example
18370
18409
  * ```ts
@@ -18478,7 +18517,7 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends effect.Context.Service
18478
18517
  };
18479
18518
  const isStringRecord$2 = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && Object.values(value).every((entry) => typeof entry === "string");
18480
18519
  //#endregion
18481
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/DependencyGraph.js
18520
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/DependencyGraph.js
18482
18521
  /**
18483
18522
  * Raised when the workspace dependency graph cannot be topologically ordered
18484
18523
  * because it contains a cycle.
@@ -20122,7 +20161,7 @@ var Git = class Git extends effect.Context.Service()("@effected/git/Git") {
20122
20161
  static layerTest = (overrides = {}) => effect.Layer.succeed(Git, Git.makeTest(overrides));
20123
20162
  };
20124
20163
  //#endregion
20125
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/ChangeDetector.js
20164
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/ChangeDetector.js
20126
20165
  /**
20127
20166
  * Which git refs to compare, and whether to fold in the working tree.
20128
20167
  *
@@ -20374,7 +20413,7 @@ function resolveFromCatalog(catalogs, wantedDependency) {
20374
20413
  };
20375
20414
  }
20376
20415
  //#endregion
20377
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/catalogs.js
20416
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/catalogs.js
20378
20417
  /** Project a pnpm-workspace manifest's `catalog` / `catalogs` fields into a `Catalogs` map. */
20379
20418
  const inlineCatalogs = (manifest) => {
20380
20419
  if (manifest.catalog === void 0 && manifest.catalogs === void 0) return {};
@@ -20438,7 +20477,7 @@ const rangeOf = (catalogs, dependency, specifier) => {
20438
20477
  });
20439
20478
  };
20440
20479
  //#endregion
20441
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/ConfigDependencyHooks.js
20480
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/ConfigDependencyHooks.js
20442
20481
  /** Whether `value` is a non-null, non-array object. */
20443
20482
  const isObject$2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
20444
20483
  /**
@@ -20624,7 +20663,7 @@ var ConfigDependencyHooks = class ConfigDependencyHooks extends effect.Context.S
20624
20663
  }) });
20625
20664
  };
20626
20665
  //#endregion
20627
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/PackageManagerName.js
20666
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/PackageManagerName.js
20628
20667
  /**
20629
20668
  * The four package managers this package understands.
20630
20669
  *
@@ -20914,6 +20953,11 @@ var PackageManagerDetector = class PackageManagerDetector extends effect.Context
20914
20953
  * reads as a legitimate "no manager here" answer, so a consumer would branch
20915
20954
  * on it and proceed, never learning that the test simply forgot to stub.
20916
20955
  *
20956
+ * The defect is also not absorbed by `Effect.catch` or any typed-error
20957
+ * handler — deliberately, so code under test with a best-effort `catch`
20958
+ * around detection cannot make the mandatory stub look optional; the
20959
+ * unstubbed call still fails the test.
20960
+ *
20917
20961
  * @param overrides - Members to supply; anything omitted dies on use.
20918
20962
  *
20919
20963
  * @example
@@ -20947,7 +20991,7 @@ var PackageManagerDetector = class PackageManagerDetector extends effect.Context
20947
20991
  static layerTest = (overrides = {}) => effect.Layer.succeed(PackageManagerDetector, PackageManagerDetector.makeTest(overrides));
20948
20992
  };
20949
20993
  //#endregion
20950
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/LockfileReader.js
20994
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/LockfileReader.js
20951
20995
  /**
20952
20996
  * Raised when the workspace's lockfile cannot be read off disk.
20953
20997
  *
@@ -21127,7 +21171,7 @@ var LockfileReader = class LockfileReader extends effect.Context.Service()("@eff
21127
21171
  static layerTest = (overrides = {}) => effect.Layer.succeed(LockfileReader, LockfileReader.makeTest(overrides));
21128
21172
  };
21129
21173
  //#endregion
21130
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/Publishability.js
21174
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/Publishability.js
21131
21175
  /** The public npm registry, used when `publishConfig.registry` says nothing. */
21132
21176
  const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
21133
21177
  /**
@@ -21264,8 +21308,15 @@ var PublishabilityDetector = class extends effect.Context.Service()("@effected/w
21264
21308
  * silence — `Layer.mergeAll(myDetector, Workspaces.layer())` resolved to the
21265
21309
  * default, because `mergeAll` is last-wins. For a service that decides
21266
21310
  * whether a package publishes and to which registry, that silent revert was
21267
- * the worst available failure. The requirement now sits in `R`, so the
21268
- * choice is made once, explicitly, and unmade wiring does not compile.
21311
+ * the worst available failure.
21312
+ *
21313
+ * The composites do not *require* a detector either — nothing inside them
21314
+ * asks a publishability question, so their `R` stays `FileSystem | Path`.
21315
+ * The requirement instead surfaces in the `R` of each operation that asks
21316
+ * (`VersioningStrategy.detect`, e.g.): a program that asks and never wires
21317
+ * a detector fails to compile where that operation's `R` must close — which
21318
+ * can be far from the layer-wiring site — and a program that never asks
21319
+ * never supplies a publish policy at all.
21269
21320
  */
21270
21321
  static layerNpm = effect.Layer.succeed(this, this.npm);
21271
21322
  /**
@@ -21279,7 +21330,7 @@ var PublishabilityDetector = class extends effect.Context.Service()("@effected/w
21279
21330
  static layerNone = effect.Layer.succeed(this, this.none);
21280
21331
  };
21281
21332
  //#endregion
21282
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/importerVersions.js
21333
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/internal/importerVersions.js
21283
21334
  /**
21284
21335
  * Strip pnpm's peer-disambiguation suffix from a recorded importer version.
21285
21336
  *
@@ -21365,7 +21416,7 @@ const unanimousVersionOf = (index, dependency) => {
21365
21416
  return agreed;
21366
21417
  };
21367
21418
  //#endregion
21368
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceCatalogs.js
21419
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceCatalogs.js
21369
21420
  /**
21370
21421
  * An immutable, fully-normalized catalog collection — the one catalog
21371
21422
  * resolution semantic in the package.
@@ -21874,7 +21925,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends effect.Context.Service()
21874
21925
  }));
21875
21926
  };
21876
21927
  //#endregion
21877
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
21928
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
21878
21929
  const EMPTY = Object.freeze(Object.create(null));
21879
21930
  const DependencyMap = effect.Schema.Record(effect.Schema.String, effect.Schema.String).pipe(effect.Schema.withDecodingDefaultKey(effect.Effect.succeed(EMPTY)), effect.Schema.withConstructorDefault(effect.Effect.succeed(EMPTY)));
21880
21931
  /**
@@ -22097,7 +22148,7 @@ var WorkspaceStateSnapshot = class extends effect.Schema.Class("WorkspaceStateSn
22097
22148
  }
22098
22149
  };
22099
22150
  //#endregion
22100
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceSnapshots.js
22151
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/WorkspaceSnapshots.js
22101
22152
  /** Whether `value` is a non-null, non-array object. */
22102
22153
  const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
22103
22154
  /** Whether every value in a record is a string — a usable dependency map. */
@@ -22261,7 +22312,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends effect.Context.Service
22261
22312
  return {
22262
22313
  at: effect.Effect.fn("WorkspaceSnapshots.at")(function* (ref) {
22263
22314
  const root = yield* effect.Effect.suspend(() => roots.find(options?.cwd ?? process.cwd()));
22264
- const key = `${root}${ref}`;
22315
+ const key = `${root}\0${ref}`;
22265
22316
  let memo = atCaches.get(key);
22266
22317
  if (memo === void 0) {
22267
22318
  const [resolveOnce, invalidate] = yield* effect.Effect.cachedInvalidateWithTTL(computeAt(root, ref), effect.Duration.infinity);
@@ -22319,6 +22370,13 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends effect.Context.Service
22319
22370
  * test-wiring mistake fails loudly as a defect rather than succeeding with a
22320
22371
  * lie.
22321
22372
  *
22373
+ * **A defect is not absorbed by `Effect.catch` or any typed-error handler**,
22374
+ * and that is the point: code under test with a best-effort `catch` around
22375
+ * its snapshot reads cannot make a mandatory stub look optional — the
22376
+ * unstubbed call still fails the test instead of quietly taking the catch
22377
+ * branch. Only defect-level combinators (`Effect.catchDefect`,
22378
+ * `Effect.exit`) would see it.
22379
+ *
22322
22380
  * @example
22323
22381
  * ```ts
22324
22382
  * import { CatalogSet, WorkspaceSnapshots, WorkspaceStateSnapshot } from "@effected/workspaces";
@@ -22366,7 +22424,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends effect.Context.Service
22366
22424
  static layerTest = (overrides = {}) => effect.Layer.succeed(WorkspaceSnapshots, WorkspaceSnapshots.makeTest(overrides));
22367
22425
  };
22368
22426
  //#endregion
22369
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/Workspaces.js
22427
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/Workspaces.js
22370
22428
  const compose = (options, catalogsFactory) => {
22371
22429
  const roots = WorkspaceRoot.layer;
22372
22430
  const detector = PackageManagerDetector.layer;
@@ -22399,11 +22457,12 @@ const localExecLayer = (options) => effect.Layer.effect(LocalExec, effect.Effect
22399
22457
  cause
22400
22458
  })));
22401
22459
  if (effect.Option.isNone(detected)) return effect.Option.none();
22402
- const { prefix, dlxPrefix } = LocalExec.prefixes(detected.value.name);
22460
+ const { prefix, dlxPrefix, scriptPrefix } = LocalExec.prefixes(detected.value.name);
22403
22461
  return effect.Option.some(ExecContext.make({
22404
22462
  label: detected.value.name,
22405
22463
  prefix,
22406
22464
  dlxPrefix,
22465
+ scriptPrefix,
22407
22466
  directory: root.value
22408
22467
  }));
22409
22468
  }) };
@@ -22417,13 +22476,23 @@ var Workspaces = class {
22417
22476
  constructor() {}
22418
22477
  /**
22419
22478
  * Every service that needs only a filesystem: root, package-manager
22420
- * detection, discovery, lockfile reading, catalogs and publishability.
22479
+ * detection, discovery, lockfile reading and catalogs.
22421
22480
  *
22422
22481
  * @remarks
22423
22482
  * Requires core `FileSystem` and `Path`, which the consumer provides at the
22424
22483
  * edge (`@effect/platform-node`, `@effect/platform-bun`, or a test's
22425
22484
  * `FileSystem.layerNoop`).
22426
22485
  *
22486
+ * **`PublishabilityDetector` is neither provided nor required here.** The
22487
+ * composite used to bake in npm semantics, which a naively-ordered override
22488
+ * silently lost to; now it supplies no default, and — because nothing inside
22489
+ * the composite asks a publishability question — it does not require one in
22490
+ * `R` either. The requirement surfaces in the `R` of each operation that
22491
+ * asks (`VersioningStrategy.detect`, e.g.), so a program that asks and never
22492
+ * wires a detector fails to compile at that operation, and a program that
22493
+ * never asks never supplies a publish policy. Wire one explicitly where
22494
+ * needed: `Layer.mergeAll(Workspaces.layer(), PublishabilityDetector.layerNpm)`.
22495
+ *
22427
22496
  * **Bind the result to a `const`.** This is a parameterized factory and
22428
22497
  * layers memoize by reference, so calling it twice builds everything twice.
22429
22498
  *
@@ -22479,7 +22548,8 @@ var Workspaces = class {
22479
22548
  * it. So `commands` declares the narrow contract and we ship the layer.
22480
22549
  *
22481
22550
  * **The argv knowledge is not duplicated.** `LocalExec.prefixes(name)` is
22482
- * the one home of the four managers' `exec`/`dlx` prefixes; this layer
22551
+ * the one home of the four managers' `exec`/`dlx`/script-runner prefixes;
22552
+ * this layer
22483
22553
  * detects *which* manager owns the directory and asks `commands` what that
22484
22554
  * manager's argv looks like. Neither package reimplements the other's
22485
22555
  * half.
@@ -45199,6 +45269,22 @@ function inferDependencyType(dep) {
45199
45269
  return "dependency";
45200
45270
  }
45201
45271
  /**
45272
+ * Narrow a dependency update to one with both version endpoints present.
45273
+ *
45274
+ * `@changesets/types` only guarantees `oldVersion`/`newVersion` on the
45275
+ * `major`/`minor`/`patch` arms of `ComprehensiveRelease`; a `type: "none"`
45276
+ * entry may carry neither. The table's `From`/`To` columns are validated
45277
+ * version strings, so an entry missing either endpoint has no row to render.
45278
+ *
45279
+ * @param dep - The dependency update to test
45280
+ * @returns `true` when both `oldVersion` and `newVersion` are present
45281
+ *
45282
+ * @internal
45283
+ */
45284
+ function isVersioned(dep) {
45285
+ return dep.oldVersion !== void 0 && dep.newVersion !== void 0;
45286
+ }
45287
+ /**
45202
45288
  * Format dependency release lines as a structured markdown table.
45203
45289
  *
45204
45290
  * This is the core Effect program that implements the `getDependencyReleaseLine`
@@ -45209,8 +45295,9 @@ function inferDependencyType(dep) {
45209
45295
  * The function maps each `ModCompWithPackage` entry to a `DependencyTableRow`,
45210
45296
  * inferring the dependency type from the consuming package's `package.json`,
45211
45297
  * then delegates to `serializeDependencyTableToMarkdown` for GFM table
45212
- * rendering, prefixed with a `### Dependencies` heading. Returns an empty
45213
- * string when no dependencies were updated.
45298
+ * rendering, prefixed with a `### Dependencies` heading. Entries missing
45299
+ * either version endpoint are dropped by {@link isVersioned}; the function
45300
+ * returns an empty string when no rows survive.
45214
45301
  *
45215
45302
  * The `_changesets` and `_options` parameters are part of the Changesets API
45216
45303
  * contract but are not used in the table format. They are retained for
@@ -45219,19 +45306,21 @@ function inferDependencyType(dep) {
45219
45306
  * @param _changesets - Changesets that caused the dependency updates (unused in table format)
45220
45307
  * @param dependenciesUpdated - The list of dependencies that were updated, including old/new versions
45221
45308
  * @param _options - Validated configuration options (unused in table format)
45222
- * @returns An `Effect` that resolves to a `### Dependencies` heading followed by a formatted markdown table string, or empty string if no dependencies were updated
45309
+ * @returns An `Effect` that resolves to a `### Dependencies` heading followed by a formatted markdown table string, or empty string if no dependencies with both version endpoints were updated
45223
45310
  */
45224
45311
  function getDependencyReleaseLine(_changesets, dependenciesUpdated, _options) {
45225
45312
  return effect.Effect.gen(function* () {
45226
45313
  if (dependenciesUpdated.length === 0) return "";
45227
45314
  yield* GitHubService;
45228
- return `### Dependencies\n\n${serializeDependencyTableToMarkdown(dependenciesUpdated.map((dep) => ({
45315
+ const rows = dependenciesUpdated.filter(isVersioned).map((dep) => ({
45229
45316
  dependency: dep.name,
45230
45317
  type: inferDependencyType(dep),
45231
45318
  action: "updated",
45232
45319
  from: dep.oldVersion,
45233
45320
  to: dep.newVersion
45234
- })))}`;
45321
+ }));
45322
+ if (rows.length === 0) return "";
45323
+ return `### Dependencies\n\n${serializeDependencyTableToMarkdown(rows)}`;
45235
45324
  });
45236
45325
  }
45237
45326
  //#endregion
@@ -48608,6 +48697,10 @@ const MaintenanceReasonSchema = effect.Schema.Struct({
48608
48697
  * will not match here; the release then degrades gracefully to the
48609
48698
  * `"unspecified"` fallback sentence instead of naming its triggers.
48610
48699
  *
48700
+ * Co-members releasing as `type: "none"` are never triggers — they carry no
48701
+ * version bump (and, per `@changesets/types`, no guaranteed `newVersion`), so
48702
+ * naming one would print an unchanged version as the cause of the release.
48703
+ *
48611
48704
  * @public
48612
48705
  */
48613
48706
  function deriveMaintenanceReason(release, plan, config) {
@@ -48615,7 +48708,7 @@ function deriveMaintenanceReason(release, plan, config) {
48615
48708
  const groupKinds = [["fixed", config.fixed], ["linked", config.linked]];
48616
48709
  for (const [kind, groups] of groupKinds) for (const group of groups) {
48617
48710
  if (!group.some((pattern) => ChangesetConfig.matches(release.name, pattern))) continue;
48618
- const triggers = plan.releases.filter((r) => r.name !== release.name && r.changesets.length > 0 && group.some((pattern) => ChangesetConfig.matches(r.name, pattern))).map((r) => ({
48711
+ const triggers = plan.releases.filter((r) => r.name !== release.name && r.type !== "none" && r.changesets.length > 0 && group.some((pattern) => ChangesetConfig.matches(r.name, pattern))).map((r) => ({
48619
48712
  name: r.name,
48620
48713
  version: r.newVersion
48621
48714
  }));
@@ -60256,7 +60349,7 @@ function validatePackages(packages) {
60256
60349
  }
60257
60350
  }
60258
60351
  //#endregion
60259
- //#region ../../node_modules/.pnpm/@changesets+get-dependents-graph@3.0.0-next.7/node_modules/@changesets/get-dependents-graph/dist/index.mjs
60352
+ //#region ../../node_modules/.pnpm/@changesets+get-dependents-graph@3.0.0-next.8/node_modules/@changesets/get-dependents-graph/dist/index.mjs
60260
60353
  var src_default = new Proxy({}, { get(target, color) {
60261
60354
  target[color] ??= (text) => (0, node_util.styleText)(color, text);
60262
60355
  return target[color];
@@ -60370,20 +60463,20 @@ function getDependentsGraph(packages, opts) {
60370
60463
  graph.set(key, dependentsLookup[key]);
60371
60464
  });
60372
60465
  const simplifiedDependentsGraph = /* @__PURE__ */ new Map();
60373
- graph.forEach((pkgInfo, pkgName) => {
60374
- simplifiedDependentsGraph.set(pkgName, pkgInfo.dependents);
60466
+ graph.forEach((info, pkgName) => {
60467
+ simplifiedDependentsGraph.set(pkgName, info.dependents);
60375
60468
  });
60376
60469
  return simplifiedDependentsGraph;
60377
60470
  }
60378
60471
  //#endregion
60379
- //#region ../../node_modules/.pnpm/@changesets+should-skip-package@1.0.0-next.7/node_modules/@changesets/should-skip-package/dist/index.mjs
60472
+ //#region ../../node_modules/.pnpm/@changesets+should-skip-package@1.0.0-next.8/node_modules/@changesets/should-skip-package/dist/index.mjs
60380
60473
  function shouldSkipPackage({ packageJson }, { ignore, allowPrivatePackages }) {
60381
60474
  if (ignore.includes(packageJson.name)) return true;
60382
60475
  if (packageJson.private && !allowPrivatePackages) return true;
60383
60476
  return !packageJson.version;
60384
60477
  }
60385
60478
  //#endregion
60386
- //#region ../../node_modules/.pnpm/@changesets+config@4.0.0-next.7/node_modules/@changesets/config/dist/index.mjs
60479
+ //#region ../../node_modules/.pnpm/@changesets+config@4.0.0-next.8/node_modules/@changesets/config/dist/index.mjs
60387
60480
  const DEFAULT_CONFIG = {
60388
60481
  lang: void 0,
60389
60482
  message: void 0,
@@ -61295,7 +61388,7 @@ async function readConfig(cwd, packages) {
61295
61388
  packages ??= await getPackages(cwd);
61296
61389
  return validateConfig(JSON.parse(await node_fs_promises.readFile(node_path.join(packages.rootDir, ".changeset", "config.json"), "utf8")), packages);
61297
61390
  }
61298
- var version = "4.0.0-next.7";
61391
+ var version = "4.0.0-next.8";
61299
61392
  const defaultConfig = normalizeWrittenConfig({
61300
61393
  packageNames: [],
61301
61394
  writtenConfig: parse(WrittenConfigSchema, {
@@ -62567,7 +62660,7 @@ var InternalError = class extends Error {
62567
62660
  }
62568
62661
  };
62569
62662
  //#endregion
62570
- //#region ../../node_modules/.pnpm/@changesets+git@4.0.0-next.7/node_modules/@changesets/git/dist/index.mjs
62663
+ //#region ../../node_modules/.pnpm/@changesets+git@4.0.0-next.8/node_modules/@changesets/git/dist/index.mjs
62571
62664
  async function getDivergedCommit(cwd, ref) {
62572
62665
  const cmd = await z("git", [
62573
62666
  "merge-base",
@@ -64714,7 +64807,7 @@ function applyEdits(text, edits) {
64714
64807
  return text;
64715
64808
  }
64716
64809
  //#endregion
64717
- //#region ../../node_modules/.pnpm/@changesets+apply-release-plan@8.0.0-next.8/node_modules/@changesets/apply-release-plan/dist/index.mjs
64810
+ //#region ../../node_modules/.pnpm/@changesets+apply-release-plan@8.0.0-next.9/node_modules/@changesets/apply-release-plan/dist/index.mjs
64718
64811
  /**
64719
64812
  * A simple JSON editing utility that preserves formatting. They specified operation keys
64720
64813
  * must exist in the JSON for this implementation.
@@ -64766,6 +64859,7 @@ function getBumpLevel(type) {
64766
64859
  return level;
64767
64860
  }
64768
64861
  function shouldUpdateDependencyBasedOnConfig(cwd, release, { depVersionRange, depType }, { minReleaseType, onlyUpdatePeerDependentsWhenOutOfRange }) {
64862
+ if (release.newVersion == null) return false;
64769
64863
  if (depVersionRange.startsWith("workspace:")) {
64770
64864
  depVersionRange = depVersionRange.replace(/^workspace:/, "");
64771
64865
  switch (depVersionRange) {
@@ -64777,7 +64871,7 @@ function shouldUpdateDependencyBasedOnConfig(cwd, release, { depVersionRange, de
64777
64871
  default: if (!(0, semver_ranges_valid_js.default)(depVersionRange)) return node_path.posix.normalize(depVersionRange) === node_path.relative(cwd, release.dir).replace(/\\/g, "/");
64778
64872
  }
64779
64873
  }
64780
- if (!(0, semver_functions_satisfies_js.default)(release.version, depVersionRange)) return true;
64874
+ if (!(0, semver_functions_satisfies_js.default)(release.newVersion, depVersionRange)) return true;
64781
64875
  const minLevel = getBumpLevel(minReleaseType);
64782
64876
  let shouldUpdate = getBumpLevel(release.type) >= minLevel;
64783
64877
  if (depType === "peerDependencies") shouldUpdate = !onlyUpdatePeerDependentsWhenOutOfRange;
@@ -64802,12 +64896,7 @@ async function getChangelogEntry(cwd, release, releases, changesets, changelogFu
64802
64896
  const peerDependencyVersionRange = release.packageJson.peerDependencies?.[rel.name];
64803
64897
  const versionRange = dependencyVersionRange || peerDependencyVersionRange;
64804
64898
  const usesWorkspaceRange = versionRange?.startsWith("workspace:");
64805
- return versionRange && (usesWorkspaceRange || (0, semver_ranges_valid_js.default)(versionRange) != null) && shouldUpdateDependencyBasedOnConfig(cwd, {
64806
- type: rel.type,
64807
- version: rel.newVersion,
64808
- oldVersion: rel.oldVersion,
64809
- dir: rel.dir
64810
- }, {
64899
+ return versionRange && (usesWorkspaceRange || (0, semver_ranges_valid_js.default)(versionRange) != null) && shouldUpdateDependencyBasedOnConfig(cwd, rel, {
64811
64900
  depVersionRange: versionRange,
64812
64901
  depType: dependencyVersionRange ? "dependencies" : "peerDependencies"
64813
64902
  }, {
@@ -64859,14 +64948,11 @@ function getDependencyVersionEdits(packageJson, versionsToUpdate, { cwd, updateI
64859
64948
  const pkgJsonEdits = [];
64860
64949
  for (const depType of DEPENDENCY_TYPES) {
64861
64950
  const deps = packageJson[depType];
64862
- if (deps) for (const { name, version, oldVersion, type, dir } of versionsToUpdate) {
64951
+ if (deps) for (const release of versionsToUpdate) {
64952
+ if (release.newVersion == null) continue;
64953
+ const { name, newVersion } = release;
64863
64954
  let depCurrentVersion = deps[name];
64864
- if (!depCurrentVersion || depCurrentVersion.startsWith("file:") || depCurrentVersion.startsWith("link:") || !shouldUpdateDependencyBasedOnConfig(cwd, {
64865
- version,
64866
- oldVersion,
64867
- type,
64868
- dir
64869
- }, {
64955
+ if (!depCurrentVersion || depCurrentVersion.startsWith("file:") || depCurrentVersion.startsWith("link:") || !shouldUpdateDependencyBasedOnConfig(cwd, release, {
64870
64956
  depVersionRange: depCurrentVersion,
64871
64957
  depType
64872
64958
  }, {
@@ -64880,8 +64966,8 @@ function getDependencyVersionEdits(packageJson, versionsToUpdate, { cwd, updateI
64880
64966
  if (workspaceDepVersion === "*" || workspaceDepVersion === "^" || workspaceDepVersion === "~" || (0, semver_ranges_valid_js.default)(workspaceDepVersion) == null) continue;
64881
64967
  depCurrentVersion = workspaceDepVersion;
64882
64968
  }
64883
- if (new semver_classes_range_js.default(depCurrentVersion).range !== "" || (0, semver_functions_prerelease_js.default)(version) != null) {
64884
- let newNewRange = snapshot ? version : `${getVersionRangeType(depCurrentVersion)}${version}`;
64969
+ if (new semver_classes_range_js.default(depCurrentVersion).range !== "" || (0, semver_functions_prerelease_js.default)(newVersion) != null) {
64970
+ let newNewRange = snapshot ? newVersion : `${getVersionRangeType(depCurrentVersion)}${newVersion}`;
64885
64971
  if (usesWorkspaceRange) newNewRange = `workspace:${newNewRange}`;
64886
64972
  pkgJsonEdits.push({
64887
64973
  keys: [depType, name],
@@ -64948,12 +65034,9 @@ async function applyReleasePlan(releasePlan, packages, config = defaultConfig, s
64948
65034
  else await node_fs_promises.writeFile(node_path.join(cwd, ".changeset", "pre.json"), JSON.stringify(releasePlan.preState, null, 2) + "\n");
64949
65035
  touchedFiles.push(node_path.join(cwd, ".changeset", "pre.json"));
64950
65036
  }
64951
- const versionsToUpdate = releases.map(({ name, newVersion, oldVersion, type }) => ({
64952
- name,
64953
- version: newVersion,
64954
- oldVersion,
64955
- type,
64956
- dir: packagesByName.get(name).dir
65037
+ const versionsToUpdate = releases.map((release) => ({
65038
+ ...release,
65039
+ dir: packagesByName.get(release.name).dir
64957
65040
  }));
64958
65041
  const dependencyUpdateOptions = {
64959
65042
  cwd,
@@ -64965,10 +65048,12 @@ async function applyReleasePlan(releasePlan, packages, config = defaultConfig, s
64965
65048
  const filesToFormat = [];
64966
65049
  for (const release of releaseWithChangelogs) {
64967
65050
  const { changelog, dir, name, newVersion, packageJson } = release;
64968
- const pkgJsonPath = await updatePackageJson(dir, [{
65051
+ const pkgJsonEdits = getDependencyVersionEdits(packageJson, versionsToUpdate, dependencyUpdateOptions);
65052
+ if (newVersion != null) pkgJsonEdits.push({
64969
65053
  keys: ["version"],
64970
65054
  value: newVersion
64971
- }, ...getDependencyVersionEdits(packageJson, versionsToUpdate, dependencyUpdateOptions)]);
65055
+ });
65056
+ const pkgJsonPath = await updatePackageJson(dir, pkgJsonEdits);
64972
65057
  if (pkgJsonPath) touchedFiles.push(pkgJsonPath);
64973
65058
  if (changelog && changelog.length > 0) {
64974
65059
  const changelogPath = node_path.resolve(dir, "CHANGELOG.md");
@@ -65072,7 +65157,7 @@ async function updateChangelog(changelogPath, changelog, name) {
65072
65157
  await node_fs_promises.writeFile(changelogPath, newChangelog);
65073
65158
  }
65074
65159
  //#endregion
65075
- //#region ../../node_modules/.pnpm/@changesets+assemble-release-plan@7.0.0-next.8/node_modules/@changesets/assemble-release-plan/dist/index.mjs
65160
+ //#region ../../node_modules/.pnpm/@changesets+assemble-release-plan@7.0.0-next.9/node_modules/@changesets/assemble-release-plan/dist/index.mjs
65076
65161
  function getHighestReleaseType(releases) {
65077
65162
  if (releases.length === 0) throw new Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`);
65078
65163
  let highestReleaseType = "none";
@@ -65418,7 +65503,7 @@ function getPreInfo(changesets, packagesByName, config, preState) {
65418
65503
  };
65419
65504
  }
65420
65505
  //#endregion
65421
- //#region ../../node_modules/.pnpm/@changesets+pre@3.0.0-next.7/node_modules/@changesets/pre/dist/index.mjs
65506
+ //#region ../../node_modules/.pnpm/@changesets+pre@3.0.0-next.8/node_modules/@changesets/pre/dist/index.mjs
65422
65507
  async function outputFile(filePath, content) {
65423
65508
  await node_fs_promises.mkdir(node_path.dirname(filePath), { recursive: true });
65424
65509
  await node_fs_promises.writeFile(filePath, content, "utf8");
@@ -65447,7 +65532,7 @@ async function migratePreState(rootDir, preState) {
65447
65532
  return preState;
65448
65533
  }
65449
65534
  //#endregion
65450
- //#region ../../node_modules/.pnpm/@changesets+parse@1.0.0-next.8/node_modules/@changesets/parse/dist/index.mjs
65535
+ //#region ../../node_modules/.pnpm/@changesets+parse@1.0.0-next.9/node_modules/@changesets/parse/dist/index.mjs
65451
65536
  const mdRegex = /\s*---([^]*?)\r?\n\s*---(\s*(?:\n|$)[^]*)/;
65452
65537
  const EXAMPLE_FORMAT = `---\n"package-name": patch\n---`;
65453
65538
  const validVersionTypes = [
@@ -65500,7 +65585,7 @@ YAML error: ${e instanceof Error ? e.message : String(e)}\nFrontmatter content:\
65500
65585
  };
65501
65586
  }
65502
65587
  //#endregion
65503
- //#region ../../node_modules/.pnpm/@changesets+read@1.0.0-next.8/node_modules/@changesets/read/dist/index.mjs
65588
+ //#region ../../node_modules/.pnpm/@changesets+read@1.0.0-next.9/node_modules/@changesets/read/dist/index.mjs
65504
65589
  const ignoredMdFiles = [
65505
65590
  /^README\.md$/i,
65506
65591
  "AGENTS.md",
@@ -65533,7 +65618,7 @@ async function readChangesets(rootDir, sinceRef) {
65533
65618
  return await Promise.all(changesetContents);
65534
65619
  }
65535
65620
  //#endregion
65536
- //#region ../../node_modules/.pnpm/@changesets+get-release-plan@5.0.0-next.8/node_modules/@changesets/get-release-plan/dist/index.mjs
65621
+ //#region ../../node_modules/.pnpm/@changesets+get-release-plan@5.0.0-next.9/node_modules/@changesets/get-release-plan/dist/index.mjs
65537
65622
  async function getReleasePlan(cwd, sinceRef, passedConfig) {
65538
65623
  const packages = await getPackages(cwd);
65539
65624
  const configResult = await readConfig(packages.rootDir, packages);