@savvy-web/silk-effects 9.3.1 → 9.4.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.
@@ -7,7 +7,7 @@ import { ConfigInspector } from "./config-inspector.js";
7
7
  import { computeWorkspaceDependencyDiffs } from "../utils/dep-diff.js";
8
8
  import { gitListChangesetFilesAtRef, gitMergeBase, gitResolveRef, gitShowFileAtRef } from "../utils/git.js";
9
9
  import { listPublishablePackageNames } from "../utils/publishability.js";
10
- import { Context, Effect, FileSystem, Layer, Option } from "effect";
10
+ import { Context, Data, Effect, FileSystem, Layer, Option } from "effect";
11
11
  import { basename, join, resolve } from "node:path";
12
12
  import { Git } from "@effected/git";
13
13
  import { LockfileReader, PublishabilityDetector, WorkspaceCatalogs, WorkspaceDiscovery, WorkspaceSnapshots, Workspaces } from "@effected/workspaces";
@@ -301,6 +301,7 @@ const findMixedDependencyChangesets = (fs, changesetDir) => Effect.gen(function*
301
301
  function renderChangesetContent(diff) {
302
302
  return `${`---\n"${diff.package}": patch\n---`}\n\n## Dependencies\n\n${serializeDependencyTableToMarkdown([...diff.rows])}\n`;
303
303
  }
304
+ const RegenStep = Data.taggedEnum();
304
305
  /**
305
306
  * Effect service tag for {@link DepsRegenShape}.
306
307
  *
@@ -453,7 +454,8 @@ function makeShape(snapshots, inspector, discovery, worktreeMemos, detector, con
453
454
  coexisting
454
455
  };
455
456
  });
456
- const execute = (plan) => Effect.gen(function* () {
457
+ const execute = (plan, options) => Effect.gen(function* () {
458
+ const onStep = options?.onStep ?? (() => Effect.void);
457
459
  const deleted = [];
458
460
  const written = [];
459
461
  for (const entry of plan.toWrite) {
@@ -463,8 +465,12 @@ function makeShape(snapshots, inspector, discovery, worktreeMemos, detector, con
463
465
  reason: String(e)
464
466
  })));
465
467
  written.push(entry.file);
468
+ yield* onStep(RegenStep.Written({ file: entry.file }));
469
+ }
470
+ for (const entry of plan.toDelete) if (yield* Effect.isSuccess(fs.remove(entry.file))) {
471
+ deleted.push(entry.file);
472
+ yield* onStep(RegenStep.Deleted({ file: entry.file }));
466
473
  }
467
- for (const entry of plan.toDelete) if (yield* Effect.isSuccess(fs.remove(entry.file))) deleted.push(entry.file);
468
474
  return {
469
475
  deleted,
470
476
  written,
@@ -3,7 +3,7 @@ import { ChangelogTransformer } from "../api/transformer.js";
3
3
  import { ConfigInspector } from "./config-inspector.js";
4
4
  import { deriveMaintenanceReason } from "./maintenance-reason.js";
5
5
  import { VersionFiles } from "../utils/version-files.js";
6
- import { Context, Effect, FileSystem, Layer } from "effect";
6
+ import { Context, Data, Effect, FileSystem, Layer } from "effect";
7
7
  import { dirname, isAbsolute, join, relative } from "node:path";
8
8
  import { applyReleasePlan } from "@changesets/apply-release-plan";
9
9
  import { assembleReleasePlan } from "@changesets/assemble-release-plan";
@@ -41,6 +41,7 @@ async function loadConfig(root, packages) {
41
41
  warnings: configResult.warnings
42
42
  };
43
43
  }
44
+ const ApplyStep = Data.taggedEnum();
44
45
  /** Effect service tag for the release planner. @public */
45
46
  var ReleasePlanner = class extends Context.Service()("ReleasePlanner") {
46
47
  /** Production layer. Requires {@link ConfigInspector} (used by `apply`) and `FileSystem`. @public */
@@ -58,7 +59,7 @@ function makeShape(inspector, fs) {
58
59
  })
59
60
  });
60
61
  const preview = (root, options) => previewEffect(root, options?.changelogModules, options?.snapshot, fs);
61
- const apply = (root, options) => applyEffect(root, options?.dryRun ?? false, options?.changelogModules, options?.snapshot, inspector, fs);
62
+ const apply = (root, options) => applyEffect(root, options?.dryRun ?? false, options?.changelogModules, options?.snapshot, options?.onStep, inspector, fs);
62
63
  return {
63
64
  plan,
64
65
  preview,
@@ -387,7 +388,8 @@ function previewEffect(root, changelogModules, snapshot, fs) {
387
388
  function diskVersion(workspaceDir, fallback, fs) {
388
389
  return fs.readFileString(join(workspaceDir, "package.json")).pipe(Effect.flatMap((raw) => Effect.try(() => JSON.parse(raw).version ?? fallback)), Effect.orElseSucceed(() => fallback));
389
390
  }
390
- function applyEffect(root, dryRun, changelogModules, snapshot, inspector, fs) {
391
+ function applyEffect(root, dryRun, changelogModules, snapshot, onStepOption, inspector, fs) {
392
+ const onStep = onStepOption ?? (() => Effect.void);
391
393
  return Effect.gen(function* () {
392
394
  let plan;
393
395
  let packages;
@@ -473,6 +475,10 @@ function applyEffect(root, dryRun, changelogModules, snapshot, inspector, fs) {
473
475
  reason: errMsg(e)
474
476
  })
475
477
  });
478
+ yield* onStep(ApplyStep.EngineApplied({
479
+ touchedFiles,
480
+ releases
481
+ }));
476
482
  }
477
483
  const newVersionByName = new Map(plan.releases.map((r) => [r.name, r.newVersion]));
478
484
  yield* inspector.refreshIn(root);
@@ -493,6 +499,7 @@ function applyEffect(root, dryRun, changelogModules, snapshot, inspector, fs) {
493
499
  reason: errMsg(e)
494
500
  }))) : [];
495
501
  }
502
+ if (!dryRun && versionFileUpdates.length > 0) yield* onStep(ApplyStep.VersionFilesUpdated({ updates: versionFileUpdates }));
496
503
  return {
497
504
  dryRun,
498
505
  touchedFiles,
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { AnalyzedWorkspace, BiomeSyncError, BiomeSyncError as BiomeSyncError$1, BiomeSyncOptions, BiomeSyncResult, BiomeSyncResult as BiomeSyncResult$1, ChangesetConfigError, ChangesetConfigError as ChangesetConfigError$1, ChangesetConfigFile, ChangesetConfigFile as ChangesetConfigFile$1, ConfigDiscoveryOptions, ConfigLocation, ConfigLocation as ConfigLocation$1, ConfigNotFoundError, ConfigSource, LIFECYCLE_SCRIPTS_CONFIG_KEY, PrBody, PublishTargetBindingError, PublishTargetBindingError as PublishTargetBindingError$1, SavvyBaseSection, SavvyHooksSection, SavvyInstallHook, SavvyInstallSection, SavvyOkfSection, SavvyToolchainSection, SilkChangesetConfigFile, SilkChangesetConfigFile as SilkChangesetConfigFile$1, SilkPublishConfig, WorkspaceAnalysis, WorkspaceAnalysis as WorkspaceAnalysis$1, WorkspaceAnalysisError, WorkspaceAnalysisError as WorkspaceAnalysisError$1, publishesBuiltLinkDirectory, savvyBasePreamble, savvyHooksHygiene, savvyInstallBlock, savvyInstallDeps, savvyOkfBlock, savvyOkfSync, savvyToolSection, savvyToolchainCheck } from "@savvy-web/silk-core";
2
- import { Context, Effect, FileSystem, Layer, Path, PlatformError, Schema } from "effect";
2
+ import { Context, Data, Effect, FileSystem, Layer, Path, PlatformError, Schema } from "effect";
3
3
  import { Plugin } from "unified";
4
4
  import { ChildProcessSpawner } from "effect/process";
5
5
  import { LockfileReader, PackageManagerDetector, PublishTarget, PublishabilityDetector, WorkspaceCatalogs, WorkspaceDiscovery, WorkspaceDiscoveryFailure, WorkspacePackage, WorkspaceSnapshotAtFailure, WorkspaceSnapshotWorktreeFailure, WorkspaceSnapshots, WorkspaceStateSnapshot, WorkspacesOptions } from "@effected/workspaces";
@@ -598,7 +598,7 @@ declare class Changelog {
598
598
  * }
599
599
  * ```
600
600
  */
601
- interface Data$1 {}
601
+ interface Data$2 {}
602
602
  /**
603
603
  * One place in a source file.
604
604
  */
@@ -649,7 +649,7 @@ interface Node$1 {
649
649
  /**
650
650
  * Info from the ecosystem.
651
651
  */
652
- data?: Data$1 | undefined;
652
+ data?: Data$2 | undefined;
653
653
  /**
654
654
  * Position of a node in a source document.
655
655
  *
@@ -777,7 +777,7 @@ interface Resource {
777
777
  * }
778
778
  * ```
779
779
  */
780
- interface Data extends Data$1 {}
780
+ interface Data$1 extends Data$2 {}
781
781
  // ## Content maps
782
782
  /**
783
783
  * Union of registered mdast nodes that can occur where block content is
@@ -1046,7 +1046,7 @@ interface Node extends Node$1 {
1046
1046
  /**
1047
1047
  * Info from the ecosystem.
1048
1048
  */
1049
- data?: Data | undefined;
1049
+ data?: Data$1 | undefined;
1050
1050
  }
1051
1051
  /**
1052
1052
  * Abstract mdast node that contains other mdast nodes (*children*).
@@ -1082,7 +1082,7 @@ interface Blockquote extends Parent {
1082
1082
  /**
1083
1083
  * Info associated with mdast block quote nodes by the ecosystem.
1084
1084
  */
1085
- interface BlockquoteData extends Data {}
1085
+ interface BlockquoteData extends Data$1 {}
1086
1086
  /**
1087
1087
  * Markdown break.
1088
1088
  */
@@ -1099,7 +1099,7 @@ interface Break extends Node {
1099
1099
  /**
1100
1100
  * Info associated with mdast break nodes by the ecosystem.
1101
1101
  */
1102
- interface BreakData extends Data {}
1102
+ interface BreakData extends Data$1 {}
1103
1103
  /**
1104
1104
  * Markdown code (flow) (block).
1105
1105
  */
@@ -1126,7 +1126,7 @@ interface Code extends Literal {
1126
1126
  /**
1127
1127
  * Info associated with mdast code (flow) (block) nodes by the ecosystem.
1128
1128
  */
1129
- interface CodeData extends Data {}
1129
+ interface CodeData extends Data$1 {}
1130
1130
  /**
1131
1131
  * Markdown definition.
1132
1132
  */
@@ -1143,7 +1143,7 @@ interface Definition extends Node, Association, Resource {
1143
1143
  /**
1144
1144
  * Info associated with mdast definition nodes by the ecosystem.
1145
1145
  */
1146
- interface DefinitionData extends Data {}
1146
+ interface DefinitionData extends Data$1 {}
1147
1147
  /**
1148
1148
  * Markdown GFM delete (strikethrough).
1149
1149
  */
@@ -1164,7 +1164,7 @@ interface Delete extends Parent {
1164
1164
  /**
1165
1165
  * Info associated with mdast GFM delete nodes by the ecosystem.
1166
1166
  */
1167
- interface DeleteData extends Data {}
1167
+ interface DeleteData extends Data$1 {}
1168
1168
  /**
1169
1169
  * Markdown emphasis.
1170
1170
  */
@@ -1185,7 +1185,7 @@ interface Emphasis extends Parent {
1185
1185
  /**
1186
1186
  * Info associated with mdast emphasis nodes by the ecosystem.
1187
1187
  */
1188
- interface EmphasisData extends Data {}
1188
+ interface EmphasisData extends Data$1 {}
1189
1189
  /**
1190
1190
  * Markdown GFM footnote definition.
1191
1191
  */
@@ -1206,7 +1206,7 @@ interface FootnoteDefinition extends Parent, Association {
1206
1206
  /**
1207
1207
  * Info associated with mdast GFM footnote definition nodes by the ecosystem.
1208
1208
  */
1209
- interface FootnoteDefinitionData extends Data {}
1209
+ interface FootnoteDefinitionData extends Data$1 {}
1210
1210
  /**
1211
1211
  * Markdown GFM footnote reference.
1212
1212
  */
@@ -1223,7 +1223,7 @@ interface FootnoteReference extends Association, Node {
1223
1223
  /**
1224
1224
  * Info associated with mdast GFM footnote reference nodes by the ecosystem.
1225
1225
  */
1226
- interface FootnoteReferenceData extends Data {}
1226
+ interface FootnoteReferenceData extends Data$1 {}
1227
1227
  /**
1228
1228
  * Markdown heading.
1229
1229
  */
@@ -1250,7 +1250,7 @@ interface Heading extends Parent {
1250
1250
  /**
1251
1251
  * Info associated with mdast heading nodes by the ecosystem.
1252
1252
  */
1253
- interface HeadingData extends Data {}
1253
+ interface HeadingData extends Data$1 {}
1254
1254
  /**
1255
1255
  * Markdown HTML.
1256
1256
  */
@@ -1267,7 +1267,7 @@ interface Html extends Literal {
1267
1267
  /**
1268
1268
  * Info associated with mdast HTML nodes by the ecosystem.
1269
1269
  */
1270
- interface HtmlData extends Data {}
1270
+ interface HtmlData extends Data$1 {}
1271
1271
  /**
1272
1272
  * Markdown image.
1273
1273
  */
@@ -1284,7 +1284,7 @@ interface Image extends Alternative, Node, Resource {
1284
1284
  /**
1285
1285
  * Info associated with mdast image nodes by the ecosystem.
1286
1286
  */
1287
- interface ImageData extends Data {}
1287
+ interface ImageData extends Data$1 {}
1288
1288
  /**
1289
1289
  * Markdown image reference.
1290
1290
  */
@@ -1301,7 +1301,7 @@ interface ImageReference extends Alternative, Node, Reference {
1301
1301
  /**
1302
1302
  * Info associated with mdast image reference nodes by the ecosystem.
1303
1303
  */
1304
- interface ImageReferenceData extends Data {}
1304
+ interface ImageReferenceData extends Data$1 {}
1305
1305
  /**
1306
1306
  * Markdown code (text) (inline).
1307
1307
  */
@@ -1318,7 +1318,7 @@ interface InlineCode extends Literal {
1318
1318
  /**
1319
1319
  * Info associated with mdast code (text) (inline) nodes by the ecosystem.
1320
1320
  */
1321
- interface InlineCodeData extends Data {}
1321
+ interface InlineCodeData extends Data$1 {}
1322
1322
  /**
1323
1323
  * Markdown link.
1324
1324
  */
@@ -1339,7 +1339,7 @@ interface Link extends Parent, Resource {
1339
1339
  /**
1340
1340
  * Info associated with mdast link nodes by the ecosystem.
1341
1341
  */
1342
- interface LinkData extends Data {}
1342
+ interface LinkData extends Data$1 {}
1343
1343
  /**
1344
1344
  * Markdown link reference.
1345
1345
  */
@@ -1360,7 +1360,7 @@ interface LinkReference extends Parent, Reference {
1360
1360
  /**
1361
1361
  * Info associated with mdast link reference nodes by the ecosystem.
1362
1362
  */
1363
- interface LinkReferenceData extends Data {}
1363
+ interface LinkReferenceData extends Data$1 {}
1364
1364
  /**
1365
1365
  * Markdown list.
1366
1366
  */
@@ -1395,7 +1395,7 @@ interface List extends Parent {
1395
1395
  /**
1396
1396
  * Info associated with mdast list nodes by the ecosystem.
1397
1397
  */
1398
- interface ListData extends Data {}
1398
+ interface ListData extends Data$1 {}
1399
1399
  /**
1400
1400
  * Markdown list item.
1401
1401
  */
@@ -1428,7 +1428,7 @@ interface ListItem extends Parent {
1428
1428
  /**
1429
1429
  * Info associated with mdast list item nodes by the ecosystem.
1430
1430
  */
1431
- interface ListItemData extends Data {}
1431
+ interface ListItemData extends Data$1 {}
1432
1432
  /**
1433
1433
  * Markdown paragraph.
1434
1434
  */
@@ -1449,7 +1449,7 @@ interface Paragraph extends Parent {
1449
1449
  /**
1450
1450
  * Info associated with mdast paragraph nodes by the ecosystem.
1451
1451
  */
1452
- interface ParagraphData extends Data {}
1452
+ interface ParagraphData extends Data$1 {}
1453
1453
  /**
1454
1454
  * Document fragment or a whole document.
1455
1455
  *
@@ -1468,7 +1468,7 @@ interface Root extends Parent {
1468
1468
  /**
1469
1469
  * Info associated with mdast root nodes by the ecosystem.
1470
1470
  */
1471
- interface RootData extends Data {}
1471
+ interface RootData extends Data$1 {}
1472
1472
  /**
1473
1473
  * Markdown strong.
1474
1474
  */
@@ -1489,7 +1489,7 @@ interface Strong extends Parent {
1489
1489
  /**
1490
1490
  * Info associated with mdast strong nodes by the ecosystem.
1491
1491
  */
1492
- interface StrongData extends Data {}
1492
+ interface StrongData extends Data$1 {}
1493
1493
  /**
1494
1494
  * Markdown GFM table.
1495
1495
  */
@@ -1514,7 +1514,7 @@ interface Table extends Parent {
1514
1514
  /**
1515
1515
  * Info associated with mdast GFM table nodes by the ecosystem.
1516
1516
  */
1517
- interface TableData extends Data {}
1517
+ interface TableData extends Data$1 {}
1518
1518
  /**
1519
1519
  * Markdown GFM table row.
1520
1520
  */
@@ -1535,7 +1535,7 @@ interface TableRow extends Parent {
1535
1535
  /**
1536
1536
  * Info associated with mdast GFM table row nodes by the ecosystem.
1537
1537
  */
1538
- interface TableRowData extends Data {}
1538
+ interface TableRowData extends Data$1 {}
1539
1539
  /**
1540
1540
  * Markdown GFM table cell.
1541
1541
  */
@@ -1556,7 +1556,7 @@ interface TableCell extends Parent {
1556
1556
  /**
1557
1557
  * Info associated with mdast GFM table cell nodes by the ecosystem.
1558
1558
  */
1559
- interface TableCellData extends Data {}
1559
+ interface TableCellData extends Data$1 {}
1560
1560
  /**
1561
1561
  * Markdown text.
1562
1562
  */
@@ -1573,7 +1573,7 @@ interface Text extends Literal {
1573
1573
  /**
1574
1574
  * Info associated with mdast text nodes by the ecosystem.
1575
1575
  */
1576
- interface TextData extends Data {}
1576
+ interface TextData extends Data$1 {}
1577
1577
  /**
1578
1578
  * Markdown thematic break (horizontal rule).
1579
1579
  */
@@ -1590,7 +1590,7 @@ interface ThematicBreak extends Node {
1590
1590
  /**
1591
1591
  * Info associated with mdast thematic break nodes by the ecosystem.
1592
1592
  */
1593
- interface ThematicBreakData extends Data {}
1593
+ interface ThematicBreakData extends Data$1 {}
1594
1594
  /**
1595
1595
  * Markdown YAML.
1596
1596
  */
@@ -1607,7 +1607,7 @@ interface Yaml$1 extends Literal {
1607
1607
  /**
1608
1608
  * Info associated with mdast YAML nodes by the ecosystem.
1609
1609
  */
1610
- interface YamlData extends Data {}
1610
+ interface YamlData extends Data$1 {}
1611
1611
  //#endregion
1612
1612
  //#region src/changesets/schemas/dependency-table.d.ts
1613
1613
  /**
@@ -3894,6 +3894,41 @@ interface DepsRegenOptions {
3894
3894
  * @public
3895
3895
  */
3896
3896
  type DepsRegenPlanError = GitError | ChangesetIOError | HookReplayError | WorkspaceDiscoveryFailure | WorkspaceSnapshotAtFailure | WorkspaceSnapshotWorktreeFailure;
3897
+ /**
3898
+ * One completed filesystem step of {@link DepsRegenShape.execute}, reported to
3899
+ * {@link DepsRegenExecuteOptions.onStep} as it lands.
3900
+ *
3901
+ * @remarks
3902
+ * `Written` fires right after a fresh changeset is written; `Deleted` right
3903
+ * after a stale one is removed. A tolerated delete failure fires nothing, so
3904
+ * the steps are exactly what reached disk, in order.
3905
+ *
3906
+ * @public
3907
+ */
3908
+ type RegenStep = Data.TaggedEnum<{
3909
+ /** A fresh dependency changeset was written at `file`. */
3910
+ readonly Written: {
3911
+ readonly file: string;
3912
+ };
3913
+ /** A stale pure dependency changeset at `file` was removed. */
3914
+ readonly Deleted: {
3915
+ readonly file: string;
3916
+ };
3917
+ }>;
3918
+ /**
3919
+ * Options for {@link DepsRegenShape.execute}.
3920
+ *
3921
+ * @typeParam R - Services the `onStep` callback requires.
3922
+ *
3923
+ * @public
3924
+ */
3925
+ interface DepsRegenExecuteOptions<R = never> {
3926
+ /**
3927
+ * Called after each completed step, in order, before the next one starts —
3928
+ * so a caller can report progress that survives a later failure.
3929
+ */
3930
+ readonly onStep?: (step: RegenStep) => Effect.Effect<void, never, R>;
3931
+ }
3897
3932
  /**
3898
3933
  * Effect service interface for the deps regen/detect orchestration.
3899
3934
  *
@@ -3917,9 +3952,11 @@ interface DepsRegenShape {
3917
3952
  * safely re-runnable.
3918
3953
  *
3919
3954
  * @param plan - The plan produced by {@link DepsRegenShape.plan}.
3955
+ * @param options - See {@link DepsRegenExecuteOptions}; `onStep` reports
3956
+ * each write and successful delete as it lands.
3920
3957
  * @returns An Effect yielding a {@link RegenResult}.
3921
3958
  */
3922
- readonly execute: (plan: RegenPlan) => Effect.Effect<RegenResult, ChangesetIOError, never>;
3959
+ readonly execute: <R = never>(plan: RegenPlan, options?: DepsRegenExecuteOptions<R>) => Effect.Effect<RegenResult, ChangesetIOError, R>;
3923
3960
  }
3924
3961
  declare const DepsRegen_base: Context.ServiceClass<DepsRegen, "Changesets/DepsRegen", DepsRegenShape>;
3925
3962
  /**
@@ -4071,11 +4108,15 @@ declare const AppliedReleaseEntrySchema: Schema.Struct<{
4071
4108
  readonly oldVersion: Schema.String;
4072
4109
  readonly newVersion: Schema.String;
4073
4110
  }>;
4111
+ /** One applied package release (version transition). @public */
4112
+ type AppliedReleaseEntry = Schema.Schema.Type<typeof AppliedReleaseEntrySchema>;
4074
4113
  /** A single versionFiles update applied (or planned, when dry). @public */
4075
4114
  declare const VersionFileUpdateRecordSchema: Schema.Struct<{
4076
4115
  readonly filePath: Schema.String;
4077
4116
  readonly version: Schema.String;
4078
4117
  }>;
4118
+ /** A single versionFiles update applied (or planned, when dry). @public */
4119
+ type VersionFileUpdateRecord = Schema.Schema.Type<typeof VersionFileUpdateRecordSchema>;
4079
4120
  /** Result of {@link ReleasePlanner.apply}. @public */
4080
4121
  declare const AppliedReleaseSchema: Schema.Struct<{
4081
4122
  readonly dryRun: Schema.Boolean;
@@ -4133,6 +4174,55 @@ interface SnapshotOptions {
4133
4174
  */
4134
4175
  readonly commit?: string;
4135
4176
  }
4177
+ /**
4178
+ * One completed phase of a non-dry {@link ReleasePlannerShape.apply}, reported
4179
+ * to {@link ApplyOptions.onStep} as it lands.
4180
+ *
4181
+ * @remarks
4182
+ * `EngineApplied` fires once the changesets engine has bumped versions,
4183
+ * written and transformed CHANGELOGs, and deleted consumed changesets.
4184
+ * `VersionFilesUpdated` fires after the versionFiles phase, only when it
4185
+ * updated at least one file. A `dryRun` writes nothing and reports no steps.
4186
+ *
4187
+ * @public
4188
+ */
4189
+ type ApplyStep = Data.TaggedEnum<{
4190
+ /** The engine phase completed: `touchedFiles` were written for `releases`. */
4191
+ readonly EngineApplied: {
4192
+ readonly touchedFiles: ReadonlyArray<string>;
4193
+ readonly releases: ReadonlyArray<AppliedReleaseEntry>;
4194
+ };
4195
+ /** The versionFiles phase wrote `updates`. */
4196
+ readonly VersionFilesUpdated: {
4197
+ readonly updates: ReadonlyArray<VersionFileUpdateRecord>;
4198
+ };
4199
+ }>;
4200
+ /**
4201
+ * Options for {@link ReleasePlannerShape.apply}.
4202
+ *
4203
+ * @typeParam R - Services the `onStep` callback requires.
4204
+ *
4205
+ * @public
4206
+ */
4207
+ interface ApplyOptions<R = never> {
4208
+ /** Compute and report the release without writing anything. */
4209
+ readonly dryRun?: boolean;
4210
+ /**
4211
+ * Map configured changelog ids to absolute module paths. When set,
4212
+ * `config.changelog[0]` must be a key of this map (rewritten before the
4213
+ * engine call; unmapped ids fail) and the engine's `format` integration
4214
+ * is disabled — callers in no-`node_modules` contexts own formatting.
4215
+ */
4216
+ readonly changelogModules?: Readonly<Record<string, string>>;
4217
+ /** `changeset version --snapshot` parity. See {@link SnapshotOptions}. */
4218
+ readonly snapshot?: SnapshotOptions;
4219
+ /**
4220
+ * Called after each completed phase, in order, before the next one starts —
4221
+ * so a caller can report what already reached disk even if a later phase
4222
+ * fails. Never called on a `dryRun`.
4223
+ */
4224
+ readonly onStep?: (step: ApplyStep) => Effect.Effect<void, never, R>;
4225
+ }
4136
4226
  /** The `ReleasePlanner` service surface. @public */
4137
4227
  interface ReleasePlannerShape {
4138
4228
  /** Compute the in-memory release plan (read-only). */
@@ -4155,19 +4245,8 @@ interface ReleasePlannerShape {
4155
4245
  /** `changeset version --snapshot` parity. See {@link SnapshotOptions}. */
4156
4246
  readonly snapshot?: SnapshotOptions;
4157
4247
  }) => Effect.Effect<ChangesetPreview, ReleasePlanError>;
4158
- /** Natively apply the release (destructive unless `dryRun`). */
4159
- readonly apply: (root: string, options?: {
4160
- readonly dryRun?: boolean;
4161
- /**
4162
- * Map configured changelog ids to absolute module paths. When set,
4163
- * `config.changelog[0]` must be a key of this map (rewritten before the
4164
- * engine call; unmapped ids fail) and the engine's `format` integration
4165
- * is disabled — callers in no-`node_modules` contexts own formatting.
4166
- */
4167
- readonly changelogModules?: Readonly<Record<string, string>>;
4168
- /** `changeset version --snapshot` parity. See {@link SnapshotOptions}. */
4169
- readonly snapshot?: SnapshotOptions;
4170
- }) => Effect.Effect<AppliedRelease, ReleasePlanError>;
4248
+ /** Natively apply the release (destructive unless `dryRun`). See {@link ApplyOptions}. */
4249
+ readonly apply: <R = never>(root: string, options?: ApplyOptions<R>) => Effect.Effect<AppliedRelease, ReleasePlanError, R>;
4171
4250
  }
4172
4251
  declare const ReleasePlanner_base: Context.ServiceClass<ReleasePlanner, "ReleasePlanner", ReleasePlannerShape>;
4173
4252
  /** Effect service tag for the release planner. @public */
@@ -5914,7 +5993,7 @@ declare const RequiredSectionsRule: import("unified-lint-rule").Plugin<Root, unk
5914
5993
  //#region src/changesets/remark/rules/uncategorized-content.d.ts
5915
5994
  declare const UncategorizedContentRule: import("unified-lint-rule").Plugin<Root, unknown>;
5916
5995
  declare namespace index_d_exports {
5917
- export { AggregateDependencyTablesPlugin, AppliedRelease, AppliedReleaseEntrySchema, AppliedReleaseSchema, BranchAnalysis, BranchAnalysisSchema, BranchAnalyzer, BranchAnalyzerShape, BranchFileEntry, BranchFileEntrySchema, BumpType, BumpTypeSchema, Categories, Changelog, ChangelogService, ChangelogServiceShape, ChangelogTransformer, Changeset, ChangesetIOError, ChangesetLinter, ChangesetLogMode, ChangesetLogModeValue, ChangesetOptions, ChangesetOptionsSchema, ChangesetPreview, ChangesetPreviewSchema, ChangesetSchema, ChangesetSummarySchema, ChangesetValidationError, Classification, ClassificationReason, ClassificationReasonSchema, ClassificationSchema, CoexistingChangeset, CoexistingChangesetSchema, CommitHashSchema, ConfigInspector, ConfigInspectorShape, ConfigurationError, ContentStructureRule, ContributorFootnotesPlugin, DeduplicateItemsPlugin, DependencyAction, DependencyActionSchema, DependencyTable, DependencyTableFormatRule, DependencyTableRow, DependencyTableRowSchema, DependencyTableSchema, DependencyTableType, DependencyTableTypeSchema, DependencyType, DependencyTypeSchema, DependencyUpdate, DependencyUpdateSchema, DepsRegen, DepsRegenDefault, DepsRegenOptions, DepsRegenPlanError, DepsRegenShape, FileStatus, FileStatusSchema, GitError, GitHubApiError, GitHubCommitInfo, GitHubInfo, GitHubInfoSchema, GitHubService, GitHubServiceShape, GlobSchema, HeadingHierarchyRule, HookReplayError, InspectedConfig, InspectedConfigSchema, IssueLinkRefsPlugin, IssueNumberSchema, JsonPathSchema, LegacyVersionFileConfig, LegacyVersionFileConfigSchema, LegacyVersionFilesSchema, LintMessage, MaintenanceNoteOptions, MaintenanceNotePlugin, MaintenanceReason, MaintenanceReasonSchema, MaintenanceTrigger, MaintenanceTriggerSchema, MakeChangelogFunctionsOptions, MarkdownParseError, ContentStructureRule$1 as MarkdownlintContentStructureRule, DependencyTableFormatRule$1 as MarkdownlintDependencyTableFormatRule, HeadingHierarchyRule$1 as MarkdownlintHeadingHierarchyRule, RequiredSectionsRule$1 as MarkdownlintRequiredSectionsRule, UncategorizedContentRule$1 as MarkdownlintUncategorizedContentRule, MergeSectionsPlugin, NonEmptyString, NormalizeFormatPlugin, PackageScope, PackageScopeSchema, PackagesRecordSchema, PendingChangeset, PendingChangesetSchema, PositiveInteger, PreviewRelease, PreviewReleaseSchema, RegenDiffRow, RegenDiffRowSchema, RegenPlan, RegenPlanSchema, RegenResult, RegenResultSchema, ReleasePlanError, ReleasePlanner, ReleasePlannerShape, ReorderSectionsPlugin, RepoSchema, RequiredSectionsRule, ResolvedPackageScope, ResolvedPackageScopeSchema, ResolvedVersionFile, ResolvedVersionFileSchema, SectionCategory, SectionCategorySchema, SilkChangesetPreset, SilkChangesetTransformPreset, SilkChangesetsRules, SnapshotOptions, TransformOptions, UncategorizedContentRule, UrlOrMarkdownLinkSchema, UsernameSchema, VERSION_RE, VersionFileConfig, VersionFileConfigSchema, VersionFileError, VersionFileUpdate, VersionFileUpdateRecordSchema, VersionFiles, VersionFilesSchema, VersionOrEmptySchema, VersionType, VersionTypeSchema, WorkspaceDependencyDiff, WorkspaceVersion, changelogFunctions, computeWorkspaceDependencyDiffs, deriveMaintenanceReason, gitMergeBase, isPureDependencyChangeset, listPublishablePackageNames, makeBranchAnalyzerTest, makeChangelogFunctions, makeConfigInspectorTest, makeDepsRegenDefault, makeGitHubTest, makeReleasePlannerTest, parseChangesetPackages, serializeDependencyTableToMarkdown, vanillaChangelogFunctions };
5996
+ export { AggregateDependencyTablesPlugin, AppliedRelease, AppliedReleaseEntry, AppliedReleaseEntrySchema, AppliedReleaseSchema, ApplyOptions, ApplyStep, BranchAnalysis, BranchAnalysisSchema, BranchAnalyzer, BranchAnalyzerShape, BranchFileEntry, BranchFileEntrySchema, BumpType, BumpTypeSchema, Categories, Changelog, ChangelogService, ChangelogServiceShape, ChangelogTransformer, Changeset, ChangesetIOError, ChangesetLinter, ChangesetLogMode, ChangesetLogModeValue, ChangesetOptions, ChangesetOptionsSchema, ChangesetPreview, ChangesetPreviewSchema, ChangesetSchema, ChangesetSummarySchema, ChangesetValidationError, Classification, ClassificationReason, ClassificationReasonSchema, ClassificationSchema, CoexistingChangeset, CoexistingChangesetSchema, CommitHashSchema, ConfigInspector, ConfigInspectorShape, ConfigurationError, ContentStructureRule, ContributorFootnotesPlugin, DeduplicateItemsPlugin, DependencyAction, DependencyActionSchema, DependencyTable, DependencyTableFormatRule, DependencyTableRow, DependencyTableRowSchema, DependencyTableSchema, DependencyTableType, DependencyTableTypeSchema, DependencyType, DependencyTypeSchema, DependencyUpdate, DependencyUpdateSchema, DepsRegen, DepsRegenDefault, DepsRegenExecuteOptions, DepsRegenOptions, DepsRegenPlanError, DepsRegenShape, FileStatus, FileStatusSchema, GitError, GitHubApiError, GitHubCommitInfo, GitHubInfo, GitHubInfoSchema, GitHubService, GitHubServiceShape, GlobSchema, HeadingHierarchyRule, HookReplayError, InspectedConfig, InspectedConfigSchema, IssueLinkRefsPlugin, IssueNumberSchema, JsonPathSchema, LegacyVersionFileConfig, LegacyVersionFileConfigSchema, LegacyVersionFilesSchema, LintMessage, MaintenanceNoteOptions, MaintenanceNotePlugin, MaintenanceReason, MaintenanceReasonSchema, MaintenanceTrigger, MaintenanceTriggerSchema, MakeChangelogFunctionsOptions, MarkdownParseError, ContentStructureRule$1 as MarkdownlintContentStructureRule, DependencyTableFormatRule$1 as MarkdownlintDependencyTableFormatRule, HeadingHierarchyRule$1 as MarkdownlintHeadingHierarchyRule, RequiredSectionsRule$1 as MarkdownlintRequiredSectionsRule, UncategorizedContentRule$1 as MarkdownlintUncategorizedContentRule, MergeSectionsPlugin, NonEmptyString, NormalizeFormatPlugin, PackageScope, PackageScopeSchema, PackagesRecordSchema, PendingChangeset, PendingChangesetSchema, PositiveInteger, PreviewRelease, PreviewReleaseSchema, RegenDiffRow, RegenDiffRowSchema, RegenPlan, RegenPlanSchema, RegenResult, RegenResultSchema, RegenStep, ReleasePlanError, ReleasePlanner, ReleasePlannerShape, ReorderSectionsPlugin, RepoSchema, RequiredSectionsRule, ResolvedPackageScope, ResolvedPackageScopeSchema, ResolvedVersionFile, ResolvedVersionFileSchema, SectionCategory, SectionCategorySchema, SilkChangesetPreset, SilkChangesetTransformPreset, SilkChangesetsRules, SnapshotOptions, TransformOptions, UncategorizedContentRule, UrlOrMarkdownLinkSchema, UsernameSchema, VERSION_RE, VersionFileConfig, VersionFileConfigSchema, VersionFileError, VersionFileUpdate, VersionFileUpdateRecord, VersionFileUpdateRecordSchema, VersionFiles, VersionFilesSchema, VersionOrEmptySchema, VersionType, VersionTypeSchema, WorkspaceDependencyDiff, WorkspaceVersion, changelogFunctions, computeWorkspaceDependencyDiffs, deriveMaintenanceReason, gitMergeBase, isPureDependencyChangeset, listPublishablePackageNames, makeBranchAnalyzerTest, makeChangelogFunctions, makeConfigInspectorTest, makeDepsRegenDefault, makeGitHubTest, makeReleasePlannerTest, parseChangesetPackages, serializeDependencyTableToMarkdown, vanillaChangelogFunctions };
5918
5997
  }
5919
5998
  //#endregion
5920
5999
  //#region src/commitlint/config/schema.d.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savvy-web/silk-effects",
3
- "version": "9.3.1",
3
+ "version": "9.4.1",
4
4
  "private": false,
5
5
  "description": "Shared Effect library for Silk Suite conventions",
6
6
  "homepage": "https://github.com/savvy-web/systems/tree/main/packages/silk-effects",
@@ -37,31 +37,31 @@
37
37
  "@changesets/get-release-plan": "^5.0.2",
38
38
  "@changesets/pre": "^3.0.0",
39
39
  "@changesets/read": "^1.0.1",
40
- "@effected/github-references": "^0.6.0",
41
- "@effected/glob": "^0.9.0",
42
- "@effected/jsonc": "^0.14.0",
43
- "@effected/markdown": "^0.14.0",
44
- "@effected/package-json": "^0.19.1",
45
- "@effected/toml": "^0.10.0",
46
- "@effected/walker": "^0.14.0",
47
- "@effected/yaml": "^0.18.0",
40
+ "@effected/github-references": "^0.7.0",
41
+ "@effected/glob": "^0.10.0",
42
+ "@effected/jsonc": "^0.15.1",
43
+ "@effected/markdown": "^0.15.1",
44
+ "@effected/package-json": "^0.20.0",
45
+ "@effected/toml": "^0.11.1",
46
+ "@effected/walker": "^0.15.0",
47
+ "@effected/yaml": "^0.19.1",
48
48
  "@manypkg/get-packages": "^3.1.0",
49
- "@savvy-web/silk-core": "0.4.8",
49
+ "@savvy-web/silk-core": "0.4.10",
50
50
  "mdast-util-heading-range": "^4.0.0",
51
51
  "mdast-util-to-string": "^4.0.0",
52
52
  "remark-gfm": "^4.0.1",
53
53
  "remark-parse": "^11.0.0",
54
54
  "remark-stringify": "^11.0.0",
55
- "shell-quote": "^1.11.0",
55
+ "shell-quote": "^1.12.0",
56
56
  "unified": "^11.0.5",
57
57
  "unified-lint-rule": "^3.0.1",
58
58
  "unist-util-visit": "^5.1.0"
59
59
  },
60
60
  "peerDependencies": {
61
- "@effected/commands": "^0.10.0",
62
- "@effected/git": "^0.19.0",
63
- "@effected/templates": "^0.9.0",
64
- "@effected/workspaces": "^0.30.0",
65
- "effect": "4.0.0-rc.118"
61
+ "@effected/commands": "^0.11.0",
62
+ "@effected/git": "^0.20.0",
63
+ "@effected/templates": "^0.10.0",
64
+ "@effected/workspaces": "^0.32.0",
65
+ "effect": "^4.0.0"
66
66
  }
67
67
  }