@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.
Files changed (71) hide show
  1. package/README.md +70 -0
  2. package/data/snapshot.json +534805 -0
  3. package/dist/index.d.ts +186 -0
  4. package/dist/index.js +0 -0
  5. package/logos/airtable.svg +1 -0
  6. package/logos/anthropic.svg +1 -0
  7. package/logos/asana.svg +1 -0
  8. package/logos/atlassian.svg +1 -0
  9. package/logos/auth0.svg +1 -0
  10. package/logos/brave.svg +1 -0
  11. package/logos/claude.svg +1 -0
  12. package/logos/clickup.svg +1 -0
  13. package/logos/cloudflare.svg +1 -0
  14. package/logos/confluence.svg +1 -0
  15. package/logos/discord.svg +1 -0
  16. package/logos/docker.svg +1 -0
  17. package/logos/dropbox.svg +1 -0
  18. package/logos/figma.svg +1 -0
  19. package/logos/firebase.svg +1 -0
  20. package/logos/github.svg +1 -0
  21. package/logos/gitlab.svg +1 -0
  22. package/logos/gmail.svg +1 -0
  23. package/logos/googlecalendar.svg +1 -0
  24. package/logos/googlecloud.svg +1 -0
  25. package/logos/googledocs.svg +1 -0
  26. package/logos/googledrive.svg +1 -0
  27. package/logos/googlemaps.svg +1 -0
  28. package/logos/googlesheets.svg +1 -0
  29. package/logos/grafana.svg +1 -0
  30. package/logos/hubspot.svg +1 -0
  31. package/logos/huggingface.svg +1 -0
  32. package/logos/intercom.svg +1 -0
  33. package/logos/jfrog.svg +1 -0
  34. package/logos/jira.svg +1 -0
  35. package/logos/kubernetes.svg +1 -0
  36. package/logos/linear.svg +1 -0
  37. package/logos/mailchimp.svg +1 -0
  38. package/logos/mapbox.svg +1 -0
  39. package/logos/mongodb.svg +1 -0
  40. package/logos/mysql.svg +1 -0
  41. package/logos/neo4j.svg +1 -0
  42. package/logos/newrelic.svg +1 -0
  43. package/logos/notion.svg +1 -0
  44. package/logos/obsidian.svg +1 -0
  45. package/logos/pagerduty.svg +1 -0
  46. package/logos/paypal.svg +1 -0
  47. package/logos/perplexity.svg +1 -0
  48. package/logos/planetscale.svg +1 -0
  49. package/logos/postgresql.svg +1 -0
  50. package/logos/posthog.svg +1 -0
  51. package/logos/railway.svg +1 -0
  52. package/logos/raycast.svg +1 -0
  53. package/logos/reddit.svg +1 -0
  54. package/logos/redis.svg +1 -0
  55. package/logos/sentry.svg +1 -0
  56. package/logos/shopify.svg +1 -0
  57. package/logos/snowflake.svg +1 -0
  58. package/logos/snyk.svg +1 -0
  59. package/logos/stripe.svg +1 -0
  60. package/logos/supabase.svg +1 -0
  61. package/logos/telegram.svg +1 -0
  62. package/logos/terraform.svg +1 -0
  63. package/logos/todoist.svg +1 -0
  64. package/logos/trello.svg +1 -0
  65. package/logos/vercel.svg +1 -0
  66. package/logos/whatsapp.svg +1 -0
  67. package/logos/x.svg +1 -0
  68. package/logos/youtube.svg +1 -0
  69. package/logos/zendesk.svg +1 -0
  70. package/logos/zoom.svg +1 -0
  71. 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.