@savvy-web/mcp 0.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.
Files changed (34) hide show
  1. package/547.js +417 -0
  2. package/bin/savvy-mcp.js +153 -0
  3. package/index.d.ts +127 -0
  4. package/index.js +3 -0
  5. package/package.json +80 -0
  6. package/resources/content/_templates/guides.md +12 -0
  7. package/resources/content/_templates/packages.md +21 -0
  8. package/resources/content/_templates/standards.md +17 -0
  9. package/resources/content/guides/api-docs-from-api-extractor.md +160 -0
  10. package/resources/content/guides/building-a-github-action.md +233 -0
  11. package/resources/content/guides/choosing-a-builder.md +140 -0
  12. package/resources/content/guides/llm-friendly-json-schemas.md +64 -0
  13. package/resources/content/manifest.json +490 -0
  14. package/resources/content/packages/cli/command-tree.md +70 -0
  15. package/resources/content/packages/cli/init-and-check.md +51 -0
  16. package/resources/content/packages/mcp/resource-taxonomy.md +63 -0
  17. package/resources/content/packages/rslib-builder/overview.md +68 -0
  18. package/resources/content/packages/silk/export-map.md +67 -0
  19. package/resources/content/packages/silk/install-and-setup.md +59 -0
  20. package/resources/content/packages/silk-effects/index.md +76 -0
  21. package/resources/content/packages/silk-effects/managed-section.md +84 -0
  22. package/resources/content/packages/silk-effects/platform-layers.md +94 -0
  23. package/resources/content/standards/api-model-pipeline.md +63 -0
  24. package/resources/content/standards/catalog-usage.md +48 -0
  25. package/resources/content/standards/changeset-discipline.md +52 -0
  26. package/resources/content/standards/changeset-format.md +131 -0
  27. package/resources/content/standards/commit-contract.md +58 -0
  28. package/resources/content/standards/dependency-conventions.md +82 -0
  29. package/resources/content/standards/linting-conventions.md +47 -0
  30. package/resources/content/standards/publishability.md +57 -0
  31. package/resources/content/standards/semver.md +51 -0
  32. package/resources/content/standards/test-classification.md +49 -0
  33. package/resources/content/tags.json +27 -0
  34. package/tsdoc-metadata.json +11 -0
@@ -0,0 +1,131 @@
1
+ ---
2
+ id: standards/changeset-format
3
+ title: Changeset file format (CSH001–CSH005)
4
+ summary: The YAML frontmatter, 13 valid section headings, and CSH001–CSH005 structural rules for changesets.
5
+ tier: standards
6
+ source: hand
7
+ tags: [changeset]
8
+ priority: 0.5
9
+ related: [standards/changeset-discipline]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ Every changeset file (`.changeset/*.md`) starts with YAML frontmatter declaring the
15
+ affected packages and bump levels, followed by body content organized under one or
16
+ more of the 13 valid `##` section headings.
17
+
18
+ ### Frontmatter shape
19
+
20
+ ```yaml
21
+ ---
22
+ "@savvy-web/package-name": patch | minor | major
23
+ ---
24
+ ```
25
+
26
+ Multiple packages list one line each:
27
+
28
+ ```yaml
29
+ ---
30
+ "@savvy-web/package-a": minor
31
+ "@savvy-web/package-b": patch
32
+ ---
33
+ ```
34
+
35
+ ### Bump type guide
36
+
37
+ | Bump | Use for |
38
+ | :--- | :--- |
39
+ | `patch` | Bug fixes, docs, internal refactoring, tests, CI/build changes |
40
+ | `minor` | New features, new exports, non-breaking additions |
41
+ | `major` | Removed exports, changed signatures, breaking behavior changes |
42
+
43
+ ### 13 valid section headings
44
+
45
+ All `##` headings must exactly match one of these (case-sensitive):
46
+
47
+ | Priority | Heading | Use for |
48
+ | :--- | :--- | :--- |
49
+ | 1 | Breaking Changes | Backward-incompatible changes |
50
+ | 2 | Features | New functionality |
51
+ | 3 | Bug Fixes | Bug corrections |
52
+ | 4 | Performance | Performance improvements |
53
+ | 5 | Documentation | Documentation changes |
54
+ | 6 | Refactoring | Code restructuring |
55
+ | 7 | Tests | Test additions or modifications |
56
+ | 8 | Build System | Build configuration changes |
57
+ | 9 | CI | Continuous integration changes |
58
+ | 10 | Dependencies | Dependency updates |
59
+ | 11 | Maintenance | General maintenance |
60
+ | 12 | Reverts | Reverted changes |
61
+ | 13 | Other | Uncategorized changes |
62
+
63
+ ### Structural rules (CSH001–CSH005)
64
+
65
+ | Rule | Description |
66
+ | :--- | :--- |
67
+ | **CSH001** | No `#` (h1) headings anywhere in the body. No heading depth skips (e.g., jumping from `##` directly to `####`). |
68
+ | **CSH002** | All `##` headings must exactly match one of the 13 valid categories. |
69
+ | **CSH003** | No empty sections. Code fences must include a language identifier. No empty list items. |
70
+ | **CSH004** | No content before the first `##` heading (YAML frontmatter is not "content"). |
71
+ | **CSH005** | A `## Dependencies` section containing a table must use the 5-column schema (Dependency, Type, Action, From, To). |
72
+
73
+ **CSH005 dependency table schema:**
74
+
75
+ ```markdown
76
+ | Dependency | Type | Action | From | To |
77
+ | :--------- | :---------- | :------ | :----- | :----- |
78
+ | effect | dependency | updated | 3.18.0 | 3.19.1 |
79
+ ```
80
+
81
+ Valid **Type** values: `dependency`, `devDependency`, `peerDependency`,
82
+ `optionalDependency`, `workspace`, `config`.
83
+
84
+ Valid **Action** values: `added`, `updated`, `removed`. Use `—` (em dash) for From
85
+ when adding, or for To when removing.
86
+
87
+ ## Why
88
+
89
+ The section-aware format makes changelogs scannable by category. Structural rules
90
+ are enforced by remark-lint pre-validation (and markdownlint in-editor); violations
91
+ fail CI. The 13 headings map to conventional commit types so tooling can correlate
92
+ commits to changelog entries.
93
+
94
+ ## Examples
95
+
96
+ **Minimal valid changeset (Simple tier):**
97
+
98
+ ```markdown
99
+ ---
100
+ "@savvy-web/foo": patch
101
+ ---
102
+
103
+ ## Bug Fixes
104
+
105
+ - Corrects off-by-one error in pagination helper.
106
+ ```
107
+
108
+ **Multi-section with dependency table (Structured tier):**
109
+
110
+ ```markdown
111
+ ---
112
+ "@savvy-web/foo": minor
113
+ ---
114
+
115
+ ## Features
116
+
117
+ - Adds `suppressWarnings` option to `ApiModelOptions`.
118
+
119
+ ## Dependencies
120
+
121
+ | Dependency | Type | Action | From | To |
122
+ | :--------- | :---------- | :------ | :----- | :----- |
123
+ | effect | dependency | updated | 3.18.0 | 3.19.1 |
124
+ ```
125
+
126
+ ## See also
127
+
128
+ The discipline rules governing when a changeset is required are at
129
+ `silk://standards/changeset-discipline`. The `changeset-style` Claude Code skill
130
+ carries worked examples for all three content-depth tiers. The `changeset-check`
131
+ skill validates files against CSH001–CSH005 via `savvy changeset check`.
@@ -0,0 +1,58 @@
1
+ ---
2
+ id: standards/commit-contract
3
+ title: Silk commit contract
4
+ summary: Load when composing any conventional commit, amending, squashing, or opening a PR.
5
+ tier: standards
6
+ source: hand
7
+ tags: [commit, dco, tdd]
8
+ priority: 0.8
9
+ related: [standards/changeset-discipline]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ Commits follow `type(scope): subject`, with an optional body, optional `Closes #N`
15
+ trailers, and a mandatory DCO `Signed-off-by` trailer as the last line. The
16
+ `@savvy-web/commitlint` Silk preset enforces this through the `commit-msg` husky
17
+ hook; violations reject the commit.
18
+
19
+ **Type enum** (one lowercase identifier): `ai`, `build`, `chore`, `ci`, `docs`,
20
+ `feat`, `fix`, `perf`, `refactor`, `release`, `revert`, `style`, `tdd`, `test`.
21
+ Do not invent types.
22
+
23
+ **Subject:** imperative mood ("add", not "added"/"adds"); lowercase first letter
24
+ after the colon; the full header at most 100 characters; no trailing period; no
25
+ markdown.
26
+
27
+ **Body** (optional): explain what changed conceptually and why, one level above
28
+ the diff. Each paragraph or bullet is one continuous line — do not soft-wrap.
29
+ No markdown headers, numbered lists, code fences, links, bold, or italic. Name
30
+ the concept that changed, not every file. For dependency updates list only direct
31
+ deps, never transitive lockfile entries. Skip routine AI-context and config tweaks.
32
+
33
+ ## Why
34
+
35
+ `tdd` commits require a structured scope `goalId:state` matching
36
+ `^\d+:(spike|red|green|refactor)$` — for example `tdd(42:red)` or `tdd(7:green)`.
37
+ The scope ties a commit to a TDD goal and its phase, so a bare `tdd` or
38
+ `tdd(red)` is rejected. The DCO signoff is the Developer Certificate of Origin
39
+ attestation; its exact `Signed-off-by: Full Name <email>` form is required
40
+ verbatim, using the committer's real name and git email. When `commit.gpgsign`
41
+ is true, confirm the signing agent is responsive rather than silently producing
42
+ an unsigned commit.
43
+
44
+ ## Examples
45
+
46
+ Good: `feat(auth): add JWT refresh token rotation`. Bad: `feat: Updated the auth
47
+ flow` (past tense, capitalized, vague).
48
+
49
+ A TDD green-phase commit: `tdd(14:green): implement scope validator for tdd commits`.
50
+
51
+ A fix that closes an issue carries `Closes #87` above the signoff. Any of
52
+ `Closes`, `Fixes`, or `Resolves` followed by `#N` is accepted, one trailer per
53
+ issue.
54
+
55
+ ## See also
56
+
57
+ The commit-create skill carries the full pre-commit checklist and worked examples.
58
+ Release documentation discipline lives at `silk://standards/changeset-discipline`.
@@ -0,0 +1,82 @@
1
+ ---
2
+ id: standards/dependency-conventions
3
+ title: Dependency conventions
4
+ summary: When to use catalog:silk vs catalog:silkPeers, and how the pnpm-plugin-silk config dependency pins versions.
5
+ tier: standards
6
+ source: hand
7
+ tags: [dependencies, catalog]
8
+ priority: 0.5
9
+ related: [standards/catalog-usage]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ All Silk Suite packages pin dependencies through the named catalogs provided by
15
+ `@savvy-web/pnpm-plugin-silk`:
16
+
17
+ - Use `catalog:silk` for `dependencies` and `devDependencies` (current pinned versions).
18
+ - Use `catalog:silkPeers` for `peerDependencies` (permissive ranges).
19
+
20
+ Do not hard-code version strings for catalog-managed packages.
21
+
22
+ ### How the plugin works
23
+
24
+ `@savvy-web/pnpm-plugin-silk` is installed as a pnpm config dependency:
25
+
26
+ ```yaml
27
+ configDependencies:
28
+ "@savvy-web/pnpm-plugin-silk": "0.3.0+sha512-..."
29
+ ```
30
+
31
+ During `pnpm install` the plugin merges its catalog definitions, security overrides,
32
+ and build configuration into the consuming repo's `pnpm-workspace.yaml`. The merge
33
+ is non-destructive — local definitions always take precedence, and divergences are
34
+ printed as warnings.
35
+
36
+ The plugin ships:
37
+
38
+ - `catalog:silk` — current/latest pinned versions for direct use
39
+ - `catalog:silkPeers` — permissive ranges for peer declarations
40
+ - `silkOverrides` — centralized CVE fixes propagated to all consumers
41
+ - Shared `onlyBuiltDependencies`, `publicHoistPattern`, and `peerDependencyRules`
42
+
43
+ ### Effect ecosystem note
44
+
45
+ The 26 `@effect/*` packages are updated together as one batch to preserve
46
+ cross-package compatibility. For `@effect/*` packages (all at `0.x`),
47
+ `catalog:silkPeers` uses `>=` floor-only ranges rather than `^` caret ranges,
48
+ because `^0.x.y` restricts to patch-only and would not overlap with the `silk`
49
+ pinned version one minor ahead. For `effect` itself (at `3.x`) the standard `^`
50
+ caret works.
51
+
52
+ ## Why
53
+
54
+ Centralizing versions in the plugin keeps every repo in the ecosystem on one
55
+ coordinated set and lets security overrides for transitive CVEs land without
56
+ per-repo edits. The dual-catalog strategy balances two needs: direct consumers get a
57
+ predictable pinned version; peer consumers stay compatible with a wider range of
58
+ host environments without forcing lockstep upgrades.
59
+
60
+ ## Examples
61
+
62
+ ```json
63
+ {
64
+ "devDependencies": {
65
+ "typescript": "catalog:silk",
66
+ "vitest": "catalog:silk"
67
+ },
68
+ "peerDependencies": {
69
+ "typescript": "catalog:silkPeers"
70
+ }
71
+ }
72
+ ```
73
+
74
+ To override a catalog entry for a single repo, add it under `catalogs.silk` in
75
+ `pnpm-workspace.yaml`; the local value wins and the plugin prints a warning. Remove
76
+ the local entry to revert to the Silk default.
77
+
78
+ ## See also
79
+
80
+ Detailed catalog usage rules (including when to add a local override) are at
81
+ `silk://standards/catalog-usage`. Publishability and registry targets that determine
82
+ which packages enter the release pipeline are at `silk://standards/publishability`.
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: standards/linting-conventions
3
+ title: Linting and formatting
4
+ summary: Load when writing TypeScript or markdown that must pass Biome and markdownlint.
5
+ tier: standards
6
+ source: hand
7
+ tags: [lint]
8
+ priority: 0.8
9
+ related: [standards/test-classification]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ TypeScript is formatted and linted with Biome; markdown with markdownlint-cli2.
15
+ Both run in pre-commit through `@savvy-web/lint-staged` composable handlers, so
16
+ code that violates these rules does not commit.
17
+
18
+ ## Why
19
+
20
+ A single shared config means contributors and agents follow the project's style
21
+ without being told it each session, and CI enforces the same rules locally and
22
+ remotely. The lint-staged plugin injects the active rules into Claude Code at
23
+ session start for exactly this reason.
24
+
25
+ ## Examples
26
+
27
+ Biome enforcements that bite most often:
28
+
29
+ - `useImportExtensions` — relative imports MUST use `.js` extensions (ESM).
30
+ - `useImportType` — type-only imports use `import type { Foo }`, not `import { type Foo }`.
31
+ - `useNodejsImportProtocol` — Node built-ins use the `node:` protocol (`node:fs`).
32
+ - `useConsistentTypeDefinitions` — prefer interfaces.
33
+ - `noUnusedVariables` and `noImportCycles` are errors. Imports auto-sort.
34
+ - Test files relax `noUndeclaredDependencies`.
35
+
36
+ markdownlint rules that bite most often:
37
+
38
+ - No line-length limit (MD013 disabled).
39
+ - Duplicate headings allowed only among siblings (MD024).
40
+ - HTML restricted to `br`, `details`, `summary`, `img`, `sup`, `sub`.
41
+ - Code fences MUST carry a language identifier (MD040).
42
+ - Tables use compact style — single space around cell content (MD060).
43
+ - Files end with a single trailing newline (MD047).
44
+
45
+ ## See also
46
+
47
+ Test file naming and discovery is at `silk://standards/test-classification`.
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: standards/publishability
3
+ title: Publishability rules
4
+ summary: Load when deciding whether a package publishes and how private vs publishConfig interact.
5
+ tier: standards
6
+ source: hand
7
+ tags: [publishability]
8
+ priority: 0.8
9
+ related: [packages/silk-effects/, standards/catalog-usage]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ A package's publishability is resolved from its `package.json` by applying these
15
+ rules in order; the first match wins:
16
+
17
+ 1. `publishConfig.targets` is a non-empty array → one target per surviving entry.
18
+ 2. `publishConfig.access` is `public` or `restricted` → a single target.
19
+ 3. `private !== true` → a single default target.
20
+ 4. otherwise → not publishable (empty).
21
+
22
+ `publishConfig.targets` takes precedence over the `private` flag: a package with
23
+ `private: true` and a `publishConfig.targets` array still publishes. The `private`
24
+ flag is consulted only as the last-resort default in rule 3.
25
+
26
+ ## Why
27
+
28
+ In the Silk ecosystem `private: true` is the norm on source `package.json` files,
29
+ and `publishConfig` declares publish intent. The builder flips `private` based on
30
+ `publishConfig.access` at build time, so a source package with `private: true` and
31
+ `publishConfig.access: "public"` is publishable. Encoding intent in `publishConfig`
32
+ rather than the bare `private` flag lets a workspace keep packages private during
33
+ development and publish them deliberately.
34
+
35
+ `SilkPublishability.detect` is the pure entry point. Shorthand string targets
36
+ expand to registries: `"npm"` → npmjs, `"github"` → GitHub Packages, `"jsr"` →
37
+ jsr; an `http(s)://…` value is verbatim. String targets inherit the parent
38
+ `publishConfig.access`; object targets use their own access else the parent's.
39
+
40
+ ## Examples
41
+
42
+ ```text
43
+ { private: true, publishConfig: { access: "public", targets: ["npm", "github"] } }
44
+ → publishes to both npm and GitHub Packages
45
+
46
+ { private: true }
47
+ → not publishable (empty)
48
+ ```
49
+
50
+ The adaptive detector additionally short-circuits changeset-ignored packages to
51
+ empty and dispatches on changeset mode (`none` → empty, `silk` → Silk rules,
52
+ `vanilla` → upstream default).
53
+
54
+ ## See also
55
+
56
+ The detector services and layers are documented at `silk://packages/silk-effects/`.
57
+ Dependency pinning is at `silk://standards/catalog-usage`.
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: standards/semver
3
+ title: Strict SemVer (no v-prefix)
4
+ summary: Strict SemVer 2.0.0 everywhere; git tags carry no leading v.
5
+ tier: standards
6
+ source: hand
7
+ tags: [semver]
8
+ priority: 0.5
9
+ related: [standards/changeset-discipline]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ Silk uses strict SemVer 2.0.0 for all version numbers. Git tags carry **no
15
+ leading `v` prefix**. This applies everywhere — package versions, git tags, and
16
+ version ranges authored by hand.
17
+
18
+ | Context | Correct | Incorrect |
19
+ | :--- | :--- | :--- |
20
+ | `package.json` `"version"` | `"1.2.3"` | `"v1.2.3"` |
21
+ | git tag for a release | `foo@1.2.3` or `1.2.3` | `vfoo@1.2.3` or `v1.2.3` |
22
+ | changeset bump result | `1.2.3` | `v1.2.3` |
23
+
24
+ ## Why
25
+
26
+ The `v` prefix is noise that breaks strict SemVer parsers. Many tools (including
27
+ the Node.js SemVer library in strict mode) treat `v1.2.3` as an invalid version.
28
+ Consistent, tool-parseable versions across every surface — npm registry, git tags,
29
+ changelog entries, and API references — removes an entire class of subtle breakage
30
+ where one tool normalizes the prefix and another does not.
31
+
32
+ ## Examples
33
+
34
+ A release of `@savvy-web/foo` at version `1.2.3` is tagged `foo@1.2.3` (or
35
+ `1.2.3` for single-package repos). The `package.json` carries `"version": "1.2.3"`.
36
+ The CHANGELOG entry title reads `1.2.3`. No `v` anywhere.
37
+
38
+ ```bash
39
+ # correct
40
+ git tag foo@1.2.3
41
+
42
+ # incorrect — never do this
43
+ git tag vfoo@1.2.3
44
+ git tag v1.2.3
45
+ ```
46
+
47
+ ## See also
48
+
49
+ Changesets and bump mechanics are at `silk://standards/changeset-discipline`.
50
+ Publishability rules (which determine when a tag triggers a release) are at
51
+ `silk://standards/publishability`.
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: standards/test-classification
3
+ title: Test classification
4
+ summary: Load when naming a test file or wondering why Vitest classifies it as unit, e2e, or int.
5
+ tier: standards
6
+ source: hand
7
+ tags: [test]
8
+ priority: 0.8
9
+ related: [standards/linting-conventions]
10
+ ---
11
+
12
+ ## Rule
13
+
14
+ `VitestConfig.create()` discovers workspace packages and classifies each test file
15
+ by its **filename**, not its directory. The first matching pattern wins:
16
+
17
+ - `*.e2e.(test|spec).(ts|tsx|js|jsx)` → e2e
18
+ - `*.int.(test|spec).(ts|tsx|js|jsx)` → integration
19
+ - `*.(test|spec).(ts|tsx|js|jsx)` → unit (catch-all; `*.unit.test.ts` lands here)
20
+
21
+ Files matching none are ignored. Tests live in `src/` and an optional `__test__/`
22
+ directory beside it; only packages with a `src/` directory are scanned.
23
+
24
+ ## Why
25
+
26
+ Filename-driven classification keeps the directory layout free and the kind
27
+ unambiguous — `foo.e2e.test.ts` is never double-counted as a unit test because the
28
+ e2e pattern is checked first. A package with one test kind gets a bare project name
29
+ (`@scope/pkg`); two or more kinds get suffixed names (`@scope/pkg:unit`,
30
+ `@scope/pkg:e2e`). A package with `src/` but no tests still gets a unit project as
31
+ a forward-looking placeholder.
32
+
33
+ ## Examples
34
+
35
+ `parser.test.ts` and `parser.unit.test.ts` → unit. `auth.e2e.test.ts` → e2e.
36
+ `db.int.test.ts` → integration.
37
+
38
+ Helper and fixture directories are excluded from discovery at conventional
39
+ locations only: `__test__/fixtures/`, `__test__/utils/`, and the same under
40
+ `__test__/{unit,e2e,integration}/`. A `vitest.setup.{ts,tsx,js,jsx}` at the
41
+ package root is auto-detected and added to `setupFiles`.
42
+
43
+ Coverage defaults to the `"strict"` level (lines 80, branches 75, functions 80,
44
+ statements 80). Passing `--project` flags scopes coverage to the union of the
45
+ matched packages.
46
+
47
+ ## See also
48
+
49
+ Lint and format rules are at `silk://standards/linting-conventions`.
@@ -0,0 +1,27 @@
1
+ {
2
+ "changeset": ["changesets"],
3
+ "release": [],
4
+ "commit": ["commits", "conventional-commits"],
5
+ "dco": [],
6
+ "tdd": [],
7
+ "catalog": ["version-catalog"],
8
+ "dependencies": ["deps", "peer-dependencies"],
9
+ "lint": ["linting", "biome", "markdownlint"],
10
+ "test": ["testing", "vitest"],
11
+ "publishability": ["publish", "publishConfig", "private"],
12
+ "silk-effects": [],
13
+ "effect": ["layers", "context-tag"],
14
+ "managed-section": ["sections", "husky"],
15
+ "cli": ["savvy"],
16
+ "init": ["setup", "scaffold"],
17
+ "silk": ["install"],
18
+ "mcp": ["resources", "savvy-mcp"],
19
+ "build": ["rslib", "esm"],
20
+ "workspace": ["monorepo", "workspaces"],
21
+ "api": ["api-reference", "reference"],
22
+ "templates": ["scaffolding"],
23
+ "github-action-effects": ["gha-effects"],
24
+ "github-action-builder": ["gha-builder"],
25
+ "semver": ["versioning"],
26
+ "github-actions": ["gha", "actions"]
27
+ }
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.58.7"
9
+ }
10
+ ]
11
+ }