feat: add npm-like features to tool detail page and update keyword to tpmjs
- Add download trend sparkline chart showing 30-day download history - Add bundle size component with minified/gzipped sizes via bundlephobia proxy - Add more install commands: yarn, bun, deno (in addition to npm, pnpm) - Change discovery keyword from "tpmjs-tool" to "tpmjs" across entire codebase - Update sync endpoints to use new keyword - Update all documentation and package.json files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
6c28f01633
commit
f24eebc196
42 changed files with 426 additions and 97 deletions
|
|
@ -53,7 +53,7 @@ const tutorials = [
|
|||
/>
|
||||
</svg>
|
||||
),
|
||||
features: ['tpmjs-tool keyword', 'Schema extraction', 'Quality scoring'],
|
||||
features: ['tpmjs keyword', 'Schema extraction', 'Quality scoring'],
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
import { motion } from 'framer-motion';
|
||||
|
||||
const steps = [
|
||||
{ num: '1', text: 'Add "tpmjs-tool" to your package.json keywords' },
|
||||
{ num: '1', text: 'Add "tpmjs" to your package.json keywords' },
|
||||
{ num: '2', text: 'Define your tools in the "tpmjs" field' },
|
||||
{ num: '3', text: 'npm publish' },
|
||||
];
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
import { motion } from 'framer-motion';
|
||||
|
||||
const syncSteps = [
|
||||
{ step: '1', text: 'You publish to npm with tpmjs-tool keyword', color: 'purple' },
|
||||
{ step: '1', text: 'You publish to npm with tpmjs keyword', color: 'purple' },
|
||||
{ step: '2', text: 'Registry detects your package within 2 minutes', color: 'cyan' },
|
||||
{ step: '3', text: 'We extract schemas from your package.json', color: 'emerald' },
|
||||
{ step: '4', text: 'Your tool appears in search results', color: 'yellow' },
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ const packageJson = [
|
|||
{ id: 'name', line: ' "name": "@your-org/your-tools",' },
|
||||
{ id: 'version', line: ' "version": "1.0.0",' },
|
||||
{ id: 'keywords-open', line: ' "keywords": [' },
|
||||
{ id: 'keyword', line: ' "tpmjs-tool"' },
|
||||
{ id: 'keyword', line: ' "tpmjs"' },
|
||||
{ id: 'keywords-close', line: ' ],' },
|
||||
{ id: 'tpmjs-open', line: ' "tpmjs": {' },
|
||||
{ id: 'tools-open', line: ' "tools": [{ ... }]' },
|
||||
|
|
@ -43,7 +43,7 @@ export function PackageSetupSlide(): React.ReactElement {
|
|||
<div
|
||||
key={item.id}
|
||||
className={
|
||||
item.line.includes('tpmjs-tool')
|
||||
item.line.includes('tpmjs')
|
||||
? 'text-cyan-400'
|
||||
: item.line.includes('"tpmjs"')
|
||||
? 'text-purple-400'
|
||||
|
|
@ -66,7 +66,7 @@ export function PackageSetupSlide(): React.ReactElement {
|
|||
className="text-left space-y-4"
|
||||
>
|
||||
<div className="p-4 rounded-lg bg-white/5 border border-cyan-500/20">
|
||||
<div className="text-sm font-medium text-cyan-400 mb-1">tpmjs-tool keyword</div>
|
||||
<div className="text-sm font-medium text-cyan-400 mb-1">tpmjs keyword</div>
|
||||
<div className="text-xs text-white/50">Required. This is how we find you on npm.</div>
|
||||
</div>
|
||||
<div className="p-4 rounded-lg bg-white/5 border border-purple-500/20">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { motion } from 'framer-motion';
|
|||
const packageJsonLines = [
|
||||
{ id: 'open', line: '{' },
|
||||
{ id: 'name', line: ' "name": "@your-org/your-tools",' },
|
||||
{ id: 'keywords', line: ' "keywords": ["tpmjs-tool"],' },
|
||||
{ id: 'keywords', line: ' "keywords": ["tpmjs"],' },
|
||||
{ id: 'tpmjs', line: ' "tpmjs": {' },
|
||||
{ id: 'tools', line: ' "tools": [{' },
|
||||
{ id: 'toolName', line: ' "name": "yourTool",' },
|
||||
|
|
@ -16,7 +16,7 @@ const packageJsonLines = [
|
|||
];
|
||||
|
||||
const steps = [
|
||||
{ step: '1', text: 'Add tpmjs-tool keyword', color: 'cyan' },
|
||||
{ step: '1', text: 'Add tpmjs keyword', color: 'cyan' },
|
||||
{ step: '2', text: 'Define tpmjs field with tool metadata', color: 'purple' },
|
||||
{ step: '3', text: 'npm publish', color: 'emerald' },
|
||||
];
|
||||
|
|
@ -56,7 +56,7 @@ export function GetStartedSlide(): React.ReactElement {
|
|||
<div
|
||||
key={item.id}
|
||||
className={
|
||||
item.line.includes('tpmjs-tool')
|
||||
item.line.includes('tpmjs')
|
||||
? 'text-cyan-400'
|
||||
: item.line.includes('tpmjs')
|
||||
? 'text-purple-400'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue