@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.
@@ -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";
@@ -2353,7 +2353,7 @@ var GlobSet = class GlobSet extends Schema.Class("GlobSet")(Schema.Struct({ patt
2353
2353
  };
2354
2354
 
2355
2355
  //#endregion
2356
- //#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
2356
+ //#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
2357
2357
  /**
2358
2358
  * Extension data specific to bun lockfiles, attached to `Lockfile.extension`
2359
2359
  * when the format is `"bun"`.
@@ -5630,7 +5630,7 @@ var ReleaseAgeGate = class ReleaseAgeGate extends Schema.Class("ReleaseAgeGate")
5630
5630
  };
5631
5631
 
5632
5632
  //#endregion
5633
- //#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
5633
+ //#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
5634
5634
  /**
5635
5635
  * One declared dependency of one workspace importer, as the lockfile records it.
5636
5636
  *
@@ -5669,7 +5669,7 @@ var ImporterDependency = class extends Schema.Class("ImporterDependency")({
5669
5669
  }) {};
5670
5670
 
5671
5671
  //#endregion
5672
- //#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
5672
+ //#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
5673
5673
  /**
5674
5674
  * One workspace importer's declared dependencies, as the lockfile records them.
5675
5675
  *
@@ -5694,7 +5694,7 @@ var LockfileImporter = class extends Schema.Class("LockfileImporter")({
5694
5694
  }) {};
5695
5695
 
5696
5696
  //#endregion
5697
- //#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
5697
+ //#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
5698
5698
  const EMPTY_DEPENDENCIES = {};
5699
5699
  const EMPTY_PEER_META = {};
5700
5700
  const EMPTY_EDGE_NAMES = [];
@@ -5785,7 +5785,7 @@ var ResolvedPackage = class extends Schema.Class("ResolvedPackage")({
5785
5785
  }) {};
5786
5786
 
5787
5787
  //#endregion
5788
- //#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
5788
+ //#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
5789
5789
  /**
5790
5790
  * A directed dependency edge between two workspace packages as recorded in
5791
5791
  * the lockfile.
@@ -5808,7 +5808,7 @@ var WorkspaceDependency = class extends Schema.Class("WorkspaceDependency")({
5808
5808
  }) {};
5809
5809
 
5810
5810
  //#endregion
5811
- //#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
5811
+ //#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
5812
5812
  /**
5813
5813
  * Extension data specific to pnpm lockfiles, attached to `Lockfile.extension`
5814
5814
  * when the format is `"pnpm"`.
@@ -5834,7 +5834,7 @@ var PnpmExtension = class extends Schema.Class("PnpmExtension")({
5834
5834
  }) {};
5835
5835
 
5836
5836
  //#endregion
5837
- //#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
5837
+ //#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
5838
5838
  /**
5839
5839
  * The lockfile formats this package parses: bun's `bun.lock` (JSONC), npm's
5840
5840
  * `package-lock.json` (JSON), pnpm's `pnpm-lock.yaml` and yarn Berry's
@@ -5877,7 +5877,7 @@ const FILENAMES = {
5877
5877
  const filenameFor = (format) => FILENAMES[format][0];
5878
5878
 
5879
5879
  //#endregion
5880
- //#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
5880
+ //#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
5881
5881
  /**
5882
5882
  * The four dependency sections of a manifest, in a stable order — the shared
5883
5883
  * dependency-sections table (v3's `DEP_SECTIONS`). Each entry is both the
@@ -7922,7 +7922,7 @@ var JsoncModifier = class {
7922
7922
  };
7923
7923
 
7924
7924
  //#endregion
7925
- //#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
7925
+ //#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
7926
7926
  const DepRecord$2 = Schema.optionalKey(Schema.Record(Schema.String, Schema.String));
7927
7927
  const OptionalPeers = Schema.optionalKey(Schema.Array(Schema.String));
7928
7928
  const BunWorkspaceEntry = Schema.Struct({
@@ -8100,7 +8100,7 @@ const toFields$3 = (raw) => Effect.gen(function* () {
8100
8100
  });
8101
8101
 
8102
8102
  //#endregion
8103
- //#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
8103
+ //#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
8104
8104
  const DepRecord$1 = Schema.optionalKey(Schema.Record(Schema.String, Schema.String));
8105
8105
  const PeerMetaRecord = Schema.optionalKey(Schema.Record(Schema.String, Schema.Struct({ optional: Schema.optionalKey(Schema.Boolean) })));
8106
8106
  const NpmPackageEntry = Schema.Struct({
@@ -16073,7 +16073,7 @@ function deepEqualValues(a, b) {
16073
16073
  }
16074
16074
 
16075
16075
  //#endregion
16076
- //#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
16076
+ //#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
16077
16077
  /**
16078
16078
  * An empty YAML document composes to `null` (`Yaml.parseAll("")` is `[null]`,
16079
16079
  * and the trailing document of an env-only `pnpm-lock.yaml` is `null` too).
@@ -16144,7 +16144,7 @@ const selectSoleDocument = (content) => Effect.gen(function* () {
16144
16144
  });
16145
16145
 
16146
16146
  //#endregion
16147
- //#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
16147
+ //#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
16148
16148
  const PnpmImporterDeps = Schema.optionalKey(Schema.Record(Schema.String, Schema.Struct({
16149
16149
  specifier: Schema.String,
16150
16150
  version: Schema.String
@@ -16153,7 +16153,8 @@ const PnpmImporter = Schema.Struct({
16153
16153
  dependencies: PnpmImporterDeps,
16154
16154
  devDependencies: PnpmImporterDeps,
16155
16155
  peerDependencies: PnpmImporterDeps,
16156
- optionalDependencies: PnpmImporterDeps
16156
+ optionalDependencies: PnpmImporterDeps,
16157
+ publishDirectory: Schema.optionalKey(Schema.String)
16157
16158
  });
16158
16159
  /**
16159
16160
  * The version gate's own input: `lockfileVersion` and nothing else.
@@ -16228,9 +16229,23 @@ const parsePnpm = (content) => Effect.gen(function* () {
16228
16229
  * resolution, which names no instance in this lockfile, from becoming a
16229
16230
  * plausible lie.
16230
16231
  *
16232
+ * A failed composition gets one second reading: the recorded version ITSELF as
16233
+ * an instance id. That is how pnpm spells an `npm:` alias — the dependency
16234
+ * `typescript-classic: npm:typescript@^6.0.3` is recorded as
16235
+ * `typescript-classic: typescript@6.0.3`, the referenced instance's own key,
16236
+ * peer suffix included when one applies. Still compose-then-verify, not a
16237
+ * guess: a plain version (`6.0.3`) can never be an instance id, because ids
16238
+ * always carry a name, so the reading admits exactly the alias shape.
16239
+ *
16240
+ * Unlike {@link resolveImporterEdges}, there is no `workspace:`-specifier
16241
+ * ancestor walk here — a snapshot body records no specifier, so that evidence
16242
+ * does not exist on this path. The publish-directory map needs no specifier:
16243
+ * the importer entry's own `publishDirectory` declaration is exact evidence,
16244
+ * available to both paths, and is consulted unconditionally.
16245
+ *
16231
16246
  * @internal
16232
16247
  */
16233
- const resolveEdges = (sections, instanceIds) => {
16248
+ const resolveEdges = (sections, instanceIds, publishDirTargets) => {
16234
16249
  const edges = /* @__PURE__ */ new Map();
16235
16250
  const unnameable = /* @__PURE__ */ new Set();
16236
16251
  for (const section of sections) {
@@ -16240,11 +16255,13 @@ const resolveEdges = (sections, instanceIds) => {
16240
16255
  if (version.startsWith(LINK_PREFIX)) {
16241
16256
  const target = resolveLinkTarget("", version.slice(LINK_PREFIX.length));
16242
16257
  if (target !== void 0 && instanceIds.has(target)) edges.set(name, target);
16258
+ else if (target !== void 0 && publishDirTargets.has(target)) edges.set(name, publishDirTargets.get(target));
16243
16259
  else unnameable.add(name);
16244
16260
  continue;
16245
16261
  }
16246
16262
  const bare = `${name}@${version}`;
16247
16263
  if (instanceIds.has(bare)) edges.set(name, bare);
16264
+ else if (instanceIds.has(version)) edges.set(name, version);
16248
16265
  else unnameable.add(name);
16249
16266
  }
16250
16267
  }
@@ -16260,6 +16277,13 @@ const LINK_PREFIX = "link:";
16260
16277
  * workspace edge can name the workspace importer's instance id.
16261
16278
  * Total: a target that walks above the root yields `undefined`.
16262
16279
  *
16280
+ * A target that normalizes to NOTHING — `link:.` recorded root-relative —
16281
+ * also yields `undefined` rather than the root importer's ".": the root
16282
+ * importer deliberately emits no `ResolvedPackage` row (its path cannot serve
16283
+ * as a package name), so mapping the empty target to "." would hand back an id
16284
+ * no row carries, and no pnpm output recording that shape has been observed.
16285
+ * The edge stays honestly unnameable instead.
16286
+ *
16263
16287
  * @internal
16264
16288
  */
16265
16289
  const resolveLinkTarget = (importerPath, target) => {
@@ -16306,22 +16330,28 @@ const owningImporter = (target, importerPaths) => {
16306
16330
  * naming another importer — normalized against this importer's own path. Both
16307
16331
  * are checked against the lockfile's instance ids before being emitted.
16308
16332
  *
16309
- * A `link:` target that is no importer gets one further chance, and only under
16310
- * a `workspace:` SPECIFIER: pnpm resolved that edge through the workspace, so
16311
- * the target directory is known to belong to a workspace package, and
16312
- * {@link owningImporter} names it. The specifier is what makes this a
16313
- * resolution rather than a guess a hand-written `link:../vendor/stub`
16314
- * specifier names a directory pnpm never claimed was a workspace package, and
16315
- * attributing it to whichever importer happens to contain it would answer with
16316
- * the wrong package's peers instead of admitting it could not name the edge.
16317
- *
16318
- * The snapshot path ({@link resolveEdges}) deliberately does NOT do this: a
16319
- * snapshot body records `name: link:<path>` with no specifier beside it, so the
16320
- * evidence this rule turns on is not available there.
16333
+ * A `link:` target that is no importer gets two further chances. First the
16334
+ * publish-directory map: an importer that DECLARES `publishDirectory` has told
16335
+ * the lockfile exactly which build directory its links point at, so a target
16336
+ * matching a declared publish directory names that importer on evidence, no
16337
+ * specifier required {@link resolveEdges} consults the same map for the same
16338
+ * reason. Then, and only under a `workspace:` SPECIFIER, the ancestor walk:
16339
+ * pnpm resolved that edge through the workspace, so the target directory is
16340
+ * known to belong to a workspace package, and {@link owningImporter} names it.
16341
+ * The specifier is what makes the walk a resolution rather than a guess — a
16342
+ * hand-written `link:../vendor/stub` specifier names a directory pnpm never
16343
+ * claimed was a workspace package, and attributing it to whichever importer
16344
+ * happens to contain it would answer with the wrong package's peers instead of
16345
+ * admitting it could not name the edge. The snapshot path has no specifier and
16346
+ * therefore no walk; the publish-directory map is the evidence it does get.
16347
+ *
16348
+ * A failed `name@version` composition gets the same alias reading as
16349
+ * {@link resolveEdges}: the recorded version itself as an instance id, which is
16350
+ * how pnpm spells `npm:` aliases.
16321
16351
  *
16322
16352
  * @internal
16323
16353
  */
16324
- const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths) => {
16354
+ const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths, publishDirTargets) => {
16325
16355
  const edges = /* @__PURE__ */ new Map();
16326
16356
  const unnameable = /* @__PURE__ */ new Set();
16327
16357
  for (const group of importerDepGroups(importer)) {
@@ -16330,13 +16360,14 @@ const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths
16330
16360
  if (name === "") continue;
16331
16361
  if (info.version.startsWith(LINK_PREFIX)) {
16332
16362
  const target = resolveLinkTarget(importerPath, info.version.slice(5));
16333
- const owner = target === void 0 ? void 0 : instanceIds.has(target) ? target : info.specifier.startsWith(WORKSPACE_PREFIX) ? owningImporter(target, importerPaths) : void 0;
16363
+ const owner = target === void 0 ? void 0 : instanceIds.has(target) ? target : publishDirTargets.get(target) ?? (info.specifier.startsWith(WORKSPACE_PREFIX) ? owningImporter(target, importerPaths) : void 0);
16334
16364
  if (owner !== void 0) edges.set(name, owner);
16335
16365
  else unnameable.add(name);
16336
16366
  continue;
16337
16367
  }
16338
16368
  const bare = `${name}@${info.version}`;
16339
16369
  if (instanceIds.has(bare)) edges.set(name, bare);
16370
+ else if (instanceIds.has(info.version)) edges.set(name, info.version);
16340
16371
  else unnameable.add(name);
16341
16372
  }
16342
16373
  }
@@ -16392,6 +16423,13 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16392
16423
  ...Object.keys(raw.importers)
16393
16424
  ]);
16394
16425
  const importerPaths = new Set(Object.keys(raw.importers).filter((path) => path !== "." && path !== ""));
16426
+ const publishDirTargets = /* @__PURE__ */ new Map();
16427
+ for (const [importerPath, importer] of Object.entries(raw.importers)) {
16428
+ if (importerPath === "") continue;
16429
+ if (importer.publishDirectory === void 0) continue;
16430
+ const key = resolveLinkTarget(importerPath, importer.publishDirectory);
16431
+ if (key !== void 0) publishDirTargets.set(key, importerPath);
16432
+ }
16395
16433
  const emitted = /* @__PURE__ */ new Set();
16396
16434
  for (const [importerPath, importer] of Object.entries(raw.importers)) {
16397
16435
  if (importerPath === "." || importerPath === "") continue;
@@ -16401,7 +16439,7 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16401
16439
  instanceId: importerPath,
16402
16440
  isWorkspace: true,
16403
16441
  relativePath: importerPath,
16404
- ...resolveImporterEdges(importer, importerPath, instanceIds, importerPaths)
16442
+ ...resolveImporterEdges(importer, importerPath, instanceIds, importerPaths, publishDirTargets)
16405
16443
  }));
16406
16444
  }
16407
16445
  const emit = (instanceId, meta, edges) => Effect.gen(function* () {
@@ -16419,7 +16457,7 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16419
16457
  ...integrity !== void 0 ? { integrity } : {},
16420
16458
  isWorkspace: false,
16421
16459
  ...peerDeclarations(meta?.peerDependencies, meta?.peerDependenciesMeta),
16422
- ...resolveEdges(edges, instanceIds)
16460
+ ...resolveEdges(edges, instanceIds, publishDirTargets)
16423
16461
  }));
16424
16462
  });
16425
16463
  if (snapshots) for (const [key, snapshot] of Object.entries(snapshots)) {
@@ -16447,7 +16485,7 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16447
16485
  });
16448
16486
 
16449
16487
  //#endregion
16450
- //#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
16488
+ //#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
16451
16489
  const YarnLockfileRaw = Schema.Record(Schema.String, Schema.Unknown);
16452
16490
  const DepRecord = Schema.optionalKey(Schema.Record(Schema.String, Schema.String));
16453
16491
  const YarnEntry = Schema.Struct({
@@ -16624,7 +16662,7 @@ const cleanYarnDeps = (deps) => {
16624
16662
  };
16625
16663
 
16626
16664
  //#endregion
16627
- //#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
16665
+ //#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
16628
16666
  const EMPTY_IMPORTERS = [];
16629
16667
  /**
16630
16668
  * Failure of `Lockfile.parse`: the given content is not a valid lockfile of
@@ -16874,7 +16912,7 @@ var Lockfile = class Lockfile extends Schema.Class("Lockfile")({
16874
16912
  };
16875
16913
 
16876
16914
  //#endregion
16877
- //#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
16915
+ //#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
16878
16916
  /**
16879
16917
  * The minimal manifest shape {@link LockfileIntegrity.compare} checks a
16880
16918
  * lockfile against: a package name plus the four optional dependency maps.
@@ -19750,7 +19788,7 @@ var Package = class Package extends Schema.Class("Package")({
19750
19788
  };
19751
19789
 
19752
19790
  //#endregion
19753
- //#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
19791
+ //#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
19754
19792
  const EMPTY$1 = Object.freeze(Object.create(null));
19755
19793
  const EMPTY_MANIFEST = Object.freeze(Object.create(null));
19756
19794
  /**
@@ -20352,7 +20390,7 @@ var Walker$1 = class {
20352
20390
  };
20353
20391
 
20354
20392
  //#endregion
20355
- //#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
20393
+ //#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
20356
20394
  /**
20357
20395
  * The marker filenames {@link WorkspaceRoot} probes for, in priority order.
20358
20396
  *
@@ -20540,7 +20578,7 @@ var WorkspaceRoot = class WorkspaceRoot extends Context.Service()("@effected/wor
20540
20578
  };
20541
20579
 
20542
20580
  //#endregion
20543
- //#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
20581
+ //#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
20544
20582
  /**
20545
20583
  * Hard ceiling on directories the enumerator will visit for one pattern set.
20546
20584
  * Guards the pathological case a depth cap alone does not: a wide, shallow
@@ -20559,7 +20597,7 @@ const MAX_ENUMERATION_ENTRIES = 1e5;
20559
20597
  const PRUNED_DIRECTORIES = /* @__PURE__ */ new Set([".git", "node_modules"]);
20560
20598
 
20561
20599
  //#endregion
20562
- //#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
20600
+ //#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
20563
20601
  /** Directory names never descended into. */
20564
20602
  const isPruned = (entry) => PRUNED_DIRECTORIES.has(entry);
20565
20603
  /** Join root-relative POSIX segments; `""` is the root itself. */
@@ -20650,7 +20688,7 @@ var Traversal = class {
20650
20688
  };
20651
20689
 
20652
20690
  //#endregion
20653
- //#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
20691
+ //#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
20654
20692
  /** Strip a trailing slash from `GlobPattern.enumerationPrefix` to get a relative directory. */
20655
20693
  const baseOf = (pattern) => pattern.enumerationPrefix.replace(/\/$/, "");
20656
20694
  /**
@@ -20721,7 +20759,7 @@ const enumerate = (root, globs, options) => Effect.gen(function* () {
20721
20759
  });
20722
20760
 
20723
20761
  //#endregion
20724
- //#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
20762
+ //#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
20725
20763
  const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
20726
20764
  /** The `packages:` list of a `pnpm-workspace.yaml` document. Total on a parsed document. */
20727
20765
  const pnpmPatternsOf = (document) => {
@@ -20779,7 +20817,7 @@ const readPatterns = (root) => Effect.gen(function* () {
20779
20817
  });
20780
20818
 
20781
20819
  //#endregion
20782
- //#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
20820
+ //#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
20783
20821
  /**
20784
20822
  * Raised when a workspace member's `package.json` cannot be read, parsed, or
20785
20823
  * used — it is missing, malformed, or lacks a `name` or `version`.
@@ -21236,7 +21274,7 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends Context.Service()("@ef
21236
21274
  const isStringRecord$2 = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && Object.values(value).every((entry) => typeof entry === "string");
21237
21275
 
21238
21276
  //#endregion
21239
- //#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
21277
+ //#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
21240
21278
  /**
21241
21279
  * Raised when the workspace dependency graph cannot be topologically ordered
21242
21280
  * because it contains a cycle.
@@ -24936,7 +24974,7 @@ var Git = class Git extends Context.Service()("@effected/git/Git") {
24936
24974
  };
24937
24975
 
24938
24976
  //#endregion
24939
- //#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
24977
+ //#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
24940
24978
  /**
24941
24979
  * Which git refs to compare, and whether to fold in the working tree.
24942
24980
  *
@@ -25236,7 +25274,7 @@ function resolveFromCatalog(catalogs, wantedDependency) {
25236
25274
  }
25237
25275
 
25238
25276
  //#endregion
25239
- //#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
25277
+ //#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
25240
25278
  /** Project a pnpm-workspace manifest's `catalog` / `catalogs` fields into a `Catalogs` map. */
25241
25279
  const inlineCatalogs = (manifest) => {
25242
25280
  if (manifest.catalog === void 0 && manifest.catalogs === void 0) return {};
@@ -25302,7 +25340,7 @@ const rangeOf = (catalogs, dependency, specifier) => {
25302
25340
  };
25303
25341
 
25304
25342
  //#endregion
25305
- //#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/ConfigDependencyHooks.js
25343
+ //#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/ConfigDependencyHooks.js
25306
25344
  /**
25307
25345
  * The empty {@link PeerDependencyRules}: every axis present and empty.
25308
25346
  *
@@ -25785,7 +25823,7 @@ var ConfigDependencyHooks = class ConfigDependencyHooks extends Context.Service(
25785
25823
  };
25786
25824
 
25787
25825
  //#endregion
25788
- //#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
25826
+ //#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
25789
25827
  /**
25790
25828
  * The four package managers this package understands.
25791
25829
  *
@@ -26161,7 +26199,7 @@ var PackageManagerDetector = class PackageManagerDetector extends Context.Servic
26161
26199
  };
26162
26200
 
26163
26201
  //#endregion
26164
- //#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
26202
+ //#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
26165
26203
  /**
26166
26204
  * Raised when the workspace's lockfile cannot be read off disk.
26167
26205
  *
@@ -26342,7 +26380,7 @@ var LockfileReader = class LockfileReader extends Context.Service()("@effected/w
26342
26380
  };
26343
26381
 
26344
26382
  //#endregion
26345
- //#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
26383
+ //#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
26346
26384
  /** The public npm registry, used when `publishConfig.registry` says nothing. */
26347
26385
  const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
26348
26386
  /**
@@ -26502,7 +26540,7 @@ var PublishabilityDetector = class extends Context.Service()("@effected/workspac
26502
26540
  };
26503
26541
 
26504
26542
  //#endregion
26505
- //#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
26543
+ //#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
26506
26544
  /**
26507
26545
  * Strip pnpm's peer-disambiguation suffix from a recorded importer version.
26508
26546
  *
@@ -26589,7 +26627,7 @@ const unanimousVersionOf = (index, dependency) => {
26589
26627
  };
26590
26628
 
26591
26629
  //#endregion
26592
- //#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
26630
+ //#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
26593
26631
  /**
26594
26632
  * An immutable, fully-normalized catalog collection — the one catalog
26595
26633
  * resolution semantic in the package.
@@ -27026,7 +27064,8 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27026
27064
  }),
27027
27065
  importerVersions: Effect.fn("WorkspaceCatalogs.importerVersions")(function* () {
27028
27066
  return (yield* memo).importerVersions;
27029
- })
27067
+ }),
27068
+ refresh: () => invalidate
27030
27069
  };
27031
27070
  });
27032
27071
  /**
@@ -27091,6 +27130,11 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27091
27130
  * the importer index from the lockfile's importer blocks — neither is in a
27092
27131
  * `CatalogSet`) and always die unless stubbed.
27093
27132
  *
27133
+ * `refresh` defaults to `Effect.void` honestly: the double holds no memo,
27134
+ * so "drop the memoized assembly" is genuinely a no-op — the stubs answer
27135
+ * fresh on every call already. This mirrors `WorkspaceDiscovery.makeTest`'s
27136
+ * `refresh`.
27137
+ *
27094
27138
  * @example
27095
27139
  * ```ts
27096
27140
  * import { CatalogSet, WorkspaceCatalogs } from "@effected/workspaces";
@@ -27110,6 +27154,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27110
27154
  peerDependencyRules: () => unstubbed$1("peerDependencyRules"),
27111
27155
  releaseAgeGate: () => unstubbed$1("releaseAgeGate"),
27112
27156
  importerVersions: () => unstubbed$1("importerVersions"),
27157
+ refresh: () => Effect.void,
27113
27158
  ...overrides
27114
27159
  };
27115
27160
  };
@@ -27160,7 +27205,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27160
27205
  };
27161
27206
 
27162
27207
  //#endregion
27163
- //#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
27208
+ //#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
27164
27209
  const EMPTY = Object.freeze(Object.create(null));
27165
27210
  const DependencyMap = Schema.Record(Schema.String, Schema.String).pipe(Schema.withDecodingDefaultKey(Effect.succeed(EMPTY)), Schema.withConstructorDefault(Effect.succeed(EMPTY)));
27166
27211
  /**
@@ -27384,7 +27429,7 @@ var WorkspaceStateSnapshot = class extends Schema.Class("WorkspaceStateSnapshot"
27384
27429
  };
27385
27430
 
27386
27431
  //#endregion
27387
- //#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
27432
+ //#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
27388
27433
  /** Whether `value` is a non-null, non-array object. */
27389
27434
  const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
27390
27435
  /** Whether every value in a record is a string — a usable dependency map. */
@@ -27662,7 +27707,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends Context.Service()("@ef
27662
27707
  };
27663
27708
 
27664
27709
  //#endregion
27665
- //#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
27710
+ //#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
27666
27711
  const compose = (options, catalogsFactory) => {
27667
27712
  const roots = WorkspaceRoot.layer;
27668
27713
  const detector = PackageManagerDetector.layer;