@savvy-web/silk 1.0.0 → 1.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/changesets-changelog.cjs +24 -17
- package/changesets-markdownlint.cjs +24 -17
- package/lint.d.ts +7 -3
- package/package.json +6 -4
- package/packages/silk-effects/dist/dev/pkg/changesets/services/config-inspector.cjs +24 -17
- package/packages/silk-effects/dist/dev/pkg/changesets/services/config-inspector.js +24 -17
- package/public/biome/silk.jsonc +3 -2
- package/public/tsconfig/node/root.json +35 -0
- package/public/tsconfig/rspress/website.json +28 -0
package/changesets-changelog.cjs
CHANGED
|
@@ -77211,10 +77211,12 @@ function readRawPackageJson(fs, pkgDir) {
|
|
|
77211
77211
|
/**
|
|
77212
77212
|
* Build resolved scopes from the discovered workspace packages, keeping only
|
|
77213
77213
|
* those that are a release surface (declare publishConfig that yields at least
|
|
77214
|
-
* one publish target). Used when `.changeset/config.json` declares no
|
|
77215
|
-
* `packages` record
|
|
77216
|
-
*
|
|
77217
|
-
*
|
|
77214
|
+
* one publish target). Used both when `.changeset/config.json` declares no
|
|
77215
|
+
* explicit `packages` record AND to augment an explicit record with the
|
|
77216
|
+
* remaining workspace packages it does not list (so the record annotates the
|
|
77217
|
+
* listed packages without shrinking the release surface). The changeset
|
|
77218
|
+
* `ignore` list is intentionally NOT consulted here — an ignored package still
|
|
77219
|
+
* declares publishConfig and remains a valid changeset target.
|
|
77218
77220
|
*/
|
|
77219
77221
|
function buildFallbackScopes(fs, workspaces) {
|
|
77220
77222
|
return effect.Effect.forEach(workspaces, (ws) => effect.Effect.gen(function* () {
|
|
@@ -77328,19 +77330,24 @@ function makeShape$2(reader, discovery, fs) {
|
|
|
77328
77330
|
}));
|
|
77329
77331
|
const hasExplicitPackages = Object.keys(decodedOptions.packages ?? {}).length > 0;
|
|
77330
77332
|
let scopes;
|
|
77331
|
-
if (hasExplicitPackages)
|
|
77332
|
-
|
|
77333
|
-
|
|
77334
|
-
|
|
77335
|
-
|
|
77336
|
-
|
|
77337
|
-
|
|
77338
|
-
|
|
77339
|
-
|
|
77340
|
-
|
|
77341
|
-
|
|
77342
|
-
|
|
77343
|
-
|
|
77333
|
+
if (hasExplicitPackages) {
|
|
77334
|
+
let explicitScopes;
|
|
77335
|
+
try {
|
|
77336
|
+
explicitScopes = buildResolvedScopes({
|
|
77337
|
+
options: decodedOptions,
|
|
77338
|
+
workspaces,
|
|
77339
|
+
projectDir,
|
|
77340
|
+
configPath
|
|
77341
|
+
});
|
|
77342
|
+
checkConflicts(explicitScopes, workspaces, projectDir, configPath);
|
|
77343
|
+
} catch (e) {
|
|
77344
|
+
if (e instanceof ConfigurationError) return yield* effect.Effect.fail(e);
|
|
77345
|
+
throw e;
|
|
77346
|
+
}
|
|
77347
|
+
const explicitNames = new Set(explicitScopes.map((s) => s.name));
|
|
77348
|
+
const discoveredScopes = yield* buildFallbackScopes(fs, workspaces.filter((w) => !explicitNames.has(w.name)));
|
|
77349
|
+
scopes = [...explicitScopes, ...discoveredScopes];
|
|
77350
|
+
} else scopes = yield* buildFallbackScopes(fs, workspaces);
|
|
77344
77351
|
const inspected = {
|
|
77345
77352
|
configPath,
|
|
77346
77353
|
projectDir,
|
|
@@ -77215,10 +77215,12 @@ function readRawPackageJson(fs, pkgDir) {
|
|
|
77215
77215
|
/**
|
|
77216
77216
|
* Build resolved scopes from the discovered workspace packages, keeping only
|
|
77217
77217
|
* those that are a release surface (declare publishConfig that yields at least
|
|
77218
|
-
* one publish target). Used when `.changeset/config.json` declares no
|
|
77219
|
-
* `packages` record
|
|
77220
|
-
*
|
|
77221
|
-
*
|
|
77218
|
+
* one publish target). Used both when `.changeset/config.json` declares no
|
|
77219
|
+
* explicit `packages` record AND to augment an explicit record with the
|
|
77220
|
+
* remaining workspace packages it does not list (so the record annotates the
|
|
77221
|
+
* listed packages without shrinking the release surface). The changeset
|
|
77222
|
+
* `ignore` list is intentionally NOT consulted here — an ignored package still
|
|
77223
|
+
* declares publishConfig and remains a valid changeset target.
|
|
77222
77224
|
*/
|
|
77223
77225
|
function buildFallbackScopes(fs, workspaces) {
|
|
77224
77226
|
return effect.Effect.forEach(workspaces, (ws) => effect.Effect.gen(function* () {
|
|
@@ -77332,19 +77334,24 @@ function makeShape$2(reader, discovery, fs) {
|
|
|
77332
77334
|
}));
|
|
77333
77335
|
const hasExplicitPackages = Object.keys(decodedOptions.packages ?? {}).length > 0;
|
|
77334
77336
|
let scopes;
|
|
77335
|
-
if (hasExplicitPackages)
|
|
77336
|
-
|
|
77337
|
-
|
|
77338
|
-
|
|
77339
|
-
|
|
77340
|
-
|
|
77341
|
-
|
|
77342
|
-
|
|
77343
|
-
|
|
77344
|
-
|
|
77345
|
-
|
|
77346
|
-
|
|
77347
|
-
|
|
77337
|
+
if (hasExplicitPackages) {
|
|
77338
|
+
let explicitScopes;
|
|
77339
|
+
try {
|
|
77340
|
+
explicitScopes = buildResolvedScopes({
|
|
77341
|
+
options: decodedOptions,
|
|
77342
|
+
workspaces,
|
|
77343
|
+
projectDir,
|
|
77344
|
+
configPath
|
|
77345
|
+
});
|
|
77346
|
+
checkConflicts(explicitScopes, workspaces, projectDir, configPath);
|
|
77347
|
+
} catch (e) {
|
|
77348
|
+
if (e instanceof ConfigurationError) return yield* effect.Effect.fail(e);
|
|
77349
|
+
throw e;
|
|
77350
|
+
}
|
|
77351
|
+
const explicitNames = new Set(explicitScopes.map((s) => s.name));
|
|
77352
|
+
const discoveredScopes = yield* buildFallbackScopes(fs, workspaces.filter((w) => !explicitNames.has(w.name)));
|
|
77353
|
+
scopes = [...explicitScopes, ...discoveredScopes];
|
|
77354
|
+
} else scopes = yield* buildFallbackScopes(fs, workspaces);
|
|
77348
77355
|
const inspected = {
|
|
77349
77356
|
configPath,
|
|
77350
77357
|
projectDir,
|
package/lint.d.ts
CHANGED
|
@@ -88,7 +88,9 @@ declare const MARKDOWNLINT_CONFIG: {
|
|
|
88
88
|
readonly MD024: {
|
|
89
89
|
readonly siblings_only: true;
|
|
90
90
|
};
|
|
91
|
-
readonly MD025:
|
|
91
|
+
readonly MD025: {
|
|
92
|
+
readonly front_matter_title: "";
|
|
93
|
+
};
|
|
92
94
|
readonly MD026: true;
|
|
93
95
|
readonly MD027: true;
|
|
94
96
|
readonly MD028: true;
|
|
@@ -141,7 +143,7 @@ declare const MARKDOWNLINT_TEMPLATE: {
|
|
|
141
143
|
readonly fix: true;
|
|
142
144
|
readonly gitignore: true;
|
|
143
145
|
readonly noBanner: true;
|
|
144
|
-
readonly ignores: readonly ["**/node_modules", "**/.cache", "**/coverage", "**/.coverage", "**/dist", "**/CHANGELOG.md", "**/.claude/plans", "**/docs/superpowers"];
|
|
146
|
+
readonly ignores: readonly ["**/node_modules", "**/.cache", "**/coverage", "**/.coverage", "**/dist", "**/CHANGELOG.md", "**/.claude/plans", "**/docs/superpowers", "**/__test__/**/fixtures/**", "**/__fixtures__/**"];
|
|
145
147
|
readonly customRules: readonly ["@savvy-web/silk/changesets/markdownlint"];
|
|
146
148
|
readonly config: {
|
|
147
149
|
readonly default: true;
|
|
@@ -171,7 +173,9 @@ declare const MARKDOWNLINT_TEMPLATE: {
|
|
|
171
173
|
readonly MD024: {
|
|
172
174
|
readonly siblings_only: true;
|
|
173
175
|
};
|
|
174
|
-
readonly MD025:
|
|
176
|
+
readonly MD025: {
|
|
177
|
+
readonly front_matter_title: "";
|
|
178
|
+
};
|
|
175
179
|
readonly MD026: true;
|
|
176
180
|
readonly MD027: true;
|
|
177
181
|
readonly MD028: true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@savvy-web/silk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The single Silk Suite dev-tooling package — changeset, commitlint, lint, and biome conventions",
|
|
6
6
|
"homepage": "https://github.com/savvy-web/systems/tree/main/packages/silk",
|
|
@@ -60,11 +60,13 @@
|
|
|
60
60
|
"import": "./lint.js"
|
|
61
61
|
},
|
|
62
62
|
"./biome": "./public/biome/silk.jsonc",
|
|
63
|
+
"./tsconfig/node/root.json": "./public/tsconfig/node/root.json",
|
|
64
|
+
"./tsconfig/rspress/website.json": "./public/tsconfig/rspress/website.json",
|
|
63
65
|
"./package.json": "./package.json"
|
|
64
66
|
},
|
|
65
67
|
"dependencies": {
|
|
66
68
|
"@effect/platform": "^0.96.1",
|
|
67
|
-
"@savvy-web/silk-effects": "1.
|
|
69
|
+
"@savvy-web/silk-effects": "1.2.0",
|
|
68
70
|
"effect": "^3.21.3",
|
|
69
71
|
"semver": "^7.8.4"
|
|
70
72
|
},
|
|
@@ -73,8 +75,8 @@
|
|
|
73
75
|
"@changesets/cli": "^2.31.0",
|
|
74
76
|
"@commitlint/cli": "^21.0.1",
|
|
75
77
|
"@commitlint/config-conventional": "^21.0.2",
|
|
76
|
-
"@savvy-web/cli": "1.
|
|
77
|
-
"@savvy-web/mcp": "1.
|
|
78
|
+
"@savvy-web/cli": "1.1.0",
|
|
79
|
+
"@savvy-web/mcp": "1.1.0",
|
|
78
80
|
"@types/node": "^25.9.0",
|
|
79
81
|
"@typescript/native-preview": "^7.0.0-dev.20260513.1",
|
|
80
82
|
"commitizen": "^4.3.0",
|
|
@@ -248,10 +248,12 @@ function readRawPackageJson(fs, pkgDir) {
|
|
|
248
248
|
/**
|
|
249
249
|
* Build resolved scopes from the discovered workspace packages, keeping only
|
|
250
250
|
* those that are a release surface (declare publishConfig that yields at least
|
|
251
|
-
* one publish target). Used when `.changeset/config.json` declares no
|
|
252
|
-
* `packages` record
|
|
253
|
-
*
|
|
254
|
-
*
|
|
251
|
+
* one publish target). Used both when `.changeset/config.json` declares no
|
|
252
|
+
* explicit `packages` record AND to augment an explicit record with the
|
|
253
|
+
* remaining workspace packages it does not list (so the record annotates the
|
|
254
|
+
* listed packages without shrinking the release surface). The changeset
|
|
255
|
+
* `ignore` list is intentionally NOT consulted here — an ignored package still
|
|
256
|
+
* declares publishConfig and remains a valid changeset target.
|
|
255
257
|
*/
|
|
256
258
|
function buildFallbackScopes(fs, workspaces) {
|
|
257
259
|
return effect.Effect.forEach(workspaces, (ws) => effect.Effect.gen(function* () {
|
|
@@ -365,19 +367,24 @@ function makeShape(reader, discovery, fs) {
|
|
|
365
367
|
}));
|
|
366
368
|
const hasExplicitPackages = Object.keys(decodedOptions.packages ?? {}).length > 0;
|
|
367
369
|
let scopes;
|
|
368
|
-
if (hasExplicitPackages)
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
370
|
+
if (hasExplicitPackages) {
|
|
371
|
+
let explicitScopes;
|
|
372
|
+
try {
|
|
373
|
+
explicitScopes = buildResolvedScopes({
|
|
374
|
+
options: decodedOptions,
|
|
375
|
+
workspaces,
|
|
376
|
+
projectDir,
|
|
377
|
+
configPath
|
|
378
|
+
});
|
|
379
|
+
checkConflicts(explicitScopes, workspaces, projectDir, configPath);
|
|
380
|
+
} catch (e) {
|
|
381
|
+
if (e instanceof require_errors.ConfigurationError) return yield* effect.Effect.fail(e);
|
|
382
|
+
throw e;
|
|
383
|
+
}
|
|
384
|
+
const explicitNames = new Set(explicitScopes.map((s) => s.name));
|
|
385
|
+
const discoveredScopes = yield* buildFallbackScopes(fs, workspaces.filter((w) => !explicitNames.has(w.name)));
|
|
386
|
+
scopes = [...explicitScopes, ...discoveredScopes];
|
|
387
|
+
} else scopes = yield* buildFallbackScopes(fs, workspaces);
|
|
381
388
|
const inspected = {
|
|
382
389
|
configPath,
|
|
383
390
|
projectDir,
|
|
@@ -248,10 +248,12 @@ function readRawPackageJson(fs, pkgDir) {
|
|
|
248
248
|
/**
|
|
249
249
|
* Build resolved scopes from the discovered workspace packages, keeping only
|
|
250
250
|
* those that are a release surface (declare publishConfig that yields at least
|
|
251
|
-
* one publish target). Used when `.changeset/config.json` declares no
|
|
252
|
-
* `packages` record
|
|
253
|
-
*
|
|
254
|
-
*
|
|
251
|
+
* one publish target). Used both when `.changeset/config.json` declares no
|
|
252
|
+
* explicit `packages` record AND to augment an explicit record with the
|
|
253
|
+
* remaining workspace packages it does not list (so the record annotates the
|
|
254
|
+
* listed packages without shrinking the release surface). The changeset
|
|
255
|
+
* `ignore` list is intentionally NOT consulted here — an ignored package still
|
|
256
|
+
* declares publishConfig and remains a valid changeset target.
|
|
255
257
|
*/
|
|
256
258
|
function buildFallbackScopes(fs, workspaces) {
|
|
257
259
|
return Effect.forEach(workspaces, (ws) => Effect.gen(function* () {
|
|
@@ -365,19 +367,24 @@ function makeShape(reader, discovery, fs) {
|
|
|
365
367
|
}));
|
|
366
368
|
const hasExplicitPackages = Object.keys(decodedOptions.packages ?? {}).length > 0;
|
|
367
369
|
let scopes;
|
|
368
|
-
if (hasExplicitPackages)
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
370
|
+
if (hasExplicitPackages) {
|
|
371
|
+
let explicitScopes;
|
|
372
|
+
try {
|
|
373
|
+
explicitScopes = buildResolvedScopes({
|
|
374
|
+
options: decodedOptions,
|
|
375
|
+
workspaces,
|
|
376
|
+
projectDir,
|
|
377
|
+
configPath
|
|
378
|
+
});
|
|
379
|
+
checkConflicts(explicitScopes, workspaces, projectDir, configPath);
|
|
380
|
+
} catch (e) {
|
|
381
|
+
if (e instanceof ConfigurationError) return yield* Effect.fail(e);
|
|
382
|
+
throw e;
|
|
383
|
+
}
|
|
384
|
+
const explicitNames = new Set(explicitScopes.map((s) => s.name));
|
|
385
|
+
const discoveredScopes = yield* buildFallbackScopes(fs, workspaces.filter((w) => !explicitNames.has(w.name)));
|
|
386
|
+
scopes = [...explicitScopes, ...discoveredScopes];
|
|
387
|
+
} else scopes = yield* buildFallbackScopes(fs, workspaces);
|
|
381
388
|
const inspected = {
|
|
382
389
|
configPath,
|
|
383
390
|
projectDir,
|
package/public/biome/silk.jsonc
CHANGED
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
},
|
|
110
|
-
"includes": ["**/turbo.json", "**/tsconfig.json", "**/tsconfig.*.json"]
|
|
110
|
+
"includes": ["**/turbo.json", "**/tsconfig.json", "**/tsconfig.*.json", "**/public/tsconfig/**/*.json"]
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"includes": ["**/*.test.ts"],
|
|
@@ -138,7 +138,8 @@
|
|
|
138
138
|
"!**/.vitest",
|
|
139
139
|
"!**/.coverage",
|
|
140
140
|
"!coverage",
|
|
141
|
-
"
|
|
141
|
+
"!.claude/worktrees",
|
|
142
|
+
"!**/__test__/**/fixtures",
|
|
142
143
|
"!**/__test__/snapshots",
|
|
143
144
|
"!**/__test__/**/fixtures",
|
|
144
145
|
"!**/__test__/**/snapshots",
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"composite": true,
|
|
5
|
+
"declaration": true,
|
|
6
|
+
"module": "nodenext",
|
|
7
|
+
"outDir": "dist",
|
|
8
|
+
"resolveJsonModule": true,
|
|
9
|
+
"strict": true,
|
|
10
|
+
"strictNullChecks": true,
|
|
11
|
+
"target": "es2025",
|
|
12
|
+
"types": ["node"]
|
|
13
|
+
},
|
|
14
|
+
"exclude": ["${configDir}/node_modules", "${configDir}/dist/**/*"],
|
|
15
|
+
"include": [
|
|
16
|
+
"${configDir}/types/*.ts",
|
|
17
|
+
"${configDir}/package.json",
|
|
18
|
+
"${configDir}/*.ts",
|
|
19
|
+
"${configDir}/*.cts",
|
|
20
|
+
"${configDir}/*.mts",
|
|
21
|
+
"${configDir}/src/**/*.ts",
|
|
22
|
+
"${configDir}/src/**/*.tsx",
|
|
23
|
+
"${configDir}/src/**/*.cts",
|
|
24
|
+
"${configDir}/src/**/*.mts",
|
|
25
|
+
"${configDir}/lib/**/*.ts",
|
|
26
|
+
"${configDir}/lib/**/*.tsx",
|
|
27
|
+
"${configDir}/lib/**/*.cts",
|
|
28
|
+
"${configDir}/lib/**/*.mts",
|
|
29
|
+
"${configDir}/__test__/**/*.ts",
|
|
30
|
+
"${configDir}/__test__/**/*.tsx",
|
|
31
|
+
"${configDir}/__test__/**/*.cts",
|
|
32
|
+
"${configDir}/__test__/**/*.mts",
|
|
33
|
+
"${configDir}/public/**/*.json"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"allowImportingTsExtensions": true,
|
|
5
|
+
"isolatedModules": true,
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"lib": ["dom", "es2023"],
|
|
8
|
+
"module": "esnext",
|
|
9
|
+
"moduleDetection": "force",
|
|
10
|
+
"moduleResolution": "bundler",
|
|
11
|
+
"noEmit": true,
|
|
12
|
+
"noUncheckedSideEffectImports": true,
|
|
13
|
+
"noUnusedLocals": true,
|
|
14
|
+
"noUnusedParameters": true,
|
|
15
|
+
"resolveJsonModule": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"strict": true,
|
|
18
|
+
"target": "es2023",
|
|
19
|
+
"types": ["node", "react", "react-dom"],
|
|
20
|
+
"useDefineForClassFields": true,
|
|
21
|
+
"verbatimModuleSyntax": true
|
|
22
|
+
},
|
|
23
|
+
"exclude": ["${configDir}/node_modules", "${configDir}/dist", "${configDir}/.rspress"],
|
|
24
|
+
"include": ["${configDir}/docs", "${configDir}/theme", "${configDir}/rspress.config.ts", "${configDir}/types/*.d.ts"],
|
|
25
|
+
"mdx": {
|
|
26
|
+
"checkMdx": true
|
|
27
|
+
}
|
|
28
|
+
}
|