@savvy-web/silk 1.3.11 → 2.1.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/README.md +7 -5
- package/changesets-changelog.cjs +39298 -96760
- package/changesets-changelog.d.cts +24 -14
- package/changesets-changelog.d.ts +24 -14
- package/changesets-changelog.js +54057 -1
- package/changesets-markdownlint.cjs +39295 -96757
- package/changesets-markdownlint.d.cts +24 -14
- package/changesets-markdownlint.d.ts +24 -14
- package/changesets-markdownlint.js +54057 -1
- package/package.json +6 -5
- package/tsconfig/node/dist/tsconfig.tsbuildinfo +1 -1
- package/_virtual/_rolldown/runtime.cjs +0 -45
- package/_virtual/_rolldown/runtime.js +0 -45
- package/packages/silk-effects/dist/dev/pkg/_virtual/_rolldown/runtime.cjs +0 -15
- package/packages/silk-effects/dist/dev/pkg/_virtual/_rolldown/runtime.js +0 -14
- package/packages/silk-effects/dist/dev/pkg/changesets/api/categories.cjs +0 -247
- package/packages/silk-effects/dist/dev/pkg/changesets/api/categories.js +0 -247
- package/packages/silk-effects/dist/dev/pkg/changesets/api/changelog.cjs +0 -134
- package/packages/silk-effects/dist/dev/pkg/changesets/api/changelog.js +0 -134
- package/packages/silk-effects/dist/dev/pkg/changesets/api/dependency-table.cjs +0 -163
- package/packages/silk-effects/dist/dev/pkg/changesets/api/dependency-table.js +0 -163
- package/packages/silk-effects/dist/dev/pkg/changesets/api/linter.cjs +0 -170
- package/packages/silk-effects/dist/dev/pkg/changesets/api/linter.js +0 -170
- package/packages/silk-effects/dist/dev/pkg/changesets/api/transformer.cjs +0 -134
- package/packages/silk-effects/dist/dev/pkg/changesets/api/transformer.js +0 -134
- package/packages/silk-effects/dist/dev/pkg/changesets/categories/index.cjs +0 -317
- package/packages/silk-effects/dist/dev/pkg/changesets/categories/index.js +0 -299
- package/packages/silk-effects/dist/dev/pkg/changesets/categories/types.cjs +0 -65
- package/packages/silk-effects/dist/dev/pkg/changesets/categories/types.js +0 -65
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/formatting.cjs +0 -114
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/formatting.js +0 -113
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getDependencyReleaseLine.cjs +0 -118
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getDependencyReleaseLine.js +0 -118
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getReleaseLine.cjs +0 -122
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getReleaseLine.js +0 -122
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/index.cjs +0 -97
- package/packages/silk-effects/dist/dev/pkg/changesets/changelog/index.js +0 -97
- package/packages/silk-effects/dist/dev/pkg/changesets/constants.cjs +0 -43
- package/packages/silk-effects/dist/dev/pkg/changesets/constants.js +0 -42
- package/packages/silk-effects/dist/dev/pkg/changesets/errors.cjs +0 -386
- package/packages/silk-effects/dist/dev/pkg/changesets/errors.js +0 -371
- package/packages/silk-effects/dist/dev/pkg/changesets/index.cjs +0 -300
- package/packages/silk-effects/dist/dev/pkg/changesets/index.js +0 -179
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/index.cjs +0 -34
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/index.js +0 -29
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/content-structure.cjs +0 -98
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/content-structure.js +0 -98
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/dependency-table-format.cjs +0 -170
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/dependency-table-format.js +0 -170
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/heading-hierarchy.cjs +0 -61
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/heading-hierarchy.js +0 -61
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/required-sections.cjs +0 -54
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/required-sections.js +0 -54
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/uncategorized-content.cjs +0 -54
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/uncategorized-content.js +0 -54
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/utils.cjs +0 -31
- package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/utils.js +0 -30
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/aggregate-dependency-tables.cjs +0 -47
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/aggregate-dependency-tables.js +0 -47
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/contributor-footnotes.cjs +0 -123
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/contributor-footnotes.js +0 -123
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/deduplicate-items.cjs +0 -32
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/deduplicate-items.js +0 -32
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/issue-link-refs.cjs +0 -59
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/issue-link-refs.js +0 -59
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/maintenance-note.cjs +0 -61
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/maintenance-note.js +0 -61
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/merge-sections.cjs +0 -43
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/merge-sections.js +0 -43
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/normalize-format.cjs +0 -47
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/normalize-format.js +0 -47
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/reorder-sections.cjs +0 -34
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/reorder-sections.js +0 -34
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/presets.cjs +0 -120
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/presets.js +0 -119
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/content-structure.cjs +0 -22
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/content-structure.js +0 -22
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/dependency-table-format.cjs +0 -40
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/dependency-table-format.js +0 -40
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/heading-hierarchy.cjs +0 -19
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/heading-hierarchy.js +0 -19
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/required-sections.cjs +0 -17
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/required-sections.js +0 -17
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/uncategorized-content.cjs +0 -31
- package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/uncategorized-content.js +0 -31
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/changeset.cjs +0 -148
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/changeset.js +0 -145
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/dependency-table.cjs +0 -203
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/dependency-table.js +0 -198
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/git.cjs +0 -69
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/git.js +0 -68
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/github.cjs +0 -177
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/github.js +0 -174
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/options.cjs +0 -183
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/options.js +0 -181
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/package-scope.cjs +0 -129
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/package-scope.js +0 -127
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/primitives.cjs +0 -72
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/primitives.js +0 -71
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/release-plan.cjs +0 -62
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/release-plan.js +0 -56
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/version-files.cjs +0 -154
- package/packages/silk-effects/dist/dev/pkg/changesets/schemas/version-files.js +0 -150
- package/packages/silk-effects/dist/dev/pkg/changesets/services/branch-analyzer.cjs +0 -300
- package/packages/silk-effects/dist/dev/pkg/changesets/services/branch-analyzer.js +0 -294
- package/packages/silk-effects/dist/dev/pkg/changesets/services/changelog.cjs +0 -50
- package/packages/silk-effects/dist/dev/pkg/changesets/services/changelog.js +0 -49
- package/packages/silk-effects/dist/dev/pkg/changesets/services/config-inspector.cjs +0 -489
- package/packages/silk-effects/dist/dev/pkg/changesets/services/config-inspector.js +0 -481
- package/packages/silk-effects/dist/dev/pkg/changesets/services/deps-regen.cjs +0 -375
- package/packages/silk-effects/dist/dev/pkg/changesets/services/deps-regen.js +0 -371
- package/packages/silk-effects/dist/dev/pkg/changesets/services/github.cjs +0 -160
- package/packages/silk-effects/dist/dev/pkg/changesets/services/github.js +0 -157
- package/packages/silk-effects/dist/dev/pkg/changesets/services/maintenance-reason.cjs +0 -68
- package/packages/silk-effects/dist/dev/pkg/changesets/services/maintenance-reason.js +0 -66
- package/packages/silk-effects/dist/dev/pkg/changesets/services/markdown.cjs +0 -87
- package/packages/silk-effects/dist/dev/pkg/changesets/services/markdown.js +0 -85
- package/packages/silk-effects/dist/dev/pkg/changesets/services/release-planner.cjs +0 -338
- package/packages/silk-effects/dist/dev/pkg/changesets/services/release-planner.js +0 -334
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/commit-parser.cjs +0 -81
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/commit-parser.js +0 -80
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/dep-diff.cjs +0 -111
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/dep-diff.js +0 -111
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/dependency-table.cjs +0 -351
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/dependency-table.js +0 -347
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/git.cjs +0 -51
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/git.js +0 -51
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/issue-refs.cjs +0 -102
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js +0 -101
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/jsonpath.cjs +0 -178
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/jsonpath.js +0 -175
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/logger.cjs +0 -51
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/logger.js +0 -50
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/markdown-link.cjs +0 -59
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/markdown-link.js +0 -57
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/publishability.cjs +0 -50
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/publishability.js +0 -50
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/remark-pipeline.cjs +0 -81
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/remark-pipeline.js +0 -79
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/section-parser.cjs +0 -94
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/section-parser.js +0 -94
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/strip-frontmatter.cjs +0 -47
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/strip-frontmatter.js +0 -46
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-blocks.cjs +0 -110
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-blocks.js +0 -108
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-files.cjs +0 -336
- package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-files.js +0 -336
- package/packages/silk-effects/dist/dev/pkg/changesets/vendor/github-info.cjs +0 -55
- package/packages/silk-effects/dist/dev/pkg/changesets/vendor/github-info.js +0 -55
- package/packages/silk-effects/dist/dev/pkg/errors/ChangesetConfigError.cjs +0 -21
- package/packages/silk-effects/dist/dev/pkg/errors/ChangesetConfigError.js +0 -21
- package/packages/silk-effects/dist/dev/pkg/schemas/VersioningSchemas.cjs +0 -101
- package/packages/silk-effects/dist/dev/pkg/schemas/VersioningSchemas.js +0 -99
- package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfig.cjs +0 -81
- package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfig.js +0 -80
- package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfigReader.cjs +0 -109
- package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js +0 -108
- package/packages/silk-effects/dist/dev/pkg/services/SilkPublishability.cjs +0 -238
- package/packages/silk-effects/dist/dev/pkg/services/SilkPublishability.js +0 -236
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
const require_ChangesetConfig = require('../../services/ChangesetConfig.cjs');
|
|
2
|
-
let effect = require("effect");
|
|
3
|
-
|
|
4
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/services/maintenance-reason.js
|
|
5
|
-
/**
|
|
6
|
-
* A group co-member whose own changesets forced this release.
|
|
7
|
-
*
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
const MaintenanceTriggerSchema = effect.Schema.Struct({
|
|
11
|
-
/** Package name of the triggering co-member. */
|
|
12
|
-
name: effect.Schema.String,
|
|
13
|
-
/** The co-member's new version in the same release plan. */
|
|
14
|
-
version: effect.Schema.String
|
|
15
|
-
});
|
|
16
|
-
/**
|
|
17
|
-
* Why a package is releasing with no changesets of its own.
|
|
18
|
-
*
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
const MaintenanceReasonSchema = effect.Schema.Struct({
|
|
22
|
-
/** Coupling that forced the release; `"unspecified"` when undetermined. */
|
|
23
|
-
kind: effect.Schema.Literal("fixed", "linked", "unspecified"),
|
|
24
|
-
/** Triggering co-members; empty for `"unspecified"`. */
|
|
25
|
-
triggers: effect.Schema.Array(MaintenanceTriggerSchema)
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* Derive the {@link MaintenanceReason} for a release, or `undefined` when the
|
|
29
|
-
* release has its own changesets (not a maintenance release).
|
|
30
|
-
*
|
|
31
|
-
* @param release - The release to classify.
|
|
32
|
-
* @param plan - The full release plan (source of group co-members).
|
|
33
|
-
* @param config - Resolved changesets config (`fixed` / `linked` groups).
|
|
34
|
-
* @returns The reason, or `undefined` for releases with their own changesets.
|
|
35
|
-
*
|
|
36
|
-
* @remarks
|
|
37
|
-
* Group entries are matched with {@link ChangesetConfig.matches} — exact names
|
|
38
|
-
* and trailing `"@scope/*"` prefixes only, a subset of the micromatch globs
|
|
39
|
-
* changesets accepts. A group entry using richer glob syntax (e.g. `"pkg-*"`)
|
|
40
|
-
* will not match here; the release then degrades gracefully to the
|
|
41
|
-
* `"unspecified"` fallback sentence instead of naming its triggers.
|
|
42
|
-
*
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
function deriveMaintenanceReason(release, plan, config) {
|
|
46
|
-
if (release.changesets.length > 0) return void 0;
|
|
47
|
-
const groupKinds = [["fixed", config.fixed], ["linked", config.linked]];
|
|
48
|
-
for (const [kind, groups] of groupKinds) for (const group of groups) {
|
|
49
|
-
if (!group.some((pattern) => require_ChangesetConfig.ChangesetConfig.matches(release.name, pattern))) continue;
|
|
50
|
-
const triggers = plan.releases.filter((r) => r.name !== release.name && r.changesets.length > 0 && group.some((pattern) => require_ChangesetConfig.ChangesetConfig.matches(r.name, pattern))).map((r) => ({
|
|
51
|
-
name: r.name,
|
|
52
|
-
version: r.newVersion
|
|
53
|
-
}));
|
|
54
|
-
if (triggers.length > 0) return {
|
|
55
|
-
kind,
|
|
56
|
-
triggers
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
kind: "unspecified",
|
|
61
|
-
triggers: []
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
//#endregion
|
|
66
|
-
exports.MaintenanceReasonSchema = MaintenanceReasonSchema;
|
|
67
|
-
exports.MaintenanceTriggerSchema = MaintenanceTriggerSchema;
|
|
68
|
-
exports.deriveMaintenanceReason = deriveMaintenanceReason;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { ChangesetConfig } from "../../services/ChangesetConfig.js";
|
|
2
|
-
import { Schema } from "effect";
|
|
3
|
-
|
|
4
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/services/maintenance-reason.js
|
|
5
|
-
/**
|
|
6
|
-
* A group co-member whose own changesets forced this release.
|
|
7
|
-
*
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
const MaintenanceTriggerSchema = Schema.Struct({
|
|
11
|
-
/** Package name of the triggering co-member. */
|
|
12
|
-
name: Schema.String,
|
|
13
|
-
/** The co-member's new version in the same release plan. */
|
|
14
|
-
version: Schema.String
|
|
15
|
-
});
|
|
16
|
-
/**
|
|
17
|
-
* Why a package is releasing with no changesets of its own.
|
|
18
|
-
*
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
const MaintenanceReasonSchema = Schema.Struct({
|
|
22
|
-
/** Coupling that forced the release; `"unspecified"` when undetermined. */
|
|
23
|
-
kind: Schema.Literal("fixed", "linked", "unspecified"),
|
|
24
|
-
/** Triggering co-members; empty for `"unspecified"`. */
|
|
25
|
-
triggers: Schema.Array(MaintenanceTriggerSchema)
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* Derive the {@link MaintenanceReason} for a release, or `undefined` when the
|
|
29
|
-
* release has its own changesets (not a maintenance release).
|
|
30
|
-
*
|
|
31
|
-
* @param release - The release to classify.
|
|
32
|
-
* @param plan - The full release plan (source of group co-members).
|
|
33
|
-
* @param config - Resolved changesets config (`fixed` / `linked` groups).
|
|
34
|
-
* @returns The reason, or `undefined` for releases with their own changesets.
|
|
35
|
-
*
|
|
36
|
-
* @remarks
|
|
37
|
-
* Group entries are matched with {@link ChangesetConfig.matches} — exact names
|
|
38
|
-
* and trailing `"@scope/*"` prefixes only, a subset of the micromatch globs
|
|
39
|
-
* changesets accepts. A group entry using richer glob syntax (e.g. `"pkg-*"`)
|
|
40
|
-
* will not match here; the release then degrades gracefully to the
|
|
41
|
-
* `"unspecified"` fallback sentence instead of naming its triggers.
|
|
42
|
-
*
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
function deriveMaintenanceReason(release, plan, config) {
|
|
46
|
-
if (release.changesets.length > 0) return void 0;
|
|
47
|
-
const groupKinds = [["fixed", config.fixed], ["linked", config.linked]];
|
|
48
|
-
for (const [kind, groups] of groupKinds) for (const group of groups) {
|
|
49
|
-
if (!group.some((pattern) => ChangesetConfig.matches(release.name, pattern))) continue;
|
|
50
|
-
const triggers = plan.releases.filter((r) => r.name !== release.name && r.changesets.length > 0 && group.some((pattern) => ChangesetConfig.matches(r.name, pattern))).map((r) => ({
|
|
51
|
-
name: r.name,
|
|
52
|
-
version: r.newVersion
|
|
53
|
-
}));
|
|
54
|
-
if (triggers.length > 0) return {
|
|
55
|
-
kind,
|
|
56
|
-
triggers
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
kind: "unspecified",
|
|
61
|
-
triggers: []
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
//#endregion
|
|
66
|
-
export { MaintenanceReasonSchema, MaintenanceTriggerSchema, deriveMaintenanceReason };
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
const require_remark_pipeline = require('../utils/remark-pipeline.cjs');
|
|
2
|
-
let effect = require("effect");
|
|
3
|
-
|
|
4
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/services/markdown.js
|
|
5
|
-
/**
|
|
6
|
-
* Base class for MarkdownService.
|
|
7
|
-
*
|
|
8
|
-
* @privateRemarks
|
|
9
|
-
* This export is required for api-extractor documentation generation.
|
|
10
|
-
* Effect's Context.Tag creates an anonymous base class that must be
|
|
11
|
-
* explicitly exported to avoid "forgotten export" warnings. Do not delete.
|
|
12
|
-
*
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
const MarkdownServiceBase = effect.Context.Tag("MarkdownService")();
|
|
16
|
-
/**
|
|
17
|
-
* Effect service tag for markdown parsing and stringification.
|
|
18
|
-
*
|
|
19
|
-
* Provides dependency-injected access to markdown parse/stringify operations.
|
|
20
|
-
* Use `yield* MarkdownService` inside an `Effect.gen` block to obtain the
|
|
21
|
-
* service instance.
|
|
22
|
-
*
|
|
23
|
-
* @remarks
|
|
24
|
-
* This tag follows the standard Effect `Context.Tag` pattern. The
|
|
25
|
-
* {@link MarkdownLive} layer provides the default implementation backed by
|
|
26
|
-
* the remark/unified pipeline. For testing, you can supply a custom layer
|
|
27
|
-
* via `Layer.succeed(MarkdownService, { parse: ..., stringify: ... })`.
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* import { Effect } from "effect";
|
|
32
|
-
* import { MarkdownService, MarkdownLive } from "\@savvy-web/changesets";
|
|
33
|
-
*
|
|
34
|
-
* const program = Effect.gen(function* () {
|
|
35
|
-
* const md = yield* MarkdownService;
|
|
36
|
-
* const tree = yield* md.parse("# Hello\n\nWorld");
|
|
37
|
-
* const output = yield* md.stringify(tree);
|
|
38
|
-
* console.log(output); // "# Hello\n\nWorld\n"
|
|
39
|
-
* });
|
|
40
|
-
*
|
|
41
|
-
* Effect.runPromise(program.pipe(Effect.provide(MarkdownLive)));
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @see {@link MarkdownServiceShape} for the service interface
|
|
45
|
-
* @see {@link MarkdownLive} for the production layer
|
|
46
|
-
* @see {@link MarkdownServiceBase} for the api-extractor base class
|
|
47
|
-
*
|
|
48
|
-
* @public
|
|
49
|
-
*/
|
|
50
|
-
var MarkdownService = class extends MarkdownServiceBase {};
|
|
51
|
-
/**
|
|
52
|
-
* Production layer for {@link MarkdownService}.
|
|
53
|
-
*
|
|
54
|
-
* Wraps the remark-pipeline utility functions (`parseMarkdown` and
|
|
55
|
-
* `stringifyMarkdown`) in `Effect.sync` for use in Effect programs.
|
|
56
|
-
* Both operations are synchronous and infallible.
|
|
57
|
-
*
|
|
58
|
-
* @remarks
|
|
59
|
-
* This layer is composed with {@link GitHubLive} in the
|
|
60
|
-
* `\@savvy-web/changesets/changelog` entry point to form the `MainLayer`
|
|
61
|
-
* that powers the Changesets API integration.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* import { Effect, Layer } from "effect";
|
|
66
|
-
* import { MarkdownService, MarkdownLive } from "\@savvy-web/changesets";
|
|
67
|
-
*
|
|
68
|
-
* const program = Effect.gen(function* () {
|
|
69
|
-
* const md = yield* MarkdownService;
|
|
70
|
-
* const tree = yield* md.parse("**bold** text");
|
|
71
|
-
* return yield* md.stringify(tree);
|
|
72
|
-
* });
|
|
73
|
-
*
|
|
74
|
-
* Effect.runPromise(program.pipe(Effect.provide(MarkdownLive)));
|
|
75
|
-
* ```
|
|
76
|
-
*
|
|
77
|
-
* @public
|
|
78
|
-
*/
|
|
79
|
-
const MarkdownLive = effect.Layer.succeed(MarkdownService, {
|
|
80
|
-
parse: (content) => effect.Effect.sync(() => require_remark_pipeline.parseMarkdown(content)),
|
|
81
|
-
stringify: (tree) => effect.Effect.sync(() => require_remark_pipeline.stringifyMarkdown(tree))
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
//#endregion
|
|
85
|
-
exports.MarkdownLive = MarkdownLive;
|
|
86
|
-
exports.MarkdownService = MarkdownService;
|
|
87
|
-
exports.MarkdownServiceBase = MarkdownServiceBase;
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { parseMarkdown, stringifyMarkdown } from "../utils/remark-pipeline.js";
|
|
2
|
-
import { Context, Effect, Layer } from "effect";
|
|
3
|
-
|
|
4
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/services/markdown.js
|
|
5
|
-
/**
|
|
6
|
-
* Base class for MarkdownService.
|
|
7
|
-
*
|
|
8
|
-
* @privateRemarks
|
|
9
|
-
* This export is required for api-extractor documentation generation.
|
|
10
|
-
* Effect's Context.Tag creates an anonymous base class that must be
|
|
11
|
-
* explicitly exported to avoid "forgotten export" warnings. Do not delete.
|
|
12
|
-
*
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
const MarkdownServiceBase = Context.Tag("MarkdownService")();
|
|
16
|
-
/**
|
|
17
|
-
* Effect service tag for markdown parsing and stringification.
|
|
18
|
-
*
|
|
19
|
-
* Provides dependency-injected access to markdown parse/stringify operations.
|
|
20
|
-
* Use `yield* MarkdownService` inside an `Effect.gen` block to obtain the
|
|
21
|
-
* service instance.
|
|
22
|
-
*
|
|
23
|
-
* @remarks
|
|
24
|
-
* This tag follows the standard Effect `Context.Tag` pattern. The
|
|
25
|
-
* {@link MarkdownLive} layer provides the default implementation backed by
|
|
26
|
-
* the remark/unified pipeline. For testing, you can supply a custom layer
|
|
27
|
-
* via `Layer.succeed(MarkdownService, { parse: ..., stringify: ... })`.
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* import { Effect } from "effect";
|
|
32
|
-
* import { MarkdownService, MarkdownLive } from "\@savvy-web/changesets";
|
|
33
|
-
*
|
|
34
|
-
* const program = Effect.gen(function* () {
|
|
35
|
-
* const md = yield* MarkdownService;
|
|
36
|
-
* const tree = yield* md.parse("# Hello\n\nWorld");
|
|
37
|
-
* const output = yield* md.stringify(tree);
|
|
38
|
-
* console.log(output); // "# Hello\n\nWorld\n"
|
|
39
|
-
* });
|
|
40
|
-
*
|
|
41
|
-
* Effect.runPromise(program.pipe(Effect.provide(MarkdownLive)));
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @see {@link MarkdownServiceShape} for the service interface
|
|
45
|
-
* @see {@link MarkdownLive} for the production layer
|
|
46
|
-
* @see {@link MarkdownServiceBase} for the api-extractor base class
|
|
47
|
-
*
|
|
48
|
-
* @public
|
|
49
|
-
*/
|
|
50
|
-
var MarkdownService = class extends MarkdownServiceBase {};
|
|
51
|
-
/**
|
|
52
|
-
* Production layer for {@link MarkdownService}.
|
|
53
|
-
*
|
|
54
|
-
* Wraps the remark-pipeline utility functions (`parseMarkdown` and
|
|
55
|
-
* `stringifyMarkdown`) in `Effect.sync` for use in Effect programs.
|
|
56
|
-
* Both operations are synchronous and infallible.
|
|
57
|
-
*
|
|
58
|
-
* @remarks
|
|
59
|
-
* This layer is composed with {@link GitHubLive} in the
|
|
60
|
-
* `\@savvy-web/changesets/changelog` entry point to form the `MainLayer`
|
|
61
|
-
* that powers the Changesets API integration.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```typescript
|
|
65
|
-
* import { Effect, Layer } from "effect";
|
|
66
|
-
* import { MarkdownService, MarkdownLive } from "\@savvy-web/changesets";
|
|
67
|
-
*
|
|
68
|
-
* const program = Effect.gen(function* () {
|
|
69
|
-
* const md = yield* MarkdownService;
|
|
70
|
-
* const tree = yield* md.parse("**bold** text");
|
|
71
|
-
* return yield* md.stringify(tree);
|
|
72
|
-
* });
|
|
73
|
-
*
|
|
74
|
-
* Effect.runPromise(program.pipe(Effect.provide(MarkdownLive)));
|
|
75
|
-
* ```
|
|
76
|
-
*
|
|
77
|
-
* @public
|
|
78
|
-
*/
|
|
79
|
-
const MarkdownLive = Layer.succeed(MarkdownService, {
|
|
80
|
-
parse: (content) => Effect.sync(() => parseMarkdown(content)),
|
|
81
|
-
stringify: (tree) => Effect.sync(() => stringifyMarkdown(tree))
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
//#endregion
|
|
85
|
-
export { MarkdownLive, MarkdownService, MarkdownServiceBase };
|
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
const require_errors = require('../errors.cjs');
|
|
2
|
-
const require_transformer = require('../api/transformer.cjs');
|
|
3
|
-
const require_config_inspector = require('./config-inspector.cjs');
|
|
4
|
-
const require_maintenance_reason = require('./maintenance-reason.cjs');
|
|
5
|
-
const require_version_files = require('../utils/version-files.cjs');
|
|
6
|
-
const require_changesets_config_esm = require('../../../../../../../node_modules/.pnpm/@changesets_config@3.1.4/node_modules/@changesets/config/dist/changesets-config.esm.cjs');
|
|
7
|
-
const require_changesets_apply_release_plan_esm = require('../../../../../../../node_modules/.pnpm/@changesets_apply-release-plan@7.1.1/node_modules/@changesets/apply-release-plan/dist/changesets-apply-release-plan.esm.cjs');
|
|
8
|
-
const require_changesets_get_release_plan_esm = require('../../../../../../../node_modules/.pnpm/@changesets_get-release-plan@4.0.16/node_modules/@changesets/get-release-plan/dist/changesets-get-release-plan.esm.cjs');
|
|
9
|
-
const require_manypkg_get_packages = require('../../../../../../../node_modules/.pnpm/@manypkg_get-packages@3.1.0/node_modules/@manypkg/get-packages/dist/manypkg-get-packages.cjs');
|
|
10
|
-
let effect = require("effect");
|
|
11
|
-
let _effect_platform = require("@effect/platform");
|
|
12
|
-
let node_path = require("node:path");
|
|
13
|
-
|
|
14
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/services/release-planner.js
|
|
15
|
-
/**
|
|
16
|
-
* `ReleasePlanner` service — drive the genuine changesets release engine to
|
|
17
|
-
* compute a plan, render a read-only preview, or natively apply a release.
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* `preview` and `apply` both run the real `@changesets/apply-release-plan`;
|
|
21
|
-
* `preview` redirects every write into a throwaway temp directory by handing
|
|
22
|
-
* the engine a `@manypkg`-shaped `Packages` object whose `dir`s point at temp,
|
|
23
|
-
* then reads the generated CHANGELOG blocks back. No changesets-internal logic
|
|
24
|
-
* (e.g. `getChangelogEntry`) is re-implemented.
|
|
25
|
-
*
|
|
26
|
-
*/
|
|
27
|
-
const V1_TOOLS = /* @__PURE__ */ new Set([
|
|
28
|
-
"yarn",
|
|
29
|
-
"bolt",
|
|
30
|
-
"pnpm",
|
|
31
|
-
"lerna",
|
|
32
|
-
"root"
|
|
33
|
-
]);
|
|
34
|
-
/**
|
|
35
|
-
* Single workspace-discovery seam; swap to an Effect-native stack later here.
|
|
36
|
-
*
|
|
37
|
-
* Discovers with `@manypkg/get-packages@3.x` and adapts to the v1 shape:
|
|
38
|
-
* `tool` collapses to its type string (tools unknown to v1 map to `"root"` —
|
|
39
|
-
* the engine never reads `tool` at runtime, only `root.dir`), and
|
|
40
|
-
* `rootDir`/`rootPackage` fold back into `root`.
|
|
41
|
-
*/
|
|
42
|
-
const buildPackages = async (root) => {
|
|
43
|
-
const { tool, rootDir, rootPackage, packages } = await require_manypkg_get_packages.getPackages(root);
|
|
44
|
-
if (!rootPackage) throw new Error(`Workspace root has no package.json: ${rootDir}`);
|
|
45
|
-
return {
|
|
46
|
-
tool: V1_TOOLS.has(tool.type) ? tool.type : "root",
|
|
47
|
-
root: {
|
|
48
|
-
dir: rootPackage.dir,
|
|
49
|
-
packageJson: rootPackage.packageJson
|
|
50
|
-
},
|
|
51
|
-
packages: packages.map((p) => ({
|
|
52
|
-
dir: p.dir,
|
|
53
|
-
packageJson: p.packageJson
|
|
54
|
-
}))
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
const errMsg = (e) => e instanceof Error ? e.message : String(e);
|
|
58
|
-
/**
|
|
59
|
-
* Base class for {@link ReleasePlanner}.
|
|
60
|
-
*
|
|
61
|
-
* @privateRemarks Required export for api-extractor (anonymous Context.Tag base). Do not delete.
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
|
-
const ReleasePlannerBase = effect.Context.Tag("ReleasePlanner")();
|
|
65
|
-
/** Effect service tag for the release planner. @public */
|
|
66
|
-
var ReleasePlanner = class extends ReleasePlannerBase {};
|
|
67
|
-
/** Build the service shape over a resolved {@link ConfigInspector} and {@link FileSystem.FileSystem}. */
|
|
68
|
-
function makeShape(inspector, fs) {
|
|
69
|
-
const plan = (root) => effect.Effect.tryPromise({
|
|
70
|
-
try: () => require_changesets_get_release_plan_esm.default(root),
|
|
71
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
72
|
-
phase: "plan",
|
|
73
|
-
reason: errMsg(e)
|
|
74
|
-
})
|
|
75
|
-
});
|
|
76
|
-
const preview = (root) => previewEffect(root, fs);
|
|
77
|
-
const apply = (root, options) => applyEffect(root, options?.dryRun ?? false, inspector, fs);
|
|
78
|
-
return {
|
|
79
|
-
plan,
|
|
80
|
-
preview,
|
|
81
|
-
apply
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
/** Production layer. Requires {@link ConfigInspector} (used by `apply`) and `FileSystem`. @public */
|
|
85
|
-
const ReleasePlannerLive = effect.Layer.effect(ReleasePlanner, effect.Effect.gen(function* () {
|
|
86
|
-
return makeShape(yield* require_config_inspector.ConfigInspector, yield* _effect_platform.FileSystem.FileSystem);
|
|
87
|
-
}));
|
|
88
|
-
/**
|
|
89
|
-
* Test factory — supply fixed results for any subset of methods. Unsupplied
|
|
90
|
-
* methods fail with a `ReleasePlanError`.
|
|
91
|
-
*
|
|
92
|
-
* @public
|
|
93
|
-
*/
|
|
94
|
-
function makeReleasePlannerTest(fixed) {
|
|
95
|
-
const fail = (phase) => effect.Effect.fail(new require_errors.ReleasePlanError({
|
|
96
|
-
phase,
|
|
97
|
-
reason: "not provided in test layer"
|
|
98
|
-
}));
|
|
99
|
-
return effect.Layer.succeed(ReleasePlanner, {
|
|
100
|
-
plan: () => fixed.plan ? effect.Effect.succeed(fixed.plan) : fail("plan"),
|
|
101
|
-
preview: () => fixed.preview ? effect.Effect.succeed(fixed.preview) : fail("preview"),
|
|
102
|
-
apply: () => fixed.apply ? effect.Effect.succeed(fixed.apply) : fail("apply")
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
/** Extract the `## <version>` block (down to the next H2 or EOF) from a changelog. */
|
|
106
|
-
function extractVersionBlock(changelog, version) {
|
|
107
|
-
const lines = changelog.split("\n");
|
|
108
|
-
const start = lines.findIndex((l) => l.trim() === `## ${version}`);
|
|
109
|
-
if (start === -1) return "";
|
|
110
|
-
let end = lines.length;
|
|
111
|
-
for (let i = start + 1; i < lines.length; i++) if (/^## /.test(lines[i])) {
|
|
112
|
-
end = i;
|
|
113
|
-
break;
|
|
114
|
-
}
|
|
115
|
-
return lines.slice(start, end).join("\n").trim();
|
|
116
|
-
}
|
|
117
|
-
/** Maintenance reasons for every changeset-less release in the plan, keyed by package name. */
|
|
118
|
-
function maintenanceReasons(plan, config) {
|
|
119
|
-
const reasons = /* @__PURE__ */ new Map();
|
|
120
|
-
for (const r of plan.releases) {
|
|
121
|
-
if (r.type === "none") continue;
|
|
122
|
-
const reason = require_maintenance_reason.deriveMaintenanceReason(r, plan, config);
|
|
123
|
-
if (reason) reasons.set(r.name, reason);
|
|
124
|
-
}
|
|
125
|
-
return reasons;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Render a non-destructive preview by redirecting every write into a
|
|
129
|
-
* scope-managed temp directory (cleaned up automatically when the scope
|
|
130
|
-
* closes) and reading the generated CHANGELOG blocks back.
|
|
131
|
-
*/
|
|
132
|
-
function previewEffect(root, fs) {
|
|
133
|
-
const program = effect.Effect.gen(function* () {
|
|
134
|
-
const [plan, packages] = yield* effect.Effect.tryPromise({
|
|
135
|
-
try: () => Promise.all([require_changesets_get_release_plan_esm.default(root), buildPackages(root)]),
|
|
136
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
137
|
-
phase: "preview",
|
|
138
|
-
reason: errMsg(e)
|
|
139
|
-
})
|
|
140
|
-
});
|
|
141
|
-
const config = yield* effect.Effect.tryPromise({
|
|
142
|
-
try: () => require_changesets_config_esm.read(root, packages),
|
|
143
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
144
|
-
phase: "preview",
|
|
145
|
-
reason: errMsg(e)
|
|
146
|
-
})
|
|
147
|
-
});
|
|
148
|
-
const reasonByName = maintenanceReasons(plan, config);
|
|
149
|
-
const preMode = plan.preState ? plan.preState.mode : null;
|
|
150
|
-
const changesets = plan.changesets.map((cs) => ({
|
|
151
|
-
id: cs.id,
|
|
152
|
-
summary: cs.summary,
|
|
153
|
-
releases: cs.releases.filter((r) => r.type !== "none").map((r) => ({
|
|
154
|
-
name: r.name,
|
|
155
|
-
type: r.type
|
|
156
|
-
}))
|
|
157
|
-
}));
|
|
158
|
-
const releasesToRender = plan.releases.filter((r) => r.type !== "none");
|
|
159
|
-
if (releasesToRender.length === 0) return {
|
|
160
|
-
preMode,
|
|
161
|
-
releases: [],
|
|
162
|
-
changesets
|
|
163
|
-
};
|
|
164
|
-
const tempRoot = yield* fs.makeTempDirectoryScoped({ prefix: "silk-preview-" });
|
|
165
|
-
const mapDir = (dir) => {
|
|
166
|
-
const rel = (0, node_path.relative)(packages.root.dir, dir);
|
|
167
|
-
if (rel.startsWith("..") || (0, node_path.isAbsolute)(rel)) return effect.Effect.fail(new require_errors.ReleasePlanError({
|
|
168
|
-
phase: "preview",
|
|
169
|
-
reason: `Package directory is outside the workspace root: ${dir}`
|
|
170
|
-
}));
|
|
171
|
-
return effect.Effect.succeed((0, node_path.join)(tempRoot, rel));
|
|
172
|
-
};
|
|
173
|
-
const tempDirs = yield* effect.Effect.forEach(packages.packages, (p) => mapDir(p.dir));
|
|
174
|
-
const tempPackages = {
|
|
175
|
-
tool: packages.tool,
|
|
176
|
-
root: {
|
|
177
|
-
...packages.root,
|
|
178
|
-
dir: tempRoot,
|
|
179
|
-
packageJson: structuredClone(packages.root.packageJson)
|
|
180
|
-
},
|
|
181
|
-
packages: packages.packages.map((p, i) => ({
|
|
182
|
-
...p,
|
|
183
|
-
dir: tempDirs[i],
|
|
184
|
-
packageJson: structuredClone(p.packageJson)
|
|
185
|
-
}))
|
|
186
|
-
};
|
|
187
|
-
yield* fs.makeDirectory((0, node_path.join)(tempRoot, ".changeset"), { recursive: true });
|
|
188
|
-
yield* fs.copyFile((0, node_path.join)(root, "package.json"), (0, node_path.join)(tempRoot, "package.json"));
|
|
189
|
-
const preJson = (0, node_path.join)(root, ".changeset", "pre.json");
|
|
190
|
-
if (yield* fs.exists(preJson)) yield* fs.copyFile(preJson, (0, node_path.join)(tempRoot, ".changeset", "pre.json"));
|
|
191
|
-
for (let i = 0; i < packages.packages.length; i++) {
|
|
192
|
-
const p = packages.packages[i];
|
|
193
|
-
const tDir = tempDirs[i];
|
|
194
|
-
yield* fs.makeDirectory(tDir, { recursive: true });
|
|
195
|
-
yield* fs.copyFile((0, node_path.join)(p.dir, "package.json"), (0, node_path.join)(tDir, "package.json"));
|
|
196
|
-
const realCl = (0, node_path.join)(p.dir, "CHANGELOG.md");
|
|
197
|
-
if (yield* fs.exists(realCl)) yield* fs.copyFile(realCl, (0, node_path.join)(tDir, "CHANGELOG.md"));
|
|
198
|
-
}
|
|
199
|
-
const rootCl = (0, node_path.join)(packages.root.dir, "CHANGELOG.md");
|
|
200
|
-
if (yield* fs.exists(rootCl)) yield* fs.copyFile(rootCl, (0, node_path.join)(tempRoot, "CHANGELOG.md"));
|
|
201
|
-
yield* effect.Effect.tryPromise({
|
|
202
|
-
try: () => require_changesets_apply_release_plan_esm.default(plan, tempPackages, config, void 0, root),
|
|
203
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
204
|
-
phase: "preview",
|
|
205
|
-
reason: errMsg(e)
|
|
206
|
-
})
|
|
207
|
-
});
|
|
208
|
-
const dirByName = /* @__PURE__ */ new Map();
|
|
209
|
-
for (const p of tempPackages.packages) dirByName.set(p.packageJson.name, p.dir);
|
|
210
|
-
if (tempPackages.root.packageJson.name) dirByName.set(tempPackages.root.packageJson.name, tempRoot);
|
|
211
|
-
const releases = [];
|
|
212
|
-
for (const r of releasesToRender) {
|
|
213
|
-
const dir = dirByName.get(r.name);
|
|
214
|
-
if (!dir) continue;
|
|
215
|
-
const clPath = (0, node_path.join)(dir, "CHANGELOG.md");
|
|
216
|
-
if (!(yield* fs.exists(clPath))) continue;
|
|
217
|
-
const reason = reasonByName.get(r.name);
|
|
218
|
-
yield* effect.Effect.try({
|
|
219
|
-
try: () => require_transformer.ChangelogTransformer.transformFile(clPath, reason ? { maintenance: {
|
|
220
|
-
version: r.newVersion,
|
|
221
|
-
reason
|
|
222
|
-
} } : void 0),
|
|
223
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
224
|
-
phase: "preview",
|
|
225
|
-
reason: errMsg(e)
|
|
226
|
-
})
|
|
227
|
-
});
|
|
228
|
-
const content = yield* fs.readFileString(clPath);
|
|
229
|
-
releases.push({
|
|
230
|
-
name: r.name,
|
|
231
|
-
type: r.type,
|
|
232
|
-
oldVersion: r.oldVersion,
|
|
233
|
-
newVersion: r.newVersion,
|
|
234
|
-
changesetIds: [...r.changesets],
|
|
235
|
-
changelogEntry: extractVersionBlock(content, r.newVersion)
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
return {
|
|
239
|
-
preMode,
|
|
240
|
-
releases,
|
|
241
|
-
changesets
|
|
242
|
-
};
|
|
243
|
-
});
|
|
244
|
-
return effect.Effect.scoped(program).pipe(effect.Effect.mapError((e) => e instanceof require_errors.ReleasePlanError ? e : new require_errors.ReleasePlanError({
|
|
245
|
-
phase: "preview",
|
|
246
|
-
reason: errMsg(e)
|
|
247
|
-
})));
|
|
248
|
-
}
|
|
249
|
-
/** Re-read a package's version from disk (post-bump) to feed versionFiles; unreadable/unparseable falls back. */
|
|
250
|
-
function diskVersion(workspaceDir, fallback, fs) {
|
|
251
|
-
return fs.readFileString((0, node_path.join)(workspaceDir, "package.json")).pipe(effect.Effect.flatMap((raw) => effect.Effect.try(() => JSON.parse(raw).version ?? fallback)), effect.Effect.orElseSucceed(() => fallback));
|
|
252
|
-
}
|
|
253
|
-
function applyEffect(root, dryRun, inspector, fs) {
|
|
254
|
-
return effect.Effect.gen(function* () {
|
|
255
|
-
const { plan, packages, config } = yield* effect.Effect.tryPromise({
|
|
256
|
-
try: async () => {
|
|
257
|
-
const [plan, packages] = await Promise.all([require_changesets_get_release_plan_esm.default(root), buildPackages(root)]);
|
|
258
|
-
return {
|
|
259
|
-
plan,
|
|
260
|
-
packages,
|
|
261
|
-
config: await require_changesets_config_esm.read(root, packages)
|
|
262
|
-
};
|
|
263
|
-
},
|
|
264
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
265
|
-
phase: "apply",
|
|
266
|
-
reason: errMsg(e)
|
|
267
|
-
})
|
|
268
|
-
});
|
|
269
|
-
const releases = plan.releases.filter((r) => r.type !== "none").map((r) => ({
|
|
270
|
-
name: r.name,
|
|
271
|
-
type: r.type,
|
|
272
|
-
oldVersion: r.oldVersion,
|
|
273
|
-
newVersion: r.newVersion
|
|
274
|
-
}));
|
|
275
|
-
let touchedFiles = [];
|
|
276
|
-
if (!dryRun) {
|
|
277
|
-
const reasonByName = maintenanceReasons(plan, config);
|
|
278
|
-
const versionByPkgName = new Map(plan.releases.map((r) => [r.name, r.newVersion]));
|
|
279
|
-
const nameByDir = /* @__PURE__ */ new Map();
|
|
280
|
-
for (const p of packages.packages) nameByDir.set(p.dir, p.packageJson.name);
|
|
281
|
-
if (packages.root.packageJson.name) nameByDir.set(packages.root.dir, packages.root.packageJson.name);
|
|
282
|
-
touchedFiles = yield* effect.Effect.tryPromise({
|
|
283
|
-
try: async () => {
|
|
284
|
-
const touched = await require_changesets_apply_release_plan_esm.default(plan, packages, config);
|
|
285
|
-
for (const f of touched) {
|
|
286
|
-
if (!f.endsWith("CHANGELOG.md")) continue;
|
|
287
|
-
const pkgName = nameByDir.get((0, node_path.dirname)(f));
|
|
288
|
-
const reason = pkgName ? reasonByName.get(pkgName) : void 0;
|
|
289
|
-
const newVersion = pkgName ? versionByPkgName.get(pkgName) : void 0;
|
|
290
|
-
require_transformer.ChangelogTransformer.transformFile(f, reason && newVersion ? { maintenance: {
|
|
291
|
-
version: newVersion,
|
|
292
|
-
reason
|
|
293
|
-
} } : void 0);
|
|
294
|
-
}
|
|
295
|
-
return touched;
|
|
296
|
-
},
|
|
297
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
298
|
-
phase: "apply",
|
|
299
|
-
reason: errMsg(e)
|
|
300
|
-
})
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
const newVersionByName = new Map(plan.releases.map((r) => [r.name, r.newVersion]));
|
|
304
|
-
const inspected = yield* inspector.inspect(root).pipe(effect.Effect.catchAll((error) => effect.Effect.logWarning(`Skipping versionFiles update: ${errMsg(error)}`).pipe(effect.Effect.as(null))));
|
|
305
|
-
let versionFileUpdates = [];
|
|
306
|
-
if (inspected) {
|
|
307
|
-
const candidates = inspected.packages.filter((p) => p.versionFiles.length > 0);
|
|
308
|
-
const freshVersions = yield* effect.Effect.forEach(candidates, (p) => dryRun ? effect.Effect.succeed(newVersionByName.get(p.name) ?? p.version) : diskVersion(p.workspaceDir, p.version, fs));
|
|
309
|
-
const scopes = candidates.map((p, i) => {
|
|
310
|
-
const fresh = freshVersions[i];
|
|
311
|
-
return fresh !== p.version ? {
|
|
312
|
-
...p,
|
|
313
|
-
version: fresh
|
|
314
|
-
} : p;
|
|
315
|
-
});
|
|
316
|
-
versionFileUpdates = yield* effect.Effect.try({
|
|
317
|
-
try: () => scopes.length > 0 ? require_version_files.VersionFiles.processResolvedVersionFiles(scopes, dryRun) : [],
|
|
318
|
-
catch: (e) => new require_errors.ReleasePlanError({
|
|
319
|
-
phase: "apply",
|
|
320
|
-
reason: errMsg(e)
|
|
321
|
-
})
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
return {
|
|
325
|
-
dryRun,
|
|
326
|
-
touchedFiles,
|
|
327
|
-
releases,
|
|
328
|
-
versionFileUpdates
|
|
329
|
-
};
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
//#endregion
|
|
334
|
-
exports.ReleasePlanner = ReleasePlanner;
|
|
335
|
-
exports.ReleasePlannerBase = ReleasePlannerBase;
|
|
336
|
-
exports.ReleasePlannerLive = ReleasePlannerLive;
|
|
337
|
-
exports.extractVersionBlock = extractVersionBlock;
|
|
338
|
-
exports.makeReleasePlannerTest = makeReleasePlannerTest;
|