@savvy-web/silk 3.8.3 → 3.9.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.
@@ -2339,7 +2339,7 @@ var GlobSet = class GlobSet extends effect.Schema.Class("GlobSet")(effect.Schema
2339
2339
  }
2340
2340
  };
2341
2341
  //#endregion
2342
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/BunExtension.js
2342
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/BunExtension.js
2343
2343
  /**
2344
2344
  * Extension data specific to bun lockfiles, attached to `Lockfile.extension`
2345
2345
  * when the format is `"bun"`.
@@ -5582,7 +5582,7 @@ var ReleaseAgeGate = class ReleaseAgeGate extends effect.Schema.Class("ReleaseAg
5582
5582
  }
5583
5583
  };
5584
5584
  //#endregion
5585
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/ImporterDependency.js
5585
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/ImporterDependency.js
5586
5586
  /**
5587
5587
  * One declared dependency of one workspace importer, as the lockfile records it.
5588
5588
  *
@@ -5620,7 +5620,7 @@ var ImporterDependency = class extends effect.Schema.Class("ImporterDependency")
5620
5620
  depType: DependencyField
5621
5621
  }) {};
5622
5622
  //#endregion
5623
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/LockfileImporter.js
5623
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/LockfileImporter.js
5624
5624
  /**
5625
5625
  * One workspace importer's declared dependencies, as the lockfile records them.
5626
5626
  *
@@ -5644,7 +5644,7 @@ var LockfileImporter = class extends effect.Schema.Class("LockfileImporter")({
5644
5644
  dependencies: effect.Schema.Array(ImporterDependency)
5645
5645
  }) {};
5646
5646
  //#endregion
5647
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/ResolvedPackage.js
5647
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/ResolvedPackage.js
5648
5648
  const EMPTY_DEPENDENCIES = {};
5649
5649
  const EMPTY_PEER_META = {};
5650
5650
  const EMPTY_EDGE_NAMES = [];
@@ -5734,7 +5734,7 @@ var ResolvedPackage = class extends effect.Schema.Class("ResolvedPackage")({
5734
5734
  unresolvedEdges: effect.Schema.Array(effect.Schema.String).pipe(effect.Schema.withDecodingDefaultKey(effect.Effect.succeed(EMPTY_EDGE_NAMES)), effect.Schema.withConstructorDefault(effect.Effect.succeed(EMPTY_EDGE_NAMES)))
5735
5735
  }) {};
5736
5736
  //#endregion
5737
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/WorkspaceDependency.js
5737
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/WorkspaceDependency.js
5738
5738
  /**
5739
5739
  * A directed dependency edge between two workspace packages as recorded in
5740
5740
  * the lockfile.
@@ -5756,7 +5756,7 @@ var WorkspaceDependency = class extends effect.Schema.Class("WorkspaceDependency
5756
5756
  constraint: effect.Schema.String
5757
5757
  }) {};
5758
5758
  //#endregion
5759
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/PnpmExtension.js
5759
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/PnpmExtension.js
5760
5760
  /**
5761
5761
  * Extension data specific to pnpm lockfiles, attached to `Lockfile.extension`
5762
5762
  * when the format is `"pnpm"`.
@@ -5781,7 +5781,7 @@ var PnpmExtension = class extends effect.Schema.Class("PnpmExtension")({
5781
5781
  }))
5782
5782
  }) {};
5783
5783
  //#endregion
5784
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/LockfileFormat.js
5784
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/LockfileFormat.js
5785
5785
  /**
5786
5786
  * The lockfile formats this package parses: bun's `bun.lock` (JSONC), npm's
5787
5787
  * `package-lock.json` (JSON), pnpm's `pnpm-lock.yaml` and yarn Berry's
@@ -5823,7 +5823,7 @@ const FILENAMES = {
5823
5823
  */
5824
5824
  const filenameFor = (format) => FILENAMES[format][0];
5825
5825
  //#endregion
5826
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/internal/shared.js
5826
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/internal/shared.js
5827
5827
  /**
5828
5828
  * The four dependency sections of a manifest, in a stable order — the shared
5829
5829
  * dependency-sections table (v3's `DEP_SECTIONS`). Each entry is both the
@@ -7825,7 +7825,7 @@ var JsoncModifier = class {
7825
7825
  });
7826
7826
  };
7827
7827
  //#endregion
7828
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/internal/bun.js
7828
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/internal/bun.js
7829
7829
  const DepRecord$2 = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
7830
7830
  const OptionalPeers = effect.Schema.optionalKey(effect.Schema.Array(effect.Schema.String));
7831
7831
  const BunWorkspaceEntry = effect.Schema.Struct({
@@ -8002,7 +8002,7 @@ const toFields$3 = (raw) => effect.Effect.gen(function* () {
8002
8002
  };
8003
8003
  });
8004
8004
  //#endregion
8005
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/internal/npm.js
8005
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/internal/npm.js
8006
8006
  const DepRecord$1 = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
8007
8007
  const PeerMetaRecord = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.Struct({ optional: effect.Schema.optionalKey(effect.Schema.Boolean) })));
8008
8008
  const NpmPackageEntry = effect.Schema.Struct({
@@ -15870,7 +15870,7 @@ function deepEqualValues(a, b) {
15870
15870
  return false;
15871
15871
  }
15872
15872
  //#endregion
15873
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/internal/documents.js
15873
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/internal/documents.js
15874
15874
  /**
15875
15875
  * An empty YAML document composes to `null` (`Yaml.parseAll("")` is `[null]`,
15876
15876
  * and the trailing document of an env-only `pnpm-lock.yaml` is `null` too).
@@ -15940,7 +15940,7 @@ const selectSoleDocument = (content) => effect.Effect.gen(function* () {
15940
15940
  };
15941
15941
  });
15942
15942
  //#endregion
15943
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/internal/pnpm.js
15943
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/internal/pnpm.js
15944
15944
  const PnpmImporterDeps = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.Struct({
15945
15945
  specifier: effect.Schema.String,
15946
15946
  version: effect.Schema.String
@@ -15949,7 +15949,8 @@ const PnpmImporter = effect.Schema.Struct({
15949
15949
  dependencies: PnpmImporterDeps,
15950
15950
  devDependencies: PnpmImporterDeps,
15951
15951
  peerDependencies: PnpmImporterDeps,
15952
- optionalDependencies: PnpmImporterDeps
15952
+ optionalDependencies: PnpmImporterDeps,
15953
+ publishDirectory: effect.Schema.optionalKey(effect.Schema.String)
15953
15954
  });
15954
15955
  /**
15955
15956
  * The version gate's own input: `lockfileVersion` and nothing else.
@@ -16024,9 +16025,23 @@ const parsePnpm = (content) => effect.Effect.gen(function* () {
16024
16025
  * resolution, which names no instance in this lockfile, from becoming a
16025
16026
  * plausible lie.
16026
16027
  *
16028
+ * A failed composition gets one second reading: the recorded version ITSELF as
16029
+ * an instance id. That is how pnpm spells an `npm:` alias — the dependency
16030
+ * `typescript-classic: npm:typescript@^6.0.3` is recorded as
16031
+ * `typescript-classic: typescript@6.0.3`, the referenced instance's own key,
16032
+ * peer suffix included when one applies. Still compose-then-verify, not a
16033
+ * guess: a plain version (`6.0.3`) can never be an instance id, because ids
16034
+ * always carry a name, so the reading admits exactly the alias shape.
16035
+ *
16036
+ * Unlike {@link resolveImporterEdges}, there is no `workspace:`-specifier
16037
+ * ancestor walk here — a snapshot body records no specifier, so that evidence
16038
+ * does not exist on this path. The publish-directory map needs no specifier:
16039
+ * the importer entry's own `publishDirectory` declaration is exact evidence,
16040
+ * available to both paths, and is consulted unconditionally.
16041
+ *
16027
16042
  * @internal
16028
16043
  */
16029
- const resolveEdges = (sections, instanceIds) => {
16044
+ const resolveEdges = (sections, instanceIds, publishDirTargets) => {
16030
16045
  const edges = /* @__PURE__ */ new Map();
16031
16046
  const unnameable = /* @__PURE__ */ new Set();
16032
16047
  for (const section of sections) {
@@ -16036,11 +16051,13 @@ const resolveEdges = (sections, instanceIds) => {
16036
16051
  if (version.startsWith(LINK_PREFIX)) {
16037
16052
  const target = resolveLinkTarget("", version.slice(LINK_PREFIX.length));
16038
16053
  if (target !== void 0 && instanceIds.has(target)) edges.set(name, target);
16054
+ else if (target !== void 0 && publishDirTargets.has(target)) edges.set(name, publishDirTargets.get(target));
16039
16055
  else unnameable.add(name);
16040
16056
  continue;
16041
16057
  }
16042
16058
  const bare = `${name}@${version}`;
16043
16059
  if (instanceIds.has(bare)) edges.set(name, bare);
16060
+ else if (instanceIds.has(version)) edges.set(name, version);
16044
16061
  else unnameable.add(name);
16045
16062
  }
16046
16063
  }
@@ -16056,6 +16073,13 @@ const LINK_PREFIX = "link:";
16056
16073
  * workspace edge can name the workspace importer's instance id.
16057
16074
  * Total: a target that walks above the root yields `undefined`.
16058
16075
  *
16076
+ * A target that normalizes to NOTHING — `link:.` recorded root-relative —
16077
+ * also yields `undefined` rather than the root importer's ".": the root
16078
+ * importer deliberately emits no `ResolvedPackage` row (its path cannot serve
16079
+ * as a package name), so mapping the empty target to "." would hand back an id
16080
+ * no row carries, and no pnpm output recording that shape has been observed.
16081
+ * The edge stays honestly unnameable instead.
16082
+ *
16059
16083
  * @internal
16060
16084
  */
16061
16085
  const resolveLinkTarget = (importerPath, target) => {
@@ -16102,22 +16126,28 @@ const owningImporter = (target, importerPaths) => {
16102
16126
  * naming another importer — normalized against this importer's own path. Both
16103
16127
  * are checked against the lockfile's instance ids before being emitted.
16104
16128
  *
16105
- * A `link:` target that is no importer gets one further chance, and only under
16106
- * a `workspace:` SPECIFIER: pnpm resolved that edge through the workspace, so
16107
- * the target directory is known to belong to a workspace package, and
16108
- * {@link owningImporter} names it. The specifier is what makes this a
16109
- * resolution rather than a guess a hand-written `link:../vendor/stub`
16110
- * specifier names a directory pnpm never claimed was a workspace package, and
16111
- * attributing it to whichever importer happens to contain it would answer with
16112
- * the wrong package's peers instead of admitting it could not name the edge.
16113
- *
16114
- * The snapshot path ({@link resolveEdges}) deliberately does NOT do this: a
16115
- * snapshot body records `name: link:<path>` with no specifier beside it, so the
16116
- * evidence this rule turns on is not available there.
16129
+ * A `link:` target that is no importer gets two further chances. First the
16130
+ * publish-directory map: an importer that DECLARES `publishDirectory` has told
16131
+ * the lockfile exactly which build directory its links point at, so a target
16132
+ * matching a declared publish directory names that importer on evidence, no
16133
+ * specifier required {@link resolveEdges} consults the same map for the same
16134
+ * reason. Then, and only under a `workspace:` SPECIFIER, the ancestor walk:
16135
+ * pnpm resolved that edge through the workspace, so the target directory is
16136
+ * known to belong to a workspace package, and {@link owningImporter} names it.
16137
+ * The specifier is what makes the walk a resolution rather than a guess — a
16138
+ * hand-written `link:../vendor/stub` specifier names a directory pnpm never
16139
+ * claimed was a workspace package, and attributing it to whichever importer
16140
+ * happens to contain it would answer with the wrong package's peers instead of
16141
+ * admitting it could not name the edge. The snapshot path has no specifier and
16142
+ * therefore no walk; the publish-directory map is the evidence it does get.
16143
+ *
16144
+ * A failed `name@version` composition gets the same alias reading as
16145
+ * {@link resolveEdges}: the recorded version itself as an instance id, which is
16146
+ * how pnpm spells `npm:` aliases.
16117
16147
  *
16118
16148
  * @internal
16119
16149
  */
16120
- const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths) => {
16150
+ const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths, publishDirTargets) => {
16121
16151
  const edges = /* @__PURE__ */ new Map();
16122
16152
  const unnameable = /* @__PURE__ */ new Set();
16123
16153
  for (const group of importerDepGroups(importer)) {
@@ -16126,13 +16156,14 @@ const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths
16126
16156
  if (name === "") continue;
16127
16157
  if (info.version.startsWith(LINK_PREFIX)) {
16128
16158
  const target = resolveLinkTarget(importerPath, info.version.slice(5));
16129
- const owner = target === void 0 ? void 0 : instanceIds.has(target) ? target : info.specifier.startsWith(WORKSPACE_PREFIX) ? owningImporter(target, importerPaths) : void 0;
16159
+ const owner = target === void 0 ? void 0 : instanceIds.has(target) ? target : publishDirTargets.get(target) ?? (info.specifier.startsWith(WORKSPACE_PREFIX) ? owningImporter(target, importerPaths) : void 0);
16130
16160
  if (owner !== void 0) edges.set(name, owner);
16131
16161
  else unnameable.add(name);
16132
16162
  continue;
16133
16163
  }
16134
16164
  const bare = `${name}@${info.version}`;
16135
16165
  if (instanceIds.has(bare)) edges.set(name, bare);
16166
+ else if (instanceIds.has(info.version)) edges.set(name, info.version);
16136
16167
  else unnameable.add(name);
16137
16168
  }
16138
16169
  }
@@ -16188,6 +16219,13 @@ const toFields$1 = (raw) => effect.Effect.gen(function* () {
16188
16219
  ...Object.keys(raw.importers)
16189
16220
  ]);
16190
16221
  const importerPaths = new Set(Object.keys(raw.importers).filter((path) => path !== "." && path !== ""));
16222
+ const publishDirTargets = /* @__PURE__ */ new Map();
16223
+ for (const [importerPath, importer] of Object.entries(raw.importers)) {
16224
+ if (importerPath === "") continue;
16225
+ if (importer.publishDirectory === void 0) continue;
16226
+ const key = resolveLinkTarget(importerPath, importer.publishDirectory);
16227
+ if (key !== void 0) publishDirTargets.set(key, importerPath);
16228
+ }
16191
16229
  const emitted = /* @__PURE__ */ new Set();
16192
16230
  for (const [importerPath, importer] of Object.entries(raw.importers)) {
16193
16231
  if (importerPath === "." || importerPath === "") continue;
@@ -16197,7 +16235,7 @@ const toFields$1 = (raw) => effect.Effect.gen(function* () {
16197
16235
  instanceId: importerPath,
16198
16236
  isWorkspace: true,
16199
16237
  relativePath: importerPath,
16200
- ...resolveImporterEdges(importer, importerPath, instanceIds, importerPaths)
16238
+ ...resolveImporterEdges(importer, importerPath, instanceIds, importerPaths, publishDirTargets)
16201
16239
  }));
16202
16240
  }
16203
16241
  const emit = (instanceId, meta, edges) => effect.Effect.gen(function* () {
@@ -16215,7 +16253,7 @@ const toFields$1 = (raw) => effect.Effect.gen(function* () {
16215
16253
  ...integrity !== void 0 ? { integrity } : {},
16216
16254
  isWorkspace: false,
16217
16255
  ...peerDeclarations(meta?.peerDependencies, meta?.peerDependenciesMeta),
16218
- ...resolveEdges(edges, instanceIds)
16256
+ ...resolveEdges(edges, instanceIds, publishDirTargets)
16219
16257
  }));
16220
16258
  });
16221
16259
  if (snapshots) for (const [key, snapshot] of Object.entries(snapshots)) {
@@ -16242,7 +16280,7 @@ const toFields$1 = (raw) => effect.Effect.gen(function* () {
16242
16280
  };
16243
16281
  });
16244
16282
  //#endregion
16245
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/internal/yarn.js
16283
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/internal/yarn.js
16246
16284
  const YarnLockfileRaw = effect.Schema.Record(effect.Schema.String, effect.Schema.Unknown);
16247
16285
  const DepRecord = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
16248
16286
  const YarnEntry = effect.Schema.Struct({
@@ -16418,7 +16456,7 @@ const cleanYarnDeps = (deps) => {
16418
16456
  return Object.fromEntries(Object.entries(deps).map(([name, value]) => [name, value.startsWith("npm:") ? value.slice(4) : value]));
16419
16457
  };
16420
16458
  //#endregion
16421
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/Lockfile.js
16459
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/Lockfile.js
16422
16460
  const EMPTY_IMPORTERS = [];
16423
16461
  /**
16424
16462
  * Failure of `Lockfile.parse`: the given content is not a valid lockfile of
@@ -16667,7 +16705,7 @@ var Lockfile = class Lockfile extends effect.Schema.Class("Lockfile")({
16667
16705
  }
16668
16706
  };
16669
16707
  //#endregion
16670
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/LockfileIntegrity.js
16708
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/LockfileIntegrity.js
16671
16709
  /**
16672
16710
  * The minimal manifest shape {@link LockfileIntegrity.compare} checks a
16673
16711
  * lockfile against: a package name plus the four optional dependency maps.
@@ -19480,7 +19518,7 @@ var Package = class Package extends effect.Schema.Class("Package")({
19480
19518
  }
19481
19519
  };
19482
19520
  //#endregion
19483
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspacePackage.js
19521
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspacePackage.js
19484
19522
  const EMPTY$1 = Object.freeze(Object.create(null));
19485
19523
  const EMPTY_MANIFEST = Object.freeze(Object.create(null));
19486
19524
  /**
@@ -20078,7 +20116,7 @@ var Walker$1 = class {
20078
20116
  static findRoot = findRoot$1;
20079
20117
  };
20080
20118
  //#endregion
20081
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceRoot.js
20119
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceRoot.js
20082
20120
  /**
20083
20121
  * The marker filenames {@link WorkspaceRoot} probes for, in priority order.
20084
20122
  *
@@ -20265,7 +20303,7 @@ var WorkspaceRoot = class WorkspaceRoot extends effect.Context.Service()("@effec
20265
20303
  static layerTest = (root) => effect.Layer.effect(WorkspaceRoot, WorkspaceRoot.makeTest(root)).pipe(effect.Layer.provide(effect.Path.layer));
20266
20304
  };
20267
20305
  //#endregion
20268
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/limits.js
20306
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/limits.js
20269
20307
  /**
20270
20308
  * Hard ceiling on directories the enumerator will visit for one pattern set.
20271
20309
  * Guards the pathological case a depth cap alone does not: a wide, shallow
@@ -20283,7 +20321,7 @@ const MAX_ENUMERATION_ENTRIES = 1e5;
20283
20321
  */
20284
20322
  const PRUNED_DIRECTORIES = /* @__PURE__ */ new Set([".git", "node_modules"]);
20285
20323
  //#endregion
20286
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/traverse.js
20324
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/traverse.js
20287
20325
  /** Directory names never descended into. */
20288
20326
  const isPruned = (entry) => PRUNED_DIRECTORIES.has(entry);
20289
20327
  /** Join root-relative POSIX segments; `""` is the root itself. */
@@ -20373,7 +20411,7 @@ var Traversal = class {
20373
20411
  }
20374
20412
  };
20375
20413
  //#endregion
20376
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/enumerate.js
20414
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/enumerate.js
20377
20415
  /** Strip a trailing slash from `GlobPattern.enumerationPrefix` to get a relative directory. */
20378
20416
  const baseOf = (pattern) => pattern.enumerationPrefix.replace(/\/$/, "");
20379
20417
  /**
@@ -20443,7 +20481,7 @@ const enumerate = (root, globs, options) => effect.Effect.gen(function* () {
20443
20481
  return results;
20444
20482
  });
20445
20483
  //#endregion
20446
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/patterns.js
20484
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/patterns.js
20447
20485
  const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
20448
20486
  /** The `packages:` list of a `pnpm-workspace.yaml` document. Total on a parsed document. */
20449
20487
  const pnpmPatternsOf = (document) => {
@@ -20500,7 +20538,7 @@ const readPatterns = (root) => effect.Effect.gen(function* () {
20500
20538
  return manifestPatternsOf(manifest);
20501
20539
  });
20502
20540
  //#endregion
20503
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceDiscovery.js
20541
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceDiscovery.js
20504
20542
  /**
20505
20543
  * Raised when a workspace member's `package.json` cannot be read, parsed, or
20506
20544
  * used — it is missing, malformed, or lacks a `name` or `version`.
@@ -20956,7 +20994,7 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends effect.Context.Service
20956
20994
  };
20957
20995
  const isStringRecord$2 = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && Object.values(value).every((entry) => typeof entry === "string");
20958
20996
  //#endregion
20959
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/DependencyGraph.js
20997
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/DependencyGraph.js
20960
20998
  /**
20961
20999
  * Raised when the workspace dependency graph cannot be topologically ordered
20962
21000
  * because it contains a cycle.
@@ -24652,7 +24690,7 @@ var Git = class Git extends effect.Context.Service()("@effected/git/Git") {
24652
24690
  static layerTest = (overrides = {}) => effect.Layer.succeed(Git, Git.makeTest(overrides));
24653
24691
  };
24654
24692
  //#endregion
24655
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/ChangeDetector.js
24693
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/ChangeDetector.js
24656
24694
  /**
24657
24695
  * Which git refs to compare, and whether to fold in the working tree.
24658
24696
  *
@@ -24908,7 +24946,7 @@ function resolveFromCatalog(catalogs, wantedDependency) {
24908
24946
  };
24909
24947
  }
24910
24948
  //#endregion
24911
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/catalogs.js
24949
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/catalogs.js
24912
24950
  /** Project a pnpm-workspace manifest's `catalog` / `catalogs` fields into a `Catalogs` map. */
24913
24951
  const inlineCatalogs = (manifest) => {
24914
24952
  if (manifest.catalog === void 0 && manifest.catalogs === void 0) return {};
@@ -25437,7 +25475,7 @@ var ConfigDependencyHooks = class ConfigDependencyHooks extends effect.Context.S
25437
25475
  }));
25438
25476
  };
25439
25477
  //#endregion
25440
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/PackageManagerName.js
25478
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/PackageManagerName.js
25441
25479
  /**
25442
25480
  * The four package managers this package understands.
25443
25481
  *
@@ -25812,7 +25850,7 @@ var PackageManagerDetector = class PackageManagerDetector extends effect.Context
25812
25850
  static layerTest = (overrides = {}) => effect.Layer.succeed(PackageManagerDetector, PackageManagerDetector.makeTest(overrides));
25813
25851
  };
25814
25852
  //#endregion
25815
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/LockfileReader.js
25853
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/LockfileReader.js
25816
25854
  /**
25817
25855
  * Raised when the workspace's lockfile cannot be read off disk.
25818
25856
  *
@@ -25992,7 +26030,7 @@ var LockfileReader = class LockfileReader extends effect.Context.Service()("@eff
25992
26030
  static layerTest = (overrides = {}) => effect.Layer.succeed(LockfileReader, LockfileReader.makeTest(overrides));
25993
26031
  };
25994
26032
  //#endregion
25995
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/Publishability.js
26033
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/Publishability.js
25996
26034
  /** The public npm registry, used when `publishConfig.registry` says nothing. */
25997
26035
  const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
25998
26036
  /**
@@ -26151,7 +26189,7 @@ var PublishabilityDetector = class extends effect.Context.Service()("@effected/w
26151
26189
  static layerNone = effect.Layer.succeed(this, this.none);
26152
26190
  };
26153
26191
  //#endregion
26154
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/importerVersions.js
26192
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/internal/importerVersions.js
26155
26193
  /**
26156
26194
  * Strip pnpm's peer-disambiguation suffix from a recorded importer version.
26157
26195
  *
@@ -26237,7 +26275,7 @@ const unanimousVersionOf = (index, dependency) => {
26237
26275
  return agreed;
26238
26276
  };
26239
26277
  //#endregion
26240
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceCatalogs.js
26278
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceCatalogs.js
26241
26279
  /**
26242
26280
  * An immutable, fully-normalized catalog collection — the one catalog
26243
26281
  * resolution semantic in the package.
@@ -26674,7 +26712,8 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends effect.Context.Service()
26674
26712
  }),
26675
26713
  importerVersions: effect.Effect.fn("WorkspaceCatalogs.importerVersions")(function* () {
26676
26714
  return (yield* memo).importerVersions;
26677
- })
26715
+ }),
26716
+ refresh: () => invalidate
26678
26717
  };
26679
26718
  });
26680
26719
  /**
@@ -26739,6 +26778,11 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends effect.Context.Service()
26739
26778
  * the importer index from the lockfile's importer blocks — neither is in a
26740
26779
  * `CatalogSet`) and always die unless stubbed.
26741
26780
  *
26781
+ * `refresh` defaults to `Effect.void` honestly: the double holds no memo,
26782
+ * so "drop the memoized assembly" is genuinely a no-op — the stubs answer
26783
+ * fresh on every call already. This mirrors `WorkspaceDiscovery.makeTest`'s
26784
+ * `refresh`.
26785
+ *
26742
26786
  * @example
26743
26787
  * ```ts
26744
26788
  * import { CatalogSet, WorkspaceCatalogs } from "@effected/workspaces";
@@ -26758,6 +26802,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends effect.Context.Service()
26758
26802
  peerDependencyRules: () => unstubbed$1("peerDependencyRules"),
26759
26803
  releaseAgeGate: () => unstubbed$1("releaseAgeGate"),
26760
26804
  importerVersions: () => unstubbed$1("importerVersions"),
26805
+ refresh: () => effect.Effect.void,
26761
26806
  ...overrides
26762
26807
  };
26763
26808
  };
@@ -26807,7 +26852,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends effect.Context.Service()
26807
26852
  }));
26808
26853
  };
26809
26854
  //#endregion
26810
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
26855
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
26811
26856
  const EMPTY = Object.freeze(Object.create(null));
26812
26857
  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)));
26813
26858
  /**
@@ -27030,7 +27075,7 @@ var WorkspaceStateSnapshot = class extends effect.Schema.Class("WorkspaceStateSn
27030
27075
  }
27031
27076
  };
27032
27077
  //#endregion
27033
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceSnapshots.js
27078
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/WorkspaceSnapshots.js
27034
27079
  /** Whether `value` is a non-null, non-array object. */
27035
27080
  const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
27036
27081
  /** Whether every value in a record is a string — a usable dependency map. */
@@ -27307,7 +27352,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends effect.Context.Service
27307
27352
  static layerTest = (overrides = {}) => effect.Layer.succeed(WorkspaceSnapshots, WorkspaceSnapshots.makeTest(overrides));
27308
27353
  };
27309
27354
  //#endregion
27310
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/Workspaces.js
27355
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/Workspaces.js
27311
27356
  const compose = (options, catalogsFactory) => {
27312
27357
  const roots = WorkspaceRoot.layer;
27313
27358
  const detector = PackageManagerDetector.layer;
@@ -5829,7 +5829,7 @@ declare class GlobPattern extends GlobPattern_base {
5829
5829
  static readonly FromString: Schema.Codec<GlobPattern, string>;
5830
5830
  }
5831
5831
  //#endregion
5832
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/index.d.ts
5832
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/index.d.ts
5833
5833
  //#region src/BunExtension.d.ts
5834
5834
  declare const BunExtension_base: Schema.Class<BunExtension, Schema.Struct<{
5835
5835
  readonly _tag: Schema.tag<"bun">;
@@ -6903,7 +6903,7 @@ declare class Package extends Package_base {
6903
6903
  toJsonString(options?: PackageFormatOptions): string;
6904
6904
  }
6905
6905
  //#endregion
6906
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/index.d.ts
6906
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/index.d.ts
6907
6907
  //#region src/WorkspacePackage.d.ts
6908
6908
  declare const PublishConfig_base: Schema.Class<PublishConfig, Schema.Struct<{
6909
6909
  /** Scoped-package visibility. Its presence overrides `private`. */
@@ -8487,6 +8487,26 @@ interface WorkspaceCatalogsShape {
8487
8487
  * nothing rather than failing.
8488
8488
  */
8489
8489
  readonly importerVersions: () => Effect.Effect<ImporterVersions, CatalogAssemblyFailure>;
8490
+ /**
8491
+ * Discard the memoized assembly so the **next** read re-assembles — the same
8492
+ * single read and hook replay as the first, over the workspace as it stands
8493
+ * then.
8494
+ *
8495
+ * @remarks
8496
+ * The explicit memoization boundary for a tool that **mutates the workspace
8497
+ * mid-run** — installs, bumps a config dependency, regenerates the lockfile.
8498
+ * Release-age gating wants the before-state, a post-install peer check the
8499
+ * after-state, and one infinite memo cannot serve both without this call in
8500
+ * between; without it, `peerDependencyRules` keeps answering from the
8501
+ * pre-mutation hook replay and the checker reports findings the new rules
8502
+ * suppress.
8503
+ *
8504
+ * Unconditional and infallible: the memo is already success-only (a failed
8505
+ * or interrupted assembly retries by itself), so `refresh` exists solely to
8506
+ * discard a *successful* assembly that mutation has made stale. Calling it
8507
+ * before any read is harmless.
8508
+ */
8509
+ readonly refresh: () => Effect.Effect<void>;
8490
8510
  }
8491
8511
  /**
8492
8512
  * Options for the {@link WorkspaceCatalogs} layer.
@@ -8592,6 +8612,11 @@ declare class WorkspaceCatalogs extends WorkspaceCatalogs_base {
8592
8612
  * the importer index from the lockfile's importer blocks — neither is in a
8593
8613
  * `CatalogSet`) and always die unless stubbed.
8594
8614
  *
8615
+ * `refresh` defaults to `Effect.void` honestly: the double holds no memo,
8616
+ * so "drop the memoized assembly" is genuinely a no-op — the stubs answer
8617
+ * fresh on every call already. This mirrors `WorkspaceDiscovery.makeTest`'s
8618
+ * `refresh`.
8619
+ *
8595
8620
  * @example
8596
8621
  * ```ts
8597
8622
  * import { CatalogSet, WorkspaceCatalogs } from "@effected/workspaces";
@@ -5829,7 +5829,7 @@ declare class GlobPattern extends GlobPattern_base {
5829
5829
  static readonly FromString: Schema.Codec<GlobPattern, string>;
5830
5830
  }
5831
5831
  //#endregion
5832
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_dc2ae50ba9ac4d16371f19ff9a80bde5/node_modules/@effected/lockfiles/index.d.ts
5832
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.2_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_ef94318d813876db7fdc8ffae2f92869/node_modules/@effected/lockfiles/index.d.ts
5833
5833
  //#region src/BunExtension.d.ts
5834
5834
  declare const BunExtension_base: Schema.Class<BunExtension, Schema.Struct<{
5835
5835
  readonly _tag: Schema.tag<"bun">;
@@ -6903,7 +6903,7 @@ declare class Package extends Package_base {
6903
6903
  toJsonString(options?: PackageFormatOptions): string;
6904
6904
  }
6905
6905
  //#endregion
6906
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.16.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/index.d.ts
6906
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.17.0_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/workspaces/index.d.ts
6907
6907
  //#region src/WorkspacePackage.d.ts
6908
6908
  declare const PublishConfig_base: Schema.Class<PublishConfig, Schema.Struct<{
6909
6909
  /** Scoped-package visibility. Its presence overrides `private`. */
@@ -8487,6 +8487,26 @@ interface WorkspaceCatalogsShape {
8487
8487
  * nothing rather than failing.
8488
8488
  */
8489
8489
  readonly importerVersions: () => Effect.Effect<ImporterVersions, CatalogAssemblyFailure>;
8490
+ /**
8491
+ * Discard the memoized assembly so the **next** read re-assembles — the same
8492
+ * single read and hook replay as the first, over the workspace as it stands
8493
+ * then.
8494
+ *
8495
+ * @remarks
8496
+ * The explicit memoization boundary for a tool that **mutates the workspace
8497
+ * mid-run** — installs, bumps a config dependency, regenerates the lockfile.
8498
+ * Release-age gating wants the before-state, a post-install peer check the
8499
+ * after-state, and one infinite memo cannot serve both without this call in
8500
+ * between; without it, `peerDependencyRules` keeps answering from the
8501
+ * pre-mutation hook replay and the checker reports findings the new rules
8502
+ * suppress.
8503
+ *
8504
+ * Unconditional and infallible: the memo is already success-only (a failed
8505
+ * or interrupted assembly retries by itself), so `refresh` exists solely to
8506
+ * discard a *successful* assembly that mutation has made stale. Calling it
8507
+ * before any read is harmless.
8508
+ */
8509
+ readonly refresh: () => Effect.Effect<void>;
8490
8510
  }
8491
8511
  /**
8492
8512
  * Options for the {@link WorkspaceCatalogs} layer.
@@ -8592,6 +8612,11 @@ declare class WorkspaceCatalogs extends WorkspaceCatalogs_base {
8592
8612
  * the importer index from the lockfile's importer blocks — neither is in a
8593
8613
  * `CatalogSet`) and always die unless stubbed.
8594
8614
  *
8615
+ * `refresh` defaults to `Effect.void` honestly: the double holds no memo,
8616
+ * so "drop the memoized assembly" is genuinely a no-op — the stubs answer
8617
+ * fresh on every call already. This mirrors `WorkspaceDiscovery.makeTest`'s
8618
+ * `refresh`.
8619
+ *
8595
8620
  * @example
8596
8621
  * ```ts
8597
8622
  * import { CatalogSet, WorkspaceCatalogs } from "@effected/workspaces";