@savvy-web/silk 2.0.0 → 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 +10 -4
- package/changesets-changelog.js +54057 -1
- package/changesets-markdownlint.cjs +10 -4
- package/changesets-markdownlint.js +54057 -1
- package/package.json +5 -4
- 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 -352
- package/packages/silk-effects/dist/dev/pkg/changesets/services/release-planner.js +0 -348
- 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 -77
- package/packages/silk-effects/dist/dev/pkg/changesets/vendor/github-info.js +0 -77
- 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,31 +0,0 @@
|
|
|
1
|
-
import { RULE_DOCS } from "../../constants.js";
|
|
2
|
-
import { lintRule } from "../../../../../../../../node_modules/.pnpm/unified-lint-rule@3.0.1/node_modules/unified-lint-rule/lib/index.js";
|
|
3
|
-
|
|
4
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/remark/rules/uncategorized-content.js
|
|
5
|
-
/**
|
|
6
|
-
* Node types to ignore when detecting uncategorized content (e.g., HTML comments).
|
|
7
|
-
*
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
const IGNORED_TYPES = /* @__PURE__ */ new Set(["html"]);
|
|
11
|
-
/**
|
|
12
|
-
* Determine whether a node is substantive content (not a heading or ignored type).
|
|
13
|
-
*
|
|
14
|
-
* @param node - The AST node to check
|
|
15
|
-
* @returns `true` if the node is content that should be under a heading
|
|
16
|
-
*
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
function isContentNode(node) {
|
|
20
|
-
if (node.type === "heading") return false;
|
|
21
|
-
return !IGNORED_TYPES.has(node.type);
|
|
22
|
-
}
|
|
23
|
-
const UncategorizedContentRule = lintRule("remark-lint:changeset-uncategorized-content", (tree, file) => {
|
|
24
|
-
for (const node of tree.children) {
|
|
25
|
-
if (node.type === "heading" && node.depth === 2) break;
|
|
26
|
-
if (isContentNode(node)) file.message(`Content must be placed under a category heading (## heading). Move this content under an appropriate section like "## Features" or "## Bug Fixes". If it doesn't fit an existing category, use "## Other". See: ${RULE_DOCS.CSH004}`, node);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
//#endregion
|
|
31
|
-
export { UncategorizedContentRule };
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
const require_primitives = require('./primitives.cjs');
|
|
2
|
-
const require_git = require('./git.cjs');
|
|
3
|
-
let effect = require("effect");
|
|
4
|
-
|
|
5
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/schemas/changeset.js
|
|
6
|
-
/**
|
|
7
|
-
* Effect schemas for changeset entries and dependency updates.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* These schemas define the canonical representation of changeset data
|
|
11
|
-
* consumed by the changelog formatter (Layer 2) and validated by the
|
|
12
|
-
* remark-lint pre-validation layer (Layer 1). They enforce constraints
|
|
13
|
-
* such as summary length limits and valid dependency types at system
|
|
14
|
-
* boundaries.
|
|
15
|
-
*
|
|
16
|
-
* @see {@link https://github.com/changesets/changesets | Changesets documentation}
|
|
17
|
-
* @see {@link https://effect.website/docs/schema/introduction | Effect Schema documentation}
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* Schema for a changeset summary (1--1000 characters).
|
|
22
|
-
*
|
|
23
|
-
* @remarks
|
|
24
|
-
* Enforces that every changeset has a non-empty summary and caps length
|
|
25
|
-
* at 1000 characters. Longer descriptions should go in the changeset body,
|
|
26
|
-
* not the summary line. Validation messages guide users toward correct usage.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* import { Schema } from "effect";
|
|
31
|
-
* import { ChangesetSummarySchema } from "@savvy-web/changesets";
|
|
32
|
-
*
|
|
33
|
-
* // Succeeds — valid summary
|
|
34
|
-
* const summary = Schema.decodeUnknownSync(ChangesetSummarySchema)(
|
|
35
|
-
* "Fix authentication timeout in login flow"
|
|
36
|
-
* );
|
|
37
|
-
*
|
|
38
|
-
* // Throws ParseError — empty string
|
|
39
|
-
* Schema.decodeUnknownSync(ChangesetSummarySchema)("");
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* @public
|
|
43
|
-
*/
|
|
44
|
-
const ChangesetSummarySchema = effect.Schema.String.pipe(effect.Schema.minLength(1, { message: () => "Changeset summary cannot be empty. Provide a 1-1000 character description of the change (e.g., \"Fix authentication timeout in login flow\")" }), effect.Schema.maxLength(1e3, { message: () => "Changeset summary exceeds the 1000 character limit. Shorten the summary to at most 1000 characters — use the changeset body for additional details" }));
|
|
45
|
-
/**
|
|
46
|
-
* Schema for a changeset object.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* Represents a single changeset entry as consumed by the changelog formatter.
|
|
50
|
-
* The `summary` is the human-readable description, `id` is a unique identifier
|
|
51
|
-
* (typically the changeset filename without extension), and `commit` is the
|
|
52
|
-
* optional git SHA that introduced the changeset.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```typescript
|
|
56
|
-
* import { Schema } from "effect";
|
|
57
|
-
* import { ChangesetSchema } from "@savvy-web/changesets";
|
|
58
|
-
* import type { Changeset } from "@savvy-web/changesets";
|
|
59
|
-
*
|
|
60
|
-
* const changeset: Changeset = Schema.decodeUnknownSync(ChangesetSchema)({
|
|
61
|
-
* summary: "Add retry logic to API client",
|
|
62
|
-
* id: "brave-dogs-laugh",
|
|
63
|
-
* commit: "a1b2c3d",
|
|
64
|
-
* });
|
|
65
|
-
* ```
|
|
66
|
-
*
|
|
67
|
-
* @see {@link Changeset} for the inferred TypeScript type
|
|
68
|
-
* @see {@link ChangesetSummarySchema} for summary validation rules
|
|
69
|
-
* @see {@link CommitHashSchema} for commit hash format requirements
|
|
70
|
-
*
|
|
71
|
-
* @public
|
|
72
|
-
*/
|
|
73
|
-
const ChangesetSchema = effect.Schema.Struct({
|
|
74
|
-
/** The changeset summary text. */
|
|
75
|
-
summary: ChangesetSummarySchema,
|
|
76
|
-
/** Unique changeset identifier. */
|
|
77
|
-
id: effect.Schema.String,
|
|
78
|
-
/** Git commit hash associated with this changeset. */
|
|
79
|
-
commit: effect.Schema.optional(require_git.CommitHashSchema)
|
|
80
|
-
});
|
|
81
|
-
/**
|
|
82
|
-
* Schema for npm dependency types.
|
|
83
|
-
*
|
|
84
|
-
* @remarks
|
|
85
|
-
* Represents the four standard `package.json` dependency fields using their
|
|
86
|
-
* plural key names as they appear in the manifest. For the singular,
|
|
87
|
-
* table-oriented variant that includes `workspace` and `config` types,
|
|
88
|
-
* see {@link DependencyTableTypeSchema}.
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* ```typescript
|
|
92
|
-
* import { Schema } from "effect";
|
|
93
|
-
* import { DependencyTypeSchema } from "@savvy-web/changesets";
|
|
94
|
-
* import type { DependencyType } from "@savvy-web/changesets";
|
|
95
|
-
*
|
|
96
|
-
* const depType: DependencyType = Schema.decodeUnknownSync(DependencyTypeSchema)(
|
|
97
|
-
* "devDependencies"
|
|
98
|
-
* );
|
|
99
|
-
* ```
|
|
100
|
-
*
|
|
101
|
-
* @see {@link DependencyTableTypeSchema} for the extended singular-form variant
|
|
102
|
-
*
|
|
103
|
-
* @public
|
|
104
|
-
*/
|
|
105
|
-
const DependencyTypeSchema = effect.Schema.Literal("dependencies", "devDependencies", "peerDependencies", "optionalDependencies");
|
|
106
|
-
/**
|
|
107
|
-
* Schema for a dependency update entry.
|
|
108
|
-
*
|
|
109
|
-
* @remarks
|
|
110
|
-
* Represents a single dependency version change as reported by
|
|
111
|
-
* the Changesets API. Captures the package name, which dependency
|
|
112
|
-
* field it belongs to, and the old and new version strings.
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```typescript
|
|
116
|
-
* import { Schema } from "effect";
|
|
117
|
-
* import { DependencyUpdateSchema } from "@savvy-web/changesets";
|
|
118
|
-
* import type { DependencyUpdate } from "@savvy-web/changesets";
|
|
119
|
-
*
|
|
120
|
-
* const update: DependencyUpdate = Schema.decodeUnknownSync(DependencyUpdateSchema)({
|
|
121
|
-
* name: "effect",
|
|
122
|
-
* type: "dependencies",
|
|
123
|
-
* oldVersion: "3.18.0",
|
|
124
|
-
* newVersion: "3.19.1",
|
|
125
|
-
* });
|
|
126
|
-
* ```
|
|
127
|
-
*
|
|
128
|
-
* @see {@link DependencyUpdate} for the inferred TypeScript type
|
|
129
|
-
* @see {@link DependencyTableRowSchema} for the table-formatted variant
|
|
130
|
-
*
|
|
131
|
-
* @public
|
|
132
|
-
*/
|
|
133
|
-
const DependencyUpdateSchema = effect.Schema.Struct({
|
|
134
|
-
/** Package name (must be non-empty). */
|
|
135
|
-
name: require_primitives.NonEmptyString.annotations({ message: () => "Package name cannot be empty" }),
|
|
136
|
-
/** npm dependency type. */
|
|
137
|
-
type: DependencyTypeSchema,
|
|
138
|
-
/** Previous version string. */
|
|
139
|
-
oldVersion: effect.Schema.String,
|
|
140
|
-
/** New version string. */
|
|
141
|
-
newVersion: effect.Schema.String
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
//#endregion
|
|
145
|
-
exports.ChangesetSchema = ChangesetSchema;
|
|
146
|
-
exports.ChangesetSummarySchema = ChangesetSummarySchema;
|
|
147
|
-
exports.DependencyTypeSchema = DependencyTypeSchema;
|
|
148
|
-
exports.DependencyUpdateSchema = DependencyUpdateSchema;
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { NonEmptyString } from "./primitives.js";
|
|
2
|
-
import { CommitHashSchema } from "./git.js";
|
|
3
|
-
import { Schema } from "effect";
|
|
4
|
-
|
|
5
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/schemas/changeset.js
|
|
6
|
-
/**
|
|
7
|
-
* Effect schemas for changeset entries and dependency updates.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* These schemas define the canonical representation of changeset data
|
|
11
|
-
* consumed by the changelog formatter (Layer 2) and validated by the
|
|
12
|
-
* remark-lint pre-validation layer (Layer 1). They enforce constraints
|
|
13
|
-
* such as summary length limits and valid dependency types at system
|
|
14
|
-
* boundaries.
|
|
15
|
-
*
|
|
16
|
-
* @see {@link https://github.com/changesets/changesets | Changesets documentation}
|
|
17
|
-
* @see {@link https://effect.website/docs/schema/introduction | Effect Schema documentation}
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* Schema for a changeset summary (1--1000 characters).
|
|
22
|
-
*
|
|
23
|
-
* @remarks
|
|
24
|
-
* Enforces that every changeset has a non-empty summary and caps length
|
|
25
|
-
* at 1000 characters. Longer descriptions should go in the changeset body,
|
|
26
|
-
* not the summary line. Validation messages guide users toward correct usage.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* import { Schema } from "effect";
|
|
31
|
-
* import { ChangesetSummarySchema } from "@savvy-web/changesets";
|
|
32
|
-
*
|
|
33
|
-
* // Succeeds — valid summary
|
|
34
|
-
* const summary = Schema.decodeUnknownSync(ChangesetSummarySchema)(
|
|
35
|
-
* "Fix authentication timeout in login flow"
|
|
36
|
-
* );
|
|
37
|
-
*
|
|
38
|
-
* // Throws ParseError — empty string
|
|
39
|
-
* Schema.decodeUnknownSync(ChangesetSummarySchema)("");
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* @public
|
|
43
|
-
*/
|
|
44
|
-
const ChangesetSummarySchema = Schema.String.pipe(Schema.minLength(1, { message: () => "Changeset summary cannot be empty. Provide a 1-1000 character description of the change (e.g., \"Fix authentication timeout in login flow\")" }), Schema.maxLength(1e3, { message: () => "Changeset summary exceeds the 1000 character limit. Shorten the summary to at most 1000 characters — use the changeset body for additional details" }));
|
|
45
|
-
/**
|
|
46
|
-
* Schema for a changeset object.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* Represents a single changeset entry as consumed by the changelog formatter.
|
|
50
|
-
* The `summary` is the human-readable description, `id` is a unique identifier
|
|
51
|
-
* (typically the changeset filename without extension), and `commit` is the
|
|
52
|
-
* optional git SHA that introduced the changeset.
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```typescript
|
|
56
|
-
* import { Schema } from "effect";
|
|
57
|
-
* import { ChangesetSchema } from "@savvy-web/changesets";
|
|
58
|
-
* import type { Changeset } from "@savvy-web/changesets";
|
|
59
|
-
*
|
|
60
|
-
* const changeset: Changeset = Schema.decodeUnknownSync(ChangesetSchema)({
|
|
61
|
-
* summary: "Add retry logic to API client",
|
|
62
|
-
* id: "brave-dogs-laugh",
|
|
63
|
-
* commit: "a1b2c3d",
|
|
64
|
-
* });
|
|
65
|
-
* ```
|
|
66
|
-
*
|
|
67
|
-
* @see {@link Changeset} for the inferred TypeScript type
|
|
68
|
-
* @see {@link ChangesetSummarySchema} for summary validation rules
|
|
69
|
-
* @see {@link CommitHashSchema} for commit hash format requirements
|
|
70
|
-
*
|
|
71
|
-
* @public
|
|
72
|
-
*/
|
|
73
|
-
const ChangesetSchema = Schema.Struct({
|
|
74
|
-
/** The changeset summary text. */
|
|
75
|
-
summary: ChangesetSummarySchema,
|
|
76
|
-
/** Unique changeset identifier. */
|
|
77
|
-
id: Schema.String,
|
|
78
|
-
/** Git commit hash associated with this changeset. */
|
|
79
|
-
commit: Schema.optional(CommitHashSchema)
|
|
80
|
-
});
|
|
81
|
-
/**
|
|
82
|
-
* Schema for npm dependency types.
|
|
83
|
-
*
|
|
84
|
-
* @remarks
|
|
85
|
-
* Represents the four standard `package.json` dependency fields using their
|
|
86
|
-
* plural key names as they appear in the manifest. For the singular,
|
|
87
|
-
* table-oriented variant that includes `workspace` and `config` types,
|
|
88
|
-
* see {@link DependencyTableTypeSchema}.
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* ```typescript
|
|
92
|
-
* import { Schema } from "effect";
|
|
93
|
-
* import { DependencyTypeSchema } from "@savvy-web/changesets";
|
|
94
|
-
* import type { DependencyType } from "@savvy-web/changesets";
|
|
95
|
-
*
|
|
96
|
-
* const depType: DependencyType = Schema.decodeUnknownSync(DependencyTypeSchema)(
|
|
97
|
-
* "devDependencies"
|
|
98
|
-
* );
|
|
99
|
-
* ```
|
|
100
|
-
*
|
|
101
|
-
* @see {@link DependencyTableTypeSchema} for the extended singular-form variant
|
|
102
|
-
*
|
|
103
|
-
* @public
|
|
104
|
-
*/
|
|
105
|
-
const DependencyTypeSchema = Schema.Literal("dependencies", "devDependencies", "peerDependencies", "optionalDependencies");
|
|
106
|
-
/**
|
|
107
|
-
* Schema for a dependency update entry.
|
|
108
|
-
*
|
|
109
|
-
* @remarks
|
|
110
|
-
* Represents a single dependency version change as reported by
|
|
111
|
-
* the Changesets API. Captures the package name, which dependency
|
|
112
|
-
* field it belongs to, and the old and new version strings.
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```typescript
|
|
116
|
-
* import { Schema } from "effect";
|
|
117
|
-
* import { DependencyUpdateSchema } from "@savvy-web/changesets";
|
|
118
|
-
* import type { DependencyUpdate } from "@savvy-web/changesets";
|
|
119
|
-
*
|
|
120
|
-
* const update: DependencyUpdate = Schema.decodeUnknownSync(DependencyUpdateSchema)({
|
|
121
|
-
* name: "effect",
|
|
122
|
-
* type: "dependencies",
|
|
123
|
-
* oldVersion: "3.18.0",
|
|
124
|
-
* newVersion: "3.19.1",
|
|
125
|
-
* });
|
|
126
|
-
* ```
|
|
127
|
-
*
|
|
128
|
-
* @see {@link DependencyUpdate} for the inferred TypeScript type
|
|
129
|
-
* @see {@link DependencyTableRowSchema} for the table-formatted variant
|
|
130
|
-
*
|
|
131
|
-
* @public
|
|
132
|
-
*/
|
|
133
|
-
const DependencyUpdateSchema = Schema.Struct({
|
|
134
|
-
/** Package name (must be non-empty). */
|
|
135
|
-
name: NonEmptyString.annotations({ message: () => "Package name cannot be empty" }),
|
|
136
|
-
/** npm dependency type. */
|
|
137
|
-
type: DependencyTypeSchema,
|
|
138
|
-
/** Previous version string. */
|
|
139
|
-
oldVersion: Schema.String,
|
|
140
|
-
/** New version string. */
|
|
141
|
-
newVersion: Schema.String
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
//#endregion
|
|
145
|
-
export { ChangesetSchema, ChangesetSummarySchema, DependencyTypeSchema, DependencyUpdateSchema };
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
const require_primitives = require('./primitives.cjs');
|
|
2
|
-
let effect = require("effect");
|
|
3
|
-
|
|
4
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/schemas/dependency-table.js
|
|
5
|
-
/**
|
|
6
|
-
* Effect schemas for structured dependency table entries.
|
|
7
|
-
*
|
|
8
|
-
* @remarks
|
|
9
|
-
* These schemas define the canonical representation for dependency
|
|
10
|
-
* changes tracked as markdown tables in changeset files and CHANGELOGs.
|
|
11
|
-
* The table format provides a richer view than {@link DependencyUpdateSchema}
|
|
12
|
-
* by supporting singular dependency type names, workspace/config types,
|
|
13
|
-
* and explicit add/update/remove actions.
|
|
14
|
-
*
|
|
15
|
-
* A dependency table row looks like this in a CHANGELOG:
|
|
16
|
-
*
|
|
17
|
-
* | Dependency | Type | Action | From | To |
|
|
18
|
-
* |---|---|---|---|---|
|
|
19
|
-
* | effect | dependency | updated | 3.18.0 | 3.19.1 |
|
|
20
|
-
*
|
|
21
|
-
* @see {@link DependencyUpdateSchema} for the simpler Changesets API format
|
|
22
|
-
* @see {@link https://effect.website/docs/schema/introduction | Effect Schema documentation}
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
/**
|
|
26
|
-
* Valid dependency table actions.
|
|
27
|
-
*
|
|
28
|
-
* @remarks
|
|
29
|
-
* Represents the three possible operations on a dependency: `"added"` for
|
|
30
|
-
* new dependencies, `"updated"` for version changes, and `"removed"` for
|
|
31
|
-
* deletions. Used in the "Action" column of dependency tables.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* import { Schema } from "effect";
|
|
36
|
-
* import { DependencyActionSchema } from "@savvy-web/changesets";
|
|
37
|
-
* import type { DependencyAction } from "@savvy-web/changesets";
|
|
38
|
-
*
|
|
39
|
-
* const action: DependencyAction = Schema.decodeUnknownSync(DependencyActionSchema)("updated");
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* @public
|
|
43
|
-
*/
|
|
44
|
-
const DependencyActionSchema = effect.Schema.Literal("added", "updated", "removed");
|
|
45
|
-
/**
|
|
46
|
-
* Extended dependency types for table format.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* Unlike {@link DependencyTypeSchema} (which uses plural npm field names like
|
|
50
|
-
* `"dependencies"`), this schema uses singular forms (`"dependency"`) and adds
|
|
51
|
-
* two additional types: `"workspace"` for monorepo workspace references and
|
|
52
|
-
* `"config"` for configuration toolchain updates (e.g., ESLint, TypeScript).
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```typescript
|
|
56
|
-
* import { Schema } from "effect";
|
|
57
|
-
* import { DependencyTableTypeSchema } from "@savvy-web/changesets";
|
|
58
|
-
* import type { DependencyTableType } from "@savvy-web/changesets";
|
|
59
|
-
*
|
|
60
|
-
* const tableType: DependencyTableType = Schema.decodeUnknownSync(
|
|
61
|
-
* DependencyTableTypeSchema
|
|
62
|
-
* )("workspace");
|
|
63
|
-
* ```
|
|
64
|
-
*
|
|
65
|
-
* @see {@link DependencyTypeSchema} for the plural npm-field variant
|
|
66
|
-
*
|
|
67
|
-
* @public
|
|
68
|
-
*/
|
|
69
|
-
const DependencyTableTypeSchema = effect.Schema.Literal("dependency", "devDependency", "peerDependency", "optionalDependency", "workspace", "config");
|
|
70
|
-
/**
|
|
71
|
-
* The canonical accepted-value pattern for a dependency-table From/To cell:
|
|
72
|
-
* the em-dash sentinel (U+2014), a bare/`~`/`^` semver, or — as a last-resort
|
|
73
|
-
* fallback when a `catalog:`/`workspace:` specifier could not be resolved to a
|
|
74
|
-
* concrete version — a pnpm protocol string. Non-overlapping alternatives keep
|
|
75
|
-
* this free of polynomial backtracking (CodeQL).
|
|
76
|
-
*
|
|
77
|
-
* @public
|
|
78
|
-
*/
|
|
79
|
-
const VERSION_RE = /^(\u2014|[~^]?\d+\.\d+\.\d+(?:[-+.][\w.+-]+)?|(?:catalog|workspace|npm|jsr|file|link|portal):[^\s|]+)$/;
|
|
80
|
-
/**
|
|
81
|
-
* Version string or em dash (U+2014) sentinel for added/removed entries.
|
|
82
|
-
*
|
|
83
|
-
* @remarks
|
|
84
|
-
* Accepts either a semver-like version string (with optional `~` or `^`
|
|
85
|
-
* prefix and pre-release/build suffixes) or the em dash character `\u2014`
|
|
86
|
-
* which serves as a sentinel: the "From" column uses `\u2014` for newly
|
|
87
|
-
* added dependencies, and the "To" column uses it for removed ones.
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* ```typescript
|
|
91
|
-
* import { Schema } from "effect";
|
|
92
|
-
* import { VersionOrEmptySchema } from "@savvy-web/changesets";
|
|
93
|
-
*
|
|
94
|
-
* // Succeeds — semver version
|
|
95
|
-
* Schema.decodeUnknownSync(VersionOrEmptySchema)("^3.19.1");
|
|
96
|
-
*
|
|
97
|
-
* // Succeeds — em dash sentinel for "no version"
|
|
98
|
-
* Schema.decodeUnknownSync(VersionOrEmptySchema)("\u2014");
|
|
99
|
-
*
|
|
100
|
-
* // Throws ParseError — arbitrary text
|
|
101
|
-
* Schema.decodeUnknownSync(VersionOrEmptySchema)("latest");
|
|
102
|
-
* ```
|
|
103
|
-
*
|
|
104
|
-
* @public
|
|
105
|
-
*/
|
|
106
|
-
const VersionOrEmptySchema = effect.Schema.String.pipe(effect.Schema.pattern(VERSION_RE));
|
|
107
|
-
/**
|
|
108
|
-
* Schema for a single dependency table row.
|
|
109
|
-
*
|
|
110
|
-
* @remarks
|
|
111
|
-
* Represents one row of a dependency update table in a CHANGELOG.
|
|
112
|
-
* Each row captures the dependency name, its type, the change action,
|
|
113
|
-
* and the "from" and "to" version strings. For added dependencies the
|
|
114
|
-
* `from` field is an em dash; for removed dependencies the `to` field
|
|
115
|
-
* is an em dash.
|
|
116
|
-
*
|
|
117
|
-
* @example
|
|
118
|
-
* ```typescript
|
|
119
|
-
* import { Schema } from "effect";
|
|
120
|
-
* import { DependencyTableRowSchema } from "@savvy-web/changesets";
|
|
121
|
-
* import type { DependencyTableRow } from "@savvy-web/changesets";
|
|
122
|
-
*
|
|
123
|
-
* const row: DependencyTableRow = Schema.decodeUnknownSync(DependencyTableRowSchema)({
|
|
124
|
-
* dependency: "effect",
|
|
125
|
-
* type: "dependency",
|
|
126
|
-
* action: "updated",
|
|
127
|
-
* from: "3.18.0",
|
|
128
|
-
* to: "3.19.1",
|
|
129
|
-
* });
|
|
130
|
-
*
|
|
131
|
-
* // Newly added dependency — "from" is em dash
|
|
132
|
-
* const addedRow: DependencyTableRow = Schema.decodeUnknownSync(DependencyTableRowSchema)({
|
|
133
|
-
* dependency: "@effect/cli",
|
|
134
|
-
* type: "dependency",
|
|
135
|
-
* action: "added",
|
|
136
|
-
* from: "\u2014",
|
|
137
|
-
* to: "0.50.0",
|
|
138
|
-
* });
|
|
139
|
-
* ```
|
|
140
|
-
*
|
|
141
|
-
* @see {@link DependencyTableRow} for the inferred TypeScript type
|
|
142
|
-
* @see {@link DependencyTableSchema} for a non-empty array of rows
|
|
143
|
-
*
|
|
144
|
-
* @public
|
|
145
|
-
*/
|
|
146
|
-
const DependencyTableRowSchema = effect.Schema.Struct({
|
|
147
|
-
/** Package or toolchain name. */
|
|
148
|
-
dependency: require_primitives.NonEmptyString,
|
|
149
|
-
/** Dependency type. */
|
|
150
|
-
type: DependencyTableTypeSchema,
|
|
151
|
-
/** Change action. */
|
|
152
|
-
action: DependencyActionSchema,
|
|
153
|
-
/** Previous version (em dash for added). */
|
|
154
|
-
from: VersionOrEmptySchema,
|
|
155
|
-
/** New version (em dash for removed). */
|
|
156
|
-
to: VersionOrEmptySchema
|
|
157
|
-
});
|
|
158
|
-
/**
|
|
159
|
-
* Schema for a dependency table (non-empty array of rows).
|
|
160
|
-
*
|
|
161
|
-
* @remarks
|
|
162
|
-
* Validates that the table contains at least one row. Used to represent
|
|
163
|
-
* the full dependency update table in a changeset or CHANGELOG entry.
|
|
164
|
-
*
|
|
165
|
-
* @example
|
|
166
|
-
* ```typescript
|
|
167
|
-
* import { Schema } from "effect";
|
|
168
|
-
* import { DependencyTableSchema } from "@savvy-web/changesets";
|
|
169
|
-
*
|
|
170
|
-
* const table = Schema.decodeUnknownSync(DependencyTableSchema)([
|
|
171
|
-
* {
|
|
172
|
-
* dependency: "effect",
|
|
173
|
-
* type: "dependency",
|
|
174
|
-
* action: "updated",
|
|
175
|
-
* from: "3.18.0",
|
|
176
|
-
* to: "3.19.1",
|
|
177
|
-
* },
|
|
178
|
-
* {
|
|
179
|
-
* dependency: "typescript",
|
|
180
|
-
* type: "config",
|
|
181
|
-
* action: "updated",
|
|
182
|
-
* from: "5.6.0",
|
|
183
|
-
* to: "5.7.2",
|
|
184
|
-
* },
|
|
185
|
-
* ]);
|
|
186
|
-
*
|
|
187
|
-
* // Throws ParseError — empty array
|
|
188
|
-
* Schema.decodeUnknownSync(DependencyTableSchema)([]);
|
|
189
|
-
* ```
|
|
190
|
-
*
|
|
191
|
-
* @see {@link DependencyTableRowSchema} for the individual row schema
|
|
192
|
-
*
|
|
193
|
-
* @public
|
|
194
|
-
*/
|
|
195
|
-
const DependencyTableSchema = effect.Schema.Array(DependencyTableRowSchema).pipe(effect.Schema.minItems(1));
|
|
196
|
-
|
|
197
|
-
//#endregion
|
|
198
|
-
exports.DependencyActionSchema = DependencyActionSchema;
|
|
199
|
-
exports.DependencyTableRowSchema = DependencyTableRowSchema;
|
|
200
|
-
exports.DependencyTableSchema = DependencyTableSchema;
|
|
201
|
-
exports.DependencyTableTypeSchema = DependencyTableTypeSchema;
|
|
202
|
-
exports.VERSION_RE = VERSION_RE;
|
|
203
|
-
exports.VersionOrEmptySchema = VersionOrEmptySchema;
|