@savvy-web/silk 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +7 -5
  2. package/changesets-changelog.cjs +109 -61
  3. package/changesets-changelog.d.cts +1 -1
  4. package/changesets-changelog.d.ts +1 -1
  5. package/changesets-changelog.js +54099 -1
  6. package/changesets-markdownlint.cjs +109 -61
  7. package/changesets-markdownlint.d.cts +1 -1
  8. package/changesets-markdownlint.d.ts +1 -1
  9. package/changesets-markdownlint.js +54099 -1
  10. package/package.json +5 -4
  11. package/tsconfig/node/dist/tsconfig.tsbuildinfo +1 -1
  12. package/_virtual/_rolldown/runtime.cjs +0 -45
  13. package/_virtual/_rolldown/runtime.js +0 -45
  14. package/packages/silk-effects/dist/dev/pkg/_virtual/_rolldown/runtime.cjs +0 -15
  15. package/packages/silk-effects/dist/dev/pkg/_virtual/_rolldown/runtime.js +0 -14
  16. package/packages/silk-effects/dist/dev/pkg/changesets/api/categories.cjs +0 -247
  17. package/packages/silk-effects/dist/dev/pkg/changesets/api/categories.js +0 -247
  18. package/packages/silk-effects/dist/dev/pkg/changesets/api/changelog.cjs +0 -134
  19. package/packages/silk-effects/dist/dev/pkg/changesets/api/changelog.js +0 -134
  20. package/packages/silk-effects/dist/dev/pkg/changesets/api/dependency-table.cjs +0 -163
  21. package/packages/silk-effects/dist/dev/pkg/changesets/api/dependency-table.js +0 -163
  22. package/packages/silk-effects/dist/dev/pkg/changesets/api/linter.cjs +0 -170
  23. package/packages/silk-effects/dist/dev/pkg/changesets/api/linter.js +0 -170
  24. package/packages/silk-effects/dist/dev/pkg/changesets/api/transformer.cjs +0 -134
  25. package/packages/silk-effects/dist/dev/pkg/changesets/api/transformer.js +0 -134
  26. package/packages/silk-effects/dist/dev/pkg/changesets/categories/index.cjs +0 -317
  27. package/packages/silk-effects/dist/dev/pkg/changesets/categories/index.js +0 -299
  28. package/packages/silk-effects/dist/dev/pkg/changesets/categories/types.cjs +0 -65
  29. package/packages/silk-effects/dist/dev/pkg/changesets/categories/types.js +0 -65
  30. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/formatting.cjs +0 -114
  31. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/formatting.js +0 -113
  32. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getDependencyReleaseLine.cjs +0 -118
  33. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getDependencyReleaseLine.js +0 -118
  34. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getReleaseLine.cjs +0 -122
  35. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/getReleaseLine.js +0 -122
  36. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/index.cjs +0 -97
  37. package/packages/silk-effects/dist/dev/pkg/changesets/changelog/index.js +0 -97
  38. package/packages/silk-effects/dist/dev/pkg/changesets/constants.cjs +0 -43
  39. package/packages/silk-effects/dist/dev/pkg/changesets/constants.js +0 -42
  40. package/packages/silk-effects/dist/dev/pkg/changesets/errors.cjs +0 -386
  41. package/packages/silk-effects/dist/dev/pkg/changesets/errors.js +0 -371
  42. package/packages/silk-effects/dist/dev/pkg/changesets/index.cjs +0 -300
  43. package/packages/silk-effects/dist/dev/pkg/changesets/index.js +0 -179
  44. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/index.cjs +0 -34
  45. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/index.js +0 -29
  46. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/content-structure.cjs +0 -98
  47. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/content-structure.js +0 -98
  48. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/dependency-table-format.cjs +0 -170
  49. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/dependency-table-format.js +0 -170
  50. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/heading-hierarchy.cjs +0 -61
  51. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/heading-hierarchy.js +0 -61
  52. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/required-sections.cjs +0 -54
  53. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/required-sections.js +0 -54
  54. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/uncategorized-content.cjs +0 -54
  55. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/uncategorized-content.js +0 -54
  56. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/utils.cjs +0 -31
  57. package/packages/silk-effects/dist/dev/pkg/changesets/markdownlint/rules/utils.js +0 -30
  58. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/aggregate-dependency-tables.cjs +0 -47
  59. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/aggregate-dependency-tables.js +0 -47
  60. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/contributor-footnotes.cjs +0 -123
  61. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/contributor-footnotes.js +0 -123
  62. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/deduplicate-items.cjs +0 -32
  63. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/deduplicate-items.js +0 -32
  64. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/issue-link-refs.cjs +0 -59
  65. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/issue-link-refs.js +0 -59
  66. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/maintenance-note.cjs +0 -61
  67. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/maintenance-note.js +0 -61
  68. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/merge-sections.cjs +0 -43
  69. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/merge-sections.js +0 -43
  70. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/normalize-format.cjs +0 -47
  71. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/normalize-format.js +0 -47
  72. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/reorder-sections.cjs +0 -34
  73. package/packages/silk-effects/dist/dev/pkg/changesets/remark/plugins/reorder-sections.js +0 -34
  74. package/packages/silk-effects/dist/dev/pkg/changesets/remark/presets.cjs +0 -120
  75. package/packages/silk-effects/dist/dev/pkg/changesets/remark/presets.js +0 -119
  76. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/content-structure.cjs +0 -22
  77. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/content-structure.js +0 -22
  78. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/dependency-table-format.cjs +0 -40
  79. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/dependency-table-format.js +0 -40
  80. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/heading-hierarchy.cjs +0 -19
  81. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/heading-hierarchy.js +0 -19
  82. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/required-sections.cjs +0 -17
  83. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/required-sections.js +0 -17
  84. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/uncategorized-content.cjs +0 -31
  85. package/packages/silk-effects/dist/dev/pkg/changesets/remark/rules/uncategorized-content.js +0 -31
  86. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/changeset.cjs +0 -148
  87. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/changeset.js +0 -145
  88. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/dependency-table.cjs +0 -203
  89. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/dependency-table.js +0 -198
  90. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/git.cjs +0 -69
  91. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/git.js +0 -68
  92. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/github.cjs +0 -177
  93. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/github.js +0 -174
  94. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/options.cjs +0 -183
  95. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/options.js +0 -181
  96. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/package-scope.cjs +0 -129
  97. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/package-scope.js +0 -127
  98. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/primitives.cjs +0 -72
  99. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/primitives.js +0 -71
  100. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/release-plan.cjs +0 -62
  101. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/release-plan.js +0 -56
  102. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/version-files.cjs +0 -154
  103. package/packages/silk-effects/dist/dev/pkg/changesets/schemas/version-files.js +0 -150
  104. package/packages/silk-effects/dist/dev/pkg/changesets/services/branch-analyzer.cjs +0 -300
  105. package/packages/silk-effects/dist/dev/pkg/changesets/services/branch-analyzer.js +0 -294
  106. package/packages/silk-effects/dist/dev/pkg/changesets/services/changelog.cjs +0 -50
  107. package/packages/silk-effects/dist/dev/pkg/changesets/services/changelog.js +0 -49
  108. package/packages/silk-effects/dist/dev/pkg/changesets/services/config-inspector.cjs +0 -489
  109. package/packages/silk-effects/dist/dev/pkg/changesets/services/config-inspector.js +0 -481
  110. package/packages/silk-effects/dist/dev/pkg/changesets/services/deps-regen.cjs +0 -375
  111. package/packages/silk-effects/dist/dev/pkg/changesets/services/deps-regen.js +0 -371
  112. package/packages/silk-effects/dist/dev/pkg/changesets/services/github.cjs +0 -160
  113. package/packages/silk-effects/dist/dev/pkg/changesets/services/github.js +0 -157
  114. package/packages/silk-effects/dist/dev/pkg/changesets/services/maintenance-reason.cjs +0 -68
  115. package/packages/silk-effects/dist/dev/pkg/changesets/services/maintenance-reason.js +0 -66
  116. package/packages/silk-effects/dist/dev/pkg/changesets/services/markdown.cjs +0 -87
  117. package/packages/silk-effects/dist/dev/pkg/changesets/services/markdown.js +0 -85
  118. package/packages/silk-effects/dist/dev/pkg/changesets/services/release-planner.cjs +0 -352
  119. package/packages/silk-effects/dist/dev/pkg/changesets/services/release-planner.js +0 -348
  120. package/packages/silk-effects/dist/dev/pkg/changesets/utils/commit-parser.cjs +0 -81
  121. package/packages/silk-effects/dist/dev/pkg/changesets/utils/commit-parser.js +0 -80
  122. package/packages/silk-effects/dist/dev/pkg/changesets/utils/dep-diff.cjs +0 -111
  123. package/packages/silk-effects/dist/dev/pkg/changesets/utils/dep-diff.js +0 -111
  124. package/packages/silk-effects/dist/dev/pkg/changesets/utils/dependency-table.cjs +0 -351
  125. package/packages/silk-effects/dist/dev/pkg/changesets/utils/dependency-table.js +0 -347
  126. package/packages/silk-effects/dist/dev/pkg/changesets/utils/git.cjs +0 -51
  127. package/packages/silk-effects/dist/dev/pkg/changesets/utils/git.js +0 -51
  128. package/packages/silk-effects/dist/dev/pkg/changesets/utils/issue-refs.cjs +0 -102
  129. package/packages/silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js +0 -101
  130. package/packages/silk-effects/dist/dev/pkg/changesets/utils/jsonpath.cjs +0 -178
  131. package/packages/silk-effects/dist/dev/pkg/changesets/utils/jsonpath.js +0 -175
  132. package/packages/silk-effects/dist/dev/pkg/changesets/utils/logger.cjs +0 -51
  133. package/packages/silk-effects/dist/dev/pkg/changesets/utils/logger.js +0 -50
  134. package/packages/silk-effects/dist/dev/pkg/changesets/utils/markdown-link.cjs +0 -59
  135. package/packages/silk-effects/dist/dev/pkg/changesets/utils/markdown-link.js +0 -57
  136. package/packages/silk-effects/dist/dev/pkg/changesets/utils/publishability.cjs +0 -50
  137. package/packages/silk-effects/dist/dev/pkg/changesets/utils/publishability.js +0 -50
  138. package/packages/silk-effects/dist/dev/pkg/changesets/utils/remark-pipeline.cjs +0 -81
  139. package/packages/silk-effects/dist/dev/pkg/changesets/utils/remark-pipeline.js +0 -79
  140. package/packages/silk-effects/dist/dev/pkg/changesets/utils/section-parser.cjs +0 -94
  141. package/packages/silk-effects/dist/dev/pkg/changesets/utils/section-parser.js +0 -94
  142. package/packages/silk-effects/dist/dev/pkg/changesets/utils/strip-frontmatter.cjs +0 -47
  143. package/packages/silk-effects/dist/dev/pkg/changesets/utils/strip-frontmatter.js +0 -46
  144. package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-blocks.cjs +0 -110
  145. package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-blocks.js +0 -108
  146. package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-files.cjs +0 -336
  147. package/packages/silk-effects/dist/dev/pkg/changesets/utils/version-files.js +0 -336
  148. package/packages/silk-effects/dist/dev/pkg/changesets/vendor/github-info.cjs +0 -77
  149. package/packages/silk-effects/dist/dev/pkg/changesets/vendor/github-info.js +0 -77
  150. package/packages/silk-effects/dist/dev/pkg/errors/ChangesetConfigError.cjs +0 -21
  151. package/packages/silk-effects/dist/dev/pkg/errors/ChangesetConfigError.js +0 -21
  152. package/packages/silk-effects/dist/dev/pkg/schemas/VersioningSchemas.cjs +0 -101
  153. package/packages/silk-effects/dist/dev/pkg/schemas/VersioningSchemas.js +0 -99
  154. package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfig.cjs +0 -81
  155. package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfig.js +0 -80
  156. package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfigReader.cjs +0 -109
  157. package/packages/silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js +0 -108
  158. package/packages/silk-effects/dist/dev/pkg/services/SilkPublishability.cjs +0 -238
  159. 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;