@savvy-web/silk-effects 9.5.5 → 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_virtual/_rolldown/runtime.js +1 -2
- package/changesets/api/categories.js +1 -2
- package/changesets/api/changelog.js +1 -2
- package/changesets/api/dependency-table.js +1 -2
- package/changesets/api/linter.js +1 -2
- package/changesets/api/transformer.js +1 -2
- package/changesets/categories/index.js +1 -2
- package/changesets/categories/types.js +1 -2
- package/changesets/changelog/formatting.js +1 -2
- package/changesets/changelog/getDependencyReleaseLine.js +1 -2
- package/changesets/changelog/getReleaseLine.js +1 -2
- package/changesets/changelog/index.js +1 -2
- package/changesets/changelog/vanilla.js +1 -2
- package/changesets/constants.js +1 -2
- package/changesets/errors.js +1 -2
- package/changesets/index.js +1 -2
- package/changesets/markdownlint/index.js +1 -2
- package/changesets/markdownlint/rules/content-structure.js +1 -2
- package/changesets/markdownlint/rules/dependency-table-format.js +1 -2
- package/changesets/markdownlint/rules/heading-hierarchy.js +1 -2
- package/changesets/markdownlint/rules/required-sections.js +1 -2
- package/changesets/markdownlint/rules/uncategorized-content.js +1 -2
- package/changesets/markdownlint/rules/utils.js +1 -2
- package/changesets/remark/plugins/aggregate-dependency-tables.js +1 -2
- package/changesets/remark/plugins/contributor-footnotes.js +1 -2
- package/changesets/remark/plugins/deduplicate-items.js +1 -2
- package/changesets/remark/plugins/issue-link-refs.js +1 -2
- package/changesets/remark/plugins/maintenance-note.js +1 -2
- package/changesets/remark/plugins/merge-sections.js +1 -2
- package/changesets/remark/plugins/normalize-format.js +1 -2
- package/changesets/remark/plugins/reorder-sections.js +1 -2
- package/changesets/remark/presets.js +1 -2
- package/changesets/remark/rules/content-structure.js +1 -2
- package/changesets/remark/rules/dependency-table-format.js +1 -2
- package/changesets/remark/rules/heading-hierarchy.js +1 -2
- package/changesets/remark/rules/required-sections.js +1 -2
- package/changesets/remark/rules/uncategorized-content.js +1 -2
- package/changesets/schemas/changeset.js +1 -2
- package/changesets/schemas/dependency-table.js +1 -2
- package/changesets/schemas/deps-regen.js +1 -2
- package/changesets/schemas/git.js +1 -2
- package/changesets/schemas/github.js +1 -2
- package/changesets/schemas/options.js +1 -2
- package/changesets/schemas/package-scope.js +1 -2
- package/changesets/schemas/primitives.js +1 -2
- package/changesets/schemas/release-plan.js +1 -2
- package/changesets/schemas/version-files.js +1 -2
- package/changesets/services/branch-analyzer.js +1 -2
- package/changesets/services/changelog.js +1 -2
- package/changesets/services/config-inspector.js +1 -2
- package/changesets/services/deps-regen.js +1 -2
- package/changesets/services/github.js +1 -2
- package/changesets/services/maintenance-reason.js +1 -2
- package/changesets/services/release-planner.js +1 -2
- package/changesets/utils/commit-parser.js +1 -2
- package/changesets/utils/dep-diff.js +1 -2
- package/changesets/utils/dependency-section.js +1 -2
- package/changesets/utils/dependency-table.js +1 -2
- package/changesets/utils/git.js +1 -2
- package/changesets/utils/issue-refs.js +1 -2
- package/changesets/utils/jsonpath.js +1 -2
- package/changesets/utils/logger.js +1 -2
- package/changesets/utils/markdown-emit.js +1 -2
- package/changesets/utils/markdown-link.js +1 -2
- package/changesets/utils/publishability.js +1 -2
- package/changesets/utils/remark-pipeline.js +1 -2
- package/changesets/utils/section-parser.js +1 -2
- package/changesets/utils/strip-frontmatter.js +1 -2
- package/changesets/utils/version-blocks.js +1 -2
- package/changesets/utils/version-files.js +1 -2
- package/changesets/vendor/github-info.js +1 -2
- package/commitlint/config/factory.js +1 -2
- package/commitlint/config/plugins.js +1 -2
- package/commitlint/config/rules.js +1 -2
- package/commitlint/config/schema.js +1 -2
- package/commitlint/detection/dco.js +1 -2
- package/commitlint/detection/scopes.js +1 -2
- package/commitlint/formatter/format.js +1 -2
- package/commitlint/formatter/messages.js +1 -2
- package/commitlint/hook/diagnostics/branch.js +1 -2
- package/commitlint/hook/diagnostics/cache.js +1 -2
- package/commitlint/hook/diagnostics/commitlint-config.js +1 -2
- package/commitlint/hook/diagnostics/open-issues.js +1 -2
- package/commitlint/hook/diagnostics/package-manager.js +1 -2
- package/commitlint/hook/diagnostics/signing.js +1 -2
- package/commitlint/hook/envelope.js +1 -2
- package/commitlint/hook/output.js +1 -2
- package/commitlint/hook/parse-bash-command.js +1 -2
- package/commitlint/hook/rules/closes-trailer.js +1 -2
- package/commitlint/hook/rules/forbidden-content.js +1 -2
- package/commitlint/hook/rules/plan-leakage.js +1 -2
- package/commitlint/hook/rules/signing-flag-conflict.js +1 -2
- package/commitlint/hook/rules/soft-wrap.js +1 -2
- package/commitlint/hook/rules/types.js +1 -2
- package/commitlint/hook/rules/verbosity.js +1 -2
- package/commitlint/hook/silence-logger.js +1 -2
- package/commitlint/index.js +1 -2
- package/commitlint/prompt/config.js +1 -2
- package/commitlint/prompt/emojis.js +1 -2
- package/commitlint/prompt/prompter.js +1 -2
- package/commitlint/static.js +1 -2
- package/index.d.ts +87 -251
- package/index.js +2 -2
- package/lint/Handler.js +1 -2
- package/lint/cli/sections.js +1 -2
- package/lint/cli/templates/markdownlint.gen.js +1 -2
- package/lint/config/Preset.js +1 -2
- package/lint/config/createConfig.js +1 -2
- package/lint/handlers/Biome.js +1 -2
- package/lint/handlers/Markdown.js +1 -2
- package/lint/handlers/PackageJson.js +1 -2
- package/lint/handlers/PnpmWorkspace.js +1 -2
- package/lint/handlers/ShellScripts.js +1 -2
- package/lint/handlers/TextFiles.js +1 -2
- package/lint/handlers/TypeScript.js +1 -2
- package/lint/handlers/Yaml.js +1 -2
- package/lint/index.js +1 -2
- package/lint/utils/Command.js +1 -2
- package/lint/utils/Filter.js +1 -2
- package/lint/utils/Workspace.js +1 -2
- package/package.json +14 -14
- package/repos/constants.js +1 -2
- package/repos/errors.js +1 -2
- package/repos/index.js +1 -2
- package/repos/schemas/drift.js +1 -2
- package/repos/schemas/manifest.js +1 -2
- package/repos/schemas/reports.js +1 -2
- package/repos/services/config-store.js +1 -2
- package/repos/services/drift.js +1 -2
- package/repos/services/lockdown.js +1 -2
- package/repos/services/manager.js +1 -2
- package/services/BiomeSchemaSync.js +1 -2
- package/services/ChangesetConfig.js +1 -2
- package/services/ChangesetConfigReader.js +1 -2
- package/services/ConfigDiscovery.js +1 -2
- package/services/SilkPublishability.js +147 -6
- package/services/SilkWorkspaceAnalyzer.js +1 -2
- package/turbo/digest.js +1 -2
- package/turbo/errors.js +1 -2
- package/turbo/index.js +1 -2
- package/turbo/schemas/DryRun.js +1 -2
- package/turbo/schemas/results.js +1 -2
- package/turbo/services/TurboInspector.js +1 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ChangesetConfig } from "./ChangesetConfig.js";
|
|
2
|
-
import { PublishTargetBindingError, trimTrailingSlashes } from "@savvy-web/silk-core";
|
|
2
|
+
import { PublishTargetBindingError, ReleaseChannelError, trimTrailingSlashes } from "@savvy-web/silk-core";
|
|
3
3
|
import { Effect, FileSystem, Layer } from "effect";
|
|
4
4
|
import { isAbsolute, join, relative } from "node:path";
|
|
5
5
|
import { PublishTarget, PublishabilityDetector, WorkspaceDiscovery } from "@effected/workspaces";
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// src/services/SilkPublishability.ts
|
|
8
8
|
const NPM_DEFAULT = "https://registry.npmjs.org/";
|
|
9
9
|
/**
|
|
10
10
|
* Default registry endpoints for the well-known target keys. Kept in sync with the
|
|
@@ -79,17 +79,18 @@ var SilkPublishability = class SilkPublishability {
|
|
|
79
79
|
registry: t.registry,
|
|
80
80
|
directory: dirByGroup.get(t.group) ?? `dist/prod/${t.group}/pkg`,
|
|
81
81
|
access,
|
|
82
|
-
provenance: provenanceForRegistry(t.registry)
|
|
82
|
+
provenance: t.provenance ?? declaredProvenanceOf(targets, t.id) ?? provenanceForRegistry(t.registry)
|
|
83
83
|
}));
|
|
84
84
|
}
|
|
85
85
|
return Object.entries(targets).map(([id, target]) => {
|
|
86
|
-
const
|
|
86
|
+
const object = typeof target === "object" && target !== null ? target : void 0;
|
|
87
|
+
const registry = typeof object?.registry === "string" ? object.registry : DEFAULT_REGISTRIES[id] ?? pc?.registry ?? NPM_DEFAULT;
|
|
87
88
|
return new PublishTarget({
|
|
88
89
|
name: pkgName,
|
|
89
90
|
registry,
|
|
90
91
|
directory: `dist/prod/${id}/pkg`,
|
|
91
92
|
access,
|
|
92
|
-
provenance: provenanceForRegistry(registry)
|
|
93
|
+
provenance: typeof object?.provenance === "boolean" ? object.provenance : provenanceForRegistry(registry)
|
|
93
94
|
});
|
|
94
95
|
});
|
|
95
96
|
}
|
|
@@ -157,6 +158,81 @@ var SilkPublishability = class SilkPublishability {
|
|
|
157
158
|
});
|
|
158
159
|
}
|
|
159
160
|
/**
|
|
161
|
+
* True when a version carries a SemVer prerelease suffix (`1.2.0-rc.1`). Build metadata is ignored.
|
|
162
|
+
*/
|
|
163
|
+
static isPrerelease(version) {
|
|
164
|
+
return prereleaseOf(version) !== void 0;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* The npm dist-tag a version publishes under.
|
|
168
|
+
*
|
|
169
|
+
* @remarks
|
|
170
|
+
* A final version is `latest`. A prerelease takes its first prerelease identifier (`beta` for
|
|
171
|
+
* `2.0.0-beta.3`, `rc` for `2.0.0-rc.1`), or `next` when that identifier is empty or would
|
|
172
|
+
* parse as a SemVer range (`2.0.0-0`, `2.0.0-x.1`, `2.0.0-v2.1`), since npm rejects such a
|
|
173
|
+
* dist-tag. A `latest` identifier (`2.0.0-latest.1`) also takes `next`, so a prerelease never
|
|
174
|
+
* becomes the version a bare install resolves. The range check is `v*` followed by digits or a
|
|
175
|
+
* lone `x`/`X`, matching what `semver.validRange` accepts for a prerelease identifier.
|
|
176
|
+
*/
|
|
177
|
+
static distTagFor(version) {
|
|
178
|
+
const prerelease = prereleaseOf(version);
|
|
179
|
+
if (prerelease === void 0) return "latest";
|
|
180
|
+
const first = prerelease.split(".")[0] ?? "";
|
|
181
|
+
return first === "" || first === "latest" || /^v*(?:\d+|[xX])$/.test(first) ? "next" : first;
|
|
182
|
+
}
|
|
183
|
+
/** Whether a target with this {@link ReleaseChannel} receives the given version. */
|
|
184
|
+
static receives(releases, version) {
|
|
185
|
+
if (releases === "all") return true;
|
|
186
|
+
return SilkPublishability.isPrerelease(version) === (releases === "prerelease");
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Every resolved publish target judged against a specific version: {@link SilkPublishability.resolveTargets},
|
|
190
|
+
* each paired with its target key, its `releases` filter, whether it `receives` the version, and the dist-tag.
|
|
191
|
+
*
|
|
192
|
+
* @remarks
|
|
193
|
+
* A strict superset of `resolveTargets`, which it calls first, so the private-directory filter
|
|
194
|
+
* and the `PublishTargetBindingError` integrity check apply unchanged. The release filter runs
|
|
195
|
+
* here rather than in the `PublishabilityDetector` layer because the kit's
|
|
196
|
+
* `VersioningStrategy.detect` counts publishable packages through the detector, and a package
|
|
197
|
+
* whose only target skips this version is still a publishable package.
|
|
198
|
+
*
|
|
199
|
+
* Each detected target is joined back to its declaration: through `dist/prod/targets.json` by
|
|
200
|
+
* group directory and registry after the prod build, or by its placeholder directory
|
|
201
|
+
* (`dist/prod/<id>/pkg`) against `publishConfig.targets` before it. A binding entry with no
|
|
202
|
+
* `releases` (written by a bundler older than the field) takes the filter declared on
|
|
203
|
+
* `publishConfig.targets[id]`, so upgrading the publisher before the bundler never widens it. A target with no keyed
|
|
204
|
+
* declaration (the `access`/`private` fallbacks) has no filter and receives every version.
|
|
205
|
+
* Filtered targets are returned with `receives: false`, never dropped, so a publisher reports the
|
|
206
|
+
* skip from the same join it publishes from. A result with no `receives: true` entry means this
|
|
207
|
+
* version publishes nowhere, which is not an error. A declared `releases` that is not a known
|
|
208
|
+
* channel fails with `ReleaseChannelError` rather than defaulting, since both sources are
|
|
209
|
+
* read from disk and may have been edited by hand.
|
|
210
|
+
*/
|
|
211
|
+
static resolveReleaseTargets(pkg, version) {
|
|
212
|
+
return Effect.gen(function* () {
|
|
213
|
+
const targets = yield* SilkPublishability.resolveTargets(pkg, pkg.workspaceRoot);
|
|
214
|
+
const fs = yield* FileSystem.FileSystem;
|
|
215
|
+
const binding = yield* readTargetsBinding(fs, pkg.path);
|
|
216
|
+
const declared = (yield* readRaw(fs, pkg.packageJsonPath))?.publishConfig?.targets;
|
|
217
|
+
const join = binding !== null ? joinByBinding(binding) : joinByPlaceholder(declared);
|
|
218
|
+
const distTag = SilkPublishability.distTagFor(version);
|
|
219
|
+
const out = [];
|
|
220
|
+
for (const target of targets) {
|
|
221
|
+
const joined = join(normalizeDir(isAbsolute(target.directory) ? relative(pkg.path, target.directory) : target.directory), target.registry);
|
|
222
|
+
const id = joined.id;
|
|
223
|
+
const releases = yield* releaseChannelOf(pkg.name, id, joined.releases ?? declaredReleasesOf(declared, id));
|
|
224
|
+
out.push({
|
|
225
|
+
target,
|
|
226
|
+
id,
|
|
227
|
+
releases,
|
|
228
|
+
receives: SilkPublishability.receives(releases, version),
|
|
229
|
+
distTag
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
return out;
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
160
236
|
* The publishable, non-ignored packages, resolved through the single
|
|
161
237
|
* {@link SilkPublishability} (which already honors changeset ignore in adaptive mode).
|
|
162
238
|
*/
|
|
@@ -248,6 +324,72 @@ const normalizeDir = (dir) => {
|
|
|
248
324
|
const normalized = trimTrailingSlashes(withoutPrefix);
|
|
249
325
|
return normalized === "" ? "." : normalized;
|
|
250
326
|
};
|
|
327
|
+
/** The prerelease part of a version (after the first `-`, before any `+build`), or `undefined` for a final version. */
|
|
328
|
+
const prereleaseOf = (version) => {
|
|
329
|
+
const plus = version.indexOf("+");
|
|
330
|
+
const core = plus === -1 ? version : version.slice(0, plus);
|
|
331
|
+
const dash = core.indexOf("-");
|
|
332
|
+
return dash === -1 ? void 0 : core.slice(dash + 1);
|
|
333
|
+
};
|
|
334
|
+
const RELEASE_CHANNELS = [
|
|
335
|
+
"all",
|
|
336
|
+
"stable",
|
|
337
|
+
"prerelease"
|
|
338
|
+
];
|
|
339
|
+
/** An absent `releases` is `"all"`; a present one must be a known channel. */
|
|
340
|
+
const releaseChannelOf = (pkg, id, releases) => {
|
|
341
|
+
if (releases === void 0) return Effect.succeed("all");
|
|
342
|
+
if (RELEASE_CHANNELS.includes(releases)) return Effect.succeed(releases);
|
|
343
|
+
return Effect.fail(new ReleaseChannelError({
|
|
344
|
+
pkg,
|
|
345
|
+
id: id ?? "(unkeyed)",
|
|
346
|
+
value: JSON.stringify(releases) ?? String(releases)
|
|
347
|
+
}));
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Join detected targets to the binding by group directory and registry. Each binding target is
|
|
351
|
+
* consumed once, so two keys sharing a group and a registry still map one-to-one in order.
|
|
352
|
+
*/
|
|
353
|
+
const joinByBinding = (binding) => {
|
|
354
|
+
const dirByGroup = new Map(binding.groups.map((g) => [g.id, normalizeDir(g.dir)]));
|
|
355
|
+
const remaining = [...binding.targets];
|
|
356
|
+
return (relativeDir, registry) => {
|
|
357
|
+
const index = remaining.findIndex((t) => t.registry === registry && (dirByGroup.get(t.group) ?? `dist/prod/${t.group}/pkg`) === relativeDir);
|
|
358
|
+
if (index === -1) return {
|
|
359
|
+
id: void 0,
|
|
360
|
+
releases: void 0
|
|
361
|
+
};
|
|
362
|
+
const [match] = remaining.splice(index, 1);
|
|
363
|
+
return {
|
|
364
|
+
id: match?.id,
|
|
365
|
+
releases: match?.releases
|
|
366
|
+
};
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
/** Pre-build join: a placeholder target sits at `dist/prod/<id>/pkg`, so read its declaration by key. */
|
|
370
|
+
const joinByPlaceholder = (declared) => (relativeDir) => {
|
|
371
|
+
const id = /^dist\/prod\/([^/]+)\/pkg$/.exec(relativeDir)?.[1];
|
|
372
|
+
if (id === void 0 || declared === void 0 || !Object.hasOwn(declared, id)) return {
|
|
373
|
+
id: void 0,
|
|
374
|
+
releases: void 0
|
|
375
|
+
};
|
|
376
|
+
return {
|
|
377
|
+
id,
|
|
378
|
+
releases: declaredReleasesOf(declared, id)
|
|
379
|
+
};
|
|
380
|
+
};
|
|
381
|
+
/** The `releases` declared on `publishConfig.targets[id]`, or `undefined` when there is none. */
|
|
382
|
+
const declaredReleasesOf = (declared, id) => {
|
|
383
|
+
if (id === void 0 || declared === void 0 || !Object.hasOwn(declared, id)) return void 0;
|
|
384
|
+
const value = declared[id];
|
|
385
|
+
return typeof value === "object" && value !== null ? value.releases : void 0;
|
|
386
|
+
};
|
|
387
|
+
/** The boolean `provenance` declared on `publishConfig.targets[id]`, or `undefined` when there is none. */
|
|
388
|
+
const declaredProvenanceOf = (declared, id) => {
|
|
389
|
+
if (declared === void 0 || !Object.hasOwn(declared, id)) return void 0;
|
|
390
|
+
const value = declared[id];
|
|
391
|
+
return typeof value === "object" && value !== null && typeof value.provenance === "boolean" ? value.provenance : void 0;
|
|
392
|
+
};
|
|
251
393
|
/** True when a built target directory's package.json is `private: true`. Missing/unreadable/malformed → false. */
|
|
252
394
|
const isTargetPrivate = (fs, targetDir) => fs.readFileString(join(targetDir, "package.json")).pipe(Effect.flatMap((content) => Effect.try({
|
|
253
395
|
try: () => JSON.parse(content).private === true,
|
|
@@ -276,5 +418,4 @@ const readTargetsBinding = (fs, pkgPath) => fs.readFileString(join(pkgPath, "dis
|
|
|
276
418
|
catch: () => /* @__PURE__ */ new Error("invalid targets.json")
|
|
277
419
|
})), Effect.orElseSucceed(() => null));
|
|
278
420
|
|
|
279
|
-
//#endregion
|
|
280
421
|
export { SilkPublishability, readTargetsBinding };
|
|
@@ -5,7 +5,7 @@ import { AnalyzedWorkspace, WorkspaceAnalysis, WorkspaceAnalysisError } from "@s
|
|
|
5
5
|
import { Context, Effect, FileSystem, Layer, Option } from "effect";
|
|
6
6
|
import { DependencyGraph, PackageManagerDetector, VersioningStrategy, WorkspaceDiscovery } from "@effected/workspaces";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// src/services/SilkWorkspaceAnalyzer.ts
|
|
9
9
|
/**
|
|
10
10
|
* Service that performs a full workspace analysis — discovering packages,
|
|
11
11
|
* detecting publishability, computing versioning/tag strategies, and
|
|
@@ -206,5 +206,4 @@ function computeReleaseStatus(pkgName, isPrivate, isPublishable, config) {
|
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
-
//#endregion
|
|
210
209
|
export { SilkWorkspaceAnalyzer };
|
package/turbo/digest.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/turbo/digest.ts
|
|
2
2
|
/**
|
|
3
3
|
* Pure transforms from decoded turbo dry-run JSON to digested result shapes.
|
|
4
4
|
* No dependency injection — directly unit-testable.
|
|
@@ -123,5 +123,4 @@ var TurboDigest = class TurboDigest {
|
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
-
//#endregion
|
|
127
126
|
export { TurboDigest };
|
package/turbo/errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Data } from "effect";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// src/turbo/errors.ts
|
|
4
4
|
/**
|
|
5
5
|
* Raised when the turbo CLI cannot be resolved or executed.
|
|
6
6
|
*
|
|
@@ -44,5 +44,4 @@ var TurboExecError = class extends Data.TaggedError("TurboExecError") {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
//#endregion
|
|
48
47
|
export { DryRunParseError, NotATurboRepoError, TurboExecError, TurboNotInstalledError };
|
package/turbo/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { TurboCache, TurboDryRun, TurboDryTask, TurboEnvVars, TurboGlobalCacheIn
|
|
|
5
5
|
import { AffectedResult, CacheDiagnosis, GlobalHashSummary, GraphNode, MissExplanation, PackageCacheStatus, TaskGraphResult } from "./schemas/results.js";
|
|
6
6
|
import { TurboInspector } from "./services/TurboInspector.js";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// src/turbo/index.ts
|
|
9
9
|
var turbo_exports = /* @__PURE__ */ __exportAll({
|
|
10
10
|
AffectedResult: () => AffectedResult,
|
|
11
11
|
CacheDiagnosis: () => CacheDiagnosis,
|
|
@@ -27,5 +27,4 @@ var turbo_exports = /* @__PURE__ */ __exportAll({
|
|
|
27
27
|
TurboNotInstalledError: () => TurboNotInstalledError
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
//#endregion
|
|
31
30
|
export { AffectedResult, CacheDiagnosis, DryRunParseError, GlobalHashSummary, GraphNode, MissExplanation, NotATurboRepoError, PackageCacheStatus, TaskGraphResult, TurboCache, TurboDigest, TurboDryRun, TurboDryTask, TurboEnvVars, TurboExecError, TurboGlobalCacheInputs, TurboInspector, TurboNotInstalledError, turbo_exports };
|
package/turbo/schemas/DryRun.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// src/turbo/schemas/DryRun.ts
|
|
4
4
|
/** turbo's per-target cache descriptor in `--dry=json`. */
|
|
5
5
|
const TurboCache = Schema.Struct({
|
|
6
6
|
local: Schema.Boolean,
|
|
@@ -47,5 +47,4 @@ const TurboDryRun = Schema.Struct({
|
|
|
47
47
|
tasks: Schema.Array(TurboDryTask)
|
|
48
48
|
}).annotate({ identifier: "TurboDryRun" });
|
|
49
49
|
|
|
50
|
-
//#endregion
|
|
51
50
|
export { TurboCache, TurboDryRun, TurboDryTask, TurboEnvVars, TurboGlobalCacheInputs };
|
package/turbo/schemas/results.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// src/turbo/schemas/results.ts
|
|
4
4
|
/** Per-package cache outcome for one task. */
|
|
5
5
|
const PackageCacheStatus = Schema.Struct({
|
|
6
6
|
package: Schema.String,
|
|
@@ -57,5 +57,4 @@ const AffectedResult = Schema.Struct({
|
|
|
57
57
|
dependents: Schema.Array(Schema.String)
|
|
58
58
|
}).annotate({ identifier: "AffectedResult" });
|
|
59
59
|
|
|
60
|
-
//#endregion
|
|
61
60
|
export { AffectedResult, CacheDiagnosis, GlobalHashSummary, GraphNode, MissExplanation, PackageCacheStatus, TaskGraphResult };
|
|
@@ -6,7 +6,7 @@ import { Git } from "@effected/git";
|
|
|
6
6
|
import { ChildProcess, ChildProcessSpawner } from "effect/process";
|
|
7
7
|
import { Run, Tool, ToolDiscovery } from "@effected/commands";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// src/turbo/services/TurboInspector.ts
|
|
10
10
|
/**
|
|
11
11
|
* Read-only Turborepo inspector. All operations use `--dry` and never execute tasks.
|
|
12
12
|
* Surfaced through the MCP `turbo_inspect` tool.
|
|
@@ -104,5 +104,4 @@ const DEFAULT_BUILD_TASK = "build:dev";
|
|
|
104
104
|
/** Default git ref `affected` compares against — matches Turborepo's own `--affected` default. */
|
|
105
105
|
const DEFAULT_AFFECTED_BASE = "main";
|
|
106
106
|
|
|
107
|
-
//#endregion
|
|
108
107
|
export { TurboInspector };
|