charon-hooks 0.1.0 → 0.1.7
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/client/assets/{index-hnnw32hs.js → index-BBZqXOn2.js} +9 -9
- package/dist/client/index.html +1 -1
- package/dist/server/index.js +36 -9
- package/package.json +4 -1
- package/dist/client/file.svg +0 -1
- package/dist/client/globe.svg +0 -1
- package/dist/client/next.svg +0 -1
- package/dist/client/vercel.svg +0 -1
- package/dist/client/window.svg +0 -1
package/dist/client/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Charon</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico" />
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BBZqXOn2.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-Ccj2TupZ.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="antialiased">
|
package/dist/server/index.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
// src/server/app.ts
|
|
2
2
|
import { Hono as Hono7 } from "hono";
|
|
3
|
-
import {
|
|
3
|
+
import { dirname as dirname2, resolve as resolve3 } from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
4
5
|
|
|
5
|
-
// src/server/middleware/
|
|
6
|
+
// src/server/middleware/logger.ts
|
|
6
7
|
import { createMiddleware } from "hono/factory";
|
|
8
|
+
var QUIET_PATHS = [
|
|
9
|
+
"/api/triggers",
|
|
10
|
+
"/api/runs",
|
|
11
|
+
"/api/tunnel"
|
|
12
|
+
];
|
|
13
|
+
var quietLogger = createMiddleware(async (c, next) => {
|
|
14
|
+
const start = Date.now();
|
|
15
|
+
const method = c.req.method;
|
|
16
|
+
const path = new URL(c.req.url).pathname;
|
|
17
|
+
await next();
|
|
18
|
+
const status = c.res.status;
|
|
19
|
+
const elapsed = Date.now() - start;
|
|
20
|
+
const isQuietPath = QUIET_PATHS.some((p) => path === p || path.startsWith(p + "?"));
|
|
21
|
+
if (method === "GET" && isQuietPath && status >= 200 && status < 300) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const statusColor = status >= 500 ? "31" : status >= 400 ? "33" : status >= 300 ? "36" : "32";
|
|
25
|
+
console.log(
|
|
26
|
+
` \x1B[90m-->\x1B[0m \x1B[1m${method}\x1B[0m ${path} \x1B[${statusColor}m${status}\x1B[0m ${elapsed}ms`
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// src/server/middleware/static.ts
|
|
31
|
+
import { createMiddleware as createMiddleware2 } from "hono/factory";
|
|
7
32
|
import { readFileSync, existsSync, statSync } from "fs";
|
|
8
33
|
import { join, extname, resolve } from "path";
|
|
9
34
|
var MIME_TYPES = {
|
|
@@ -25,12 +50,12 @@ var MIME_TYPES = {
|
|
|
25
50
|
function serveStatic({ root, path: fallbackPath }) {
|
|
26
51
|
const rootDir = root ? resolve(root) : process.cwd();
|
|
27
52
|
const fallback = fallbackPath ? resolve(fallbackPath) : null;
|
|
28
|
-
return
|
|
53
|
+
return createMiddleware2(async (c, next) => {
|
|
29
54
|
if (c.req.method !== "GET" && c.req.method !== "HEAD") {
|
|
30
55
|
return next();
|
|
31
56
|
}
|
|
32
57
|
const url = new URL(c.req.url);
|
|
33
|
-
|
|
58
|
+
const pathname = decodeURIComponent(url.pathname);
|
|
34
59
|
if (pathname.includes("..")) {
|
|
35
60
|
return next();
|
|
36
61
|
}
|
|
@@ -713,7 +738,7 @@ async function startTunnel(config, port = 3e3) {
|
|
|
713
738
|
}
|
|
714
739
|
try {
|
|
715
740
|
await ngrok.disconnect();
|
|
716
|
-
await new Promise((
|
|
741
|
+
await new Promise((resolve4) => setTimeout(resolve4, 1e3));
|
|
717
742
|
} catch {
|
|
718
743
|
}
|
|
719
744
|
listener = null;
|
|
@@ -1497,7 +1522,7 @@ var taskRoutes = new Hono6();
|
|
|
1497
1522
|
taskRoutes.post("/complete", async (c) => {
|
|
1498
1523
|
try {
|
|
1499
1524
|
const body = await c.req.json();
|
|
1500
|
-
const { summary
|
|
1525
|
+
const { summary } = body;
|
|
1501
1526
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1502
1527
|
const db2 = getDb();
|
|
1503
1528
|
const recentRuns = listRuns(db2, { status: "completed", limit: 10 });
|
|
@@ -1564,8 +1589,10 @@ async function tunnelProxyMiddleware(c, next) {
|
|
|
1564
1589
|
}
|
|
1565
1590
|
|
|
1566
1591
|
// src/server/app.ts
|
|
1592
|
+
var __dirname = dirname2(fileURLToPath(import.meta.url));
|
|
1593
|
+
var clientDir = resolve3(__dirname, "../client");
|
|
1567
1594
|
var app = new Hono7();
|
|
1568
|
-
app.use("*",
|
|
1595
|
+
app.use("*", quietLogger);
|
|
1569
1596
|
app.use("*", tunnelProxyMiddleware);
|
|
1570
1597
|
app.route("/api/triggers", triggersRoutes);
|
|
1571
1598
|
app.route("/api/runs", runsRoutes);
|
|
@@ -1573,8 +1600,8 @@ app.route("/api/sanitizers", sanitizersRoutes);
|
|
|
1573
1600
|
app.route("/api/tunnel", tunnelRoutes);
|
|
1574
1601
|
app.route("/api/webhook", webhookRoutes);
|
|
1575
1602
|
app.route("/api/task", taskRoutes);
|
|
1576
|
-
app.use("/*", serveStatic({ root:
|
|
1577
|
-
app.get("*", serveStatic({ path: "
|
|
1603
|
+
app.use("/*", serveStatic({ root: clientDir }));
|
|
1604
|
+
app.get("*", serveStatic({ path: resolve3(clientDir, "index.html") }));
|
|
1578
1605
|
|
|
1579
1606
|
// src/server/init.ts
|
|
1580
1607
|
async function initializeServices() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "charon-hooks",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Autonomous task triggering service - webhooks and cron to AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"zod": "^4.3.5"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@eslint/js": "^9.39.2",
|
|
48
49
|
"@tailwindcss/postcss": "^4",
|
|
49
50
|
"@tailwindcss/vite": "^4",
|
|
50
51
|
"@types/better-sqlite3": "^7.6.13",
|
|
@@ -55,10 +56,12 @@
|
|
|
55
56
|
"@types/react-dom": "^19",
|
|
56
57
|
"@vitejs/plugin-react": "^4.4.0",
|
|
57
58
|
"eslint": "^9",
|
|
59
|
+
"globals": "^17.0.0",
|
|
58
60
|
"tailwindcss": "^4",
|
|
59
61
|
"tsup": "^8.5.1",
|
|
60
62
|
"tw-animate-css": "^1.4.0",
|
|
61
63
|
"typescript": "5.9.3",
|
|
64
|
+
"typescript-eslint": "^8.52.0",
|
|
62
65
|
"vite": "^6.0.0"
|
|
63
66
|
},
|
|
64
67
|
"ignoreScripts": [
|
package/dist/client/file.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
|
package/dist/client/globe.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
|
package/dist/client/next.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
package/dist/client/vercel.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
|
package/dist/client/window.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
|