storno-cli 1.0.9 → 1.0.10
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/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +26 -0
- package/dist/http-server.js.map +1 -1
- package/dist/landing.d.ts +8 -0
- package/dist/landing.d.ts.map +1 -0
- package/dist/landing.js +346 -0
- package/dist/landing.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAuPH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA4HhE"}
|
package/dist/http-server.js
CHANGED
|
@@ -14,6 +14,7 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
|
|
|
14
14
|
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
15
15
|
import { createMcpServer } from './server.js';
|
|
16
16
|
import { getConfig } from './config.js';
|
|
17
|
+
import { getLandingHtml } from './landing.js';
|
|
17
18
|
const sessions = new Map();
|
|
18
19
|
function setCorsHeaders(res) {
|
|
19
20
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
@@ -260,6 +261,31 @@ export function startHttpServer(port, host) {
|
|
|
260
261
|
res.end('Method Not Allowed');
|
|
261
262
|
return;
|
|
262
263
|
}
|
|
264
|
+
// Landing page
|
|
265
|
+
if (url.pathname === '/' && req.method === 'GET') {
|
|
266
|
+
const baseUrl = getPublicBaseUrl(req);
|
|
267
|
+
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
268
|
+
res.end(getLandingHtml(baseUrl));
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
// Status API
|
|
272
|
+
if (url.pathname === '/api/status' && req.method === 'GET') {
|
|
273
|
+
const status = {
|
|
274
|
+
server: 'storno-mcp',
|
|
275
|
+
version: '1.0.9',
|
|
276
|
+
activeSessions: sessions.size,
|
|
277
|
+
uptime: process.uptime(),
|
|
278
|
+
};
|
|
279
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
280
|
+
res.end(JSON.stringify(status));
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
// Favicon (avoid 404 noise)
|
|
284
|
+
if (url.pathname === '/favicon.ico') {
|
|
285
|
+
res.writeHead(204);
|
|
286
|
+
res.end();
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
263
289
|
// Only handle /mcp for MCP protocol
|
|
264
290
|
if (url.pathname !== '/mcp') {
|
|
265
291
|
res.writeHead(404);
|
package/dist/http-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Landing page for the Storno MCP server.
|
|
3
|
+
* Returns a self-contained HTML page with embedded Tailwind CSS and inline JS.
|
|
4
|
+
* Design matches storno.ro frontend: Public Sans font, blue primary, zinc neutral,
|
|
5
|
+
* rounded-lg cards with border, bg-primary/10 icon rings, decorative circles.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getLandingHtml(baseUrl: string): string;
|
|
8
|
+
//# sourceMappingURL=landing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landing.d.ts","sourceRoot":"","sources":["../src/landing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmVtD"}
|
package/dist/landing.js
ADDED
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Landing page for the Storno MCP server.
|
|
3
|
+
* Returns a self-contained HTML page with embedded Tailwind CSS and inline JS.
|
|
4
|
+
* Design matches storno.ro frontend: Public Sans font, blue primary, zinc neutral,
|
|
5
|
+
* rounded-lg cards with border, bg-primary/10 icon rings, decorative circles.
|
|
6
|
+
*/
|
|
7
|
+
export function getLandingHtml(baseUrl) {
|
|
8
|
+
const mcpUrl = `${baseUrl}/mcp`;
|
|
9
|
+
return `<!DOCTYPE html>
|
|
10
|
+
<html lang="en">
|
|
11
|
+
<head>
|
|
12
|
+
<meta charset="UTF-8">
|
|
13
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
14
|
+
<title>Storno MCP Server</title>
|
|
15
|
+
<meta name="description" content="Connect your AI tools to Storno via the Model Context Protocol. Manage invoices, clients, and e-Factura from Claude, Cursor, and more.">
|
|
16
|
+
<link rel="icon" href="https://storno.ro/favicon.ico">
|
|
17
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
18
|
+
<script>
|
|
19
|
+
tailwind.config = {
|
|
20
|
+
theme: {
|
|
21
|
+
extend: {
|
|
22
|
+
colors: {
|
|
23
|
+
primary: { 50: '#eff6ff', 100: '#dbeafe', 200: '#bfdbfe', 300: '#93c5fd', 400: '#60a5fa', 500: '#3b82f6', 600: '#2563eb', 700: '#1d4ed8', 800: '#1e40af', 900: '#1e3a8a', 950: '#172554' },
|
|
24
|
+
muted: '#71717a',
|
|
25
|
+
},
|
|
26
|
+
fontFamily: {
|
|
27
|
+
sans: ['"Public Sans"', 'system-ui', '-apple-system', 'sans-serif'],
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
34
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
35
|
+
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet">
|
|
36
|
+
<style>
|
|
37
|
+
.copy-btn { transition: all 0.15s ease; }
|
|
38
|
+
.copy-btn:active { transform: scale(0.95); }
|
|
39
|
+
.fade-in { animation: fadeIn 0.6s ease-out; }
|
|
40
|
+
.fade-in-delay { animation: fadeIn 0.6s ease-out 0.15s both; }
|
|
41
|
+
@keyframes fadeIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
|
|
42
|
+
pre code { font-size: 0.8125rem; line-height: 1.6; }
|
|
43
|
+
.card-hover { transition: box-shadow 0.2s ease, border-color 0.2s ease; }
|
|
44
|
+
.card-hover:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.05); border-color: #bfdbfe; }
|
|
45
|
+
.dot-pulse { animation: pulse 2s ease-in-out infinite; }
|
|
46
|
+
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
|
|
47
|
+
@keyframes float-a {
|
|
48
|
+
0% { transform: translateY(0px) translateX(0px) rotate(0deg); }
|
|
49
|
+
25% { transform: translateY(-14px) translateX(6px) rotate(3deg); }
|
|
50
|
+
50% { transform: translateY(-8px) translateX(-4px) rotate(-2deg); }
|
|
51
|
+
75% { transform: translateY(-18px) translateX(8px) rotate(4deg); }
|
|
52
|
+
100% { transform: translateY(0px) translateX(0px) rotate(0deg); }
|
|
53
|
+
}
|
|
54
|
+
</style>
|
|
55
|
+
</head>
|
|
56
|
+
<body class="bg-white text-zinc-900 antialiased">
|
|
57
|
+
|
|
58
|
+
<!-- Header — sticky, backdrop-blur, border-b (matches storno.ro) -->
|
|
59
|
+
<header class="bg-white/75 backdrop-blur-lg border-b border-zinc-200 sticky top-0 z-50">
|
|
60
|
+
<div class="max-w-5xl mx-auto px-6 h-16 flex items-center justify-between">
|
|
61
|
+
<div class="flex items-center gap-3">
|
|
62
|
+
<a href="https://storno.ro" target="_blank" class="flex items-center gap-2">
|
|
63
|
+
<img src="https://storno.ro/_nuxt/logo.DdVqVFnw.png" alt="Storno.ro" class="h-7 w-auto">
|
|
64
|
+
</a>
|
|
65
|
+
<span class="text-xs font-medium bg-primary-500/10 text-primary-600 px-2 py-0.5 rounded-full ring-1 ring-inset ring-primary-500/25">MCP Server</span>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="flex items-center gap-5">
|
|
68
|
+
<div id="status-badge" class="flex items-center gap-1.5 text-sm text-zinc-400">
|
|
69
|
+
<span class="w-2 h-2 rounded-full bg-zinc-300 dot-pulse"></span>
|
|
70
|
+
<span>Checking...</span>
|
|
71
|
+
</div>
|
|
72
|
+
<a href="https://storno.ro" target="_blank" class="text-sm text-muted hover:text-zinc-900 transition-colors hidden sm:block">storno.ro</a>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</header>
|
|
76
|
+
|
|
77
|
+
<main class="max-w-5xl mx-auto px-6 relative overflow-hidden">
|
|
78
|
+
|
|
79
|
+
<!-- Decorative circles (matches auth.vue pattern) -->
|
|
80
|
+
<div class="absolute -top-24 -right-24 w-96 h-96 bg-primary-500/5 rounded-full pointer-events-none"></div>
|
|
81
|
+
<div class="absolute top-96 -left-32 w-[500px] h-[500px] bg-primary-500/5 rounded-full pointer-events-none"></div>
|
|
82
|
+
|
|
83
|
+
<!-- Hero -->
|
|
84
|
+
<section class="pt-16 sm:pt-20 pb-14 fade-in relative">
|
|
85
|
+
<div class="max-w-2xl">
|
|
86
|
+
<h1 class="text-4xl sm:text-5xl font-extrabold tracking-tight text-zinc-900 leading-[1.1]">
|
|
87
|
+
Connect your <span class="text-primary-600">AI</span> to Storno
|
|
88
|
+
</h1>
|
|
89
|
+
<p class="mt-5 text-lg text-muted leading-relaxed">Use the Model Context Protocol (MCP) to let Claude, Cursor, and other AI tools manage your invoices, clients, and e-Factura workflow.</p>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<div class="mt-8 flex items-center gap-3 bg-white border border-zinc-200 rounded-xl px-4 py-3 max-w-xl shadow-sm">
|
|
93
|
+
<code class="flex-1 text-sm font-mono text-zinc-600 truncate select-all">${mcpUrl}</code>
|
|
94
|
+
<button onclick="copyText('${mcpUrl}', this)" class="copy-btn shrink-0 text-sm font-medium text-primary-600 hover:text-primary-700 cursor-pointer px-3 py-1 rounded-lg hover:bg-primary-500/10 transition-colors">Copy URL</button>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<!-- Live status -->
|
|
98
|
+
<div class="mt-5 flex items-center gap-6 flex-wrap">
|
|
99
|
+
<div class="flex items-center gap-2">
|
|
100
|
+
<span id="status-dot" class="w-2.5 h-2.5 rounded-full bg-zinc-300 dot-pulse"></span>
|
|
101
|
+
<span id="status-text" class="text-sm text-zinc-400">Checking...</span>
|
|
102
|
+
</div>
|
|
103
|
+
<div id="status-meta" class="flex items-center gap-5 text-sm text-muted" style="display:none">
|
|
104
|
+
<span>Sessions: <span id="status-sessions" class="font-medium text-zinc-700">-</span></span>
|
|
105
|
+
<span>Uptime: <span id="status-uptime" class="font-medium text-zinc-700">-</span></span>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</section>
|
|
109
|
+
|
|
110
|
+
<!-- Connect to Claude — primary card -->
|
|
111
|
+
<section class="pb-14 fade-in-delay relative">
|
|
112
|
+
<div class="bg-white border border-zinc-200 rounded-lg p-6 sm:p-8 max-w-2xl shadow-sm">
|
|
113
|
+
<div class="flex items-center gap-3 mb-2">
|
|
114
|
+
<img src="https://storno.ro/_nuxt/logo.DdVqVFnw.png" alt="Storno" class="h-6 w-auto">
|
|
115
|
+
<h2 class="text-xl font-bold text-zinc-900">Connect to Claude</h2>
|
|
116
|
+
</div>
|
|
117
|
+
<p class="text-sm text-muted mb-8 leading-relaxed">Connect Claude to Storno MCP, enabling it to manage invoices, clients, and e-Factura through a simple, secure connection without leaving your conversation.</p>
|
|
118
|
+
|
|
119
|
+
<!-- For admins/owners -->
|
|
120
|
+
<h3 class="font-bold text-sm text-zinc-900 mb-3">For Claude account admins/owners</h3>
|
|
121
|
+
|
|
122
|
+
<p class="text-sm text-zinc-600 mb-2">First, copy your Integration URL here for your Claude connector:</p>
|
|
123
|
+
<div class="flex items-center gap-2 mb-5">
|
|
124
|
+
<input type="text" readonly value="${mcpUrl}" class="flex-1 bg-zinc-50 border border-zinc-200 rounded-xl px-4 py-2.5 text-sm font-mono text-zinc-500 outline-none shadow-sm">
|
|
125
|
+
<button onclick="copyText('${mcpUrl}', this)" class="copy-btn shrink-0 border border-zinc-200 hover:border-zinc-300 bg-white text-sm font-medium text-zinc-700 px-4 py-2.5 rounded-xl transition-all cursor-pointer shadow-sm hover:shadow">Copy URL</button>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<p class="text-sm text-zinc-600 mb-3">Then, click the button below to add Storno MCP to your Claude account:</p>
|
|
129
|
+
<a href="https://claude.ai/settings/connectors" target="_blank" class="inline-flex items-center gap-2.5 border border-zinc-200 hover:border-zinc-300 bg-white text-sm font-medium text-zinc-700 px-5 py-2.5 rounded-xl transition-all shadow-sm hover:shadow mb-4">
|
|
130
|
+
<img src="https://storno.ro/_nuxt/logo.DdVqVFnw.png" alt="" class="h-4 w-auto">
|
|
131
|
+
Add to Claude
|
|
132
|
+
</a>
|
|
133
|
+
|
|
134
|
+
<p class="text-sm text-muted mb-5">Paste in your Integration URL from above and click "Add"</p>
|
|
135
|
+
|
|
136
|
+
<div class="bg-primary-500/5 border-l-4 border-primary-400 rounded-r-lg px-4 py-3 mb-8">
|
|
137
|
+
<p class="text-sm text-zinc-700"><span class="font-semibold">Note:</span> The added integration will be available to all users in the Claude organization, but each user must authorize their own Storno account.</p>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
<!-- For Claude account members -->
|
|
141
|
+
<h3 class="font-bold text-sm text-zinc-900 mb-3">For Claude account members</h3>
|
|
142
|
+
<p class="text-sm text-muted mb-3">Once your Claude account admin/owner has completed the steps above:</p>
|
|
143
|
+
<ol class="space-y-2 text-sm text-zinc-600">
|
|
144
|
+
<li class="flex gap-2.5"><span class="text-muted font-medium">1.</span> Go to <a href="https://claude.ai/settings/connectors" target="_blank" class="text-primary-600 hover:text-primary-700 underline underline-offset-2">claude.ai/settings/connectors</a></li>
|
|
145
|
+
<li class="flex gap-2.5"><span class="text-muted font-medium">2.</span> You should see the Storno integration that your admin added</li>
|
|
146
|
+
<li class="flex gap-2.5"><span class="text-muted font-medium">3.</span> Next to that integration, click "Connect" — you'll be taken to an OAuth screen</li>
|
|
147
|
+
<li class="flex gap-2.5"><span class="text-muted font-medium">4.</span> Once you've authorized the connection, you can use Storno MCP tools in Claude</li>
|
|
148
|
+
<li class="flex gap-2.5"><span class="text-muted font-medium">5.</span> View, enable, and disable Claude's access to tools with the "Search and Tools" button in chat</li>
|
|
149
|
+
</ol>
|
|
150
|
+
</div>
|
|
151
|
+
</section>
|
|
152
|
+
|
|
153
|
+
<!-- Other AI clients -->
|
|
154
|
+
<section class="pb-14 fade-in-delay relative">
|
|
155
|
+
<h2 class="text-2xl font-bold text-zinc-900 mb-6">Other AI clients</h2>
|
|
156
|
+
<div class="grid sm:grid-cols-3 gap-4">
|
|
157
|
+
|
|
158
|
+
<!-- Claude Code -->
|
|
159
|
+
<div class="bg-white border border-zinc-200 rounded-lg p-5 shadow-sm card-hover">
|
|
160
|
+
<div class="flex items-center gap-2 mb-3">
|
|
161
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center ring-1 ring-inset ring-primary-500/25">
|
|
162
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
|
|
163
|
+
</div>
|
|
164
|
+
<h3 class="font-semibold text-zinc-900">Claude Code</h3>
|
|
165
|
+
</div>
|
|
166
|
+
<p class="text-sm text-muted mb-3">Run in your terminal:</p>
|
|
167
|
+
<div class="relative">
|
|
168
|
+
<pre class="bg-zinc-900 rounded-lg p-4 overflow-x-auto"><code class="text-zinc-100">claude mcp add storno \\
|
|
169
|
+
--transport http \\
|
|
170
|
+
${mcpUrl}</code></pre>
|
|
171
|
+
<button onclick="copyText('claude mcp add storno --transport http ${mcpUrl}', this)" class="copy-btn absolute top-2.5 right-2.5 text-xs text-zinc-400 hover:text-white bg-zinc-800 hover:bg-zinc-700 px-2 py-1 rounded-md cursor-pointer transition-colors">Copy</button>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
<!-- Claude Desktop -->
|
|
176
|
+
<div class="bg-white border border-zinc-200 rounded-lg p-5 shadow-sm card-hover">
|
|
177
|
+
<div class="flex items-center gap-2 mb-3">
|
|
178
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center ring-1 ring-inset ring-primary-500/25">
|
|
179
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/></svg>
|
|
180
|
+
</div>
|
|
181
|
+
<h3 class="font-semibold text-zinc-900">Claude Desktop</h3>
|
|
182
|
+
</div>
|
|
183
|
+
<p class="text-sm text-muted mb-3">Add to your MCP config:</p>
|
|
184
|
+
<div class="relative">
|
|
185
|
+
<pre class="bg-zinc-900 rounded-lg p-4 overflow-x-auto"><code class="text-zinc-100">{
|
|
186
|
+
"mcpServers": {
|
|
187
|
+
"storno": {
|
|
188
|
+
"command": "npx",
|
|
189
|
+
"args": ["-y",
|
|
190
|
+
"mcp-remote",
|
|
191
|
+
"${mcpUrl}"]
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}</code></pre>
|
|
195
|
+
<button onclick="copyText(JSON.stringify({mcpServers:{storno:{command:'npx',args:['-y','mcp-remote','${mcpUrl}']}}}, null, 2), this)" class="copy-btn absolute top-2.5 right-2.5 text-xs text-zinc-400 hover:text-white bg-zinc-800 hover:bg-zinc-700 px-2 py-1 rounded-md cursor-pointer transition-colors">Copy</button>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
|
|
199
|
+
<!-- Cursor / Windsurf -->
|
|
200
|
+
<div class="bg-white border border-zinc-200 rounded-lg p-5 shadow-sm card-hover">
|
|
201
|
+
<div class="flex items-center gap-2 mb-3">
|
|
202
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center ring-1 ring-inset ring-primary-500/25">
|
|
203
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M13 10V3L4 14h7v7l9-11h-7z"/></svg>
|
|
204
|
+
</div>
|
|
205
|
+
<h3 class="font-semibold text-zinc-900">Cursor / Windsurf</h3>
|
|
206
|
+
</div>
|
|
207
|
+
<p class="text-sm text-muted mb-3">Add to your MCP config:</p>
|
|
208
|
+
<div class="relative">
|
|
209
|
+
<pre class="bg-zinc-900 rounded-lg p-4 overflow-x-auto"><code class="text-zinc-100">{
|
|
210
|
+
"mcpServers": {
|
|
211
|
+
"storno": {
|
|
212
|
+
"url": "${mcpUrl}"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}</code></pre>
|
|
216
|
+
<button onclick="copyText(JSON.stringify({mcpServers:{storno:{url:'${mcpUrl}'}}}, null, 2), this)" class="copy-btn absolute top-2.5 right-2.5 text-xs text-zinc-400 hover:text-white bg-zinc-800 hover:bg-zinc-700 px-2 py-1 rounded-md cursor-pointer transition-colors">Copy</button>
|
|
217
|
+
</div>
|
|
218
|
+
</div>
|
|
219
|
+
|
|
220
|
+
</div>
|
|
221
|
+
</section>
|
|
222
|
+
|
|
223
|
+
<!-- Available tools -->
|
|
224
|
+
<section class="pb-16 fade-in-delay relative">
|
|
225
|
+
<h2 class="text-sm font-bold tracking-wide text-zinc-900 uppercase mb-5">Available tools</h2>
|
|
226
|
+
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
|
|
227
|
+
|
|
228
|
+
<div class="bg-white flex items-start gap-3.5 p-4 rounded-lg border border-zinc-200 shadow-sm card-hover">
|
|
229
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center shrink-0 ring-1 ring-inset ring-primary-500/25">
|
|
230
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/></svg>
|
|
231
|
+
</div>
|
|
232
|
+
<div>
|
|
233
|
+
<h3 class="font-semibold text-sm text-zinc-900">Invoicing</h3>
|
|
234
|
+
<p class="text-xs text-muted mt-0.5 leading-relaxed">Create, issue, send invoices & e-Factura</p>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
<div class="bg-white flex items-start gap-3.5 p-4 rounded-lg border border-zinc-200 shadow-sm card-hover">
|
|
239
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center shrink-0 ring-1 ring-inset ring-primary-500/25">
|
|
240
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"/></svg>
|
|
241
|
+
</div>
|
|
242
|
+
<div>
|
|
243
|
+
<h3 class="font-semibold text-sm text-zinc-900">Clients & Products</h3>
|
|
244
|
+
<p class="text-xs text-muted mt-0.5 leading-relaxed">Manage contacts, products & services</p>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
<div class="bg-white flex items-start gap-3.5 p-4 rounded-lg border border-zinc-200 shadow-sm card-hover">
|
|
249
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center shrink-0 ring-1 ring-inset ring-primary-500/25">
|
|
250
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
|
|
251
|
+
</div>
|
|
252
|
+
<div>
|
|
253
|
+
<h3 class="font-semibold text-sm text-zinc-900">Payments & Receipts</h3>
|
|
254
|
+
<p class="text-xs text-muted mt-0.5 leading-relaxed">Record payments, generate receipts</p>
|
|
255
|
+
</div>
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
<div class="bg-white flex items-start gap-3.5 p-4 rounded-lg border border-zinc-200 shadow-sm card-hover">
|
|
259
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center shrink-0 ring-1 ring-inset ring-primary-500/25">
|
|
260
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg>
|
|
261
|
+
</div>
|
|
262
|
+
<div>
|
|
263
|
+
<h3 class="font-semibold text-sm text-zinc-900">Reports & Exports</h3>
|
|
264
|
+
<p class="text-xs text-muted mt-0.5 leading-relaxed">Financial reports, accounting exports</p>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
<div class="bg-white flex items-start gap-3.5 p-4 rounded-lg border border-zinc-200 shadow-sm card-hover">
|
|
269
|
+
<div class="w-8 h-8 rounded-lg bg-primary-500/10 flex items-center justify-center shrink-0 ring-1 ring-inset ring-primary-500/25">
|
|
270
|
+
<svg class="w-4 h-4 text-primary-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/></svg>
|
|
271
|
+
</div>
|
|
272
|
+
<div>
|
|
273
|
+
<h3 class="font-semibold text-sm text-zinc-900">Company management</h3>
|
|
274
|
+
<p class="text-xs text-muted mt-0.5 leading-relaxed">Companies, settings, document series</p>
|
|
275
|
+
</div>
|
|
276
|
+
</div>
|
|
277
|
+
|
|
278
|
+
</div>
|
|
279
|
+
</section>
|
|
280
|
+
|
|
281
|
+
</main>
|
|
282
|
+
|
|
283
|
+
<!-- Footer -->
|
|
284
|
+
<footer class="border-t border-zinc-200 bg-white">
|
|
285
|
+
<div class="max-w-5xl mx-auto px-6 py-8 flex flex-col sm:flex-row items-center justify-between gap-4 text-sm text-muted">
|
|
286
|
+
<div class="flex items-center gap-2.5">
|
|
287
|
+
<img src="https://storno.ro/_nuxt/logo.DdVqVFnw.png" alt="Storno.ro" class="h-4 w-auto opacity-50">
|
|
288
|
+
<span>© ${new Date().getFullYear()} Storno.ro</span>
|
|
289
|
+
</div>
|
|
290
|
+
<div class="flex items-center gap-6">
|
|
291
|
+
<a href="https://storno.ro" target="_blank" class="hover:text-zinc-900 transition-colors">Website</a>
|
|
292
|
+
<a href="https://docs.storno.ro" target="_blank" class="hover:text-zinc-900 transition-colors">Docs</a>
|
|
293
|
+
<a href="https://github.com/stornoro/storno-cli" target="_blank" class="hover:text-zinc-900 transition-colors">GitHub</a>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</footer>
|
|
297
|
+
|
|
298
|
+
<script>
|
|
299
|
+
function copyText(text, btn) {
|
|
300
|
+
navigator.clipboard.writeText(text).then(function() {
|
|
301
|
+
var orig = btn.textContent;
|
|
302
|
+
btn.textContent = 'Copied!';
|
|
303
|
+
btn.classList.add('text-emerald-600');
|
|
304
|
+
setTimeout(function() { btn.textContent = orig; btn.classList.remove('text-emerald-600'); }, 1500);
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function formatUptime(seconds) {
|
|
309
|
+
var d = Math.floor(seconds / 86400);
|
|
310
|
+
var h = Math.floor((seconds % 86400) / 3600);
|
|
311
|
+
var m = Math.floor((seconds % 3600) / 60);
|
|
312
|
+
if (d > 0) return d + 'd ' + h + 'h';
|
|
313
|
+
if (h > 0) return h + 'h ' + m + 'm';
|
|
314
|
+
return m + 'm';
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
function fetchStatus() {
|
|
318
|
+
fetch('/api/status')
|
|
319
|
+
.then(function(r) { return r.json(); })
|
|
320
|
+
.then(function(data) {
|
|
321
|
+
document.getElementById('status-dot').className = 'w-2.5 h-2.5 rounded-full bg-emerald-500';
|
|
322
|
+
document.getElementById('status-dot').style.boxShadow = '0 0 0 3px rgba(16,185,129,0.15)';
|
|
323
|
+
document.getElementById('status-text').textContent = 'Online';
|
|
324
|
+
document.getElementById('status-text').className = 'text-sm font-medium text-emerald-700';
|
|
325
|
+
document.getElementById('status-sessions').textContent = data.activeSessions;
|
|
326
|
+
document.getElementById('status-uptime').textContent = formatUptime(data.uptime);
|
|
327
|
+
document.getElementById('status-meta').style.display = 'flex';
|
|
328
|
+
document.getElementById('status-badge').innerHTML = '<span class="w-2 h-2 rounded-full bg-emerald-500" style="box-shadow:0 0 0 2px rgba(16,185,129,0.2)"></span><span class="text-sm font-medium text-emerald-700">Online</span>';
|
|
329
|
+
})
|
|
330
|
+
.catch(function() {
|
|
331
|
+
document.getElementById('status-dot').className = 'w-2.5 h-2.5 rounded-full bg-red-500';
|
|
332
|
+
document.getElementById('status-dot').style.boxShadow = '0 0 0 3px rgba(239,68,68,0.15)';
|
|
333
|
+
document.getElementById('status-text').textContent = 'Offline';
|
|
334
|
+
document.getElementById('status-text').className = 'text-sm font-medium text-red-600';
|
|
335
|
+
document.getElementById('status-badge').innerHTML = '<span class="w-2 h-2 rounded-full bg-red-500"></span><span class="text-sm font-medium text-red-600">Offline</span>';
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
fetchStatus();
|
|
340
|
+
setInterval(fetchStatus, 30000);
|
|
341
|
+
</script>
|
|
342
|
+
|
|
343
|
+
</body>
|
|
344
|
+
</html>`;
|
|
345
|
+
}
|
|
346
|
+
//# sourceMappingURL=landing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landing.js","sourceRoot":"","sources":["../src/landing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC;IAEhC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFAoF0E,MAAM;qCACpD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA8BI,MAAM;uCACd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6CzC,MAAM;gFACsE,MAAM;;;;;;;;;;;;;;;;;;;;WAoB3E,MAAM;;;;mHAIkG,MAAM;;;;;;;;;;;;;;;;;gBAiBzG,MAAM;;;;iFAI2D,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAwEhE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwDvC,CAAC;AACT,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "storno-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "MCP server for the Storno.ro e-invoicing API — enables AI tools (Claude, Cursor, Windsurf) to manage invoices, clients, companies, and the full e-Factura workflow",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|