@savvy-web/silk 3.8.2 → 3.8.4

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.
@@ -5236,7 +5236,7 @@ declare class UnsatisfiableConstraintError extends UnsatisfiableConstraintError_
5236
5236
  get message(): string;
5237
5237
  }
5238
5238
  //#endregion
5239
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/index.d.ts
5239
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/index.d.ts
5240
5240
  //#region src/CatalogAssemblyError.d.ts
5241
5241
  declare const CatalogAssemblyError_base: Schema.Class<CatalogAssemblyError, Schema.TaggedStruct<"CatalogAssemblyError", {
5242
5242
  /**
@@ -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_b5e24f85b508eca09bd100b8bd2084bb/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.15.1_@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_b5e24f85b508eca09bd100b8bd2084bb/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"`.
@@ -2375,7 +2375,7 @@ var BunExtension = class extends Schema.Class("BunExtension")({
2375
2375
  }) {};
2376
2376
 
2377
2377
  //#endregion
2378
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/CatalogResolver.js
2378
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/CatalogResolver.js
2379
2379
  /**
2380
2380
  * Contract for resolving pnpm `catalog:` dependency specifiers to concrete
2381
2381
  * version ranges.
@@ -2422,7 +2422,7 @@ var CatalogResolver = class CatalogResolver extends Context.Service()("@effected
2422
2422
  };
2423
2423
 
2424
2424
  //#endregion
2425
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/WorkspaceResolver.js
2425
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/WorkspaceResolver.js
2426
2426
  /**
2427
2427
  * Raised when a `catalog:` or `workspace:` specifier cannot be resolved
2428
2428
  * because the resolution mechanism itself failed — not for an ordinary
@@ -2484,7 +2484,7 @@ var WorkspaceResolver = class WorkspaceResolver extends Context.Service()("@effe
2484
2484
  };
2485
2485
 
2486
2486
  //#endregion
2487
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/CatalogAssemblyError.js
2487
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/CatalogAssemblyError.js
2488
2488
  /**
2489
2489
  * Raised when a workspace's catalogs cannot be assembled — a `pnpm-workspace.yaml`
2490
2490
  * that is unreadable or not valid YAML, a root `package.json` `workspaces` field
@@ -2529,7 +2529,7 @@ var CatalogAssemblyError = class extends Schema.TaggedError()("CatalogAssemblyEr
2529
2529
  };
2530
2530
 
2531
2531
  //#endregion
2532
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/DependencySection.js
2532
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/DependencySection.js
2533
2533
  /**
2534
2534
  * The short dependency kind: which dependency map an entry came from, named the
2535
2535
  * way consumers branch on it.
@@ -4153,7 +4153,7 @@ const isComparatorSetSubset = (sub, sup) => {
4153
4153
  };
4154
4154
 
4155
4155
  //#endregion
4156
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/DependencySpecifier.js
4156
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/DependencySpecifier.js
4157
4157
  /**
4158
4158
  * Indicates that a string could not be parsed as a valid dependency specifier.
4159
4159
  *
@@ -4361,7 +4361,7 @@ const DependencySpecifier = Object.assign(brandedSpecifier, {
4361
4361
  });
4362
4362
 
4363
4363
  //#endregion
4364
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/IntegrityHash.js
4364
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/IntegrityHash.js
4365
4365
  const SRI_RE = /^(sha1|sha256|sha384|sha512)-[A-Za-z0-9+/]+={0,2}$/;
4366
4366
  const COREPACK_RE = /^(sha1|sha224|sha256|sha384|sha512)\.[0-9a-f]+$/;
4367
4367
  const YARN_RE = /^[0-9]+(c[0-9]+)?\/[0-9a-f]+$/;
@@ -4415,6 +4415,13 @@ const IntegrityHash = Object.assign(brandedIntegrity, {
4415
4415
  });
4416
4416
  const corepackRestricted = brandedIntegrity.pipe(Schema.check(Schema.makeFilter((value) => isCorepack(value) ? void 0 : "Expected a corepack (<algo>.<hex>) integrity hash")));
4417
4417
  const BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
4418
+ const BASE64_INVALID = 255;
4419
+ const BASE64_INDEX = (() => {
4420
+ const table = new Uint8Array("z".charCodeAt(0) + 1);
4421
+ table.fill(BASE64_INVALID);
4422
+ for (let index = 0; index < 64; index += 1) table[BASE64_ALPHABET.charCodeAt(index)] = index;
4423
+ return table;
4424
+ })();
4418
4425
  const decodeBase64 = (value) => {
4419
4426
  const firstPad = value.indexOf("=");
4420
4427
  const body = firstPad === -1 ? value : value.slice(0, firstPad);
@@ -4426,9 +4433,11 @@ const decodeBase64 = (value) => {
4426
4433
  let buffer = 0;
4427
4434
  let bits = 0;
4428
4435
  const bytes = [];
4429
- for (const char of body) {
4430
- const sextet = BASE64_ALPHABET.indexOf(char);
4431
- if (sextet < 0) return void 0;
4436
+ for (let index = 0; index < body.length; index += 1) {
4437
+ const code = body.charCodeAt(index);
4438
+ if (code >= BASE64_INDEX.length) return void 0;
4439
+ const sextet = BASE64_INDEX[code];
4440
+ if (sextet === BASE64_INVALID) return void 0;
4432
4441
  buffer = buffer << 6 | sextet;
4433
4442
  bits += 6;
4434
4443
  if (bits >= 8) {
@@ -5450,7 +5459,7 @@ var Run = class {
5450
5459
  };
5451
5460
 
5452
5461
  //#endregion
5453
- //#region ../../node_modules/.pnpm/@effected+npm@0.11.0_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/ReleaseAgeGate.js
5462
+ //#region ../../node_modules/.pnpm/@effected+npm@0.11.1_@effected+semver@0.5.0_effect@4.0.0-rc.109__effect@4.0.0-rc.109/node_modules/@effected/npm/ReleaseAgeGate.js
5454
5463
  const MS_PER_MINUTE = 6e4;
5455
5464
  /**
5456
5465
  * A source's partial contribution to a {@link ReleaseAgeGate}: the effective
@@ -5621,7 +5630,7 @@ var ReleaseAgeGate = class ReleaseAgeGate extends Schema.Class("ReleaseAgeGate")
5621
5630
  };
5622
5631
 
5623
5632
  //#endregion
5624
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5625
5634
  /**
5626
5635
  * One declared dependency of one workspace importer, as the lockfile records it.
5627
5636
  *
@@ -5660,7 +5669,7 @@ var ImporterDependency = class extends Schema.Class("ImporterDependency")({
5660
5669
  }) {};
5661
5670
 
5662
5671
  //#endregion
5663
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5664
5673
  /**
5665
5674
  * One workspace importer's declared dependencies, as the lockfile records them.
5666
5675
  *
@@ -5685,7 +5694,7 @@ var LockfileImporter = class extends Schema.Class("LockfileImporter")({
5685
5694
  }) {};
5686
5695
 
5687
5696
  //#endregion
5688
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5689
5698
  const EMPTY_DEPENDENCIES = {};
5690
5699
  const EMPTY_PEER_META = {};
5691
5700
  const EMPTY_EDGE_NAMES = [];
@@ -5776,7 +5785,7 @@ var ResolvedPackage = class extends Schema.Class("ResolvedPackage")({
5776
5785
  }) {};
5777
5786
 
5778
5787
  //#endregion
5779
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5780
5789
  /**
5781
5790
  * A directed dependency edge between two workspace packages as recorded in
5782
5791
  * the lockfile.
@@ -5799,7 +5808,7 @@ var WorkspaceDependency = class extends Schema.Class("WorkspaceDependency")({
5799
5808
  }) {};
5800
5809
 
5801
5810
  //#endregion
5802
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5803
5812
  /**
5804
5813
  * Extension data specific to pnpm lockfiles, attached to `Lockfile.extension`
5805
5814
  * when the format is `"pnpm"`.
@@ -5825,7 +5834,7 @@ var PnpmExtension = class extends Schema.Class("PnpmExtension")({
5825
5834
  }) {};
5826
5835
 
5827
5836
  //#endregion
5828
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5829
5838
  /**
5830
5839
  * The lockfile formats this package parses: bun's `bun.lock` (JSONC), npm's
5831
5840
  * `package-lock.json` (JSON), pnpm's `pnpm-lock.yaml` and yarn Berry's
@@ -5868,7 +5877,7 @@ const FILENAMES = {
5868
5877
  const filenameFor = (format) => FILENAMES[format][0];
5869
5878
 
5870
5879
  //#endregion
5871
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
5872
5881
  /**
5873
5882
  * The four dependency sections of a manifest, in a stable order — the shared
5874
5883
  * dependency-sections table (v3's `DEP_SECTIONS`). Each entry is both the
@@ -7913,7 +7922,7 @@ var JsoncModifier = class {
7913
7922
  };
7914
7923
 
7915
7924
  //#endregion
7916
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
7917
7926
  const DepRecord$2 = Schema.optionalKey(Schema.Record(Schema.String, Schema.String));
7918
7927
  const OptionalPeers = Schema.optionalKey(Schema.Array(Schema.String));
7919
7928
  const BunWorkspaceEntry = Schema.Struct({
@@ -8091,7 +8100,7 @@ const toFields$3 = (raw) => Effect.gen(function* () {
8091
8100
  });
8092
8101
 
8093
8102
  //#endregion
8094
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
8095
8104
  const DepRecord$1 = Schema.optionalKey(Schema.Record(Schema.String, Schema.String));
8096
8105
  const PeerMetaRecord = Schema.optionalKey(Schema.Record(Schema.String, Schema.Struct({ optional: Schema.optionalKey(Schema.Boolean) })));
8097
8106
  const NpmPackageEntry = Schema.Struct({
@@ -16064,7 +16073,7 @@ function deepEqualValues(a, b) {
16064
16073
  }
16065
16074
 
16066
16075
  //#endregion
16067
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
16068
16077
  /**
16069
16078
  * An empty YAML document composes to `null` (`Yaml.parseAll("")` is `[null]`,
16070
16079
  * and the trailing document of an env-only `pnpm-lock.yaml` is `null` too).
@@ -16135,7 +16144,7 @@ const selectSoleDocument = (content) => Effect.gen(function* () {
16135
16144
  });
16136
16145
 
16137
16146
  //#endregion
16138
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
16139
16148
  const PnpmImporterDeps = Schema.optionalKey(Schema.Record(Schema.String, Schema.Struct({
16140
16149
  specifier: Schema.String,
16141
16150
  version: Schema.String
@@ -16144,7 +16153,8 @@ const PnpmImporter = Schema.Struct({
16144
16153
  dependencies: PnpmImporterDeps,
16145
16154
  devDependencies: PnpmImporterDeps,
16146
16155
  peerDependencies: PnpmImporterDeps,
16147
- optionalDependencies: PnpmImporterDeps
16156
+ optionalDependencies: PnpmImporterDeps,
16157
+ publishDirectory: Schema.optionalKey(Schema.String)
16148
16158
  });
16149
16159
  /**
16150
16160
  * The version gate's own input: `lockfileVersion` and nothing else.
@@ -16219,9 +16229,23 @@ const parsePnpm = (content) => Effect.gen(function* () {
16219
16229
  * resolution, which names no instance in this lockfile, from becoming a
16220
16230
  * plausible lie.
16221
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
+ *
16222
16246
  * @internal
16223
16247
  */
16224
- const resolveEdges = (sections, instanceIds) => {
16248
+ const resolveEdges = (sections, instanceIds, publishDirTargets) => {
16225
16249
  const edges = /* @__PURE__ */ new Map();
16226
16250
  const unnameable = /* @__PURE__ */ new Set();
16227
16251
  for (const section of sections) {
@@ -16231,11 +16255,13 @@ const resolveEdges = (sections, instanceIds) => {
16231
16255
  if (version.startsWith(LINK_PREFIX)) {
16232
16256
  const target = resolveLinkTarget("", version.slice(LINK_PREFIX.length));
16233
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));
16234
16259
  else unnameable.add(name);
16235
16260
  continue;
16236
16261
  }
16237
16262
  const bare = `${name}@${version}`;
16238
16263
  if (instanceIds.has(bare)) edges.set(name, bare);
16264
+ else if (instanceIds.has(version)) edges.set(name, version);
16239
16265
  else unnameable.add(name);
16240
16266
  }
16241
16267
  }
@@ -16251,6 +16277,13 @@ const LINK_PREFIX = "link:";
16251
16277
  * workspace edge can name the workspace importer's instance id.
16252
16278
  * Total: a target that walks above the root yields `undefined`.
16253
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
+ *
16254
16287
  * @internal
16255
16288
  */
16256
16289
  const resolveLinkTarget = (importerPath, target) => {
@@ -16297,22 +16330,28 @@ const owningImporter = (target, importerPaths) => {
16297
16330
  * naming another importer — normalized against this importer's own path. Both
16298
16331
  * are checked against the lockfile's instance ids before being emitted.
16299
16332
  *
16300
- * A `link:` target that is no importer gets one further chance, and only under
16301
- * a `workspace:` SPECIFIER: pnpm resolved that edge through the workspace, so
16302
- * the target directory is known to belong to a workspace package, and
16303
- * {@link owningImporter} names it. The specifier is what makes this a
16304
- * resolution rather than a guess a hand-written `link:../vendor/stub`
16305
- * specifier names a directory pnpm never claimed was a workspace package, and
16306
- * attributing it to whichever importer happens to contain it would answer with
16307
- * the wrong package's peers instead of admitting it could not name the edge.
16308
- *
16309
- * The snapshot path ({@link resolveEdges}) deliberately does NOT do this: a
16310
- * snapshot body records `name: link:<path>` with no specifier beside it, so the
16311
- * 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.
16312
16351
  *
16313
16352
  * @internal
16314
16353
  */
16315
- const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths) => {
16354
+ const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths, publishDirTargets) => {
16316
16355
  const edges = /* @__PURE__ */ new Map();
16317
16356
  const unnameable = /* @__PURE__ */ new Set();
16318
16357
  for (const group of importerDepGroups(importer)) {
@@ -16321,13 +16360,14 @@ const resolveImporterEdges = (importer, importerPath, instanceIds, importerPaths
16321
16360
  if (name === "") continue;
16322
16361
  if (info.version.startsWith(LINK_PREFIX)) {
16323
16362
  const target = resolveLinkTarget(importerPath, info.version.slice(5));
16324
- 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);
16325
16364
  if (owner !== void 0) edges.set(name, owner);
16326
16365
  else unnameable.add(name);
16327
16366
  continue;
16328
16367
  }
16329
16368
  const bare = `${name}@${info.version}`;
16330
16369
  if (instanceIds.has(bare)) edges.set(name, bare);
16370
+ else if (instanceIds.has(info.version)) edges.set(name, info.version);
16331
16371
  else unnameable.add(name);
16332
16372
  }
16333
16373
  }
@@ -16383,6 +16423,13 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16383
16423
  ...Object.keys(raw.importers)
16384
16424
  ]);
16385
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
+ }
16386
16433
  const emitted = /* @__PURE__ */ new Set();
16387
16434
  for (const [importerPath, importer] of Object.entries(raw.importers)) {
16388
16435
  if (importerPath === "." || importerPath === "") continue;
@@ -16392,7 +16439,7 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16392
16439
  instanceId: importerPath,
16393
16440
  isWorkspace: true,
16394
16441
  relativePath: importerPath,
16395
- ...resolveImporterEdges(importer, importerPath, instanceIds, importerPaths)
16442
+ ...resolveImporterEdges(importer, importerPath, instanceIds, importerPaths, publishDirTargets)
16396
16443
  }));
16397
16444
  }
16398
16445
  const emit = (instanceId, meta, edges) => Effect.gen(function* () {
@@ -16410,7 +16457,7 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16410
16457
  ...integrity !== void 0 ? { integrity } : {},
16411
16458
  isWorkspace: false,
16412
16459
  ...peerDeclarations(meta?.peerDependencies, meta?.peerDependenciesMeta),
16413
- ...resolveEdges(edges, instanceIds)
16460
+ ...resolveEdges(edges, instanceIds, publishDirTargets)
16414
16461
  }));
16415
16462
  });
16416
16463
  if (snapshots) for (const [key, snapshot] of Object.entries(snapshots)) {
@@ -16438,7 +16485,7 @@ const toFields$1 = (raw) => Effect.gen(function* () {
16438
16485
  });
16439
16486
 
16440
16487
  //#endregion
16441
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
16442
16489
  const YarnLockfileRaw = Schema.Record(Schema.String, Schema.Unknown);
16443
16490
  const DepRecord = Schema.optionalKey(Schema.Record(Schema.String, Schema.String));
16444
16491
  const YarnEntry = Schema.Struct({
@@ -16615,7 +16662,7 @@ const cleanYarnDeps = (deps) => {
16615
16662
  };
16616
16663
 
16617
16664
  //#endregion
16618
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
16619
16666
  const EMPTY_IMPORTERS = [];
16620
16667
  /**
16621
16668
  * Failure of `Lockfile.parse`: the given content is not a valid lockfile of
@@ -16865,7 +16912,7 @@ var Lockfile = class Lockfile extends Schema.Class("Lockfile")({
16865
16912
  };
16866
16913
 
16867
16914
  //#endregion
16868
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.6.1_@effected+jsonc@0.7.0_effect@4.0.0-rc.109__@effected+npm@0.11_b5e24f85b508eca09bd100b8bd2084bb/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
16869
16916
  /**
16870
16917
  * The minimal manifest shape {@link LockfileIntegrity.compare} checks a
16871
16918
  * lockfile against: a package name plus the four optional dependency maps.
@@ -19741,7 +19788,7 @@ var Package = class Package extends Schema.Class("Package")({
19741
19788
  };
19742
19789
 
19743
19790
  //#endregion
19744
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
19745
19792
  const EMPTY$1 = Object.freeze(Object.create(null));
19746
19793
  const EMPTY_MANIFEST = Object.freeze(Object.create(null));
19747
19794
  /**
@@ -20343,7 +20390,7 @@ var Walker$1 = class {
20343
20390
  };
20344
20391
 
20345
20392
  //#endregion
20346
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
20347
20394
  /**
20348
20395
  * The marker filenames {@link WorkspaceRoot} probes for, in priority order.
20349
20396
  *
@@ -20531,7 +20578,7 @@ var WorkspaceRoot = class WorkspaceRoot extends Context.Service()("@effected/wor
20531
20578
  };
20532
20579
 
20533
20580
  //#endregion
20534
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
20535
20582
  /**
20536
20583
  * Hard ceiling on directories the enumerator will visit for one pattern set.
20537
20584
  * Guards the pathological case a depth cap alone does not: a wide, shallow
@@ -20550,7 +20597,7 @@ const MAX_ENUMERATION_ENTRIES = 1e5;
20550
20597
  const PRUNED_DIRECTORIES = /* @__PURE__ */ new Set([".git", "node_modules"]);
20551
20598
 
20552
20599
  //#endregion
20553
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
20554
20601
  /** Directory names never descended into. */
20555
20602
  const isPruned = (entry) => PRUNED_DIRECTORIES.has(entry);
20556
20603
  /** Join root-relative POSIX segments; `""` is the root itself. */
@@ -20641,7 +20688,7 @@ var Traversal = class {
20641
20688
  };
20642
20689
 
20643
20690
  //#endregion
20644
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
20645
20692
  /** Strip a trailing slash from `GlobPattern.enumerationPrefix` to get a relative directory. */
20646
20693
  const baseOf = (pattern) => pattern.enumerationPrefix.replace(/\/$/, "");
20647
20694
  /**
@@ -20712,7 +20759,7 @@ const enumerate = (root, globs, options) => Effect.gen(function* () {
20712
20759
  });
20713
20760
 
20714
20761
  //#endregion
20715
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
20716
20763
  const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
20717
20764
  /** The `packages:` list of a `pnpm-workspace.yaml` document. Total on a parsed document. */
20718
20765
  const pnpmPatternsOf = (document) => {
@@ -20770,7 +20817,7 @@ const readPatterns = (root) => Effect.gen(function* () {
20770
20817
  });
20771
20818
 
20772
20819
  //#endregion
20773
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
20774
20821
  /**
20775
20822
  * Raised when a workspace member's `package.json` cannot be read, parsed, or
20776
20823
  * used — it is missing, malformed, or lacks a `name` or `version`.
@@ -21227,7 +21274,7 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends Context.Service()("@ef
21227
21274
  const isStringRecord$2 = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && Object.values(value).every((entry) => typeof entry === "string");
21228
21275
 
21229
21276
  //#endregion
21230
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
21231
21278
  /**
21232
21279
  * Raised when the workspace dependency graph cannot be topologically ordered
21233
21280
  * because it contains a cycle.
@@ -24927,7 +24974,7 @@ var Git = class Git extends Context.Service()("@effected/git/Git") {
24927
24974
  };
24928
24975
 
24929
24976
  //#endregion
24930
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
24931
24978
  /**
24932
24979
  * Which git refs to compare, and whether to fold in the working tree.
24933
24980
  *
@@ -25227,7 +25274,7 @@ function resolveFromCatalog(catalogs, wantedDependency) {
25227
25274
  }
25228
25275
 
25229
25276
  //#endregion
25230
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
25231
25278
  /** Project a pnpm-workspace manifest's `catalog` / `catalogs` fields into a `Catalogs` map. */
25232
25279
  const inlineCatalogs = (manifest) => {
25233
25280
  if (manifest.catalog === void 0 && manifest.catalogs === void 0) return {};
@@ -25293,7 +25340,7 @@ const rangeOf = (catalogs, dependency, specifier) => {
25293
25340
  };
25294
25341
 
25295
25342
  //#endregion
25296
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
25297
25344
  /**
25298
25345
  * The empty {@link PeerDependencyRules}: every axis present and empty.
25299
25346
  *
@@ -25776,7 +25823,7 @@ var ConfigDependencyHooks = class ConfigDependencyHooks extends Context.Service(
25776
25823
  };
25777
25824
 
25778
25825
  //#endregion
25779
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
25780
25827
  /**
25781
25828
  * The four package managers this package understands.
25782
25829
  *
@@ -26152,7 +26199,7 @@ var PackageManagerDetector = class PackageManagerDetector extends Context.Servic
26152
26199
  };
26153
26200
 
26154
26201
  //#endregion
26155
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
26156
26203
  /**
26157
26204
  * Raised when the workspace's lockfile cannot be read off disk.
26158
26205
  *
@@ -26333,7 +26380,7 @@ var LockfileReader = class LockfileReader extends Context.Service()("@effected/w
26333
26380
  };
26334
26381
 
26335
26382
  //#endregion
26336
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
26337
26384
  /** The public npm registry, used when `publishConfig.registry` says nothing. */
26338
26385
  const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
26339
26386
  /**
@@ -26493,7 +26540,7 @@ var PublishabilityDetector = class extends Context.Service()("@effected/workspac
26493
26540
  };
26494
26541
 
26495
26542
  //#endregion
26496
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
26497
26544
  /**
26498
26545
  * Strip pnpm's peer-disambiguation suffix from a recorded importer version.
26499
26546
  *
@@ -26580,7 +26627,7 @@ const unanimousVersionOf = (index, dependency) => {
26580
26627
  };
26581
26628
 
26582
26629
  //#endregion
26583
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
26584
26631
  /**
26585
26632
  * An immutable, fully-normalized catalog collection — the one catalog
26586
26633
  * resolution semantic in the package.
@@ -27017,7 +27064,8 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27017
27064
  }),
27018
27065
  importerVersions: Effect.fn("WorkspaceCatalogs.importerVersions")(function* () {
27019
27066
  return (yield* memo).importerVersions;
27020
- })
27067
+ }),
27068
+ refresh: () => invalidate
27021
27069
  };
27022
27070
  });
27023
27071
  /**
@@ -27082,6 +27130,11 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27082
27130
  * the importer index from the lockfile's importer blocks — neither is in a
27083
27131
  * `CatalogSet`) and always die unless stubbed.
27084
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
+ *
27085
27138
  * @example
27086
27139
  * ```ts
27087
27140
  * import { CatalogSet, WorkspaceCatalogs } from "@effected/workspaces";
@@ -27101,6 +27154,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27101
27154
  peerDependencyRules: () => unstubbed$1("peerDependencyRules"),
27102
27155
  releaseAgeGate: () => unstubbed$1("releaseAgeGate"),
27103
27156
  importerVersions: () => unstubbed$1("importerVersions"),
27157
+ refresh: () => Effect.void,
27104
27158
  ...overrides
27105
27159
  };
27106
27160
  };
@@ -27151,7 +27205,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
27151
27205
  };
27152
27206
 
27153
27207
  //#endregion
27154
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
27155
27209
  const EMPTY = Object.freeze(Object.create(null));
27156
27210
  const DependencyMap = Schema.Record(Schema.String, Schema.String).pipe(Schema.withDecodingDefaultKey(Effect.succeed(EMPTY)), Schema.withConstructorDefault(Effect.succeed(EMPTY)));
27157
27211
  /**
@@ -27375,7 +27429,7 @@ var WorkspaceStateSnapshot = class extends Schema.Class("WorkspaceStateSnapshot"
27375
27429
  };
27376
27430
 
27377
27431
  //#endregion
27378
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
27379
27433
  /** Whether `value` is a non-null, non-array object. */
27380
27434
  const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
27381
27435
  /** Whether every value in a record is a string — a usable dependency map. */
@@ -27653,7 +27707,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends Context.Service()("@ef
27653
27707
  };
27654
27708
 
27655
27709
  //#endregion
27656
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.15.1_@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
27657
27711
  const compose = (options, catalogsFactory) => {
27658
27712
  const roots = WorkspaceRoot.layer;
27659
27713
  const detector = PackageManagerDetector.layer;