@savvy-web/silk 3.0.2 → 3.0.3

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.
@@ -2301,7 +2301,7 @@ var GlobSet = class GlobSet extends effect.Schema.Class("GlobSet")(effect.Schema
2301
2301
  }
2302
2302
  };
2303
2303
  //#endregion
2304
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/BunExtension.js
2304
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/BunExtension.js
2305
2305
  /**
2306
2306
  * Extension data specific to bun lockfiles, attached to `Lockfile.extension`
2307
2307
  * when the format is `"bun"`.
@@ -4103,7 +4103,7 @@ const IntegrityHash = Object.assign(brandedIntegrity, {
4103
4103
  decode: decode$2
4104
4104
  });
4105
4105
  //#endregion
4106
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/ImporterDependency.js
4106
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/ImporterDependency.js
4107
4107
  /**
4108
4108
  * One declared dependency of one workspace importer, as the lockfile records it.
4109
4109
  *
@@ -4131,7 +4131,7 @@ var ImporterDependency = class extends effect.Schema.Class("ImporterDependency")
4131
4131
  depType: DependencyField
4132
4132
  }) {};
4133
4133
  //#endregion
4134
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/LockfileImporter.js
4134
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/LockfileImporter.js
4135
4135
  /**
4136
4136
  * One workspace importer's declared dependencies, as the lockfile records them.
4137
4137
  *
@@ -4155,7 +4155,7 @@ var LockfileImporter = class extends effect.Schema.Class("LockfileImporter")({
4155
4155
  dependencies: effect.Schema.Array(ImporterDependency)
4156
4156
  }) {};
4157
4157
  //#endregion
4158
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/ResolvedPackage.js
4158
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/ResolvedPackage.js
4159
4159
  const EMPTY_DEPENDENCIES = {};
4160
4160
  /**
4161
4161
  * A package resolved from a lockfile.
@@ -4190,7 +4190,7 @@ var ResolvedPackage = class extends effect.Schema.Class("ResolvedPackage")({
4190
4190
  dependencies: effect.Schema.Record(effect.Schema.String, effect.Schema.String).pipe(effect.Schema.withDecodingDefaultKey(effect.Effect.succeed(EMPTY_DEPENDENCIES)), effect.Schema.withConstructorDefault(effect.Effect.succeed(EMPTY_DEPENDENCIES)))
4191
4191
  }) {};
4192
4192
  //#endregion
4193
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/WorkspaceDependency.js
4193
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/WorkspaceDependency.js
4194
4194
  /**
4195
4195
  * A directed dependency edge between two workspace packages as recorded in
4196
4196
  * the lockfile.
@@ -4212,7 +4212,7 @@ var WorkspaceDependency = class extends effect.Schema.Class("WorkspaceDependency
4212
4212
  constraint: effect.Schema.String
4213
4213
  }) {};
4214
4214
  //#endregion
4215
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/PnpmExtension.js
4215
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/PnpmExtension.js
4216
4216
  /**
4217
4217
  * Extension data specific to pnpm lockfiles, attached to `Lockfile.extension`
4218
4218
  * when the format is `"pnpm"`.
@@ -4237,7 +4237,7 @@ var PnpmExtension = class extends effect.Schema.Class("PnpmExtension")({
4237
4237
  }))
4238
4238
  }) {};
4239
4239
  //#endregion
4240
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/LockfileFormat.js
4240
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/LockfileFormat.js
4241
4241
  /**
4242
4242
  * The lockfile formats this package parses: bun's `bun.lock` (JSONC), npm's
4243
4243
  * `package-lock.json` (v2/v3 JSON), pnpm's `pnpm-lock.yaml` and yarn Berry's
@@ -4271,7 +4271,7 @@ const FILENAMES = {
4271
4271
  */
4272
4272
  const filenameFor = (format) => FILENAMES[format];
4273
4273
  //#endregion
4274
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/internal/shared.js
4274
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/internal/shared.js
4275
4275
  /**
4276
4276
  * The four dependency sections of a manifest, in a stable order — the shared
4277
4277
  * dependency-sections table (v3's `DEP_SECTIONS`). Each entry is both the
@@ -4397,7 +4397,7 @@ const extractWorkspaceDeps = (workspaces, workspaceNames) => {
4397
4397
  return deps;
4398
4398
  };
4399
4399
  //#endregion
4400
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/JsoncNode.js
4400
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/JsoncNode.js
4401
4401
  /**
4402
4402
  * Discriminator values for JSONC AST node types: the JSON value types
4403
4403
  * (`string`/`number`/`boolean`/`null`), the structural types
@@ -4572,7 +4572,7 @@ function evaluateNode(node, depth) {
4572
4572
  }
4573
4573
  }
4574
4574
  //#endregion
4575
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/scanner.js
4575
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/scanner.js
4576
4576
  const isWhitespace = (ch) => ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 65279;
4577
4577
  const isLineBreak$1 = (ch) => ch === 10 || ch === 13 || ch === 8232 || ch === 8233;
4578
4578
  const isDigit$1 = (ch) => ch >= 48 && ch <= 57;
@@ -4868,7 +4868,7 @@ const createScanner$2 = (text, ignoreTrivia = false) => {
4868
4868
  };
4869
4869
  };
4870
4870
  //#endregion
4871
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/skip.js
4871
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/skip.js
4872
4872
  /**
4873
4873
  * Iteratively consume the value beginning at the cursor's current token and
4874
4874
  * return its tight end offset (excludes trailing whitespace/comments).
@@ -4898,7 +4898,7 @@ const skipBalancedValue = (cursor) => {
4898
4898
  return end;
4899
4899
  };
4900
4900
  //#endregion
4901
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/parser.js
4901
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/parser.js
4902
4902
  /**
4903
4903
  * The public parse-error code vocabulary. The facade builds its `@public`
4904
4904
  * `JsoncParseErrorCode` schema from this array; the parser produces these codes
@@ -5311,7 +5311,7 @@ const parseTree$2 = (text, flags) => {
5311
5311
  };
5312
5312
  };
5313
5313
  //#endregion
5314
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/Jsonc.js
5314
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/Jsonc.js
5315
5315
  /**
5316
5316
  * The single public parse-error code vocabulary, appearing as the `code` field
5317
5317
  * of {@link JsoncParseErrorDetail}.
@@ -5436,9 +5436,56 @@ const deepEqual = (a, b, depth = 0) => {
5436
5436
  var Jsonc = class Jsonc {
5437
5437
  constructor() {}
5438
5438
  /**
5439
+ * Parse JSONC into a plain JavaScript value, synchronously, returning a
5440
+ * `Result` instead of an `Effect`. Same error-recovery semantics as
5441
+ * {@link Jsonc.parse}: every parse error is collected and the failure side
5442
+ * carries one aggregate {@link JsoncParseError}. Pure — parsing is
5443
+ * fundamentally synchronous, so non-Effect consumers (a plain config
5444
+ * loader, a build script) can call this directly instead of wrapping
5445
+ * `Effect.runSync(Effect.result(Jsonc.parse(text)))`.
5446
+ *
5447
+ * @remarks
5448
+ * {@link Jsonc.parse} is defined in terms of this function; the two never
5449
+ * diverge. Reach for the `Effect` variant inside Effect code — it carries
5450
+ * the `Jsonc.parse` tracing span — and for this one at synchronous
5451
+ * boundaries.
5452
+ *
5453
+ * @example
5454
+ * ```ts
5455
+ * import { Jsonc } from "@effected/jsonc";
5456
+ * import { Result } from "effect";
5457
+ *
5458
+ * const ok = Jsonc.parseResult('{ "port": 3000 // dev\n }');
5459
+ * if (Result.isSuccess(ok)) {
5460
+ * console.log(ok.success); // => { port: 3000 }
5461
+ * }
5462
+ *
5463
+ * const bad = Jsonc.parseResult("{ bad }");
5464
+ * if (Result.isFailure(bad)) {
5465
+ * console.log(bad.failure._tag); // => "JsoncParseError"
5466
+ * }
5467
+ * ```
5468
+ *
5469
+ * @param text - The JSONC source to parse.
5470
+ * @param options - Optional {@link JsoncParseOptions}; defaults apply for
5471
+ * omitted fields.
5472
+ * @returns A `Result` succeeding with the decoded value (`unknown`, never
5473
+ * `any`), or failing with the aggregate {@link JsoncParseError}.
5474
+ */
5475
+ static parseResult(text, options) {
5476
+ const { value, errors } = parseValue(text, toFlags(options));
5477
+ if (errors.length > 0) return effect.Result.fail(new JsoncParseError({
5478
+ errors: toDetails(text, errors),
5479
+ input: text
5480
+ }));
5481
+ return effect.Result.succeed(value);
5482
+ }
5483
+ /**
5439
5484
  * Parse JSONC into a plain JavaScript value. Error-recovery parsing:
5440
5485
  * collects every parse error and fails once with the aggregate
5441
- * {@link JsoncParseError}. Returns `unknown`, never `any`.
5486
+ * {@link JsoncParseError}. Returns `unknown`, never `any`. Defined in terms
5487
+ * of {@link Jsonc.parseResult} — synchronous callers can use that variant
5488
+ * directly.
5442
5489
  *
5443
5490
  * @param text - The JSONC source to parse.
5444
5491
  * @param options - Optional {@link JsoncParseOptions}; defaults apply for
@@ -5446,14 +5493,7 @@ var Jsonc = class Jsonc {
5446
5493
  * @returns An `Effect` that succeeds with the decoded value, or fails with
5447
5494
  * the aggregate {@link JsoncParseError}.
5448
5495
  */
5449
- static parse = effect.Effect.fn("Jsonc.parse")(function* (text, options) {
5450
- const { value, errors } = parseValue(text, toFlags(options));
5451
- if (errors.length > 0) return yield* new JsoncParseError({
5452
- errors: toDetails(text, errors),
5453
- input: text
5454
- });
5455
- return value;
5456
- });
5496
+ static parse = effect.Effect.fn("Jsonc.parse")((text, options) => effect.Effect.fromResult(Jsonc.parseResult(text, options)));
5457
5497
  /**
5458
5498
  * Parse JSONC into an immutable {@link JsoncNode} AST. `Option.none()` for
5459
5499
  * empty input (with `allowEmptyContent`); the aggregate
@@ -5652,7 +5692,7 @@ var JsoncEdit = class extends effect.Schema.Class("JsoncEdit")({
5652
5692
  }
5653
5693
  };
5654
5694
  //#endregion
5655
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/navigate.js
5695
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/internal/navigate.js
5656
5696
  /**
5657
5697
  * Resolve `path` against `text`, returning where the target is (or where it
5658
5698
  * would be inserted). `path` must be non-empty — the whole-document case is
@@ -5779,7 +5819,7 @@ function navigate(text, path) {
5779
5819
  return { _tag: "NoOp" };
5780
5820
  }
5781
5821
  //#endregion
5782
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.2.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/JsoncModifier.js
5822
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/jsonc/JsoncModifier.js
5783
5823
  /**
5784
5824
  * Raised when `JsoncModifier.modify` cannot navigate the requested path: the
5785
5825
  * value at `depth` is not the container kind (`expected`) the next path segment
@@ -5907,7 +5947,7 @@ var JsoncModifier = class {
5907
5947
  });
5908
5948
  };
5909
5949
  //#endregion
5910
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/internal/bun.js
5950
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/internal/bun.js
5911
5951
  const DepRecord$2 = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
5912
5952
  const BunWorkspaceEntry = effect.Schema.Struct({
5913
5953
  name: effect.Schema.optionalKey(effect.Schema.String),
@@ -6000,7 +6040,7 @@ const toFields$3 = (raw) => effect.Effect.gen(function* () {
6000
6040
  };
6001
6041
  });
6002
6042
  //#endregion
6003
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/internal/npm.js
6043
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/internal/npm.js
6004
6044
  const DepRecord$1 = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
6005
6045
  const NpmPackageEntry = effect.Schema.Struct({
6006
6046
  name: effect.Schema.optionalKey(effect.Schema.String),
@@ -6098,7 +6138,7 @@ const toFields$2 = (raw) => effect.Effect.gen(function* () {
6098
6138
  };
6099
6139
  });
6100
6140
  //#endregion
6101
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/YamlNode.js
6141
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/YamlNode.js
6102
6142
  /**
6103
6143
  * YAML scalar presentation styles.
6104
6144
  *
@@ -6490,7 +6530,7 @@ function nodeToValue(node, anchors, budget, counting = false) {
6490
6530
  return null;
6491
6531
  }
6492
6532
  //#endregion
6493
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/diagnostics.js
6533
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/diagnostics.js
6494
6534
  /** Error codes emitted by the lexer stage. */
6495
6535
  const YAML_LEX_ERROR_CODES = [
6496
6536
  "UnexpectedCharacter",
@@ -6568,7 +6608,7 @@ function isFatalCode(code) {
6568
6608
  return FATAL_CODES.has(code);
6569
6609
  }
6570
6610
  //#endregion
6571
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/YamlDiagnostic.js
6611
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/YamlDiagnostic.js
6572
6612
  /**
6573
6613
  * Error codes emitted by the lexer stage.
6574
6614
  *
@@ -6689,7 +6729,7 @@ function lineChar(text, offset) {
6689
6729
  };
6690
6730
  }
6691
6731
  //#endregion
6692
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/anchors.js
6732
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/anchors.js
6693
6733
  /**
6694
6734
  * Check if a pending anchor is being applied to an alias node (invalid in YAML 1.2 §3.2.2).
6695
6735
  * Aliases represent references to existing anchored nodes and cannot have their own anchors.
@@ -6782,7 +6822,7 @@ function collectAnchors(node, anchors) {
6782
6822
  }
6783
6823
  }
6784
6824
  //#endregion
6785
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/lexer.js
6825
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/lexer.js
6786
6826
  /**
6787
6827
  * Create a new YAML scanner for the given source text.
6788
6828
  *
@@ -7739,7 +7779,7 @@ function lexAll(text) {
7739
7779
  return tokens;
7740
7780
  }
7741
7781
  //#endregion
7742
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/cst-parser.js
7782
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/cst-parser.js
7743
7783
  /**
7744
7784
  * Hardening: cap CST nesting so hostile inputs cannot overflow the stack
7745
7785
  * while the tree is being BUILT. Set slightly above the composer's
@@ -8451,7 +8491,7 @@ function parseCSTAll(text) {
8451
8491
  return parseDocuments(lexAll(text), text);
8452
8492
  }
8453
8493
  //#endregion
8454
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/state.js
8494
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/state.js
8455
8495
  let lineStartsText;
8456
8496
  let lineStartsCache = [];
8457
8497
  function getLineStarts(text) {
@@ -8557,7 +8597,7 @@ function exitNesting(state) {
8557
8597
  state.depth--;
8558
8598
  }
8559
8599
  //#endregion
8560
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/tags.js
8600
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/tags.js
8561
8601
  /**
8562
8602
  * Resolve a tag shorthand using the document's %TAG directives.
8563
8603
  * For example, with `%TAG !! tag:example.com,2000:app/`, the tag `!!int`
@@ -8643,7 +8683,7 @@ function validateTagHandlesInDocument(docCst, state) {
8643
8683
  }
8644
8684
  }
8645
8685
  //#endregion
8646
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/scalars.js
8686
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/scalars.js
8647
8687
  const NULL_RE$1 = /^(?:null|Null|NULL|~)$/;
8648
8688
  const TRUE_RE$1 = /^(?:true|True|TRUE)$/;
8649
8689
  const FALSE_RE$1 = /^(?:false|False|FALSE)$/;
@@ -9521,7 +9561,7 @@ function shouldPreserveRaw(rawValue, value) {
9521
9561
  return false;
9522
9562
  }
9523
9563
  //#endregion
9524
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/block.js
9564
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/block.js
9525
9565
  /**
9526
9566
  * Compose a block map from its CST children, with an optional external first key.
9527
9567
  *
@@ -10669,7 +10709,7 @@ function composeFlatBlockMap(children, startIdx, parentCst, state, externalFirst
10669
10709
  return map;
10670
10710
  }
10671
10711
  //#endregion
10672
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/flow.js
10712
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/flow.js
10673
10713
  /**
10674
10714
  * Validate that flow collection entries are separated by commas.
10675
10715
  *
@@ -11061,7 +11101,7 @@ function composeFlowSeqInner(cst, state, meta, parentBlockColumn) {
11061
11101
  return seq;
11062
11102
  }
11063
11103
  //#endregion
11064
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/document.js
11104
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/composer/document.js
11065
11105
  /** The flow-composer dispatch wired into every state this module creates. */
11066
11106
  const FLOW = {
11067
11107
  composeFlowMap,
@@ -11727,7 +11767,7 @@ function composeAllDocuments(text, options) {
11727
11767
  };
11728
11768
  }
11729
11769
  //#endregion
11730
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/fold.js
11770
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/fold.js
11731
11771
  /**
11732
11772
  * Column-based line folding for a single logical scalar line (YAML 1.2 flow
11733
11773
  * folding, §7.3 / §8.2.1). Breaks the content at "safe" single-space
@@ -11963,7 +12003,7 @@ function renderBlockFolded(s, indent) {
11963
12003
  return `>${indentIndicator}${chomp}\n${outputLines.join("\n")}`;
11964
12004
  }
11965
12005
  //#endregion
11966
- //#region ../../node_modules/.pnpm/@effected+yaml@0.3.0_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/stringifier.js
12006
+ //#region ../../node_modules/.pnpm/@effected+yaml@0.3.1_effect@4.0.0-beta.98/node_modules/@effected/yaml/internal/stringifier.js
11967
12007
  /**
11968
12008
  * Thrown by the stringifier on its failure paths (circular references). The
11969
12009
  * facade catches this and materializes the public stringify error.
@@ -12337,6 +12377,15 @@ effect.Schema.Class("YamlStringifyOptions")({
12337
12377
  * Column at which to fold long scalars. Default `0` (and any value `<= 0`)
12338
12378
  * never wraps; a positive value folds plain, double-quoted and block-folded
12339
12379
  * (`>`) scalars at approximately that column, never block-literal (`|`).
12380
+ *
12381
+ * Takes effect only through {@link Yaml.stringify} and
12382
+ * {@link Yaml.stringifySync} — the two entry points that accept these
12383
+ * options on the value path. The schema factories ({@link Yaml.fromString},
12384
+ * {@link Yaml.schema}, {@link Yaml.YamlFromString}) encode with default
12385
+ * stringify options (`lineWidth` `0`), so their output never folds. The
12386
+ * document/node path — `YamlDocument#stringify` and the `YamlFormat`
12387
+ * helpers built on it — threads the field into its render context but
12388
+ * never reads it, so it is inert there.
12340
12389
  */
12341
12390
  lineWidth: effect.Schema.optionalKey(effect.Schema.Number),
12342
12391
  defaultScalarStyle: effect.Schema.optionalKey(ScalarStyle),
@@ -12443,7 +12492,7 @@ const stringifyDefectToError = (defect, value) => {
12443
12492
  });
12444
12493
  };
12445
12494
  /**
12446
- * Synchronous single-document parse returning a {@link Result}. The pure
12495
+ * Synchronous single-document parse returning a `Result`. The pure
12447
12496
  * engine bypasses the Effect runtime entirely: the composer, the failure
12448
12497
  * collection and the alias-expansion budget all run inline, and every failure
12449
12498
  * mode (fatal diagnostics, duplicate keys, a "billion laughs" blow-up) yields
@@ -12465,7 +12514,7 @@ const parseSyncImpl = (text, options) => {
12465
12514
  }
12466
12515
  };
12467
12516
  /**
12468
- * Synchronous stringify returning a {@link Result}. Mirrors {@link Yaml.stringify}
12517
+ * Synchronous stringify returning a `Result`. Mirrors {@link Yaml.stringify}
12469
12518
  * without the Effect wrapper: a circular reference or a value nested past the
12470
12519
  * recursion budget yields a `Failure` carrying a typed {@link YamlStringifyError},
12471
12520
  * never a thrown defect.
@@ -12595,7 +12644,7 @@ var Yaml = class Yaml {
12595
12644
  return yield* stringifyOrFail(value, options);
12596
12645
  });
12597
12646
  /**
12598
- * Synchronous single-document parse, returning a {@link Result} instead of
12647
+ * Synchronous single-document parse, returning a `Result` instead of
12599
12648
  * an `Effect`. A pure escape hatch for config-time callers that cannot
12600
12649
  * `await` an Effect (a `vitest.config.ts` is the motivating case): it runs
12601
12650
  * the same engine as {@link Yaml.parse} inline.
@@ -12624,7 +12673,7 @@ var Yaml = class Yaml {
12624
12673
  return parseSyncImpl(text, options);
12625
12674
  }
12626
12675
  /**
12627
- * Synchronous stringify, returning a {@link Result} instead of an `Effect`.
12676
+ * Synchronous stringify, returning a `Result` instead of an `Effect`.
12628
12677
  * The pure counterpart to {@link Yaml.stringify} for config-time callers
12629
12678
  * that cannot `await`.
12630
12679
  *
@@ -12830,7 +12879,7 @@ function deepEqualValues(a, b) {
12830
12879
  return false;
12831
12880
  }
12832
12881
  //#endregion
12833
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/internal/documents.js
12882
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/internal/documents.js
12834
12883
  /**
12835
12884
  * An empty YAML document composes to `null` (`Yaml.parseAll("")` is `[null]`,
12836
12885
  * and the trailing document of an env-only `pnpm-lock.yaml` is `null` too).
@@ -12900,7 +12949,7 @@ const selectSoleDocument = (content) => effect.Effect.gen(function* () {
12900
12949
  };
12901
12950
  });
12902
12951
  //#endregion
12903
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/internal/pnpm.js
12952
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/internal/pnpm.js
12904
12953
  const PnpmImporterDeps = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.Struct({
12905
12954
  specifier: effect.Schema.String,
12906
12955
  version: effect.Schema.String
@@ -13026,7 +13075,7 @@ const toFields$1 = (raw) => effect.Effect.gen(function* () {
13026
13075
  };
13027
13076
  });
13028
13077
  //#endregion
13029
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/internal/yarn.js
13078
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/internal/yarn.js
13030
13079
  const YarnLockfileRaw = effect.Schema.Record(effect.Schema.String, effect.Schema.Unknown);
13031
13080
  const DepRecord = effect.Schema.optionalKey(effect.Schema.Record(effect.Schema.String, effect.Schema.String));
13032
13081
  const YarnEntry = effect.Schema.Struct({
@@ -13149,7 +13198,7 @@ const cleanYarnDeps = (deps) => {
13149
13198
  return Object.fromEntries(Object.entries(deps).map(([name, value]) => [name, value.startsWith("npm:") ? value.slice(4) : value]));
13150
13199
  };
13151
13200
  //#endregion
13152
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/Lockfile.js
13201
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/Lockfile.js
13153
13202
  const EMPTY_IMPORTERS = [];
13154
13203
  /**
13155
13204
  * Failure of `Lockfile.parse`: the given content is not a valid lockfile of
@@ -13393,7 +13442,7 @@ var Lockfile = class Lockfile extends effect.Schema.Class("Lockfile")({
13393
13442
  }
13394
13443
  };
13395
13444
  //#endregion
13396
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.3_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__@effected+npm@0.2_2bd071ae657036cda4f0e368b3590d06/node_modules/@effected/lockfiles/LockfileIntegrity.js
13445
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.1.4_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__@effected+npm@0.2_7fc50d596abf9879356de67fd92b0252/node_modules/@effected/lockfiles/LockfileIntegrity.js
13397
13446
  /**
13398
13447
  * The minimal manifest shape {@link LockfileIntegrity.compare} checks a
13399
13448
  * lockfile against: a package name plus the four optional dependency maps.
@@ -15349,7 +15398,7 @@ var Package = class Package extends effect.Schema.Class("Package")({
15349
15398
  }
15350
15399
  };
15351
15400
  //#endregion
15352
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspacePackage.js
15401
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspacePackage.js
15353
15402
  const EMPTY$1 = Object.freeze(Object.create(null));
15354
15403
  const EMPTY_MANIFEST = Object.freeze(Object.create(null));
15355
15404
  /**
@@ -15836,7 +15885,7 @@ const Walker$1 = {
15836
15885
  findRoot: findRoot$1
15837
15886
  };
15838
15887
  //#endregion
15839
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceRoot.js
15888
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceRoot.js
15840
15889
  /**
15841
15890
  * The marker filenames {@link WorkspaceRoot} probes for, in priority order.
15842
15891
  *
@@ -15921,7 +15970,7 @@ var WorkspaceRoot = class WorkspaceRoot extends effect.Context.Service()("@effec
15921
15970
  static layer = effect.Layer.effect(WorkspaceRoot, WorkspaceRoot.make);
15922
15971
  };
15923
15972
  //#endregion
15924
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/limits.js
15973
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/limits.js
15925
15974
  /**
15926
15975
  * Hard ceiling on directories the enumerator will visit for one pattern set.
15927
15976
  * Guards the pathological case a depth cap alone does not: a wide, shallow
@@ -15939,7 +15988,7 @@ const MAX_ENUMERATION_ENTRIES = 1e5;
15939
15988
  */
15940
15989
  const PRUNED_DIRECTORIES = /* @__PURE__ */ new Set([".git", "node_modules"]);
15941
15990
  //#endregion
15942
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/traverse.js
15991
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/traverse.js
15943
15992
  /** Directory names never descended into. */
15944
15993
  const isPruned = (entry) => PRUNED_DIRECTORIES.has(entry);
15945
15994
  /** Join root-relative POSIX segments; `""` is the root itself. */
@@ -16029,7 +16078,7 @@ var Traversal = class {
16029
16078
  }
16030
16079
  };
16031
16080
  //#endregion
16032
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/enumerate.js
16081
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/enumerate.js
16033
16082
  /** Strip a trailing slash from `GlobPattern.enumerationPrefix` to get a relative directory. */
16034
16083
  const baseOf = (pattern) => pattern.enumerationPrefix.replace(/\/$/, "");
16035
16084
  /**
@@ -16099,7 +16148,7 @@ const enumerate = (root, globs, options) => effect.Effect.gen(function* () {
16099
16148
  return results;
16100
16149
  });
16101
16150
  //#endregion
16102
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/patterns.js
16151
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/patterns.js
16103
16152
  const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
16104
16153
  /** The `packages:` list of a `pnpm-workspace.yaml` document. Total on a parsed document. */
16105
16154
  const pnpmPatternsOf = (document) => {
@@ -16156,7 +16205,7 @@ const readPatterns = (root) => effect.Effect.gen(function* () {
16156
16205
  return manifestPatternsOf(manifest);
16157
16206
  });
16158
16207
  //#endregion
16159
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceDiscovery.js
16208
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceDiscovery.js
16160
16209
  /**
16161
16210
  * Raised when a workspace member's `package.json` cannot be read, parsed, or
16162
16211
  * used — it is missing, malformed, or lacks a `name` or `version`.
@@ -16454,6 +16503,109 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends effect.Context.Service
16454
16503
  */
16455
16504
  static layer = (options) => effect.Layer.effect(WorkspaceDiscovery, WorkspaceDiscovery.make(options));
16456
16505
  /**
16506
+ * An in-memory test double of the service shape, with every method
16507
+ * defaulted so a test stubs only what it exercises.
16508
+ *
16509
+ * @remarks
16510
+ * The defaults model an **empty workspace**, and the derived methods run
16511
+ * over the *effective* `listPackages` — the override when one is supplied —
16512
+ * so stubbing only `listPackages` yields a consistent double:
16513
+ *
16514
+ * - `listPackages` — succeeds with `[]`.
16515
+ * - `importerMap` — derived: the packages keyed by `relativePath`.
16516
+ * - `getPackage` — derived: a name lookup that fails with the service's own
16517
+ * typed {@link PackageNotFoundError} on a miss, exactly as the live
16518
+ * implementation does.
16519
+ * - `resolveFile` / `resolveFiles` — derived: longest-prefix ownership over
16520
+ * `pkg.path`, POSIX-terminated (`"/"`); supply a win32 double explicitly
16521
+ * if your fixture paths are win32.
16522
+ * - `refresh` — a no-op (`Effect.void`); there is nothing memoized to drop.
16523
+ * - `info` — **dies** with an explanatory defect. No honest default exists
16524
+ * (a fabricated root path would leak into consumer path logic), so an
16525
+ * unstubbed `info()` call is a test-wiring mistake and fails loudly as a
16526
+ * defect rather than succeeding with a lie or failing with a dishonest
16527
+ * typed error.
16528
+ *
16529
+ * @example
16530
+ * ```ts
16531
+ * import { WorkspaceDiscovery, WorkspacePackage } from "@effected/workspaces";
16532
+ * import { Effect } from "effect";
16533
+ *
16534
+ * const double = WorkspaceDiscovery.makeTest({
16535
+ * listPackages: () =>
16536
+ * Effect.succeed([
16537
+ * WorkspacePackage.make({
16538
+ * name: "@my-org/utils",
16539
+ * version: "1.0.0",
16540
+ * path: "/repo/packages/utils",
16541
+ * packageJsonPath: "/repo/packages/utils/package.json",
16542
+ * relativePath: "packages/utils",
16543
+ * }),
16544
+ * ]),
16545
+ * });
16546
+ * // `getPackage`, `importerMap`, `resolveFile(s)` now answer consistently.
16547
+ * ```
16548
+ */
16549
+ static makeTest = (overrides = {}) => {
16550
+ const listPackages = overrides.listPackages ?? (() => effect.Effect.succeed([]));
16551
+ const ownerOf = (filePath, all) => {
16552
+ let best;
16553
+ let bestLength = 0;
16554
+ for (const pkg of all) {
16555
+ const prefix = pkg.path.endsWith("/") ? pkg.path : `${pkg.path}/`;
16556
+ if (filePath.startsWith(prefix) && prefix.length > bestLength) {
16557
+ best = pkg;
16558
+ bestLength = prefix.length;
16559
+ }
16560
+ }
16561
+ return effect.Option.fromUndefinedOr(best);
16562
+ };
16563
+ return {
16564
+ listPackages,
16565
+ info: () => effect.Effect.die(/* @__PURE__ */ new Error("WorkspaceDiscovery.makeTest: info() was called but not stubbed — no honest default WorkspaceInfo exists for a test double; pass an `info` override.")),
16566
+ importerMap: () => effect.Effect.map(listPackages(), (all) => new Map(all.map((pkg) => [pkg.relativePath, pkg]))),
16567
+ getPackage: (name) => effect.Effect.flatMap(listPackages(), (all) => {
16568
+ const found = all.find((pkg) => pkg.name === name);
16569
+ return found !== void 0 ? effect.Effect.succeed(found) : effect.Effect.fail(new PackageNotFoundError({
16570
+ name,
16571
+ available: all.map((pkg) => pkg.name)
16572
+ }));
16573
+ }),
16574
+ resolveFile: (filePath) => effect.Effect.map(listPackages(), (all) => ownerOf(filePath, all)),
16575
+ resolveFiles: (filePaths) => effect.Effect.map(listPackages(), (all) => {
16576
+ const seen = /* @__PURE__ */ new Map();
16577
+ for (const filePath of filePaths) {
16578
+ const owner = ownerOf(filePath, all);
16579
+ if (effect.Option.isSome(owner)) seen.set(owner.value.name, owner.value);
16580
+ }
16581
+ return [...seen.values()].sort((a, b) => a.name.localeCompare(b.name));
16582
+ }),
16583
+ refresh: () => effect.Effect.void,
16584
+ ...overrides
16585
+ };
16586
+ };
16587
+ /**
16588
+ * The test layer: {@link WorkspaceDiscovery.makeTest} behind
16589
+ * `Layer.succeed`, so a suite provides only the methods it exercises.
16590
+ *
16591
+ * @remarks
16592
+ * A parameterized layer factory mints a **fresh reference per call**, and
16593
+ * layers memoize by reference — bind the result to a `const` and reuse it
16594
+ * rather than calling `layerTest(...)` at each composition site.
16595
+ *
16596
+ * @example
16597
+ * ```ts
16598
+ * import { WorkspaceDiscovery } from "@effected/workspaces";
16599
+ * import { Effect } from "effect";
16600
+ *
16601
+ * const TestDiscovery = WorkspaceDiscovery.layerTest({
16602
+ * listPackages: () => Effect.succeed([]),
16603
+ * });
16604
+ * // program.pipe(Effect.provide(TestDiscovery))
16605
+ * ```
16606
+ */
16607
+ static layerTest = (overrides = {}) => effect.Layer.succeed(WorkspaceDiscovery, WorkspaceDiscovery.makeTest(overrides));
16608
+ /**
16457
16609
  * The real implementation of `@effected/npm`'s `WorkspaceResolver` contract
16458
16610
  * — the one `@effected/package-json` declares but cannot fill.
16459
16611
  *
@@ -16485,7 +16637,7 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends effect.Context.Service
16485
16637
  };
16486
16638
  const isStringRecord$2 = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && Object.values(value).every((entry) => typeof entry === "string");
16487
16639
  //#endregion
16488
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/DependencyGraph.js
16640
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/DependencyGraph.js
16489
16641
  /**
16490
16642
  * Raised when the workspace dependency graph cannot be topologically ordered
16491
16643
  * because it contains a cycle.
@@ -18083,7 +18235,7 @@ var Git = class extends effect.Context.Service()("@effected/git/Git") {
18083
18235
  }));
18084
18236
  };
18085
18237
  //#endregion
18086
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/ChangeDetector.js
18238
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/ChangeDetector.js
18087
18239
  /**
18088
18240
  * Which git refs to compare, and whether to fold in the working tree.
18089
18241
  *
@@ -18335,7 +18487,7 @@ function resolveFromCatalog(catalogs, wantedDependency) {
18335
18487
  };
18336
18488
  }
18337
18489
  //#endregion
18338
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/catalogs.js
18490
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/internal/catalogs.js
18339
18491
  /** Project a pnpm-workspace manifest's `catalog` / `catalogs` fields into a `Catalogs` map. */
18340
18492
  const inlineCatalogs = (manifest) => {
18341
18493
  if (manifest.catalog === void 0 && manifest.catalogs === void 0) return {};
@@ -18399,7 +18551,7 @@ const rangeOf = (catalogs, dependency, specifier) => {
18399
18551
  });
18400
18552
  };
18401
18553
  //#endregion
18402
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/ConfigDependencyHooks.js
18554
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/ConfigDependencyHooks.js
18403
18555
  /** Whether `value` is a non-null, non-array object. */
18404
18556
  const isObject$2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
18405
18557
  /**
@@ -18544,7 +18696,7 @@ var ConfigDependencyHooks = class ConfigDependencyHooks extends effect.Context.S
18544
18696
  }) });
18545
18697
  };
18546
18698
  //#endregion
18547
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/PackageManagerName.js
18699
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/PackageManagerName.js
18548
18700
  /**
18549
18701
  * The four package managers this package understands.
18550
18702
  *
@@ -18786,7 +18938,7 @@ var PackageManagerDetector = class PackageManagerDetector extends effect.Context
18786
18938
  static layer = effect.Layer.effect(PackageManagerDetector, PackageManagerDetector.make);
18787
18939
  };
18788
18940
  //#endregion
18789
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/LockfileReader.js
18941
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/LockfileReader.js
18790
18942
  /**
18791
18943
  * Raised when the workspace's lockfile cannot be read off disk.
18792
18944
  *
@@ -18896,7 +19048,7 @@ var LockfileReader = class LockfileReader extends effect.Context.Service()("@eff
18896
19048
  static layer = (options) => effect.Layer.effect(LockfileReader, LockfileReader.make(options));
18897
19049
  };
18898
19050
  //#endregion
18899
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/Publishability.js
19051
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/Publishability.js
18900
19052
  /** The public npm registry, used when `publishConfig.registry` says nothing. */
18901
19053
  const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
18902
19054
  /**
@@ -18996,7 +19148,7 @@ var PublishabilityDetector = class PublishabilityDetector extends effect.Context
18996
19148
  }) });
18997
19149
  };
18998
19150
  //#endregion
18999
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceCatalogs.js
19151
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceCatalogs.js
19000
19152
  /**
19001
19153
  * An immutable, fully-normalized catalog collection — the one catalog
19002
19154
  * resolution semantic in the package.
@@ -19380,7 +19532,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends effect.Context.Service()
19380
19532
  }));
19381
19533
  };
19382
19534
  //#endregion
19383
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
19535
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
19384
19536
  const EMPTY = Object.freeze(Object.create(null));
19385
19537
  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)));
19386
19538
  /**
@@ -19545,7 +19697,7 @@ var WorkspaceStateSnapshot = class extends effect.Schema.Class("WorkspaceStateSn
19545
19697
  }
19546
19698
  };
19547
19699
  //#endregion
19548
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceSnapshots.js
19700
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/WorkspaceSnapshots.js
19549
19701
  /** Whether `value` is a non-null, non-array object. */
19550
19702
  const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
19551
19703
  /** Whether every value in a record is a string — a usable dependency map. */
@@ -19737,7 +19889,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends effect.Context.Service
19737
19889
  static layer = (options) => effect.Layer.effect(WorkspaceSnapshots, WorkspaceSnapshots.make(options));
19738
19890
  };
19739
19891
  //#endregion
19740
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.3.1_@effected+jsonc@0.2.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/Workspaces.js
19892
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.4.0_@effected+jsonc@0.3.0_effect@4.0.0-beta.98__effect@4.0.0-beta.98/node_modules/@effected/workspaces/Workspaces.js
19741
19893
  /**
19742
19894
  * Every service that needs only a filesystem: root, package-manager detection,
19743
19895
  * discovery, lockfile reading, catalogs and publishability.