@hotstack/catalogue-snapshot 0.20260709.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/data/snapshot.json +534805 -0
- package/dist/index.d.ts +186 -0
- package/dist/index.js +0 -0
- package/logos/airtable.svg +1 -0
- package/logos/anthropic.svg +1 -0
- package/logos/asana.svg +1 -0
- package/logos/atlassian.svg +1 -0
- package/logos/auth0.svg +1 -0
- package/logos/brave.svg +1 -0
- package/logos/claude.svg +1 -0
- package/logos/clickup.svg +1 -0
- package/logos/cloudflare.svg +1 -0
- package/logos/confluence.svg +1 -0
- package/logos/discord.svg +1 -0
- package/logos/docker.svg +1 -0
- package/logos/dropbox.svg +1 -0
- package/logos/figma.svg +1 -0
- package/logos/firebase.svg +1 -0
- package/logos/github.svg +1 -0
- package/logos/gitlab.svg +1 -0
- package/logos/gmail.svg +1 -0
- package/logos/googlecalendar.svg +1 -0
- package/logos/googlecloud.svg +1 -0
- package/logos/googledocs.svg +1 -0
- package/logos/googledrive.svg +1 -0
- package/logos/googlemaps.svg +1 -0
- package/logos/googlesheets.svg +1 -0
- package/logos/grafana.svg +1 -0
- package/logos/hubspot.svg +1 -0
- package/logos/huggingface.svg +1 -0
- package/logos/intercom.svg +1 -0
- package/logos/jfrog.svg +1 -0
- package/logos/jira.svg +1 -0
- package/logos/kubernetes.svg +1 -0
- package/logos/linear.svg +1 -0
- package/logos/mailchimp.svg +1 -0
- package/logos/mapbox.svg +1 -0
- package/logos/mongodb.svg +1 -0
- package/logos/mysql.svg +1 -0
- package/logos/neo4j.svg +1 -0
- package/logos/newrelic.svg +1 -0
- package/logos/notion.svg +1 -0
- package/logos/obsidian.svg +1 -0
- package/logos/pagerduty.svg +1 -0
- package/logos/paypal.svg +1 -0
- package/logos/perplexity.svg +1 -0
- package/logos/planetscale.svg +1 -0
- package/logos/postgresql.svg +1 -0
- package/logos/posthog.svg +1 -0
- package/logos/railway.svg +1 -0
- package/logos/raycast.svg +1 -0
- package/logos/reddit.svg +1 -0
- package/logos/redis.svg +1 -0
- package/logos/sentry.svg +1 -0
- package/logos/shopify.svg +1 -0
- package/logos/snowflake.svg +1 -0
- package/logos/snyk.svg +1 -0
- package/logos/stripe.svg +1 -0
- package/logos/supabase.svg +1 -0
- package/logos/telegram.svg +1 -0
- package/logos/terraform.svg +1 -0
- package/logos/todoist.svg +1 -0
- package/logos/trello.svg +1 -0
- package/logos/vercel.svg +1 -0
- package/logos/whatsapp.svg +1 -0
- package/logos/x.svg +1 -0
- package/logos/youtube.svg +1 -0
- package/logos/zendesk.svg +1 -0
- package/logos/zoom.svg +1 -0
- package/package.json +37 -0
package/README.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# @hotstack/catalogue-snapshot
|
|
2
|
+
|
|
3
|
+
A versioned, offline snapshot of the HotStack Catalogue federated index —
|
|
4
|
+
every entry from the curated HotStack registry, the official MCP Registry,
|
|
5
|
+
and the Claude Code plugins marketplace, already denylist-filtered,
|
|
6
|
+
collision-reconciled, and de-duplicated by the same rules the live catalogue
|
|
7
|
+
service applies. Ship the catalogue **into** your app at build time; no
|
|
8
|
+
hosted service, no network at runtime.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
npm install --save-dev @hotstack/catalogue-snapshot
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Generation output is data you commit, so a dev dependency is the norm.
|
|
17
|
+
|
|
18
|
+
## Quickstart
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import { loadSnapshot, toMarketplaceIndex } from '@hotstack/catalogue-snapshot';
|
|
22
|
+
|
|
23
|
+
const snapshot = loadSnapshot();
|
|
24
|
+
console.log(`${snapshot.entries.length} entries from ${snapshot.sources.length} sources`);
|
|
25
|
+
|
|
26
|
+
// Pick what you bundle — tiers and scores are on every entry.
|
|
27
|
+
const picked = snapshot.entries.filter(
|
|
28
|
+
(entry) => entry.tier === 'curated' || entry.sourceId === 'claude-plugins-official'
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
// Project to a Multicode MarketplaceIndex document.
|
|
32
|
+
const { index, idMap, skipped } = toMarketplaceIndex(picked, { inlineIcons: true });
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## What's in an entry
|
|
36
|
+
|
|
37
|
+
- `id` — publisher-namespaced catalogue id (`railway/railway-mcp`)
|
|
38
|
+
- `kind` — `inline-mcp` (config-only server), `bundle` (signed downloadable
|
|
39
|
+
plugin), or `plugin` (code-bearing marketplace reference)
|
|
40
|
+
- `sourceId` / `tier` — provenance: which configured source listed it, at
|
|
41
|
+
which trust tier (`curated` > `community` > `indexed`)
|
|
42
|
+
- `logoSlug` — brand logo stem under the packaged `logos/` dir (CC0
|
|
43
|
+
simple-icons set), `null` when unmatched — never a wrong logo
|
|
44
|
+
- `score` — GitHub-derived ranking score persisted at build time (0 when the
|
|
45
|
+
snapshot was built without enrichment)
|
|
46
|
+
- `dedupPrimary` — `false` for near-duplicate listings of a tool another
|
|
47
|
+
entry represents better; demote, don't hide
|
|
48
|
+
- `native` — the normalized upstream document, verbatim
|
|
49
|
+
|
|
50
|
+
## Honesty semantics
|
|
51
|
+
|
|
52
|
+
- The catalogue never asserts safety. Tier and signature metadata inform your
|
|
53
|
+
own trust policy; unsigned content should route through your own consent
|
|
54
|
+
flow.
|
|
55
|
+
- `toMarketplaceIndex` never mutates signed bundles — their ed25519 signature
|
|
56
|
+
covers the exact JSON value, which rides through byte-identical.
|
|
57
|
+
- Entries a projection cannot express are returned in `skipped` with reasons,
|
|
58
|
+
never dropped silently.
|
|
59
|
+
|
|
60
|
+
## Regenerating the data
|
|
61
|
+
|
|
62
|
+
From the repo root (`hotstack-catalogue`):
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
npm run snapshot:build # no GitHub enrichment; scores stay 0
|
|
66
|
+
GITHUB_TOKEN=… npm run snapshot:build -- --enrich
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The builder is deterministic apart from `generatedAt` (entries sorted by id),
|
|
70
|
+
so regeneration diffs stay reviewable.
|