@savvy-web/silk 3.7.0 → 3.7.1

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.
@@ -1,5 +1,5 @@
1
1
  import { builtinModules, createRequire } from "node:module";
2
- import { Context, Data, Duration, Effect, Equal, Exit, FileSystem, Function, Hash, HashMap, Layer, Option, Order, Path, Pipeable, PlatformError, Predicate, Redacted, Ref, Result, Schema, SchemaIssue, SchemaTransformation, Stdio, Stream } from "effect";
2
+ import { Context, Data, Duration, Effect, Equal, Exit, FileSystem, Function, Graph, Hash, HashMap, Layer, Option, Order, Path, Pipeable, PlatformError, Predicate, Redacted, Ref, Result, Schema, SchemaIssue, SchemaTransformation, Stdio, Stream } from "effect";
3
3
  import * as path$1 from "node:path";
4
4
  import { basename, delimiter, dirname, isAbsolute, join, normalize, relative, resolve } from "node:path";
5
5
  import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
@@ -17711,7 +17711,7 @@ const SpdxExpressionUnion = Schema.Union([
17711
17711
  AndNode,
17712
17712
  OrNode
17713
17713
  ]);
17714
- function materialize(raw) {
17714
+ function materialize$1(raw) {
17715
17715
  switch (raw.kind) {
17716
17716
  case "license": return LicenseNode.make({
17717
17717
  id: raw.id,
@@ -17729,12 +17729,12 @@ function materialize(raw) {
17729
17729
  exception: raw.exception
17730
17730
  });
17731
17731
  case "and": return AndNode.make({
17732
- left: materialize(raw.left),
17733
- right: materialize(raw.right)
17732
+ left: materialize$1(raw.left),
17733
+ right: materialize$1(raw.right)
17734
17734
  });
17735
17735
  case "or": return OrNode.make({
17736
- left: materialize(raw.left),
17737
- right: materialize(raw.right)
17736
+ left: materialize$1(raw.left),
17737
+ right: materialize$1(raw.right)
17738
17738
  });
17739
17739
  }
17740
17740
  }
@@ -17751,7 +17751,7 @@ function materialize(raw) {
17751
17751
  */
17752
17752
  const parseResult = (input) => {
17753
17753
  const raw = parse$2(input);
17754
- return raw === void 0 ? Result.fail(new InvalidSpdxExpressionError({ input })) : Result.succeed(materialize(raw));
17754
+ return raw === void 0 ? Result.fail(new InvalidSpdxExpressionError({ input })) : Result.succeed(materialize$1(raw));
17755
17755
  };
17756
17756
  /**
17757
17757
  * Whether `input` is a syntactically and catalog-valid SPDX license expression.
@@ -18903,7 +18903,7 @@ var Package = class Package extends Schema.Class("Package")({
18903
18903
  };
18904
18904
 
18905
18905
  //#endregion
18906
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspacePackage.js
18906
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspacePackage.js
18907
18907
  const EMPTY$1 = Object.freeze(Object.create(null));
18908
18908
  const EMPTY_MANIFEST = Object.freeze(Object.create(null));
18909
18909
  /**
@@ -19505,7 +19505,7 @@ var Walker$1 = class {
19505
19505
  };
19506
19506
 
19507
19507
  //#endregion
19508
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceRoot.js
19508
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceRoot.js
19509
19509
  /**
19510
19510
  * The marker filenames {@link WorkspaceRoot} probes for, in priority order.
19511
19511
  *
@@ -19693,7 +19693,7 @@ var WorkspaceRoot = class WorkspaceRoot extends Context.Service()("@effected/wor
19693
19693
  };
19694
19694
 
19695
19695
  //#endregion
19696
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/limits.js
19696
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/limits.js
19697
19697
  /**
19698
19698
  * Hard ceiling on directories the enumerator will visit for one pattern set.
19699
19699
  * Guards the pathological case a depth cap alone does not: a wide, shallow
@@ -19712,7 +19712,7 @@ const MAX_ENUMERATION_ENTRIES = 1e5;
19712
19712
  const PRUNED_DIRECTORIES = /* @__PURE__ */ new Set([".git", "node_modules"]);
19713
19713
 
19714
19714
  //#endregion
19715
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/traverse.js
19715
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/traverse.js
19716
19716
  /** Directory names never descended into. */
19717
19717
  const isPruned = (entry) => PRUNED_DIRECTORIES.has(entry);
19718
19718
  /** Join root-relative POSIX segments; `""` is the root itself. */
@@ -19803,7 +19803,7 @@ var Traversal = class {
19803
19803
  };
19804
19804
 
19805
19805
  //#endregion
19806
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/enumerate.js
19806
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/enumerate.js
19807
19807
  /** Strip a trailing slash from `GlobPattern.enumerationPrefix` to get a relative directory. */
19808
19808
  const baseOf = (pattern) => pattern.enumerationPrefix.replace(/\/$/, "");
19809
19809
  /**
@@ -19874,7 +19874,7 @@ const enumerate = (root, globs, options) => Effect.gen(function* () {
19874
19874
  });
19875
19875
 
19876
19876
  //#endregion
19877
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/patterns.js
19877
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/patterns.js
19878
19878
  const stringsOf = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : void 0;
19879
19879
  /** The `packages:` list of a `pnpm-workspace.yaml` document. Total on a parsed document. */
19880
19880
  const pnpmPatternsOf = (document) => {
@@ -19932,7 +19932,7 @@ const readPatterns = (root) => Effect.gen(function* () {
19932
19932
  });
19933
19933
 
19934
19934
  //#endregion
19935
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceDiscovery.js
19935
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceDiscovery.js
19936
19936
  /**
19937
19937
  * Raised when a workspace member's `package.json` cannot be read, parsed, or
19938
19938
  * used — it is missing, malformed, or lacks a `name` or `version`.
@@ -20389,15 +20389,16 @@ var WorkspaceDiscovery = class WorkspaceDiscovery extends Context.Service()("@ef
20389
20389
  const isStringRecord$2 = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && Object.values(value).every((entry) => typeof entry === "string");
20390
20390
 
20391
20391
  //#endregion
20392
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/DependencyGraph.js
20392
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/DependencyGraph.js
20393
20393
  /**
20394
20394
  * Raised when the workspace dependency graph cannot be topologically ordered
20395
20395
  * because it contains a cycle.
20396
20396
  *
20397
20397
  * @remarks
20398
- * `cycle` lists every package still carrying unsatisfied dependencies when
20399
- * Kahn's algorithm stalls the strongly-connected residue, sorted. It is the
20400
- * set to break, not necessarily a single ordered loop.
20398
+ * `cycle` names the actual cycle members the sorted union of every strongly
20399
+ * connected component with more than one package. Packages merely downstream
20400
+ * of a cycle are excluded, so it is exactly the set to break, not necessarily
20401
+ * a single ordered loop.
20401
20402
  *
20402
20403
  * @public
20403
20404
  */
@@ -20552,7 +20553,11 @@ packages: Schema.Array(WorkspacePackage) }) {
20552
20553
  * the whole adjacency map per processed node. Each level is sorted
20553
20554
  * lexicographically, so the output is deterministic.
20554
20555
  */
20555
- levels = Effect.fn("DependencyGraph.levels")(() => Effect.suspend(() => Effect.succeed(kahn(this.#index()))).pipe(Effect.flatMap((result) => result.stalled.length > 0 ? Effect.fail(new CyclicDependencyError({ cycle: result.stalled })) : Effect.succeed(result.levels))));
20556
+ levels = Effect.fn("DependencyGraph.levels")(() => Effect.suspend(() => {
20557
+ const edges = this.#index();
20558
+ const result = kahn(edges);
20559
+ return result.stalled.length > 0 ? Effect.fail(new CyclicDependencyError({ cycle: cycleMembers(edges) })) : Effect.succeed(result.levels);
20560
+ }));
20556
20561
  /** The flattened topological order — `levels()` concatenated. */
20557
20562
  sort = Effect.fn("DependencyGraph.sort")(() => this.levels().pipe(Effect.map((levels) => levels.flat())));
20558
20563
  /**
@@ -20582,17 +20587,78 @@ packages: Schema.Array(WorkspacePackage) }) {
20582
20587
  subForward.set(node, deps);
20583
20588
  for (const dep of deps) subReverse.get(dep)?.add(node);
20584
20589
  }
20585
- const result = kahn({
20590
+ const subEdges = {
20586
20591
  forward: subForward,
20587
20592
  reverse: subReverse
20588
- });
20589
- return result.stalled.length > 0 ? Effect.fail(new CyclicDependencyError({ cycle: result.stalled })) : Effect.succeed(result.levels.flat());
20593
+ };
20594
+ const result = kahn(subEdges);
20595
+ return result.stalled.length > 0 ? Effect.fail(new CyclicDependencyError({ cycle: cycleMembers(subEdges) })) : Effect.succeed(result.levels.flat());
20590
20596
  }));
20597
+ /**
20598
+ * The graph rendered as a Mermaid `flowchart TD`. Total.
20599
+ *
20600
+ * @remarks
20601
+ * Renders through core's `Graph.toMermaid` over a transient graph built from
20602
+ * the edge index. Node IDs are numeric indexes assigned in sorted-name order
20603
+ * and package names appear only inside quoted labels, so scoped names
20604
+ * (`@scope/a`) never break Mermaid syntax. Nodes and each node's edges are
20605
+ * emitted in sorted order — the output is deterministic regardless of
20606
+ * manifest key order.
20607
+ */
20608
+ toMermaid() {
20609
+ return Graph.toMermaid(materialize(this.#index()).graph, { edgeLabel: () => "" });
20610
+ }
20611
+ };
20612
+ /**
20613
+ * Materializes the forward map into a transient core `Graph`: nodes in
20614
+ * sorted-name order (so `NodeIndex` *i* is `names[i]`) and each node's edges
20615
+ * in sorted-target order, making the graph — and everything derived from it —
20616
+ * deterministic for a given edge index.
20617
+ */
20618
+ const materialize = (edges) => {
20619
+ const names = [...edges.forward.keys()].sort();
20620
+ return {
20621
+ graph: Graph.directed((mutable) => {
20622
+ const indexOf = /* @__PURE__ */ new Map();
20623
+ for (const name of names) indexOf.set(name, Graph.addNode(mutable, name));
20624
+ for (const name of names) {
20625
+ const source = indexOf.get(name);
20626
+ if (source === void 0) continue;
20627
+ for (const dependency of [...edges.forward.get(name) ?? []].sort()) {
20628
+ const target = indexOf.get(dependency);
20629
+ if (target !== void 0) Graph.addEdge(mutable, source, target, "");
20630
+ }
20631
+ }
20632
+ }),
20633
+ names
20634
+ };
20635
+ };
20636
+ /**
20637
+ * The packages participating in a dependency cycle — the sorted union of every
20638
+ * strongly connected component with more than one member, via core's
20639
+ * `Graph.stronglyConnectedComponents`. Self-edges are dropped at index time,
20640
+ * so a single-member component is never cyclic here.
20641
+ */
20642
+ const cycleMembers = (edges) => {
20643
+ const { graph, names } = materialize(edges);
20644
+ const members = /* @__PURE__ */ new Set();
20645
+ for (const component of Graph.stronglyConnectedComponents(graph)) {
20646
+ if (component.length < 2) continue;
20647
+ for (const index of component) {
20648
+ const name = names[index];
20649
+ if (name !== void 0) members.add(name);
20650
+ }
20651
+ }
20652
+ return [...members].sort();
20591
20653
  };
20592
20654
  /**
20593
20655
  * Kahn's algorithm. `forward[A] = {B}` reads "A depends on B", so level 0 is
20594
20656
  * the set with an out-degree of zero and each completed level decrements its
20595
20657
  * dependents through the reverse index.
20658
+ *
20659
+ * A non-empty `stalled` only signals *that* a cycle exists — it holds every
20660
+ * unprocessed node, including ones merely downstream of a cycle. The error
20661
+ * payload names the actual members via `cycleMembers`.
20596
20662
  */
20597
20663
  const kahn = (edges) => {
20598
20664
  const remaining = /* @__PURE__ */ new Map();
@@ -23885,7 +23951,7 @@ var Git = class Git extends Context.Service()("@effected/git/Git") {
23885
23951
  };
23886
23952
 
23887
23953
  //#endregion
23888
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/ChangeDetector.js
23954
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/ChangeDetector.js
23889
23955
  /**
23890
23956
  * Which git refs to compare, and whether to fold in the working tree.
23891
23957
  *
@@ -24185,7 +24251,7 @@ function resolveFromCatalog(catalogs, wantedDependency) {
24185
24251
  }
24186
24252
 
24187
24253
  //#endregion
24188
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/catalogs.js
24254
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/catalogs.js
24189
24255
  /** Project a pnpm-workspace manifest's `catalog` / `catalogs` fields into a `Catalogs` map. */
24190
24256
  const inlineCatalogs = (manifest) => {
24191
24257
  if (manifest.catalog === void 0 && manifest.catalogs === void 0) return {};
@@ -24251,7 +24317,7 @@ const rangeOf = (catalogs, dependency, specifier) => {
24251
24317
  };
24252
24318
 
24253
24319
  //#endregion
24254
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/ConfigDependencyHooks.js
24320
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/ConfigDependencyHooks.js
24255
24321
  /** Whether `value` is a non-null, non-array object. */
24256
24322
  const isObject$2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
24257
24323
  /**
@@ -24663,7 +24729,7 @@ var ConfigDependencyHooks = class ConfigDependencyHooks extends Context.Service(
24663
24729
  };
24664
24730
 
24665
24731
  //#endregion
24666
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/PackageManagerName.js
24732
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/PackageManagerName.js
24667
24733
  /**
24668
24734
  * The four package managers this package understands.
24669
24735
  *
@@ -24992,7 +25058,7 @@ var PackageManagerDetector = class PackageManagerDetector extends Context.Servic
24992
25058
  };
24993
25059
 
24994
25060
  //#endregion
24995
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/LockfileReader.js
25061
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/LockfileReader.js
24996
25062
  /**
24997
25063
  * Raised when the workspace's lockfile cannot be read off disk.
24998
25064
  *
@@ -25173,7 +25239,7 @@ var LockfileReader = class LockfileReader extends Context.Service()("@effected/w
25173
25239
  };
25174
25240
 
25175
25241
  //#endregion
25176
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/Publishability.js
25242
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/Publishability.js
25177
25243
  /** The public npm registry, used when `publishConfig.registry` says nothing. */
25178
25244
  const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
25179
25245
  /**
@@ -25333,7 +25399,7 @@ var PublishabilityDetector = class extends Context.Service()("@effected/workspac
25333
25399
  };
25334
25400
 
25335
25401
  //#endregion
25336
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/importerVersions.js
25402
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/internal/importerVersions.js
25337
25403
  /**
25338
25404
  * Strip pnpm's peer-disambiguation suffix from a recorded importer version.
25339
25405
  *
@@ -25420,7 +25486,7 @@ const unanimousVersionOf = (index, dependency) => {
25420
25486
  };
25421
25487
 
25422
25488
  //#endregion
25423
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceCatalogs.js
25489
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceCatalogs.js
25424
25490
  /**
25425
25491
  * An immutable, fully-normalized catalog collection — the one catalog
25426
25492
  * resolution semantic in the package.
@@ -25948,7 +26014,7 @@ var WorkspaceCatalogs = class WorkspaceCatalogs extends Context.Service()("@effe
25948
26014
  };
25949
26015
 
25950
26016
  //#endregion
25951
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
26017
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceStateSnapshot.js
25952
26018
  const EMPTY = Object.freeze(Object.create(null));
25953
26019
  const DependencyMap = Schema.Record(Schema.String, Schema.String).pipe(Schema.withDecodingDefaultKey(Effect.succeed(EMPTY)), Schema.withConstructorDefault(Effect.succeed(EMPTY)));
25954
26020
  /**
@@ -26172,7 +26238,7 @@ var WorkspaceStateSnapshot = class extends Schema.Class("WorkspaceStateSnapshot"
26172
26238
  };
26173
26239
 
26174
26240
  //#endregion
26175
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceSnapshots.js
26241
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/WorkspaceSnapshots.js
26176
26242
  /** Whether `value` is a non-null, non-array object. */
26177
26243
  const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
26178
26244
  /** Whether every value in a record is a string — a usable dependency map. */
@@ -26450,7 +26516,7 @@ var WorkspaceSnapshots = class WorkspaceSnapshots extends Context.Service()("@ef
26450
26516
  };
26451
26517
 
26452
26518
  //#endregion
26453
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.11.2_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/Workspaces.js
26519
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.12.0_@effected+jsonc@0.6.0_effect@4.0.0-beta.107__effect@4.0.0-beta.107/node_modules/@effected/workspaces/Workspaces.js
26454
26520
  const compose = (options, catalogsFactory) => {
26455
26521
  const roots = WorkspaceRoot.layer;
26456
26522
  const detector = PackageManagerDetector.layer;
@@ -28583,7 +28649,7 @@ var require_dataloader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28583
28649
  }));
28584
28650
 
28585
28651
  //#endregion
28586
- //#region ../../node_modules/.pnpm/@changesets+get-github-info@1.0.0-next.4/node_modules/@changesets/get-github-info/dist/index.mjs
28652
+ //#region ../../node_modules/.pnpm/@changesets+get-github-info@1.0.0/node_modules/@changesets/get-github-info/dist/index.mjs
28587
28653
  var import_dataloader = /* @__PURE__ */ __toESM(require_dataloader(), 1);
28588
28654
  async function readEnvFile() {
28589
28655
  const envFile = path$1.resolve(process.cwd(), ".env");
@@ -64839,7 +64905,7 @@ function validatePackages(packages) {
64839
64905
  }
64840
64906
 
64841
64907
  //#endregion
64842
- //#region ../../node_modules/.pnpm/@changesets+get-dependents-graph@3.0.0-next.9/node_modules/@changesets/get-dependents-graph/dist/index.mjs
64908
+ //#region ../../node_modules/.pnpm/@changesets+get-dependents-graph@3.0.0/node_modules/@changesets/get-dependents-graph/dist/index.mjs
64843
64909
  var src_default = new Proxy({}, { get(target, color) {
64844
64910
  target[color] ??= (text) => styleText(color, text);
64845
64911
  return target[color];
@@ -64960,7 +65026,7 @@ function getDependentsGraph(packages, opts) {
64960
65026
  }
64961
65027
 
64962
65028
  //#endregion
64963
- //#region ../../node_modules/.pnpm/@changesets+should-skip-package@1.0.0-next.9/node_modules/@changesets/should-skip-package/dist/index.mjs
65029
+ //#region ../../node_modules/.pnpm/@changesets+should-skip-package@1.0.0/node_modules/@changesets/should-skip-package/dist/index.mjs
64964
65030
  function shouldSkipPackage({ packageJson }, { ignore, allowPrivatePackages }) {
64965
65031
  if (ignore.includes(packageJson.name)) return true;
64966
65032
  if (packageJson.private && !allowPrivatePackages) return true;
@@ -64968,7 +65034,7 @@ function shouldSkipPackage({ packageJson }, { ignore, allowPrivatePackages }) {
64968
65034
  }
64969
65035
 
64970
65036
  //#endregion
64971
- //#region ../../node_modules/.pnpm/@changesets+config@4.0.0-next.10/node_modules/@changesets/config/dist/index.mjs
65037
+ //#region ../../node_modules/.pnpm/@changesets+config@4.0.0/node_modules/@changesets/config/dist/index.mjs
64972
65038
  const DEFAULT_CONFIG = {
64973
65039
  lang: void 0,
64974
65040
  message: void 0,
@@ -65882,7 +65948,7 @@ async function readConfig(cwd, packages) {
65882
65948
  packages ??= await getPackages(cwd);
65883
65949
  return validateConfig(JSON.parse(await fs$1.readFile(path$1.join(packages.rootDir, ".changeset", "config.json"), "utf8")), packages);
65884
65950
  }
65885
- var version = "4.0.0-next.10";
65951
+ var version = "4.0.0";
65886
65952
  const defaultWrittenConfig = {
65887
65953
  ["$schema"]: `https://unpkg.com/@changesets/config@${version}/schema.json`,
65888
65954
  baseBranch: "main",
@@ -66960,7 +67026,7 @@ const x = (command, args, userOptions) => {
66960
67026
  const exec = x;
66961
67027
 
66962
67028
  //#endregion
66963
- //#region ../../node_modules/.pnpm/@changesets+format@0.1.1/node_modules/@changesets/format/dist/index.js
67029
+ //#region ../../node_modules/.pnpm/@changesets+format@0.1.2/node_modules/@changesets/format/dist/index.js
66964
67030
  /**
66965
67031
  * Traverse upwards from `startDir` to `stopDir` (inclusive), calling `cb` in each directory. If
66966
67032
  * `cb` returns a non-null value, it'll stop and return that value.
@@ -67021,6 +67087,7 @@ const formatters = {
67021
67087
  await packageManagerExecute(await ctx.getPackageManager(), [
67022
67088
  "prettier",
67023
67089
  "--write",
67090
+ "--no-error-on-unmatched-pattern",
67024
67091
  ...files
67025
67092
  ], ctx.cwd);
67026
67093
  }
@@ -67039,6 +67106,7 @@ const formatters = {
67039
67106
  "@biomejs/biome",
67040
67107
  "format",
67041
67108
  "--write",
67109
+ "--no-errors-on-unmatched",
67042
67110
  ...files
67043
67111
  ], ctx.cwd);
67044
67112
  }
@@ -67049,12 +67117,14 @@ const formatters = {
67049
67117
  configFiles: [
67050
67118
  ".oxfmtrc.json",
67051
67119
  ".oxfmtrc.jsonc",
67052
- "oxfmt.config.ts"
67120
+ "oxfmt.config.ts",
67121
+ "oxfmt.config.mts"
67053
67122
  ],
67054
67123
  async format(files, ctx) {
67055
67124
  await packageManagerExecute(await ctx.getPackageManager(), [
67056
67125
  "oxfmt",
67057
67126
  "--write",
67127
+ "--no-error-on-unmatched-pattern",
67058
67128
  ...files
67059
67129
  ], ctx.cwd);
67060
67130
  }
@@ -67070,7 +67140,11 @@ const formatters = {
67070
67140
  }
67071
67141
  ],
67072
67142
  async format(files, ctx) {
67073
- await spawnProcess("deno", ["fmt", ...files], ctx.cwd);
67143
+ await spawnProcess("deno", [
67144
+ "fmt",
67145
+ "--permit-no-files",
67146
+ ...files
67147
+ ], ctx.cwd);
67074
67148
  }
67075
67149
  },
67076
67150
  dprint: {
@@ -67086,6 +67160,7 @@ const formatters = {
67086
67160
  await packageManagerExecute(await ctx.getPackageManager(), [
67087
67161
  "dprint",
67088
67162
  "fmt",
67163
+ "--allow-no-files",
67089
67164
  ...files
67090
67165
  ], ctx.cwd);
67091
67166
  }
@@ -67135,7 +67210,8 @@ function checkConfigFileWithKeyExists(configFile, key) {
67135
67210
  }
67136
67211
  /**
67137
67212
  * Format the given patterns with a specified or auto-detected formatter. It returns `true` if a
67138
- * formatter is found and the formatting process passes, otherwise returns `false`.
67213
+ * formatter is found and the formatting process passes (even if the patterns didn't match any
67214
+ * files), otherwise returns `false`.
67139
67215
  */
67140
67216
  async function format$1(patterns, options = {}) {
67141
67217
  const formatterName = options.formatter ?? await detect({
@@ -67159,7 +67235,7 @@ async function format$1(patterns, options = {}) {
67159
67235
  }
67160
67236
 
67161
67237
  //#endregion
67162
- //#region ../../node_modules/.pnpm/@changesets+errors@1.0.0-next.4/node_modules/@changesets/errors/dist/index.mjs
67238
+ //#region ../../node_modules/.pnpm/@changesets+errors@1.0.0/node_modules/@changesets/errors/dist/index.mjs
67163
67239
  var GitError = class extends Error {
67164
67240
  code;
67165
67241
  constructor(code, message) {
@@ -67174,7 +67250,7 @@ var InternalError = class extends Error {
67174
67250
  };
67175
67251
 
67176
67252
  //#endregion
67177
- //#region ../../node_modules/.pnpm/@changesets+git@4.0.0-next.9/node_modules/@changesets/git/dist/index.mjs
67253
+ //#region ../../node_modules/.pnpm/@changesets+git@4.0.0/node_modules/@changesets/git/dist/index.mjs
67178
67254
  async function getDivergedCommit(cwd, ref) {
67179
67255
  const cmd = await exec("git", [
67180
67256
  "merge-base",
@@ -69354,7 +69430,7 @@ function applyEdits(text, edits) {
69354
69430
  }
69355
69431
 
69356
69432
  //#endregion
69357
- //#region ../../node_modules/.pnpm/@changesets+apply-release-plan@8.0.0-next.11/node_modules/@changesets/apply-release-plan/dist/index.mjs
69433
+ //#region ../../node_modules/.pnpm/@changesets+apply-release-plan@8.0.0/node_modules/@changesets/apply-release-plan/dist/index.mjs
69358
69434
  /**
69359
69435
  * A simple JSON editing utility that preserves formatting. They specified operation keys
69360
69436
  * must exist in the JSON for this implementation.
@@ -69708,7 +69784,7 @@ async function updateChangelog(changelogPath, changelog, name) {
69708
69784
  }
69709
69785
 
69710
69786
  //#endregion
69711
- //#region ../../node_modules/.pnpm/@changesets+assemble-release-plan@7.0.0-next.11/node_modules/@changesets/assemble-release-plan/dist/index.mjs
69787
+ //#region ../../node_modules/.pnpm/@changesets+assemble-release-plan@7.0.0/node_modules/@changesets/assemble-release-plan/dist/index.mjs
69712
69788
  function getHighestReleaseType(releases) {
69713
69789
  if (releases.length === 0) throw new Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`);
69714
69790
  let highestReleaseType = "none";
@@ -70050,7 +70126,7 @@ function getPreInfo(packagesByName, config, preState) {
70050
70126
  }
70051
70127
 
70052
70128
  //#endregion
70053
- //#region ../../node_modules/.pnpm/@changesets+pre@3.0.0-next.9/node_modules/@changesets/pre/dist/index.mjs
70129
+ //#region ../../node_modules/.pnpm/@changesets+pre@3.0.0/node_modules/@changesets/pre/dist/index.mjs
70054
70130
  async function outputFile(filePath, content) {
70055
70131
  await fs$1.mkdir(path$1.dirname(filePath), { recursive: true });
70056
70132
  await fs$1.writeFile(filePath, content, "utf8");
@@ -70092,7 +70168,7 @@ async function migratePreState(rootDir, preState) {
70092
70168
  }
70093
70169
 
70094
70170
  //#endregion
70095
- //#region ../../node_modules/.pnpm/@changesets+parse@1.0.0-next.10/node_modules/@changesets/parse/dist/index.mjs
70171
+ //#region ../../node_modules/.pnpm/@changesets+parse@1.0.0/node_modules/@changesets/parse/dist/index.mjs
70096
70172
  const mdRegex = /\s*---([^]*?)\r?\n\s*---(\s*(?:\n|$)[^]*)/;
70097
70173
  const EXAMPLE_FORMAT = `---\n"package-name": patch\n---`;
70098
70174
  const validVersionTypes = [
@@ -70146,7 +70222,7 @@ YAML error: ${e instanceof Error ? e.message : String(e)}\nFrontmatter content:\
70146
70222
  }
70147
70223
 
70148
70224
  //#endregion
70149
- //#region ../../node_modules/.pnpm/@changesets+read@1.0.0-next.10/node_modules/@changesets/read/dist/index.mjs
70225
+ //#region ../../node_modules/.pnpm/@changesets+read@1.0.0/node_modules/@changesets/read/dist/index.mjs
70150
70226
  const ignoredMdFiles = [
70151
70227
  /^README\.md$/i,
70152
70228
  "AGENTS.md",
@@ -70174,7 +70250,6 @@ async function readChangesets(rootDir, sinceRef) {
70174
70250
  } catch (err) {
70175
70251
  if (err.code !== "ENOENT") throw err;
70176
70252
  }
70177
- console.log(changesets);
70178
70253
  if (sinceRef != null) changesets = await filterChangesetsSinceRef(changesets, changesetBase, sinceRef);
70179
70254
  changesets = changesets.filter((file) => {
70180
70255
  file = path$1.basename(file);
@@ -70190,7 +70265,7 @@ async function readChangesets(rootDir, sinceRef) {
70190
70265
  }
70191
70266
 
70192
70267
  //#endregion
70193
- //#region ../../node_modules/.pnpm/@changesets+get-release-plan@5.0.0-next.11/node_modules/@changesets/get-release-plan/dist/index.mjs
70268
+ //#region ../../node_modules/.pnpm/@changesets+get-release-plan@5.0.0/node_modules/@changesets/get-release-plan/dist/index.mjs
70194
70269
  async function getReleasePlan(cwd, sinceRef, passedConfig) {
70195
70270
  const packages = await getPackages(cwd);
70196
70271
  const configResult = await readConfig(packages.rootDir, packages);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savvy-web/silk",
3
- "version": "3.7.0",
3
+ "version": "3.7.1",
4
4
  "private": false,
5
5
  "description": "The single Silk Suite dev-tooling package — changeset, commitlint, lint, and biome conventions",
6
6
  "homepage": "https://github.com/savvy-web/systems/tree/main/packages/silk",
@@ -76,9 +76,9 @@
76
76
  "dependencies": {
77
77
  "@effected/templates": "^0.2.0",
78
78
  "@savvy-web/changelog": "0.1.1",
79
- "@savvy-web/cli": "2.5.1",
80
- "@savvy-web/mcp": "2.3.1",
81
- "@savvy-web/silk-effects": "5.7.0",
79
+ "@savvy-web/cli": "2.5.2",
80
+ "@savvy-web/mcp": "2.3.2",
81
+ "@savvy-web/silk-effects": "5.7.1",
82
82
  "effect": "4.0.0-beta.107",
83
83
  "semver": "^7.8.5"
84
84
  },