heliumts 0.2.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/LICENSE +21 -0
- package/README.md +356 -0
- package/dist/bin/helium.d.ts +3 -0
- package/dist/bin/helium.d.ts.map +1 -0
- package/dist/bin/helium.js +236 -0
- package/dist/bin/helium.js.map +1 -0
- package/dist/client/Router.d.ts +83 -0
- package/dist/client/Router.d.ts.map +1 -0
- package/dist/client/Router.js +329 -0
- package/dist/client/Router.js.map +1 -0
- package/dist/client/cache.d.ts +8 -0
- package/dist/client/cache.d.ts.map +1 -0
- package/dist/client/cache.js +82 -0
- package/dist/client/cache.js.map +1 -0
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +9 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/prefetch.d.ts +12 -0
- package/dist/client/prefetch.d.ts.map +1 -0
- package/dist/client/prefetch.js +33 -0
- package/dist/client/prefetch.js.map +1 -0
- package/dist/client/routerManifest.d.ts +28 -0
- package/dist/client/routerManifest.d.ts.map +1 -0
- package/dist/client/routerManifest.js +242 -0
- package/dist/client/routerManifest.js.map +1 -0
- package/dist/client/rpcClient.d.ts +33 -0
- package/dist/client/rpcClient.d.ts.map +1 -0
- package/dist/client/rpcClient.js +383 -0
- package/dist/client/rpcClient.js.map +1 -0
- package/dist/client/transitions.d.ts +85 -0
- package/dist/client/transitions.d.ts.map +1 -0
- package/dist/client/transitions.js +92 -0
- package/dist/client/transitions.js.map +1 -0
- package/dist/client/types.d.ts +6 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/useCall.d.ts +31 -0
- package/dist/client/useCall.d.ts.map +1 -0
- package/dist/client/useCall.js +40 -0
- package/dist/client/useCall.js.map +1 -0
- package/dist/client/useFetch.d.ts +34 -0
- package/dist/client/useFetch.d.ts.map +1 -0
- package/dist/client/useFetch.js +152 -0
- package/dist/client/useFetch.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/protocol.d.ts +25 -0
- package/dist/runtime/protocol.d.ts.map +1 -0
- package/dist/runtime/protocol.js +2 -0
- package/dist/runtime/protocol.js.map +1 -0
- package/dist/server/config.d.ts +216 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +130 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/context.d.ts +38 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +2 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/defineHTTPRequest.d.ts +49 -0
- package/dist/server/defineHTTPRequest.d.ts.map +1 -0
- package/dist/server/defineHTTPRequest.js +34 -0
- package/dist/server/defineHTTPRequest.js.map +1 -0
- package/dist/server/defineMethod.d.ts +20 -0
- package/dist/server/defineMethod.d.ts.map +1 -0
- package/dist/server/defineMethod.js +23 -0
- package/dist/server/defineMethod.js.map +1 -0
- package/dist/server/devServer.d.ts +15 -0
- package/dist/server/devServer.d.ts.map +1 -0
- package/dist/server/devServer.js +219 -0
- package/dist/server/devServer.js.map +1 -0
- package/dist/server/handlerLoader.d.ts +1 -0
- package/dist/server/handlerLoader.d.ts.map +1 -0
- package/dist/server/handlerLoader.js +2 -0
- package/dist/server/handlerLoader.js.map +1 -0
- package/dist/server/httpRouter.d.ts +17 -0
- package/dist/server/httpRouter.d.ts.map +1 -0
- package/dist/server/httpRouter.js +227 -0
- package/dist/server/httpRouter.js.map +1 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +13 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware.d.ts +30 -0
- package/dist/server/middleware.d.ts.map +1 -0
- package/dist/server/middleware.js +23 -0
- package/dist/server/middleware.js.map +1 -0
- package/dist/server/prodServer.d.ts +27 -0
- package/dist/server/prodServer.d.ts.map +1 -0
- package/dist/server/prodServer.js +301 -0
- package/dist/server/prodServer.js.map +1 -0
- package/dist/server/rateLimiter.d.ts +36 -0
- package/dist/server/rateLimiter.d.ts.map +1 -0
- package/dist/server/rateLimiter.js +113 -0
- package/dist/server/rateLimiter.js.map +1 -0
- package/dist/server/rpcRegistry.d.ts +34 -0
- package/dist/server/rpcRegistry.d.ts.map +1 -0
- package/dist/server/rpcRegistry.js +231 -0
- package/dist/server/rpcRegistry.js.map +1 -0
- package/dist/server/security.d.ts +5 -0
- package/dist/server/security.d.ts.map +1 -0
- package/dist/server/security.js +59 -0
- package/dist/server/security.js.map +1 -0
- package/dist/server/serializer.d.ts +9 -0
- package/dist/server/serializer.d.ts.map +1 -0
- package/dist/server/serializer.js +40 -0
- package/dist/server/serializer.js.map +1 -0
- package/dist/utils/envLoader.d.ts +27 -0
- package/dist/utils/envLoader.d.ts.map +1 -0
- package/dist/utils/envLoader.js +68 -0
- package/dist/utils/envLoader.js.map +1 -0
- package/dist/utils/ipExtractor.d.ts +59 -0
- package/dist/utils/ipExtractor.d.ts.map +1 -0
- package/dist/utils/ipExtractor.js +126 -0
- package/dist/utils/ipExtractor.js.map +1 -0
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +24 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/vite/heliumPlugin.d.ts +3 -0
- package/dist/vite/heliumPlugin.d.ts.map +1 -0
- package/dist/vite/heliumPlugin.js +294 -0
- package/dist/vite/heliumPlugin.js.map +1 -0
- package/dist/vite/index.d.ts +3 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +3 -0
- package/dist/vite/index.js.map +1 -0
- package/dist/vite/paths.d.ts +8 -0
- package/dist/vite/paths.d.ts.map +1 -0
- package/dist/vite/paths.js +8 -0
- package/dist/vite/paths.js.map +1 -0
- package/dist/vite/scanner.d.ts +35 -0
- package/dist/vite/scanner.d.ts.map +1 -0
- package/dist/vite/scanner.js +167 -0
- package/dist/vite/scanner.js.map +1 -0
- package/dist/vite/ssg.d.ts +22 -0
- package/dist/vite/ssg.d.ts.map +1 -0
- package/dist/vite/ssg.js +547 -0
- package/dist/vite/ssg.js.map +1 -0
- package/dist/vite/virtualServerModule.d.ts +6 -0
- package/dist/vite/virtualServerModule.d.ts.map +1 -0
- package/dist/vite/virtualServerModule.js +82 -0
- package/dist/vite/virtualServerModule.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { log } from "../utils/logger.js";
|
|
4
|
+
import { SERVER_DIR } from "./paths.js";
|
|
5
|
+
export function scanServerMethods(root) {
|
|
6
|
+
const exports = scanServerExports(root);
|
|
7
|
+
return exports.methods;
|
|
8
|
+
}
|
|
9
|
+
export function scanServerExports(root) {
|
|
10
|
+
const serverDir = path.resolve(root, SERVER_DIR);
|
|
11
|
+
if (!fs.existsSync(serverDir)) {
|
|
12
|
+
return { methods: [], httpHandlers: [] };
|
|
13
|
+
}
|
|
14
|
+
const methods = [];
|
|
15
|
+
const httpHandlers = [];
|
|
16
|
+
let middleware;
|
|
17
|
+
function walk(dir) {
|
|
18
|
+
const files = fs.readdirSync(dir);
|
|
19
|
+
for (const file of files) {
|
|
20
|
+
const fullPath = path.join(dir, file);
|
|
21
|
+
const stat = fs.statSync(fullPath);
|
|
22
|
+
if (stat.isDirectory()) {
|
|
23
|
+
walk(fullPath);
|
|
24
|
+
}
|
|
25
|
+
else if (file.endsWith(".ts")) {
|
|
26
|
+
const content = fs.readFileSync(fullPath, "utf-8");
|
|
27
|
+
// Check for _middleware.ts file
|
|
28
|
+
if (file === "_middleware.ts") {
|
|
29
|
+
// Support both 'middleware' and 'defineMiddleware' (backwards compatibility)
|
|
30
|
+
const middlewareRegex = /export\s+(const|default)\s+(\w+)\s*=\s*(middleware|defineMiddleware)/;
|
|
31
|
+
const match = middlewareRegex.exec(content);
|
|
32
|
+
if (match) {
|
|
33
|
+
middleware = {
|
|
34
|
+
name: match[2],
|
|
35
|
+
filePath: fullPath,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Also support default export
|
|
39
|
+
const defaultRegex = /export\s+default\s+(middleware|defineMiddleware)/;
|
|
40
|
+
if (defaultRegex.test(content)) {
|
|
41
|
+
middleware = {
|
|
42
|
+
name: "default",
|
|
43
|
+
filePath: fullPath,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Find: export const methodName = defineMethod(...)
|
|
48
|
+
const methodRegex = /export\s+const\s+(\w+)\s*=\s*defineMethod/g;
|
|
49
|
+
let match;
|
|
50
|
+
while ((match = methodRegex.exec(content)) !== null) {
|
|
51
|
+
methods.push({
|
|
52
|
+
name: match[1],
|
|
53
|
+
filePath: fullPath,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Find: export const handlerName = defineHTTPRequest(...)
|
|
57
|
+
const httpRegex = /export\s+const\s+(\w+)\s*=\s*defineHTTPRequest/g;
|
|
58
|
+
while ((match = httpRegex.exec(content)) !== null) {
|
|
59
|
+
httpHandlers.push({
|
|
60
|
+
name: match[1],
|
|
61
|
+
filePath: fullPath,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
walk(serverDir);
|
|
68
|
+
return { methods, httpHandlers, middleware };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Convert a file path to a route pattern (same logic as client-side router)
|
|
72
|
+
*/
|
|
73
|
+
function pathFromFile(file, root) {
|
|
74
|
+
// Remove root/src/pages prefix and file extension
|
|
75
|
+
const pagesDir = path.join(root, "src", "pages");
|
|
76
|
+
const withoutPrefix = file.replace(pagesDir, "").replace(/\.(tsx|jsx|ts|js)$/, "");
|
|
77
|
+
// Handle special files
|
|
78
|
+
if (withoutPrefix === "/404") {
|
|
79
|
+
return "__404__";
|
|
80
|
+
}
|
|
81
|
+
// Remove route groups (folders in parentheses)
|
|
82
|
+
let pattern = withoutPrefix.replace(/\/\([^)]+\)/g, "");
|
|
83
|
+
// Convert /index to /
|
|
84
|
+
pattern = pattern.replace(/\/index$/, "") || "/";
|
|
85
|
+
// Convert [...param] to *param (catch-all)
|
|
86
|
+
pattern = pattern.replace(/\[\.\.\.(.+?)\]/g, "*$1");
|
|
87
|
+
// Convert [param] to :param (single dynamic segment)
|
|
88
|
+
pattern = pattern.replace(/\[(.+?)\]/g, ":$1");
|
|
89
|
+
return pattern;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Scan pages directory and detect route collisions
|
|
93
|
+
*/
|
|
94
|
+
export function scanPageRoutes(root) {
|
|
95
|
+
const pagesDir = path.join(root, "src", "pages");
|
|
96
|
+
if (!fs.existsSync(pagesDir)) {
|
|
97
|
+
return { collisions: [], totalRoutes: 0 };
|
|
98
|
+
}
|
|
99
|
+
const routePatternMap = new Map();
|
|
100
|
+
const collisions = [];
|
|
101
|
+
function walkPages(dir) {
|
|
102
|
+
const items = fs.readdirSync(dir);
|
|
103
|
+
for (const item of items) {
|
|
104
|
+
const fullPath = path.join(dir, item);
|
|
105
|
+
const stat = fs.statSync(fullPath);
|
|
106
|
+
if (stat.isDirectory()) {
|
|
107
|
+
walkPages(fullPath);
|
|
108
|
+
}
|
|
109
|
+
else if (/\.(tsx|jsx|ts|js)$/.test(item)) {
|
|
110
|
+
// Skip layout files
|
|
111
|
+
if (item.includes("_layout.")) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const pathPattern = pathFromFile(fullPath, root);
|
|
115
|
+
// Skip special pages
|
|
116
|
+
if (pathPattern === "__404__") {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
// Check for collision
|
|
120
|
+
const existingFile = routePatternMap.get(pathPattern);
|
|
121
|
+
if (existingFile) {
|
|
122
|
+
// Check if this collision was already recorded
|
|
123
|
+
const existingCollision = collisions.find((c) => c.pattern === pathPattern);
|
|
124
|
+
if (existingCollision) {
|
|
125
|
+
existingCollision.files.push(fullPath);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
collisions.push({
|
|
129
|
+
pattern: pathPattern,
|
|
130
|
+
files: [existingFile, fullPath],
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
routePatternMap.set(pathPattern, fullPath);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
walkPages(pagesDir);
|
|
141
|
+
return { collisions, totalRoutes: routePatternMap.size };
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Check for route collisions and log warnings
|
|
145
|
+
*/
|
|
146
|
+
export function checkRouteCollisions(root) {
|
|
147
|
+
const { collisions, totalRoutes } = scanPageRoutes(root);
|
|
148
|
+
if (collisions.length === 0) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
log("warn", "⚠️ Route collisions detected! Multiple files resolve to the same URL path:");
|
|
152
|
+
log("warn", "");
|
|
153
|
+
for (const collision of collisions) {
|
|
154
|
+
log("error", ` Route pattern: "${collision.pattern}"`);
|
|
155
|
+
for (const file of collision.files) {
|
|
156
|
+
const relative = path.relative(root, file);
|
|
157
|
+
log("error", ` - ${relative}`);
|
|
158
|
+
}
|
|
159
|
+
log("error", ` ⚠️ Only the first file will be accessible.`);
|
|
160
|
+
log("warn", "");
|
|
161
|
+
}
|
|
162
|
+
log("warn", `Found ${collisions.length} collision(s) across ${totalRoutes} unique routes.`);
|
|
163
|
+
log("warn", "Consider using different file names or organizing files in subdirectories.");
|
|
164
|
+
log("warn", "");
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/vite/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSG (Static Site Generation) implementation for Helium
|
|
3
|
+
*
|
|
4
|
+
* Scans pages directory for files with "use ssg"; directive and generates
|
|
5
|
+
* static HTML for them at build time.
|
|
6
|
+
*/
|
|
7
|
+
interface SSGPage {
|
|
8
|
+
filePath: string;
|
|
9
|
+
urlPath: string;
|
|
10
|
+
relativePath: string;
|
|
11
|
+
warnings: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Scan pages directory and find all pages with "use ssg" directive
|
|
15
|
+
*/
|
|
16
|
+
export declare function scanSSGPages(root: string): SSGPage[];
|
|
17
|
+
/**
|
|
18
|
+
* Generate static HTML files for all SSG pages
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateStaticPages(context: any, root: string, htmlTemplate: string, distDir: string): Promise<void>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=ssg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssg.d.ts","sourceRoot":"","sources":["../../src/vite/ssg.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AAEH,UAAU,OAAO;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AA2ED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAwDpD;AAqLD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAsT1G"}
|