@savvy-web/pnpm-plugin-silk 0.17.0 → 0.18.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 CHANGED
@@ -5,18 +5,18 @@
5
5
  [![TypeScript 6.0](https://img.shields.io/badge/TypeScript-6.0-3178c6.svg)](https://www.typescriptlang.org/)
6
6
  [![pnpm](https://img.shields.io/badge/pnpm-%3E%3D11-orange)](https://pnpm.io/)
7
7
 
8
- Centralized dependency version management for the Silk ecosystem via pnpm config dependencies. Share curated dependency catalogs, security overrides and build configurations across multiple repositories from a single source of truth.
8
+ Centralized dependency-version management for the Silk ecosystem, delivered as a pnpm config dependency. Define dependency catalogs, security overrides and build settings once, then share them across every repository in the ecosystem.
9
9
 
10
10
  ## Features
11
11
 
12
- - **Dual catalog strategy** — Current versions for direct dependencies (`catalog:silk`), permissive ranges for peer dependencies (`catalog:silkPeers`)
13
- - **Security overrides** — Centralized CVE fixes via `overrides` that propagate to all consuming repositories
14
- - **Build allowlist** — `allowBuilds` map (pnpm 11) controls which packages may run install scripts; local repos can extend it per-key
15
- - **Security defaults** — `strictDepBuilds`, `blockExoticSubdeps` and `minimumReleaseAge` are enforced by default; weakening them triggers a prominent warning
16
- - **Workspace settings inheritance** — `publicHoistPattern`, `packageExtensions`, `allowedDeprecatedVersions`, `supportedArchitectures` and `auditConfig` all merge into child workspaces
17
- - **Peer dependency rules** — Syncs `peerDependencyRules` (allowedVersions, ignoreMissing, allowAny) to suppress common peer warnings
18
- - **Effect ecosystem management** — 26 coordinated `@effect/*` packages across eight functional groups with compatible version resolution
19
- - **Non-destructive merging** — Local definitions always take precedence, with clear warnings for divergences
12
+ - **Dual catalog strategy** — current versions for direct dependencies (`catalog:silk`) and permissive ranges for peer dependencies (`catalog:silkPeers`)
13
+ - **Security overrides** — centralized CVE fixes via `overrides` that propagate to every consuming repository
14
+ - **Build allowlist** — an `allowBuilds` map controls which packages may run install scripts; consuming repos extend it per key
15
+ - **Security defaults** — `strictDepBuilds`, `blockExoticSubdeps` and `minimumReleaseAge` are enforced by default; weakening one triggers a warning
16
+ - **Workspace settings inheritance** — `publicHoistPattern` and `allowedDeprecatedVersions` merge into consuming workspaces
17
+ - **Peer dependency rules** — `peerDependencyRules.allowedVersions` suppresses common peer-dependency warnings
18
+ - **Effect ecosystem coordination** — the full `@effect/*` package family and `effect` itself, pinned to mutually compatible versions
19
+ - **Non-destructive merging** — local definitions always win, with warnings when they diverge from the shared defaults
20
20
 
21
21
  ## Install
22
22
 
@@ -49,20 +49,7 @@ Reference Silk catalogs in your `package.json`:
49
49
  }
50
50
  ```
51
51
 
52
- The `silk` catalog provides current/latest versions for direct dependencies, while `silkPeers` provides permissive ranges for peer dependencies. Security overrides, build script allowlists and hoist patterns are automatically merged during `pnpm install`.
53
-
54
- ## Documentation
55
-
56
- - [Configuration](./docs/configuration.md) — Catalogs, overrides, Effect ecosystem packages, `allowBuilds`, security settings and workspace configuration
57
- - [How it works](./docs/how-it-works.md) — Architecture overview, merge strategy and bundle details
58
- - [Troubleshooting](./docs/troubleshooting.md) — Common issues and solutions
59
-
60
- ## More information
61
-
62
- - [Changelog](./CHANGELOG.md) — Release history
63
- - [Contributing](./CONTRIBUTING.md) — Development setup and guidelines
64
- - [Security Policy](./SECURITY.md) — Vulnerability reporting
65
- - [Code of Conduct](./CODE_OF_CONDUCT.md) — Community guidelines
52
+ The `silk` catalog supplies current versions for direct dependencies and `silkPeers` supplies permissive ranges for peers. Security overrides, build allowlists and hoist patterns merge automatically during `pnpm install`.
66
53
 
67
54
  ## License
68
55
 
@@ -0,0 +1,103 @@
1
+ //#region \0rolldown-pnpm-config/virtual/catalogs
2
+ const catalogs = /* @__PURE__ */ new Map([["silk", /* @__PURE__ */ new Map([
3
+ ["@effect/ai", "^0.36.0"],
4
+ ["@effect/ai-amazon-bedrock", "^0.16.1"],
5
+ ["@effect/ai-anthropic", "^0.26.0"],
6
+ ["@effect/ai-google", "^0.15.0"],
7
+ ["@effect/ai-openai", "^0.40.1"],
8
+ ["@effect/cli", "^0.75.2"],
9
+ ["@effect/cluster", "^0.59.0"],
10
+ ["@effect/experimental", "^0.60.0"],
11
+ ["@effect/language-service", "^0.86.2"],
12
+ ["@effect/opentelemetry", "^0.63.0"],
13
+ ["@effect/platform", "^0.96.2"],
14
+ ["@effect/platform-browser", "^0.76.0"],
15
+ ["@effect/platform-bun", "^0.90.0"],
16
+ ["@effect/platform-node", "^0.107.0"],
17
+ ["@effect/platform-node-shared", "^0.60.0"],
18
+ ["@effect/printer", "^0.49.0"],
19
+ ["@effect/printer-ansi", "^0.49.0"],
20
+ ["@effect/rpc", "^0.75.1"],
21
+ ["@effect/sql", "^0.51.1"],
22
+ ["@effect/sql-clickhouse", "^0.49.0"],
23
+ ["@effect/sql-d1", "^0.49.0"],
24
+ ["@effect/sql-drizzle", "^0.50.0"],
25
+ ["@effect/sql-kysely", "^0.47.0"],
26
+ ["@effect/sql-libsql", "^0.41.0"],
27
+ ["@effect/sql-mssql", "^0.52.0"],
28
+ ["@effect/sql-mysql2", "^0.52.0"],
29
+ ["@effect/sql-pg", "^0.52.1"],
30
+ ["@effect/sql-sqlite-bun", "^0.52.0"],
31
+ ["@effect/sql-sqlite-do", "^0.29.0"],
32
+ ["@effect/sql-sqlite-node", "^0.52.0"],
33
+ ["@effect/sql-sqlite-react-native", "^0.54.0"],
34
+ ["@effect/sql-sqlite-wasm", "^0.52.0"],
35
+ ["@effect/tsgo", "^0.15.0"],
36
+ ["@effect/typeclass", "^0.40.0"],
37
+ ["@effect/vitest", "^0.29.0"],
38
+ ["@effect/workflow", "^0.18.2"],
39
+ ["@types/node", "^26.0.1"],
40
+ ["@types/react", "^19.2.17"],
41
+ ["@types/react-dom", "^19.2.3"],
42
+ ["@typescript/native-preview", "^7.0.0-dev.20260630.1"],
43
+ ["@vitest/coverage-istanbul", "^4.1.9"],
44
+ ["@vitest/coverage-v8", "^4.1.9"],
45
+ ["effect", "^3.21.4"],
46
+ ["react", "^19.2.7"],
47
+ ["react-dom", "^19.2.7"],
48
+ ["tsx", "^4.22.4"],
49
+ ["typescript", "^6.0.3"],
50
+ ["vitest", "^4.1.9"]
51
+ ])], ["silkPeers", /* @__PURE__ */ new Map([
52
+ ["@effect/ai", "^0.36.0"],
53
+ ["@effect/ai-amazon-bedrock", "^0.16.1"],
54
+ ["@effect/ai-anthropic", "^0.26.0"],
55
+ ["@effect/ai-google", "^0.15.0"],
56
+ ["@effect/ai-openai", "^0.40.1"],
57
+ ["@effect/cli", "^0.75.2"],
58
+ ["@effect/cluster", "^0.59.0"],
59
+ ["@effect/experimental", "^0.60.0"],
60
+ ["@effect/language-service", "^0.86.2"],
61
+ ["@effect/opentelemetry", "^0.63.0"],
62
+ ["@effect/platform", "^0.96.0"],
63
+ ["@effect/platform-browser", "^0.76.0"],
64
+ ["@effect/platform-bun", "^0.90.0"],
65
+ ["@effect/platform-node", "^0.107.0"],
66
+ ["@effect/platform-node-shared", "^0.60.0"],
67
+ ["@effect/printer", "^0.49.0"],
68
+ ["@effect/printer-ansi", "^0.49.0"],
69
+ ["@effect/rpc", "^0.75.1"],
70
+ ["@effect/sql", "^0.51.0"],
71
+ ["@effect/sql-clickhouse", "^0.49.0"],
72
+ ["@effect/sql-d1", "^0.49.0"],
73
+ ["@effect/sql-drizzle", "^0.50.0"],
74
+ ["@effect/sql-kysely", "^0.47.0"],
75
+ ["@effect/sql-libsql", "^0.41.0"],
76
+ ["@effect/sql-mssql", "^0.52.0"],
77
+ ["@effect/sql-mysql2", "^0.52.0"],
78
+ ["@effect/sql-pg", "^0.52.1"],
79
+ ["@effect/sql-sqlite-bun", "^0.52.0"],
80
+ ["@effect/sql-sqlite-do", "^0.29.0"],
81
+ ["@effect/sql-sqlite-node", "^0.52.0"],
82
+ ["@effect/sql-sqlite-react-native", "^0.54.0"],
83
+ ["@effect/sql-sqlite-wasm", "^0.52.0"],
84
+ ["@effect/tsgo", "^0.15.0"],
85
+ ["@effect/typeclass", "^0.40.0"],
86
+ ["@effect/vitest", "^0.29.0"],
87
+ ["@effect/workflow", "^0.18.2"],
88
+ ["@types/node", "^26.0.0"],
89
+ ["@types/react", "^19.2.0"],
90
+ ["@types/react-dom", "^19.2.0"],
91
+ ["@typescript/native-preview", "^7.0.0-dev.20260612.1"],
92
+ ["@vitest/coverage-istanbul", "^4.1.0"],
93
+ ["@vitest/coverage-v8", "^4.1.0"],
94
+ ["effect", "^3.21.0"],
95
+ ["react", "^19.2.0"],
96
+ ["react-dom", "^19.2.0"],
97
+ ["tsx", "^4.22.4"],
98
+ ["typescript", "^6.0.0"],
99
+ ["vitest", "^4.1.0"]
100
+ ])]]);
101
+
102
+ //#endregion
103
+ export { catalogs };
package/index.d.ts CHANGED
@@ -1,163 +1,2 @@
1
- //#region src/catalogs/types.d.ts
2
- /**
3
- * Type definitions for Silk catalog management.
4
- *
5
- * @packageDocumentation
6
- */
7
- /**
8
- * A catalog is a record mapping package names to semver version ranges.
9
- *
10
- * @example
11
- * ```typescript
12
- * import type { Catalog } from "@savvy-web/pnpm-plugin-silk";
13
- *
14
- * const myCatalog: Catalog = {
15
- * typescript: "^5.9.0",
16
- * vitest: "^4.0.0",
17
- * };
18
- * ```
19
- *
20
- * @public
21
- */
22
- type Catalog = Record<string, string>;
23
- /**
24
- * A pnpm package extension entry, adding missing metadata to a package.
25
- *
26
- * @public
27
- */
28
- interface PackageExtension {
29
- readonly dependencies?: Record<string, string>;
30
- readonly optionalDependencies?: Record<string, string>;
31
- readonly peerDependencies?: Record<string, string>;
32
- readonly peerDependenciesMeta?: Record<string, {
33
- readonly optional?: boolean;
34
- }>;
35
- }
36
- /**
37
- * Supported architectures for optional-dependency installation.
38
- *
39
- * @remarks
40
- * A type alias (not an interface) so it carries an implicit index signature and
41
- * can be passed to {@link mergeArrayRecord} without a cast.
42
- *
43
- * @public
44
- */
45
- type SupportedArchitectures = {
46
- readonly os?: readonly string[];
47
- readonly cpu?: readonly string[];
48
- readonly libc?: readonly string[];
49
- };
50
- /**
51
- * Audit advisory allowlist (pnpm 11 prefers GHSA identifiers).
52
- *
53
- * @remarks
54
- * A type alias (not an interface) so it carries an implicit index signature and
55
- * can be passed to {@link mergeArrayRecord} without a cast.
56
- *
57
- * @public
58
- */
59
- type AuditConfig = {
60
- readonly ignoreGhsas?: readonly string[];
61
- readonly ignoreCves?: readonly string[];
62
- };
63
- /**
64
- * The Silk catalogs structure containing two named catalogs for version management.
65
- *
66
- * @remarks
67
- * Use {@link silkCatalogs} to access the pre-configured catalog instance.
68
- * The `silk` catalog contains pinned current versions for direct dependencies,
69
- * while `silkPeers` contains permissive ranges suitable for peerDependencies.
70
- *
71
- * @example
72
- * ```typescript
73
- * import { silkCatalogs } from "@savvy-web/pnpm-plugin-silk";
74
- * import type { SilkCatalogs } from "@savvy-web/pnpm-plugin-silk";
75
- *
76
- * // Access the pre-configured catalogs
77
- * const typescriptVersion = silkCatalogs.silk.typescript;
78
- * const peerRange = silkCatalogs.silkPeers.typescript;
79
- * ```
80
- *
81
- * @public
82
- */
83
- interface SilkCatalogs {
84
- /**
85
- * Current/latest versions for direct dependencies.
86
- * Use with `catalog:silk` in package.json.
87
- */
88
- readonly silk: Catalog;
89
- /**
90
- * Permissive ranges for peerDependencies.
91
- * Use with `catalog:silkPeers` in package.json.
92
- */
93
- readonly silkPeers: Catalog;
94
- /**
95
- * Security overrides for known CVEs.
96
- * Synced to pnpm `overrides` configuration.
97
- */
98
- readonly silkOverrides: Catalog;
99
- /**
100
- * Packages to hoist to the virtual store root.
101
- * Synced to pnpm `publicHoistPattern` configuration.
102
- */
103
- readonly silkPublicHoistPattern: readonly string[];
104
- /**
105
- * Map of package matchers to whether their build scripts may run.
106
- * Synced to pnpm `allowBuilds`.
107
- */
108
- readonly silkAllowBuilds: Record<string, boolean>;
109
- /** Whether installs fail on unreviewed dependency build scripts. */
110
- readonly silkStrictDepBuilds?: boolean;
111
- /** Whether transitive deps may use exotic sources (git/tarball). */
112
- readonly silkBlockExoticSubdeps?: boolean;
113
- /** Minimum minutes since publication before a version may install. */
114
- readonly silkMinimumReleaseAge?: number;
115
- /** Package patterns excluded from the release-age constraint. */
116
- readonly silkMinimumReleaseAgeExclude: readonly string[];
117
- /** Package metadata extensions, synced to pnpm `packageExtensions`. */
118
- readonly silkPackageExtensions: Record<string, PackageExtension>;
119
- /** Deprecation warnings to mute, synced to `allowedDeprecatedVersions`. */
120
- readonly silkAllowedDeprecatedVersions: Record<string, string>;
121
- /** Supported architectures for optional-dependency installs. */
122
- readonly silkSupportedArchitectures: SupportedArchitectures;
123
- /** Audit advisory allowlist, synced to `auditConfig`. */
124
- readonly silkAuditConfig: AuditConfig;
125
- /**
126
- * Whether pnpm prompts for confirmation before purging `node_modules`.
127
- * Synced to pnpm `confirmModulesPurge`. Child repos may override freely.
128
- */
129
- readonly silkConfirmModulesPurge?: boolean;
130
- }
131
- /**
132
- * Peer dependency rules synced from the Silk plugin workspace.
133
- *
134
- * @public
135
- */
136
- interface SilkPeerDependencyRules {
137
- /**
138
- * Version ranges that suppress unmet peer dependency warnings.
139
- * Keys are "package\>peer" dependency paths.
140
- */
141
- readonly allowedVersions: Record<string, string>;
142
- /**
143
- * Package names whose missing peer dependency warnings are suppressed.
144
- */
145
- readonly ignoreMissing: readonly string[];
146
- /**
147
- * Package patterns that resolve to any version regardless of peer range.
148
- */
149
- readonly allowAny: readonly string[];
150
- }
151
- //#endregion
152
- //#region src/catalogs/generated.d.ts
153
- /**
154
- * The complete Silk catalogs generated from pnpm-workspace.yaml.
155
- */
156
- declare const silkCatalogs: SilkCatalogs;
157
- /**
158
- * Peer dependency rules generated from pnpm-workspace.yaml.
159
- */
160
- declare const silkPeerDependencyRules: SilkPeerDependencyRules;
161
- //#endregion
162
- export { type AuditConfig, type Catalog, type PackageExtension, type SilkCatalogs, type SilkPeerDependencyRules, type SupportedArchitectures, silkCatalogs, silkPeerDependencyRules };
163
- //# sourceMappingURL=index.d.ts.map
1
+ import { catalogs } from "rolldown-pnpm-config/virtual/catalogs";
2
+ export { catalogs };
package/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { silkCatalogs, silkPeerDependencyRules } from "./catalogs/generated.js";
1
+ import { catalogs } from "./_virtual/_rolldown-pnpm-config/virtual/catalogs.js";
2
2
 
3
- export { silkCatalogs, silkPeerDependencyRules };
3
+ export { catalogs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savvy-web/pnpm-plugin-silk",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "private": false,
5
5
  "description": "pnpm config dependency for centralized catalog management across the Silk ecosystem.",
6
6
  "keywords": [
@@ -11,13 +11,14 @@
11
11
  "monorepo",
12
12
  "silk"
13
13
  ],
14
- "homepage": "https://github.com/savvy-web/pnpm-plugin-silk#readme",
14
+ "homepage": "https://github.com/savvy-web/systems/packages/pnpm-plugin-silk#readme",
15
15
  "bugs": {
16
- "url": "https://github.com/savvy-web/pnpm-plugin-silk/issues"
16
+ "url": "https://github.com/savvy-web/systems/issues"
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/savvy-web/pnpm-plugin-silk.git"
20
+ "url": "git+https://github.com/savvy-web/systems.git",
21
+ "directory": "packages/pnpm-plugin-silk"
21
22
  },
22
23
  "license": "MIT",
23
24
  "author": {