Not in the top 1,000 by GitHub stars
fgbytes/sansfiction-mcp
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
61f602011642 → 61f602011642
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 61f602011642
No earlier version was observed for comparison.
skills/sansfiction-catalog/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
61f602011642 → 61f602011642
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 61f602011642
No earlier version was observed for comparison.
Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- sansfiction-catalog
/ - sansfiction-catalog
skills/sansfiction-catalog
How it works
sansfiction-catalog
When your agent uses it
Search the SansFiction book catalog and manage a personal reading library (books, collections, reading progress, ratings, stats) over a token-authenticated REST API. Use when a user wants to find books, look up book/series/collection metadata, or read and update their SansFiction library.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
926 tokensWhen the skill is activated
Reference documents
910 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Authentication
- Public catalog (no auth)
- Personal library (bearer token required)
- Conventions
- Typical workflow
- Alternative transport: MCP
Scripts executed separately
index.jspackage.jsontest/smoke.mjs
Files
.github/workflows/ci.ymlasset433 bytes.github/workflows/release.ymlasset306 bytes.gitignoreasset20 bytesLICENSEasset1,064 bytesREADME.mddoc3,458 bytesSKILL.mdcore3,361 bytesSKILL.mdcore3,361 bytesSKILL.mdcore3,361 bytesglama.jsonasset90 bytesindex.jsruns18,586 byteslhm.plugin.jsonasset8,994 bytesmcp.jsonasset205 bytespackage-lock.jsonasset41,685 bytespackage.jsonruns574 bytesplugin.jsonasset646 bytesserver.jsonasset942 bytestest/smoke.mjsruns2,002 bytes
Read SKILL.md
<!--
Canonical copy of this skill is served at:
https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md
Source of truth: web/fgbook/lib/agents/discovery.ts (SANSFICTION_CATALOG_SKILL).
Keep this file in sync when editing that constant.
-->
# SansFiction
SansFiction is a digital library for books, collections, reading journals, and
discovery. This skill drives its public REST API (`/api/v1`). An MCP server
exposing the same capabilities is also available at `/api/mcp` for MCP-native
clients — both accept the same bearer token.
View the complete source on GitHubsansfiction-catalog
When your agent uses it
Search the SansFiction book catalog and manage a personal reading library (books, collections, reading progress, ratings, stats) over a token-authenticated REST API. Use when a user wants to find books, look up book/series/collection metadata, or read and update their SansFiction library.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
926 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Authentication
- Public catalog (no auth)
- Personal library (bearer token required)
- Conventions
- Typical workflow
- Alternative transport: MCP
Files
SKILL.mdcore3,361 bytesSKILL.mdcore3,361 bytesSKILL.mdcore3,361 bytes
Read SKILL.md
<!--
Canonical copy of this skill is served at:
https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md
Source of truth: web/fgbook/lib/agents/discovery.ts (SANSFICTION_CATALOG_SKILL).
Keep this file in sync when editing that constant.
-->
# SansFiction
SansFiction is a digital library for books, collections, reading journals, and
discovery. This skill drives its public REST API (`/api/v1`). An MCP server
exposing the same capabilities is also available at `/api/mcp` for MCP-native
clients — both accept the same bearer token.
View the complete source on GitHubSkills included
- sansfiction-catalog
- sansfiction-catalog
Repository facts
- License
- MIT
- Created
- Aug 18, 2026
- Last pushed
- Aug 20, 2026
- Forks
- 0
- Open issues
- 1
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 4 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sansfiction-catalog/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sansfiction-catalog/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 463 network referencesin 10 files: package-lock.json:21 README.md:3 server.json:1 and 7 more
- No hidden or obfuscated text
- No instruction overrides
- 3 executable scriptsin 3 files: index.js:1 package.json:1 test/smoke.mjs:1
- 4 references to secretsin 4 files: README.md:30 SKILL.md:59 index.js:22 and 1 more
- No requests to vote in Hot
Show all 470 signals by file
README.md
- Network accessline 3
[](https://glama.ai/mcp/servers/fgbytes/sansfiction-mcp) - Network accessline 5
Connect AI agents to [**SansFiction**](https://sansfiction.com) — a digital library for - Network accessline 10
- **MCP server** (Streamable HTTP): `https://sansfiction.com/api/mcp` - Network accessline 11
- **REST API** (v1): `https://sansfiction.com/api/v1` - Network accessline 16
claude mcp add --transport http sansfiction https://sansfiction.com/api/mcp - Network accessline 19
Or point any MCP client at the streamable-HTTP endpoint above. Public catalog tools need no auth; personal library tools require a bearer token (generate one at [sansfiction.com/docs/agents](https://sansfiction.com/docs/agents)). - Network accessline 21
[sansfiction.com/docs/agents](https://sansfiction.com/docs/agents)). - Network accessline 26
# Public catalog — no auth curl "https://sansfiction.com/api/v1/catalog/search?q=dune&limit=5" - Network accessline 27
curl "https://sansfiction.com/api/v1/catalog/search?q=dune&limit=5" - Network accessline 29
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Network accessline 31
"https://sansfiction.com/api/v1/library/books?status=reading" - Network accessline 52
- Agent Skill: [`SKILL.md`](./SKILL.md) — also served at `https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md` - Network accessline 53
`https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md` - Network accessline 54
- MCP Registry manifest: [`server.json`](./server.json) - OpenAPI: `https://sansfiction.com/openapi.json` - MCP server card: `https://sansfiction.com/.well-known/mcp/server-card.json` - Network accessline 55
- OpenAPI: `https://sansfiction.com/openapi.json` - Network accessline 56
- MCP server card: `https://sansfiction.com/.well-known/mcp/server-card.json` - Network accessline 60
Generate a personal access token (`sf_mcp_…`) while signed in at [sansfiction.com/docs/agents](https://sansfiction.com/docs/agents). The same token - Network accessline 61
[sansfiction.com/docs/agents](https://sansfiction.com/docs/agents). The same token - Network accessline 83
- `SANSFICTION_TOKEN` — bearer token (`sf_mcp_…`) for the personal-library tools (generate at https://sansfiction.com/docs/agents). Public catalog tools need none. - Network accessline 84
(generate at https://sansfiction.com/docs/agents). Public catalog tools need none. - Network accessline 85
- `SANSFICTION_BASE_URL` — override the API base (default `https://sansfiction.com`).
SKILL.md
- Network accessline 7
<!-- Canonical copy of this skill is served at: https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md - Network accessline 8
Canonical copy of this skill is served at: https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md Source of truth: web/fgbook/lib/agents/discovery.ts (SANSFICTION_CATALOG_SKILL). - Network accessline 9
https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md - Network accessline 21
Base URL: `https://sansfiction.com` - Network accessline 32
A signed-in user generates a token at `https://sansfiction.com/docs/agents`. - Network accessline 43
curl "https://sansfiction.com/api/v1/catalog/search?q=dune&limit=5" - Network accessline 59
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Network accessline 60
"https://sansfiction.com/api/v1/library/books?status=reading" - Network accessline 79
MCP-native clients can connect to `https://sansfiction.com/api/mcp`
glama.json
index.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 6
* reading library. Tool definitions are local (so `tools/list` works with no * network/credentials); tool *calls* proxy to the public REST API at * https://sansfiction.com/api/v1. - Network accessline 7
* network/credentials); tool *calls* proxy to the public REST API at * https://sansfiction.com/api/v1. * - Network accessline 8
* https://sansfiction.com/api/v1. - Network accessline 9
* * Env: * SANSFICTION_BASE_URL (default: https://sansfiction.com) - Network accessline 10
* Env: * SANSFICTION_BASE_URL (default: https://sansfiction.com) * SANSFICTION_TOKEN bearer token (sf_mcp_...) required only for library tools - Network accessline 11
* SANSFICTION_BASE_URL (default: https://sansfiction.com) - Network accessline 21
const BASE = (process.env.SANSFICTION_BASE_URL || "https://sansfiction.com").replace(/\/+$/, ""); - Access to secretsline 22
[Credential-related source omitted] - Network accessline 139
const AUTH_NOTE = " Requires SANSFICTION_TOKEN (a bearer token from https://sansfiction.com/docs/agents)."; - Network accessline 395
[Credential-related source omitted] - Network accessline 396
} const res = await fetch(`${BASE}${path}`, { method, - Network accessline 397
const res = await fetch(`${BASE}${path}`, {
lhm.plugin.json
- Network accessline 4
"description": "Search the SansFiction books catalog (titles, authors, series, ISBNs, curated collections) and manage a personal reading library — status, reading progress, ratings, reviews, collections, and stats. Public catalog needs no a - Network accessline 5
"version": "1.1.0", "homepage": "https://sansfiction.com", "cloudEndpoint": "https://sansfiction.com/api/mcp", - Network accessline 6
"homepage": "https://sansfiction.com", - Network accessline 7
"cloudEndpoint": "https://sansfiction.com/api/mcp",
mcp.json
- Network accessline 1
{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", - Network accessline 2
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", - Network accessline 4
"sansfiction": { "type": "streamable-http", "url": "https://sansfiction.com/api/mcp" - Network accessline 5
"type": "streamable-http", "url": "https://sansfiction.com/api/mcp" } - Network accessline 6
"url": "https://sansfiction.com/api/mcp"
package-lock.json
- Network accessline 21
"node_modules/@hono/node-server": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.1.tgz", - Network accessline 22
"version": "2.1.1", "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.1.tgz", "integrity": "sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==", - Network accessline 23
"resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.1.tgz", - Network accessline 33
"node_modules/@modelcontextprotocol/sdk": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", - Network accessline 34
"version": "1.30.0", "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==", - Network accessline 35
"resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz", - Network accessline 73
"node_modules/accepts": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - Network accessline 74
"version": "2.0.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - Network accessline 75
"resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - Network accessline 86
"node_modules/ajv": { "version": "8.20.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - Network accessline 87
"version": "8.20.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - Network accessline 88
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - Network accessline 97
"funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" - Network accessline 98
"type": "github", "url": "https://github.com/sponsors/epoberezkin" } - Network accessline 99
"url": "https://github.com/sponsors/epoberezkin" - Network accessline 102
"node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - Network accessline 103
"version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - Network accessline 104
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - Network accessline 119
"node_modules/body-parser": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", - Network accessline 120
"version": "2.3.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", - Network accessline 121
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", - Network accessline 138
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 139
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 140
"url": "https://opencollective.com/express" - Network accessline 143
"node_modules/body-parser/node_modules/content-type": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - Network accessline 144
"version": "2.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", - Network accessline 145
"resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - Network accessline 151
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 152
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 153
"url": "https://opencollective.com/express" - Network accessline 156
"node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - Network accessline 157
"version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - Network accessline 158
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - Network accessline 165
"node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - Network accessline 166
"version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuM - Network accessline 167
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - Network accessline 178
"node_modules/call-bound": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - Network accessline 179
"version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - Network accessline 180
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - Network accessline 189
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 190
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 191
"url": "https://github.com/sponsors/ljharb" - Network accessline 194
"node_modules/content-disposition": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - Network accessline 195
"version": "1.1.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", - Network accessline 196
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - Network accessline 202
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 203
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 204
"url": "https://opencollective.com/express" - Network accessline 207
"node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - Network accessline 208
"version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - Network accessline 209
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - Network accessline 216
"node_modules/cookie": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - Network accessline 217
"version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - Network accessline 218
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - Network accessline 225
"node_modules/cookie-signature": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - Network accessline 226
"version": "1.2.2", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - Network accessline 227
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - Network accessline 234
"node_modules/cors": { "version": "2.8.6", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", - Network accessline 235
"version": "2.8.6", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", - Network accessline 236
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", - Network accessline 246
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 247
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 248
"url": "https://opencollective.com/express" - Network accessline 251
"node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - Network accessline 252
"version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - Network accessline 253
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - Network accessline 265
"node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - Network accessline 266
"version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - Network accessline 267
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - Network accessline 282
"node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - Network accessline 283
"version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - Network accessline 284
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - Network accessline 291
"node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - Network accessline 292
"version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - Network accessline 293
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - Network accessline 305
"node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - Network accessline 306
"version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - Network accessline 307
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - Network accessline 311
"node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - Network accessline 312
"version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - Network accessline 313
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - Network accessline 320
"node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - Network accessline 321
"version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - Network accessline 322
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - Network accessline 329
"node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - Network accessline 330
"version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - Network accessline 331
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - Network accessline 338
"node_modules/es-object-atoms": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - Network accessline 339
"version": "1.1.2", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - Network accessline 340
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - Network accessline 350
"node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - Network accessline 351
"version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - Network accessline 352
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - Network accessline 356
"node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - Network accessline 357
"version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - Network accessline 358
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - Network accessline 365
"node_modules/eventsource": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", - Network accessline 366
"version": "3.0.7", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", - Network accessline 367
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", - Network accessline 377
"node_modules/eventsource-parser": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", - Network accessline 378
"version": "3.1.1", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", - Network accessline 379
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", - Network accessline 386
"node_modules/express": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - Network accessline 387
"version": "5.2.1", "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", - Network accessline 388
"resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - Network accessline 424
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 425
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 426
"url": "https://opencollective.com/express" - Network accessline 429
"node_modules/express-rate-limit": { "version": "8.6.2", "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.2.tgz", - Network accessline 430
"version": "8.6.2", "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.2.tgz", "integrity": "sha512-YH4ru+eOJxQABscKFfRCy9R7x9QFGdezclVMwwgFFndzS2Xnm0uo6B0ABZsLhcpeptGv2qvuJVWlQr9gQZoC3A==", - Network accessline 431
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.2.tgz", - Network accessline 440
}, "funding": { "url": "https://github.com/sponsors/express-rate-limit" - Network accessline 441
"funding": { "url": "https://github.com/sponsors/express-rate-limit" }, - Network accessline 442
"url": "https://github.com/sponsors/express-rate-limit" - Network accessline 448
"node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - Network accessline 449
"version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - Network accessline 450
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - Network accessline 454
"node_modules/fast-uri": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - Network accessline 455
"version": "3.1.5", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", - Network accessline 456
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", - Network accessline 459
{ "type": "github", "url": "https://github.com/sponsors/fastify" - Network accessline 460
"type": "github", "url": "https://github.com/sponsors/fastify" }, - Network accessline 461
"url": "https://github.com/sponsors/fastify" - Network accessline 463
{ "type": "opencollective", "url": "https://opencollective.com/fastify" - Network accessline 464
"type": "opencollective", "url": "https://opencollective.com/fastify" } - Network accessline 465
"url": "https://opencollective.com/fastify" - Network accessline 470
"node_modules/finalhandler": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - Network accessline 471
"version": "2.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", - Network accessline 472
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - Network accessline 486
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 487
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 488
"url": "https://opencollective.com/express" - Network accessline 491
"node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - Network accessline 492
"version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - Network accessline 493
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - Network accessline 500
"node_modules/fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - Network accessline 501
"version": "2.0.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - Network accessline 502
"resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - Network accessline 509
"node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - Network accessline 510
"version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - Network accessline 511
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - Network accessline 513
"license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 514
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 515
"url": "https://github.com/sponsors/ljharb" - Network accessline 518
"node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - Network accessline 519
"version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - Network accessline 520
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - Network accessline 537
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 538
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 539
"url": "https://github.com/sponsors/ljharb" - Network accessline 542
"node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - Network accessline 543
"version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - Network accessline 544
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - Network accessline 555
"node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - Network accessline 556
"version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - Network accessline 557
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - Network accessline 562
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 563
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 564
"url": "https://github.com/sponsors/ljharb" - Network accessline 567
"node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - Network accessline 568
"version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - Network accessline 569
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - Network accessline 574
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 575
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 576
"url": "https://github.com/sponsors/ljharb" - Network accessline 579
"node_modules/hasown": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - Network accessline 580
"version": "2.0.4", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - Network accessline 581
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - Network accessline 591
"node_modules/hono": { "version": "4.13.3", "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.3.tgz", - Network accessline 592
"version": "4.13.3", "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.3.tgz", "integrity": "sha512-r8AO2mYHoLxSHkgafNeC/BXyb2vWRxD3jem4Ts+ptav8oTG5FIRifAjuJEmZI4bSvvc2ns0GxmIYiZnHqN3mMw==", - Network accessline 593
"resolved": "https://registry.npmjs.org/hono/-/hono-4.13.3.tgz", - Network accessline 600
"node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - Network accessline 601
"version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - Network accessline 602
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - Network accessline 615
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 616
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 617
"url": "https://opencollective.com/express" - Network accessline 620
"node_modules/iconv-lite": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - Network accessline 621
"version": "0.7.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", - Network accessline 622
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - Network accessline 631
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 632
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 633
"url": "https://opencollective.com/express" - Network accessline 636
"node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 637
"version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - Network accessline 638
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 642
"node_modules/ip-address": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz", - Network accessline 643
"version": "10.5.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz", "integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==", - Network accessline 644
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz", - Network accessline 651
"node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - Network accessline 652
"version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - Network accessline 653
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - Network accessline 660
"node_modules/is-promise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - Network accessline 661
"version": "4.0.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - Network accessline 662
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - Network accessline 666
"node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - Network accessline 667
"version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - Network accessline 668
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - Network accessline 672
"node_modules/jose": { "version": "6.2.9", "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.9.tgz", - Network accessline 673
"version": "6.2.9", "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.9.tgz", "integrity": "sha512-XrchZOFZUl/T3vTwRe8XK+cJrGtMF4th1ARnDfwbBXFKThGhlsxEE4Zu03AD/bjJSt/9jT/mxrOCkJWOg77aPA==", - Network accessline 674
"resolved": "https://registry.npmjs.org/jose/-/jose-6.2.9.tgz", - Network accessline 676
"license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" - Network accessline 677
"funding": { "url": "https://github.com/sponsors/panva" } - Network accessline 678
"url": "https://github.com/sponsors/panva" - Network accessline 681
"node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - Network accessline 682
"version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - Network accessline 683
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - Network accessline 687
"node_modules/json-schema-typed": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", - Network accessline 688
"version": "8.0.2", "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", - Network accessline 689
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", - Network accessline 693
"node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - Network accessline 694
"version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - Network accessline 695
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - Network accessline 702
"node_modules/media-typer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", - Network accessline 703
"version": "1.1.1", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", - Network accessline 704
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", - Network accessline 710
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 711
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 712
"url": "https://opencollective.com/express" - Network accessline 715
"node_modules/merge-descriptors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - Network accessline 716
"version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - Network accessline 717
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - Network accessline 722
}, "funding": { "url": "https://github.com/sponsors/sindresorhus" - Network accessline 723
"funding": { "url": "https://github.com/sponsors/sindresorhus" } - Network accessline 724
"url": "https://github.com/sponsors/sindresorhus" - Network accessline 727
"node_modules/mime-db": { "version": "1.54.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - Network accessline 728
"version": "1.54.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - Network accessline 729
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - Network accessline 736
"node_modules/mime-types": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - Network accessline 737
"version": "3.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - Network accessline 738
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - Network accessline 747
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 748
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 749
"url": "https://opencollective.com/express" - Network accessline 752
"node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - Network accessline 753
"version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - Network accessline 754
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - Network accessline 758
"node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - Network accessline 759
"version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - Network accessline 760
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - Network accessline 767
"node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - Network accessline 768
"version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - Network accessline 769
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - Network accessline 776
"node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - Network accessline 777
"version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - Network accessline 778
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - Network accessline 783
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 784
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 785
"url": "https://github.com/sponsors/ljharb" - Network accessline 788
"node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - Network accessline 789
"version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - Network accessline 790
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - Network accessline 800
"node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - Network accessline 801
"version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - Network accessline 802
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - Network accessline 809
"node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - Network accessline 810
"version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - Network accessline 811
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - Network accessline 818
"node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - Network accessline 819
"version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - Network accessline 820
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - Network accessline 827
"node_modules/path-to-regexp": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - Network accessline 828
"version": "8.4.2", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", - Network accessline 829
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - Network accessline 832
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 833
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 834
"url": "https://opencollective.com/express" - Network accessline 837
"node_modules/pkce-challenge": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", - Network accessline 838
"version": "5.0.1", "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", - Network accessline 839
"resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", - Network accessline 846
"node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - Network accessline 847
"version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - Network accessline 848
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - Network accessline 859
"node_modules/qs": { "version": "6.15.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - Network accessline 860
"version": "6.15.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", - Network accessline 861
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - Network accessline 870
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 871
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 872
"url": "https://github.com/sponsors/ljharb" - Network accessline 875
"node_modules/range-parser": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", - Network accessline 876
"version": "1.3.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", - Network accessline 877
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", - Network accessline 883
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 884
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 885
"url": "https://opencollective.com/express" - Network accessline 888
"node_modules/raw-body": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - Network accessline 889
"version": "3.0.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", - Network accessline 890
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - Network accessline 903
"node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - Network accessline 904
"version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - Network accessline 905
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - Network accessline 912
"node_modules/router": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - Network accessline 913
"version": "2.2.0", "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - Network accessline 914
"resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - Network accessline 928
"node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - Network accessline 929
"version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - Network accessline 930
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - Network accessline 934
"node_modules/send": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - Network accessline 935
"version": "1.2.1", "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", - Network accessline 936
"resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - Network accessline 955
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 956
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 957
"url": "https://opencollective.com/express" - Network accessline 960
"node_modules/serve-static": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - Network accessline 961
"version": "2.2.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", - Network accessline 962
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - Network accessline 974
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 975
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 976
"url": "https://opencollective.com/express" - Network accessline 979
"node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - Network accessline 980
"version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - Network accessline 981
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - Network accessline 985
"node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - Network accessline 986
"version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - Network accessline 987
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - Network accessline 997
"node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - Network accessline 998
"version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - Network accessline 999
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - Network accessline 1006
"node_modules/side-channel": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - Network accessline 1007
"version": "1.1.1", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", - Network accessline 1008
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - Network accessline 1020
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 1021
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 1022
"url": "https://github.com/sponsors/ljharb" - Network accessline 1025
"node_modules/side-channel-list": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - Network accessline 1026
"version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", - Network accessline 1027
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - Network accessline 1036
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 1037
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 1038
"url": "https://github.com/sponsors/ljharb" - Network accessline 1041
"node_modules/side-channel-map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - Network accessline 1042
"version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - Network accessline 1043
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - Network accessline 1054
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 1055
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 1056
"url": "https://github.com/sponsors/ljharb" - Network accessline 1059
"node_modules/side-channel-weakmap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - Network accessline 1060
"version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - Network accessline 1061
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - Network accessline 1073
}, "funding": { "url": "https://github.com/sponsors/ljharb" - Network accessline 1074
"funding": { "url": "https://github.com/sponsors/ljharb" } - Network accessline 1075
"url": "https://github.com/sponsors/ljharb" - Network accessline 1078
"node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - Network accessline 1079
"version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - Network accessline 1080
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - Network accessline 1087
"node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - Network accessline 1088
"version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - Network accessline 1089
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - Network accessline 1096
"node_modules/type-is": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", - Network accessline 1097
"version": "2.1.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", - Network accessline 1098
"resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", - Network accessline 1109
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 1110
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 1111
"url": "https://opencollective.com/express" - Network accessline 1114
"node_modules/type-is/node_modules/content-type": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - Network accessline 1115
"version": "2.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", - Network accessline 1116
"resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - Network accessline 1122
"funding": { "type": "opencollective", "url": "https://opencollective.com/express" - Network accessline 1123
"type": "opencollective", "url": "https://opencollective.com/express" } - Network accessline 1124
"url": "https://opencollective.com/express" - Network accessline 1127
"node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - Network accessline 1128
"version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - Network accessline 1129
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - Network accessline 1136
"node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - Network accessline 1137
"version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - Network accessline 1138
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - Network accessline 1145
"node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - Network accessline 1146
"version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - Network accessline 1147
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - Network accessline 1160
"node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - Network accessline 1161
"version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - Network accessline 1162
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - Network accessline 1166
"node_modules/zod": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", - Network accessline 1167
"version": "4.4.3", "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", - Network accessline 1168
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", - Network accessline 1170
"license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" - Network accessline 1171
"funding": { "url": "https://github.com/sponsors/colinhacks" } - Network accessline 1172
"url": "https://github.com/sponsors/colinhacks" - Network accessline 1175
"node_modules/zod-to-json-schema": { "version": "3.25.2", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", - Network accessline 1176
"version": "3.25.2", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", - Network accessline 1177
"resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",
package.json
- Executable scriptline 1
Executable file
plugin.json
- Network accessline 1
{ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", - Network accessline 2
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", - Network accessline 4
"version": "1.0.1", "description": "Search the SansFiction books catalog and manage a personal reading library (books, collections, reading progress, ratings, stats) over MCP or REST. Public catalog needs no auth; personal library uses a - Network accessline 5
"description": "Search the SansFiction books catalog and manage a personal reading library (books, collections, reading progress, ratings, stats) over MCP or REST. Public catalog needs no auth; personal library uses a bearer token.", "aut - Network accessline 6
"author": { "name": "fgbytes", "url": "https://sansfiction.com" }, - Network accessline 7
"homepage": "https://sansfiction.com", - Network accessline 8
"repository": "https://github.com/fgbytes/sansfiction-mcp",
server.json
- Network accessline 1
{ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", - Network accessline 2
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", - Network accessline 4
"description": "Search the SansFiction book catalog and manage a personal reading library (books, collections, reading progress, ratings, stats). Public catalog is open; personal library requires a bearer token.", "version": "1.0.0", "w - Network accessline 5
"version": "1.0.0", "websiteUrl": "https://sansfiction.com", "repository": { - Network accessline 6
"websiteUrl": "https://sansfiction.com", - Network accessline 7
"repository": { "url": "https://github.com/fgbytes/sansfiction-mcp", "source": "github" - Network accessline 8
"url": "https://github.com/fgbytes/sansfiction-mcp", - Network accessline 12
{ "type": "streamable-http", "url": "https://sansfiction.com/api/mcp", - Network accessline 13
"type": "streamable-http", "url": "https://sansfiction.com/api/mcp", "headers": [ - Network accessline 14
"url": "https://sansfiction.com/api/mcp", - Network accessline 16
{ "name": "Authorization", "description": "Bearer <token> (sf_mcp_...) for personal-library tools; omit for public catalog access. Generate a token at https://sansfiction.com/docs/agents", - Network accessline 17
"name": "Authorization", "description": "Bearer <token> (sf_mcp_...) for personal-library tools; omit for public catalog access. Generate a token at https://sansfiction.com/docs/agents", "isRequired": false, - Network accessline 18
"description": "Bearer <token> (sf_mcp_...) for personal-library tools; omit for public catalog access. Generate a token at https://sansfiction.com/docs/agents",
skills/sansfiction-catalog/SKILL.md
- Network accessline 7
<!-- Canonical copy of this skill is served at: https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md - Network accessline 8
Canonical copy of this skill is served at: https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md Source of truth: web/fgbook/lib/agents/discovery.ts (SANSFICTION_CATALOG_SKILL). - Network accessline 9
https://sansfiction.com/.well-known/agent-skills/sansfiction-catalog/SKILL.md - Network accessline 21
Base URL: `https://sansfiction.com` - Network accessline 32
A signed-in user generates a token at `https://sansfiction.com/docs/agents`. - Network accessline 43
curl "https://sansfiction.com/api/v1/catalog/search?q=dune&limit=5" - Network accessline 59
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Network accessline 60
"https://sansfiction.com/api/v1/library/books?status=reading" - Network accessline 79
MCP-native clients can connect to `https://sansfiction.com/api/mcp`
test/smoke.mjs
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 58 facts
- Network access in prose of documentationREADME.md:3Low confidence
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:10Low confidence
- Network access in prose of documentationREADME.md:11Low confidence
- Network access in code of documentationREADME.md:16Low confidence
- Network access in prose of documentationREADME.md:19Low confidence
- Network access in prose of documentationREADME.md:21Low confidence
- Network access in code of documentationREADME.md:26Low confidence
- Network access in code of documentationREADME.md:27Low confidence
- Network access in code of documentationREADME.md:29Low confidence
- Network access in code of documentationREADME.md:30Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:30Low confidence
- Network access in code of documentationREADME.md:31Low confidence
- Network access in prose of documentationREADME.md:52Low confidence
- Network access in prose of documentationREADME.md:53Low confidence
- Network access in prose of documentationREADME.md:54Low confidence
- Network access in prose of documentationREADME.md:55Low confidence
- Network access in prose of documentationREADME.md:56Low confidence
- Network access in prose of documentationREADME.md:60Low confidence
- Network access in prose of documentationREADME.md:61Low confidence
- Network access in prose of documentationREADME.md:83Low confidence
- Network access in prose of documentationREADME.md:84Low confidence
- Network access in prose of documentationREADME.md:85Low confidence
- Network access in prose of the SKILL.mdSKILL.md:7Low confidence
- Network access in prose of the SKILL.mdSKILL.md:8Low confidence
- Network access in prose of the SKILL.mdSKILL.md:9Low confidence
- Network access in prose of the SKILL.mdSKILL.md:21Low confidence
- Network access in prose of the SKILL.mdSKILL.md:32Low confidence
- Network access in code of the SKILL.mdSKILL.md:43High confidence
- Network access in code of the SKILL.mdSKILL.md:59High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:59Low confidence
- Network access in code of the SKILL.mdSKILL.md:60High confidence
- Network access in prose of the SKILL.mdSKILL.md:79Low confidence
- Executable script in code of a file that runsindex.js:1High confidence
- Network access in a comment of a file that runsindex.js:6Low confidence
- Network access in a comment of a file that runsindex.js:7Low confidence
- Network access in a comment of a file that runsindex.js:8Low confidence
- Network access in a comment of a file that runsindex.js:9Low confidence
- Network access in a comment of a file that runsindex.js:10Low confidence
- Network access in a comment of a file that runsindex.js:11Low confidence
- Network access in code of a file that runsindex.js:21High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueindex.js:22Low confidence
- Network access in code of a file that runsindex.js:139High confidence
- Network access in code of a file that runsindex.js:395High confidence
- Network access in code of a file that runsindex.js:396High confidence
- Network access in code of a file that runsindex.js:397High confidence
- Executable script in code of a file that runspackage.json:1High confidence
- Network access in prose of the SKILL.mdsansfiction-catalog/SKILL.md:7Low confidence
- Network access in prose of the SKILL.mdsansfiction-catalog/SKILL.md:8Low confidence
- Network access in prose of the SKILL.mdsansfiction-catalog/SKILL.md:9Low confidence
and 8 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.