@agent-native/core 0.4.0 → 0.4.2
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 +31 -0
- package/dist/adapters/convex/adapter.d.ts +24 -0
- package/dist/adapters/convex/adapter.d.ts.map +1 -0
- package/dist/adapters/convex/adapter.js +125 -0
- package/dist/adapters/convex/adapter.js.map +1 -0
- package/dist/adapters/convex/index.d.ts +4 -0
- package/dist/adapters/convex/index.d.ts.map +1 -0
- package/dist/adapters/convex/index.js +3 -0
- package/dist/adapters/convex/index.js.map +1 -0
- package/dist/adapters/drizzle/adapter.d.ts +36 -0
- package/dist/adapters/drizzle/adapter.d.ts.map +1 -0
- package/dist/adapters/drizzle/adapter.js +210 -0
- package/dist/adapters/drizzle/adapter.js.map +1 -0
- package/dist/adapters/drizzle/index.d.ts +3 -0
- package/dist/adapters/drizzle/index.d.ts.map +1 -0
- package/dist/adapters/drizzle/index.js +3 -0
- package/dist/adapters/drizzle/index.js.map +1 -0
- package/dist/adapters/drizzle/schema.d.ts +146 -0
- package/dist/adapters/drizzle/schema.d.ts.map +1 -0
- package/dist/adapters/drizzle/schema.js +20 -0
- package/dist/adapters/drizzle/schema.js.map +1 -0
- package/dist/adapters/firestore/adapter.d.ts +3 -2
- package/dist/adapters/firestore/adapter.d.ts.map +1 -1
- package/dist/adapters/firestore/adapter.js +23 -6
- package/dist/adapters/firestore/adapter.js.map +1 -1
- package/dist/adapters/supabase/adapter.d.ts +2 -1
- package/dist/adapters/supabase/adapter.d.ts.map +1 -1
- package/dist/adapters/supabase/adapter.js +4 -1
- package/dist/adapters/supabase/adapter.js.map +1 -1
- package/dist/adapters/sync/config.d.ts +22 -2
- package/dist/adapters/sync/config.d.ts.map +1 -1
- package/dist/adapters/sync/config.js +175 -16
- package/dist/adapters/sync/config.js.map +1 -1
- package/dist/adapters/sync/create-file-sync.d.ts +32 -0
- package/dist/adapters/sync/create-file-sync.d.ts.map +1 -0
- package/dist/adapters/sync/create-file-sync.js +218 -0
- package/dist/adapters/sync/create-file-sync.js.map +1 -0
- package/dist/adapters/sync/file-sync.d.ts +40 -6
- package/dist/adapters/sync/file-sync.d.ts.map +1 -1
- package/dist/adapters/sync/file-sync.js +442 -97
- package/dist/adapters/sync/file-sync.js.map +1 -1
- package/dist/adapters/sync/index.d.ts +3 -2
- package/dist/adapters/sync/index.d.ts.map +1 -1
- package/dist/adapters/sync/index.js +3 -1
- package/dist/adapters/sync/index.js.map +1 -1
- package/dist/adapters/sync/merge.js +3 -2
- package/dist/adapters/sync/merge.js.map +1 -1
- package/dist/adapters/sync/types.d.ts +36 -2
- package/dist/adapters/sync/types.d.ts.map +1 -1
- package/dist/adapters/sync/types.js +22 -1
- package/dist/adapters/sync/types.js.map +1 -1
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +2 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/production-agent.d.ts +16 -0
- package/dist/agent/production-agent.d.ts.map +1 -0
- package/dist/agent/production-agent.js +152 -0
- package/dist/agent/production-agent.js.map +1 -0
- package/dist/agent/types.d.ts +38 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +2 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +2 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +37 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/client/PoweredByBadge.d.ts +14 -0
- package/dist/client/PoweredByBadge.d.ts.map +1 -0
- package/dist/client/PoweredByBadge.js +60 -0
- package/dist/client/PoweredByBadge.js.map +1 -0
- package/dist/client/ProductionAgentPanel.d.ts +10 -0
- package/dist/client/ProductionAgentPanel.d.ts.map +1 -0
- package/dist/client/ProductionAgentPanel.js +121 -0
- package/dist/client/ProductionAgentPanel.js.map +1 -0
- package/dist/client/Turnstile.d.ts +35 -0
- package/dist/client/Turnstile.d.ts.map +1 -0
- package/dist/client/Turnstile.js +77 -0
- package/dist/client/Turnstile.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/use-file-sync-status.d.ts +21 -0
- package/dist/client/use-file-sync-status.d.ts.map +1 -0
- package/dist/client/use-file-sync-status.js +65 -0
- package/dist/client/use-file-sync-status.js.map +1 -0
- package/dist/client/use-session.d.ts +16 -0
- package/dist/client/use-session.d.ts.map +1 -0
- package/dist/client/use-session.js +49 -0
- package/dist/client/use-session.js.map +1 -0
- package/dist/client/useProductionAgent.d.ts +18 -0
- package/dist/client/useProductionAgent.d.ts.map +1 -0
- package/dist/client/useProductionAgent.js +135 -0
- package/dist/client/useProductionAgent.js.map +1 -0
- package/dist/db/index.d.ts +21 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +17 -0
- package/dist/db/index.js.map +1 -0
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +5 -0
- package/dist/router/index.js.map +1 -0
- package/dist/scripts/core-scripts.d.ts +10 -0
- package/dist/scripts/core-scripts.d.ts.map +1 -0
- package/dist/scripts/core-scripts.js +15 -0
- package/dist/scripts/core-scripts.js.map +1 -0
- package/dist/scripts/db/exec.d.ts +11 -0
- package/dist/scripts/db/exec.d.ts.map +1 -0
- package/dist/scripts/db/exec.js +86 -0
- package/dist/scripts/db/exec.js.map +1 -0
- package/dist/scripts/db/index.d.ts +2 -0
- package/dist/scripts/db/index.d.ts.map +1 -0
- package/dist/scripts/db/index.js +6 -0
- package/dist/scripts/db/index.js.map +1 -0
- package/dist/scripts/db/query.d.ts +10 -0
- package/dist/scripts/db/query.d.ts.map +1 -0
- package/dist/scripts/db/query.js +96 -0
- package/dist/scripts/db/query.js.map +1 -0
- package/dist/scripts/db/schema.d.ts +12 -0
- package/dist/scripts/db/schema.d.ts.map +1 -0
- package/dist/scripts/db/schema.js +112 -0
- package/dist/scripts/db/schema.js.map +1 -0
- package/dist/scripts/index.d.ts +4 -0
- package/dist/scripts/index.d.ts.map +1 -1
- package/dist/scripts/index.js +4 -0
- package/dist/scripts/index.js.map +1 -1
- package/dist/scripts/runner.d.ts +3 -0
- package/dist/scripts/runner.d.ts.map +1 -1
- package/dist/scripts/runner.js +53 -14
- package/dist/scripts/runner.js.map +1 -1
- package/dist/server/auth.d.ts +59 -0
- package/dist/server/auth.d.ts.map +1 -0
- package/dist/server/auth.js +442 -0
- package/dist/server/auth.js.map +1 -0
- package/dist/server/captcha.d.ts +12 -0
- package/dist/server/captcha.d.ts.map +1 -0
- package/dist/server/captcha.js +43 -0
- package/dist/server/captcha.js.map +1 -0
- package/dist/server/create-server.d.ts +13 -10
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +41 -27
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/index.d.ts +5 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +6 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/missing-key.d.ts +9 -5
- package/dist/server/missing-key.d.ts.map +1 -1
- package/dist/server/missing-key.js +12 -7
- package/dist/server/missing-key.js.map +1 -1
- package/dist/server/sse.d.ts +12 -7
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +79 -15
- package/dist/server/sse.js.map +1 -1
- package/dist/vite/client.d.ts +28 -5
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +36 -15
- package/dist/vite/client.js.map +1 -1
- package/dist/vite/dev-api-server.d.ts +10 -0
- package/dist/vite/dev-api-server.d.ts.map +1 -0
- package/dist/vite/dev-api-server.js +148 -0
- package/dist/vite/dev-api-server.js.map +1 -0
- package/dist/vite/index.d.ts +2 -3
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +2 -3
- package/dist/vite/index.js.map +1 -1
- package/package.json +26 -17
- package/src/templates/default/AGENTS.md +148 -22
- package/src/templates/default/_gitignore +9 -5
- package/src/templates/default/client/entry.client.tsx +4 -0
- package/src/templates/default/client/entry.server.tsx +55 -0
- package/src/templates/default/client/root.tsx +82 -0
- package/src/templates/default/client/routes/_index.tsx +19 -0
- package/src/templates/default/client/routes.ts +4 -0
- package/src/templates/default/client/vite-env.d.ts +5 -0
- package/src/templates/default/package.json +5 -7
- package/src/templates/default/react-router.config.ts +6 -0
- package/src/templates/default/server/lib/watcher.ts +21 -0
- package/src/templates/default/server/plugins/auth.ts +5 -0
- package/src/templates/default/server/plugins/file-sync.ts +39 -0
- package/src/templates/default/server/routes/[...page].get.ts +12 -0
- package/src/templates/default/server/routes/api/events.get.ts +7 -0
- package/src/templates/default/server/routes/api/file-sync/status.get.ts +13 -0
- package/src/templates/default/server/routes/api/hello.get.ts +5 -0
- package/src/templates/default/tsconfig.json +9 -1
- package/src/templates/default/vite.config.ts +4 -1
- package/tsconfig.base.json +3 -1
- package/dist/adapters/neon/adapter.d.ts +0 -28
- package/dist/adapters/neon/adapter.d.ts.map +0 -1
- package/dist/adapters/neon/adapter.js +0 -135
- package/dist/adapters/neon/adapter.js.map +0 -1
- package/dist/adapters/neon/index.d.ts +0 -3
- package/dist/adapters/neon/index.d.ts.map +0 -1
- package/dist/adapters/neon/index.js +0 -3
- package/dist/adapters/neon/index.js.map +0 -1
- package/dist/server/production.d.ts +0 -18
- package/dist/server/production.d.ts.map +0 -1
- package/dist/server/production.js +0 -37
- package/dist/server/production.js.map +0 -1
- package/dist/vite/express-plugin.d.ts +0 -14
- package/dist/vite/express-plugin.d.ts.map +0 -1
- package/dist/vite/express-plugin.js +0 -53
- package/dist/vite/express-plugin.js.map +0 -1
- package/dist/vite/server.d.ts +0 -21
- package/dist/vite/server.d.ts.map +0 -1
- package/dist/vite/server.js +0 -68
- package/dist/vite/server.js.map +0 -1
- package/src/templates/default/index.html +0 -14
- package/src/templates/default/server/index.ts +0 -22
- package/src/templates/default/server/node-build.ts +0 -4
- package/src/templates/default/vite.config.server.ts +0 -3
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import cors from "cors";
|
|
1
|
+
import { createApp, createRouter, defineEventHandler, readBody, setResponseStatus, } from "h3";
|
|
3
2
|
import fs from "fs";
|
|
4
3
|
import path from "path";
|
|
5
4
|
import { agentEnv } from "../shared/agent-env.js";
|
|
@@ -67,51 +66,66 @@ function upsertEnvFile(envPath, vars) {
|
|
|
67
66
|
fs.writeFileSync(envPath, result);
|
|
68
67
|
}
|
|
69
68
|
/**
|
|
70
|
-
* Create a pre-configured
|
|
71
|
-
* - CORS
|
|
72
|
-
* - JSON body parser (50mb limit)
|
|
73
|
-
* - URL-encoded body parser
|
|
69
|
+
* Create a pre-configured H3 app with standard agent-native setup:
|
|
70
|
+
* - CORS headers via middleware
|
|
74
71
|
* - /api/ping health check
|
|
75
72
|
* - /api/env-status and /api/env-vars (when envKeys is provided)
|
|
73
|
+
*
|
|
74
|
+
* Returns { app, router } — mount routes on `router`.
|
|
76
75
|
*/
|
|
77
76
|
export function createServer(options = {}) {
|
|
78
|
-
const app =
|
|
79
|
-
|
|
77
|
+
const app = createApp({
|
|
78
|
+
onError(error, event) {
|
|
79
|
+
console.error("[agent-native] Server error:", error);
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
// CORS middleware
|
|
80
83
|
if (options.cors !== false) {
|
|
81
|
-
app.use(
|
|
84
|
+
app.use(defineEventHandler((event) => {
|
|
85
|
+
const headers = event.node.res;
|
|
86
|
+
headers.setHeader("Access-Control-Allow-Origin", "*");
|
|
87
|
+
headers.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE,OPTIONS");
|
|
88
|
+
headers.setHeader("Access-Control-Allow-Headers", "Content-Type,Authorization,X-Requested-With");
|
|
89
|
+
if (event.node.req.method === "OPTIONS") {
|
|
90
|
+
headers.writeHead(204);
|
|
91
|
+
headers.end();
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
}));
|
|
82
95
|
}
|
|
83
|
-
|
|
84
|
-
app.use(
|
|
96
|
+
const router = createRouter();
|
|
97
|
+
app.use(router);
|
|
85
98
|
// Health check
|
|
86
99
|
if (!options.disablePing) {
|
|
87
|
-
|
|
100
|
+
router.get("/api/ping", defineEventHandler(() => {
|
|
88
101
|
const message = options.pingMessage ?? process.env.PING_MESSAGE ?? "pong";
|
|
89
|
-
|
|
90
|
-
});
|
|
102
|
+
return { message };
|
|
103
|
+
}));
|
|
91
104
|
}
|
|
92
105
|
// Env key management routes
|
|
93
106
|
if (options.envKeys) {
|
|
94
107
|
const envKeys = options.envKeys;
|
|
95
|
-
|
|
96
|
-
|
|
108
|
+
router.get("/api/env-status", defineEventHandler(() => {
|
|
109
|
+
return envKeys.map((cfg) => ({
|
|
97
110
|
key: cfg.key,
|
|
98
111
|
label: cfg.label,
|
|
99
112
|
required: cfg.required ?? false,
|
|
100
113
|
configured: !!process.env[cfg.key],
|
|
101
|
-
}))
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
const
|
|
114
|
+
}));
|
|
115
|
+
}));
|
|
116
|
+
router.post("/api/env-vars", defineEventHandler(async (event) => {
|
|
117
|
+
const body = await readBody(event);
|
|
118
|
+
const { vars } = body;
|
|
105
119
|
if (!Array.isArray(vars) || vars.length === 0) {
|
|
106
|
-
|
|
107
|
-
return;
|
|
120
|
+
setResponseStatus(event, 400);
|
|
121
|
+
return { error: "vars array required" };
|
|
108
122
|
}
|
|
109
123
|
// Only allow keys that are in the env config
|
|
110
124
|
const allowedKeys = new Set(envKeys.map((k) => k.key));
|
|
111
125
|
const filtered = vars.filter((v) => allowedKeys.has(v.key));
|
|
112
126
|
if (filtered.length === 0) {
|
|
113
|
-
|
|
114
|
-
return;
|
|
127
|
+
setResponseStatus(event, 400);
|
|
128
|
+
return { error: "No recognized env keys in request" };
|
|
115
129
|
}
|
|
116
130
|
// Write to .env file
|
|
117
131
|
const envPath = path.join(process.cwd(), ".env");
|
|
@@ -122,9 +136,9 @@ export function createServer(options = {}) {
|
|
|
122
136
|
}
|
|
123
137
|
// Notify parent (Builder or harness) via postMessage
|
|
124
138
|
agentEnv.setVars(filtered);
|
|
125
|
-
|
|
126
|
-
});
|
|
139
|
+
return { saved: filtered.map((v) => v.key) };
|
|
140
|
+
}));
|
|
127
141
|
}
|
|
128
|
-
return app;
|
|
142
|
+
return { app, router };
|
|
129
143
|
}
|
|
130
144
|
//# sourceMappingURL=create-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export { createServer, type CreateServerOptions, type EnvKeyConfig, } from "./create-server.js";
|
|
2
2
|
export { createFileWatcher, createSSEHandler, type FileWatcherOptions, type SSEHandlerOptions, } from "./sse.js";
|
|
3
|
-
export {
|
|
3
|
+
export { mountAuthMiddleware, autoMountAuth, getSession, type AuthSession, type AuthOptions, } from "./auth.js";
|
|
4
4
|
export { requireEnvKey, type MissingKeyResponse } from "./missing-key.js";
|
|
5
|
+
export { verifyCaptcha, type CaptchaVerifyResult } from "./captcha.js";
|
|
6
|
+
export { createProductionAgentHandler, type ScriptEntry, type ProductionAgentOptions, type ScriptTool, type AgentMessage, type AgentChatRequest, type AgentChatEvent, } from "../agent/index.js";
|
|
7
|
+
type NitroPluginDef = (nitroApp: any) => void | Promise<void>;
|
|
8
|
+
export declare function defineNitroPlugin(def: NitroPluginDef): NitroPluginDef;
|
|
5
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EACL,4BAA4B,EAC5B,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAK3B,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,CAErE"}
|
package/dist/server/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export { createServer, } from "./create-server.js";
|
|
2
2
|
export { createFileWatcher, createSSEHandler, } from "./sse.js";
|
|
3
|
-
export {
|
|
3
|
+
export { mountAuthMiddleware, autoMountAuth, getSession, } from "./auth.js";
|
|
4
4
|
export { requireEnvKey } from "./missing-key.js";
|
|
5
|
+
export { verifyCaptcha } from "./captcha.js";
|
|
6
|
+
export { createProductionAgentHandler, } from "../agent/index.js";
|
|
7
|
+
export function defineNitroPlugin(def) {
|
|
8
|
+
return def;
|
|
9
|
+
}
|
|
5
10
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,UAAU,GAGX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAA2B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC;AACvE,OAAO,EACL,4BAA4B,GAO7B,MAAM,mBAAmB,CAAC;AAM3B,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type H3Event } from "h3";
|
|
2
2
|
export interface MissingKeyResponse {
|
|
3
3
|
error: "missing_api_key";
|
|
4
4
|
key: string;
|
|
@@ -7,11 +7,15 @@ export interface MissingKeyResponse {
|
|
|
7
7
|
settingsPath: string;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* Check if an env var is set. If not,
|
|
11
|
-
* Returns
|
|
10
|
+
* Check if an env var is set. If not, set response status and return a structured
|
|
11
|
+
* missing_api_key response object. Returns null if the key exists (no action needed).
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* const missing = requireEnvKey(event, 'MY_KEY', 'My Service');
|
|
15
|
+
* if (missing) return missing;
|
|
12
16
|
*/
|
|
13
|
-
export declare function requireEnvKey(
|
|
17
|
+
export declare function requireEnvKey(event: H3Event, key: string, label: string, options?: {
|
|
14
18
|
message?: string;
|
|
15
19
|
settingsPath?: string;
|
|
16
|
-
}):
|
|
20
|
+
}): MissingKeyResponse | null;
|
|
17
21
|
//# sourceMappingURL=missing-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-key.d.ts","sourceRoot":"","sources":["../../src/server/missing-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"missing-key.d.ts","sourceRoot":"","sources":["../../src/server/missing-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,kBAAkB,GAAG,IAAI,CAY3B"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import { setResponseStatus } from "h3";
|
|
1
2
|
/**
|
|
2
|
-
* Check if an env var is set. If not,
|
|
3
|
-
* Returns
|
|
3
|
+
* Check if an env var is set. If not, set response status and return a structured
|
|
4
|
+
* missing_api_key response object. Returns null if the key exists (no action needed).
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* const missing = requireEnvKey(event, 'MY_KEY', 'My Service');
|
|
8
|
+
* if (missing) return missing;
|
|
4
9
|
*/
|
|
5
|
-
export function requireEnvKey(
|
|
10
|
+
export function requireEnvKey(event, key, label, options) {
|
|
6
11
|
if (process.env[key])
|
|
7
|
-
return
|
|
8
|
-
|
|
12
|
+
return null;
|
|
13
|
+
setResponseStatus(event, 200);
|
|
14
|
+
return {
|
|
9
15
|
error: "missing_api_key",
|
|
10
16
|
key,
|
|
11
17
|
label,
|
|
12
18
|
message: options?.message ?? `Connect your ${label} account to see this data`,
|
|
13
19
|
settingsPath: options?.settingsPath ?? "/settings",
|
|
14
|
-
}
|
|
15
|
-
return true;
|
|
20
|
+
};
|
|
16
21
|
}
|
|
17
22
|
//# sourceMappingURL=missing-key.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-key.js","sourceRoot":"","sources":["../../src/server/missing-key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"missing-key.js","sourceRoot":"","sources":["../../src/server/missing-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,IAAI,CAAC;AAUrD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,GAAW,EACX,KAAa,EACb,OAAqD;IAErD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,iBAAiB;QACxB,GAAG;QACH,KAAK;QACL,OAAO,EACL,OAAO,EAAE,OAAO,IAAI,gBAAgB,KAAK,2BAA2B;QACtE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,WAAW;KACnD,CAAC;AACJ,CAAC"}
|
package/dist/server/sse.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { type FSWatcher } from "chokidar";
|
|
2
|
-
import { EventEmitter } from "events";
|
|
3
|
-
import type { Request, Response } from "express";
|
|
4
2
|
export type { FSWatcher } from "chokidar";
|
|
5
3
|
export interface FileWatcherOptions {
|
|
6
4
|
/** Glob patterns or regex to ignore. */
|
|
7
|
-
ignored?:
|
|
5
|
+
ignored?: string | RegExp | string[];
|
|
8
6
|
/** Whether to emit events for the initial file scan. Default: false (ignoreInitial: true) */
|
|
9
7
|
emitInitial?: boolean;
|
|
10
8
|
}
|
|
@@ -13,18 +11,25 @@ export interface FileWatcherOptions {
|
|
|
13
11
|
* Returns a chokidar.FSWatcher that emits "all" events on file changes.
|
|
14
12
|
*/
|
|
15
13
|
export declare function createFileWatcher(dir: string | string[], options?: FileWatcherOptions): FSWatcher;
|
|
14
|
+
/** Any object with on/off methods (compatible with EventEmitter, TypedEventEmitter, etc.). */
|
|
15
|
+
interface EventLike {
|
|
16
|
+
on(event: string, listener: (...args: any[]) => void): any;
|
|
17
|
+
off(event: string, listener: (...args: any[]) => void): any;
|
|
18
|
+
}
|
|
16
19
|
export interface SSEHandlerOptions {
|
|
17
20
|
/** Additional EventEmitters to stream events from (e.g. sync events). */
|
|
18
21
|
extraEmitters?: Array<{
|
|
19
|
-
emitter:
|
|
22
|
+
emitter: EventLike;
|
|
20
23
|
event: string;
|
|
21
24
|
}>;
|
|
25
|
+
/** Content root for computing relative paths. If provided, absolute paths are stripped. */
|
|
26
|
+
contentRoot?: string;
|
|
22
27
|
}
|
|
23
28
|
/**
|
|
24
|
-
* Create an
|
|
29
|
+
* Create an H3 event handler that streams Server-Sent Events for file changes.
|
|
25
30
|
*
|
|
26
31
|
* Usage:
|
|
27
|
-
*
|
|
32
|
+
* router.get("/api/events", createSSEHandler(watcher));
|
|
28
33
|
*/
|
|
29
|
-
export declare function createSSEHandler(watcher: FSWatcher, options?: SSEHandlerOptions): (
|
|
34
|
+
export declare function createSSEHandler(watcher: FSWatcher, options?: SSEHandlerOptions): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
30
35
|
//# sourceMappingURL=sse.d.ts.map
|
package/dist/server/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAKjD,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACrC,6FAA6F;IAC7F,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EACtB,OAAO,GAAE,kBAAuB,GAC/B,SAAS,CAKX;AAED,8FAA8F;AAC9F,UAAU,SAAS;IAEjB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC;IAE3D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,OAAO,GAAE,iBAAsB,8EA4FhC"}
|
package/dist/server/sse.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { watch } from "chokidar";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { defineEventHandler, createEventStream } from "h3";
|
|
2
4
|
/**
|
|
3
5
|
* Create a chokidar file watcher for the given directory.
|
|
4
6
|
* Returns a chokidar.FSWatcher that emits "all" events on file changes.
|
|
@@ -10,35 +12,97 @@ export function createFileWatcher(dir, options = {}) {
|
|
|
10
12
|
});
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
|
-
* Create an
|
|
15
|
+
* Create an H3 event handler that streams Server-Sent Events for file changes.
|
|
14
16
|
*
|
|
15
17
|
* Usage:
|
|
16
|
-
*
|
|
18
|
+
* router.get("/api/events", createSSEHandler(watcher));
|
|
17
19
|
*/
|
|
18
20
|
export function createSSEHandler(watcher, options = {}) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const projectRoot = options.contentRoot
|
|
22
|
+
? path.resolve(options.contentRoot, "..")
|
|
23
|
+
: null;
|
|
24
|
+
return defineEventHandler(async (event) => {
|
|
25
|
+
const stream = createEventStream(event);
|
|
26
|
+
let closed = false;
|
|
27
|
+
// --- Batch mode for startup sync bursts ---
|
|
28
|
+
let batchMode = false;
|
|
29
|
+
const pending = [];
|
|
30
|
+
let flushTimer = null;
|
|
31
|
+
const safePush = (data) => {
|
|
32
|
+
if (closed)
|
|
33
|
+
return;
|
|
34
|
+
try {
|
|
35
|
+
stream.push(data);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Connection dead — events lost for this client, EventSource will reconnect
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const flush = () => {
|
|
42
|
+
flushTimer = null;
|
|
43
|
+
if (closed || pending.length === 0)
|
|
44
|
+
return;
|
|
45
|
+
const batch = pending.splice(0);
|
|
46
|
+
safePush(JSON.stringify({ type: "batch", events: batch }));
|
|
47
|
+
};
|
|
48
|
+
const send = (evt) => {
|
|
49
|
+
if (closed)
|
|
50
|
+
return;
|
|
51
|
+
if (batchMode) {
|
|
52
|
+
pending.push(evt);
|
|
53
|
+
if (!flushTimer)
|
|
54
|
+
flushTimer = setTimeout(flush, 150);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
safePush(JSON.stringify(evt));
|
|
58
|
+
}
|
|
59
|
+
};
|
|
24
60
|
const onChange = (eventName, filePath) => {
|
|
25
|
-
|
|
61
|
+
const relPath = projectRoot
|
|
62
|
+
? path.relative(projectRoot, filePath)
|
|
63
|
+
: filePath;
|
|
64
|
+
send({ source: "file", type: eventName, path: relPath });
|
|
26
65
|
};
|
|
27
66
|
watcher.on("all", onChange);
|
|
28
|
-
// Subscribe to extra emitters
|
|
67
|
+
// Subscribe to extra emitters (sync events already have source field)
|
|
29
68
|
const cleanups = [];
|
|
30
|
-
for (const { emitter, event } of options.extraEmitters ?? []) {
|
|
69
|
+
for (const { emitter, event: evtName } of options.extraEmitters ?? []) {
|
|
31
70
|
const handler = (data) => {
|
|
32
|
-
|
|
71
|
+
send(data);
|
|
33
72
|
};
|
|
34
|
-
emitter.on(
|
|
35
|
-
cleanups.push(() => emitter.off(
|
|
73
|
+
emitter.on(evtName, handler);
|
|
74
|
+
cleanups.push(() => emitter.off(evtName, handler));
|
|
36
75
|
}
|
|
37
|
-
|
|
76
|
+
// Listen for batch mode signals from sync engine
|
|
77
|
+
for (const { emitter } of options.extraEmitters ?? []) {
|
|
78
|
+
const startBatch = () => {
|
|
79
|
+
batchMode = true;
|
|
80
|
+
};
|
|
81
|
+
const endBatch = () => {
|
|
82
|
+
batchMode = false;
|
|
83
|
+
if (flushTimer) {
|
|
84
|
+
clearTimeout(flushTimer);
|
|
85
|
+
flushTimer = null;
|
|
86
|
+
}
|
|
87
|
+
flush();
|
|
88
|
+
};
|
|
89
|
+
emitter.on("sync-burst-start", startBatch);
|
|
90
|
+
emitter.on("sync-burst-end", endBatch);
|
|
91
|
+
cleanups.push(() => {
|
|
92
|
+
emitter.off("sync-burst-start", startBatch);
|
|
93
|
+
emitter.off("sync-burst-end", endBatch);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
stream.onClosed(() => {
|
|
97
|
+
closed = true;
|
|
98
|
+
if (flushTimer)
|
|
99
|
+
clearTimeout(flushTimer);
|
|
100
|
+
pending.length = 0;
|
|
38
101
|
watcher.off("all", onChange);
|
|
39
102
|
for (const cleanup of cleanups)
|
|
40
103
|
cleanup();
|
|
41
104
|
});
|
|
42
|
-
|
|
105
|
+
return stream.send();
|
|
106
|
+
});
|
|
43
107
|
}
|
|
44
108
|
//# sourceMappingURL=sse.js.map
|
package/dist/server/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"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"}
|
package/dist/vite/client.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { UserConfig } from "vite";
|
|
2
|
-
|
|
2
|
+
export interface NitroOptions {
|
|
3
|
+
/** Nitro deployment preset (e.g. "node", "vercel", "netlify", "cloudflare_pages"). Default: "node" */
|
|
4
|
+
preset?: string;
|
|
5
|
+
/** Source directory for server files. Default: "./server" */
|
|
6
|
+
srcDir?: string;
|
|
7
|
+
/** Routes directory name (relative to srcDir). Default: "routes" */
|
|
8
|
+
routesDir?: string;
|
|
9
|
+
/** Any additional Nitro config overrides */
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
3
12
|
export interface ClientConfigOptions {
|
|
4
13
|
/** Port for dev server. Default: 8080 */
|
|
5
14
|
port?: number;
|
|
6
15
|
/** Additional Vite plugins */
|
|
7
16
|
plugins?: any[];
|
|
8
|
-
/**
|
|
9
|
-
|
|
17
|
+
/** Nitro plugin options (preset, srcDir, etc) */
|
|
18
|
+
nitro?: NitroOptions;
|
|
10
19
|
/** Override resolve aliases */
|
|
11
20
|
aliases?: Record<string, string>;
|
|
12
21
|
/** Override build.outDir. Default: "dist/spa" */
|
|
@@ -15,10 +24,24 @@ export interface ClientConfigOptions {
|
|
|
15
24
|
fsAllow?: string[];
|
|
16
25
|
/** Additional fs.deny patterns */
|
|
17
26
|
fsDeny?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Pass `reactRouter()` directly in the `plugins` array instead.
|
|
29
|
+
* Previously used to auto-load the React Router Vite plugin via require(),
|
|
30
|
+
* but this fails in ESM contexts. Templates should now do:
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { reactRouter } from "@react-router/dev/vite";
|
|
33
|
+
* defineConfig({ plugins: [reactRouter()] })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
reactRouter?: boolean | Record<string, unknown>;
|
|
18
37
|
}
|
|
19
38
|
/**
|
|
20
|
-
* Create the client
|
|
21
|
-
*
|
|
39
|
+
* Create the client Vite config with sensible agent-native defaults.
|
|
40
|
+
* Supports two modes:
|
|
41
|
+
* - Legacy SPA mode (default): React SWC plugin, client-only routing
|
|
42
|
+
* - React Router framework mode: SSR-capable with file-based routing
|
|
43
|
+
*
|
|
44
|
+
* Both modes include Nitro for API routes, path aliases, and fs restrictions.
|
|
22
45
|
*/
|
|
23
46
|
export declare function defineConfig(options?: ClientConfigOptions): UserConfig;
|
|
24
47
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,MAAM,CAAC;AAK/C,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAmCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAoE1E"}
|
package/dist/vite/client.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import {
|
|
2
|
+
import { createRequire } from "module";
|
|
3
|
+
import { devApiServer } from "./dev-api-server.js";
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
3
5
|
/**
|
|
4
6
|
* Vite plugin that prevents the built-in base middleware from redirecting
|
|
5
7
|
* "/" → "/app/" (or whatever the base is). When agent-native apps run with
|
|
@@ -31,21 +33,40 @@ function baseRedirectGuard() {
|
|
|
31
33
|
};
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
|
-
* Create the client
|
|
35
|
-
*
|
|
36
|
+
* Create the client Vite config with sensible agent-native defaults.
|
|
37
|
+
* Supports two modes:
|
|
38
|
+
* - Legacy SPA mode (default): React SWC plugin, client-only routing
|
|
39
|
+
* - React Router framework mode: SSR-capable with file-based routing
|
|
40
|
+
*
|
|
41
|
+
* Both modes include Nitro for API routes, path aliases, and fs restrictions.
|
|
36
42
|
*/
|
|
37
43
|
export function defineConfig(options = {}) {
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
// Check if React Router plugin was passed directly in plugins array
|
|
45
|
+
const hasReactRouterPlugin = options.plugins?.some((p) => p?.name === "react-router" ||
|
|
46
|
+
(Array.isArray(p) && p.some((pp) => pp?.name === "react-router")));
|
|
47
|
+
let reactTransformPlugin;
|
|
48
|
+
if (!hasReactRouterPlugin && !options.reactRouter) {
|
|
49
|
+
// Legacy SPA mode — use React SWC plugin (only when React Router is not used)
|
|
50
|
+
try {
|
|
51
|
+
reactTransformPlugin = require("@vitejs/plugin-react-swc");
|
|
52
|
+
if (reactTransformPlugin.default)
|
|
53
|
+
reactTransformPlugin = reactTransformPlugin.default;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// Will be resolved at runtime by Vite
|
|
57
|
+
}
|
|
47
58
|
}
|
|
59
|
+
// Nitro 3.0's Vite plugin (nitro/vite) uses a FetchableDevEnvironment
|
|
60
|
+
// that is incompatible with Vite 7/8's DevEnvironment API. Loading it
|
|
61
|
+
// crashes typecheck, build, and any Vite server creation. Nitro's
|
|
62
|
+
// file-based routes are handled by its runtime (via the server/routes/
|
|
63
|
+
// directory) independently of this plugin, so we skip it entirely.
|
|
64
|
+
// The Nitro plugin can be re-enabled once Nitro ships a Vite 7+ compatible
|
|
65
|
+
// release.
|
|
66
|
+
const nitroPlugin = null;
|
|
48
67
|
const cwd = process.cwd();
|
|
68
|
+
// Build the React transform plugin (only for legacy SPA mode)
|
|
69
|
+
const reactPluginInstance = reactTransformPlugin?.();
|
|
49
70
|
return {
|
|
50
71
|
server: {
|
|
51
72
|
host: "::",
|
|
@@ -57,7 +78,6 @@ export function defineConfig(options = {}) {
|
|
|
57
78
|
".env.*",
|
|
58
79
|
"*.{crt,pem}",
|
|
59
80
|
"**/.git/**",
|
|
60
|
-
"server/**",
|
|
61
81
|
...(options.fsDeny ?? []),
|
|
62
82
|
],
|
|
63
83
|
},
|
|
@@ -67,8 +87,9 @@ export function defineConfig(options = {}) {
|
|
|
67
87
|
},
|
|
68
88
|
plugins: [
|
|
69
89
|
baseRedirectGuard(),
|
|
70
|
-
|
|
71
|
-
|
|
90
|
+
devApiServer(),
|
|
91
|
+
reactPluginInstance,
|
|
92
|
+
nitroPlugin?.(),
|
|
72
93
|
...(options.plugins ?? []),
|
|
73
94
|
].filter(Boolean),
|
|
74
95
|
resolve: {
|
package/dist/vite/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
/**
|
|
3
|
+
* Vite plugin that serves H3 API routes from server/routes/api/ during dev.
|
|
4
|
+
*
|
|
5
|
+
* This replaces the disabled Nitro Vite plugin for dev-mode API route serving.
|
|
6
|
+
* It scans the file-based routes, imports them, and mounts them on an H3 app
|
|
7
|
+
* that handles /api/* requests before React Router's SSR handler.
|
|
8
|
+
*/
|
|
9
|
+
export declare function devApiServer(): Plugin;
|
|
10
|
+
//# sourceMappingURL=dev-api-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-api-server.d.ts","sourceRoot":"","sources":["../../src/vite/dev-api-server.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAkIlD;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAsCrC"}
|