frontend-hamroun 1.2.75 → 1.2.77

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.
Files changed (113) hide show
  1. package/dist/batch/package.json +16 -0
  2. package/dist/client-router/package.json +16 -0
  3. package/dist/component/package.json +16 -0
  4. package/dist/context/package.json +16 -0
  5. package/dist/event-bus/package.json +16 -0
  6. package/dist/forms/package.json +16 -0
  7. package/dist/hooks/package.json +16 -0
  8. package/dist/jsx-runtime/package.json +16 -0
  9. package/dist/lifecycle-events/package.json +16 -0
  10. package/dist/package.json +71 -0
  11. package/dist/render-component/package.json +16 -0
  12. package/dist/renderer/package.json +16 -0
  13. package/dist/router/package.json +16 -0
  14. package/dist/server/package.json +17 -0
  15. package/dist/server/src/client-router.d.ts +60 -0
  16. package/dist/server/src/client-router.js +210 -0
  17. package/dist/server/src/client-router.js.map +1 -0
  18. package/dist/server/src/component.js +1 -1
  19. package/dist/server/src/event-bus.d.ts +23 -0
  20. package/dist/server/src/event-bus.js +75 -0
  21. package/dist/server/src/event-bus.js.map +1 -0
  22. package/dist/server/src/forms.d.ts +40 -0
  23. package/dist/server/src/forms.js +148 -0
  24. package/dist/server/src/forms.js.map +1 -0
  25. package/dist/server/src/hooks.js +2 -2
  26. package/dist/server/src/index.js +19 -11
  27. package/dist/server/src/lifecycle-events.d.ts +108 -0
  28. package/dist/server/src/lifecycle-events.js +177 -0
  29. package/dist/server/src/lifecycle-events.js.map +1 -0
  30. package/dist/server/src/renderComponent.js +1 -1
  31. package/dist/server/src/renderer.js +3 -3
  32. package/dist/server/src/router.d.ts +55 -0
  33. package/dist/server/src/router.js +166 -0
  34. package/dist/server/src/router.js.map +1 -0
  35. package/dist/server/src/server/index.d.ts +75 -2
  36. package/dist/server/src/server/index.js +224 -8
  37. package/dist/server/src/server/index.js.map +1 -1
  38. package/dist/server/src/server/server.js +1 -1
  39. package/dist/server/src/server/templates.d.ts +28 -0
  40. package/dist/server/src/server/templates.js +204 -0
  41. package/dist/server/src/server/templates.js.map +1 -0
  42. package/dist/server/src/server/utils.d.ts +70 -0
  43. package/dist/server/src/server/utils.js +156 -0
  44. package/dist/server/src/server/utils.js.map +1 -0
  45. package/dist/server/src/server-renderer.js +1 -1
  46. package/dist/server/src/store.d.ts +41 -0
  47. package/dist/server/src/store.js +99 -0
  48. package/dist/server/src/store.js.map +1 -0
  49. package/dist/server/src/utils.d.ts +46 -0
  50. package/dist/server/src/utils.js +144 -0
  51. package/dist/server/src/utils.js.map +1 -0
  52. package/dist/server/tsconfig.server.tsbuildinfo +1 -1
  53. package/dist/server-renderer/package.json +16 -0
  54. package/dist/store/package.json +16 -0
  55. package/dist/types/package.json +16 -0
  56. package/dist/utils/package.json +16 -0
  57. package/dist/vdom/package.json +16 -0
  58. package/dist/wasm/package.json +16 -0
  59. package/package.json +14 -13
  60. package/templates/complete-app/build.js +284 -0
  61. package/templates/complete-app/package.json +40 -0
  62. package/templates/complete-app/public/styles.css +345 -0
  63. package/templates/complete-app/src/api/index.js +31 -0
  64. package/templates/complete-app/src/client.js +93 -0
  65. package/templates/complete-app/src/components/App.js +66 -0
  66. package/templates/complete-app/src/components/Footer.js +19 -0
  67. package/templates/complete-app/src/components/Header.js +38 -0
  68. package/templates/complete-app/src/pages/About.js +59 -0
  69. package/templates/complete-app/src/pages/Home.js +54 -0
  70. package/templates/complete-app/src/pages/WasmDemo.js +136 -0
  71. package/templates/complete-app/src/server.js +186 -0
  72. package/templates/complete-app/src/wasm/build.bat +16 -0
  73. package/templates/complete-app/src/wasm/build.sh +16 -0
  74. package/templates/complete-app/src/wasm/example.go +101 -0
  75. package/templates/fullstack-app/build/main.css +225 -15
  76. package/templates/fullstack-app/build/main.css.map +2 -2
  77. package/templates/fullstack-app/build/main.js +657 -372
  78. package/templates/fullstack-app/build/main.js.map +4 -4
  79. package/templates/fullstack-app/build.ts +3 -4
  80. package/templates/fullstack-app/public/styles.css +222 -15
  81. package/templates/fullstack-app/server.ts +46 -12
  82. package/templates/fullstack-app/src/components/ClientHome.tsx +0 -0
  83. package/templates/fullstack-app/src/components/ErrorBoundary.tsx +36 -0
  84. package/templates/fullstack-app/src/components/Layout.tsx +23 -26
  85. package/templates/fullstack-app/src/components/StateDemo.tsx +207 -0
  86. package/templates/fullstack-app/src/components/UserList.tsx +30 -13
  87. package/templates/fullstack-app/src/data/api.ts +173 -38
  88. package/templates/fullstack-app/src/main.tsx +88 -154
  89. package/templates/fullstack-app/src/middleware.ts +28 -0
  90. package/templates/fullstack-app/src/pages/404.tsx +28 -0
  91. package/templates/fullstack-app/src/pages/[id].tsx +0 -0
  92. package/templates/fullstack-app/src/pages/_app.tsx +11 -0
  93. package/templates/fullstack-app/src/pages/_document.tsx +25 -0
  94. package/templates/fullstack-app/src/pages/_error.tsx +45 -0
  95. package/templates/fullstack-app/src/pages/about.tsx +71 -0
  96. package/templates/fullstack-app/src/pages/api/users/[id].ts +73 -0
  97. package/templates/fullstack-app/src/pages/api/users/index.ts +43 -0
  98. package/templates/fullstack-app/src/pages/index.tsx +97 -20
  99. package/templates/fullstack-app/src/pages/users/[id].tsx +153 -0
  100. package/templates/fullstack-app/src/pages/wasm-demo.tsx +1 -0
  101. package/templates/go/example.go +99 -86
  102. package/templates/go-wasm-app/babel.config.js +8 -2
  103. package/templates/go-wasm-app/build.config.js +62 -0
  104. package/templates/go-wasm-app/build.js +218 -0
  105. package/templates/go-wasm-app/package.json +21 -12
  106. package/templates/go-wasm-app/server.js +59 -510
  107. package/templates/go-wasm-app/src/app.js +173 -0
  108. package/templates/go-wasm-app/vite.config.js +16 -5
  109. package/templates/ssr-template/client.js +54 -26
  110. package/templates/ssr-template/server.js +5 -28
  111. package/templates/ssr-template/vite.config.js +21 -5
  112. package/dist/server/wasm.d.ts +0 -7
  113. package/dist/wasm.d.ts +0 -37
@@ -0,0 +1,55 @@
1
+ export interface Route {
2
+ path: string;
3
+ component: any;
4
+ exact?: boolean;
5
+ children?: Route[];
6
+ }
7
+ export interface RouterContextValue {
8
+ currentPath: string;
9
+ navigate: (path: string) => void;
10
+ params: Record<string, string>;
11
+ query: Record<string, string>;
12
+ }
13
+ export interface RouteParams {
14
+ [key: string]: string;
15
+ }
16
+ export declare const RouterContext: import("./context.js").Context<RouterContextValue>;
17
+ export declare function useRouter(): RouterContextValue;
18
+ export declare function useLocation(): {
19
+ pathname: string;
20
+ search: string;
21
+ hash: string;
22
+ state: {};
23
+ };
24
+ export declare function useParams<T extends RouteParams = RouteParams>(): T;
25
+ export declare function useNavigate(): (path: string) => void;
26
+ export declare function RouterProvider({ children }: {
27
+ children: any;
28
+ }): any;
29
+ export declare function Router({ routes }: {
30
+ routes: Route[];
31
+ }): any;
32
+ export declare function Link({ to, children, ...rest }: {
33
+ to: string;
34
+ children: any;
35
+ [key: string]: any;
36
+ }): any;
37
+ export declare function Route({ path, component }: {
38
+ path: string;
39
+ component: any;
40
+ }): null;
41
+ export declare function Switch({ children }: {
42
+ children: any;
43
+ }): any;
44
+ declare const _default: {
45
+ RouterProvider: typeof RouterProvider;
46
+ Router: typeof Router;
47
+ Link: typeof Link;
48
+ Route: typeof Route;
49
+ Switch: typeof Switch;
50
+ useRouter: typeof useRouter;
51
+ useParams: typeof useParams;
52
+ useNavigate: typeof useNavigate;
53
+ useLocation: typeof useLocation;
54
+ };
55
+ export default _default;
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Router implementation for client and server navigation
3
+ */
4
+ import { useState, useEffect } from './hooks';
5
+ import { createContext, useContext } from './context';
6
+ import { jsx } from './jsx-runtime';
7
+ export const RouterContext = createContext({
8
+ currentPath: '/',
9
+ navigate: () => { },
10
+ params: {},
11
+ query: {}
12
+ });
13
+ export function useRouter() {
14
+ return useContext(RouterContext);
15
+ }
16
+ export function useLocation() {
17
+ const router = useContext(RouterContext);
18
+ return {
19
+ pathname: router.currentPath,
20
+ search: '', // TODO: Implement search parsing
21
+ hash: '', // TODO: Implement hash parsing
22
+ state: {} // TODO: Implement history state
23
+ };
24
+ }
25
+ export function useParams() {
26
+ const router = useContext(RouterContext);
27
+ return router.params;
28
+ }
29
+ export function useNavigate() {
30
+ const router = useContext(RouterContext);
31
+ return router.navigate;
32
+ }
33
+ export function RouterProvider({ children }) {
34
+ // Initial path should be window.location.pathname on client, or passed from server context
35
+ const [currentPath, setCurrentPath] = useState(typeof window !== 'undefined' ? window.location.pathname : '/');
36
+ const [params, setParams] = useState({});
37
+ const [query, setQuery] = useState({});
38
+ // Update path when URL changes
39
+ useEffect(() => {
40
+ if (typeof window === 'undefined')
41
+ return;
42
+ const handlePopState = () => {
43
+ setCurrentPath(window.location.pathname);
44
+ parseQuery(window.location.search);
45
+ };
46
+ window.addEventListener('popstate', handlePopState);
47
+ // Parse initial query
48
+ parseQuery(window.location.search);
49
+ return () => {
50
+ window.removeEventListener('popstate', handlePopState);
51
+ };
52
+ }, []);
53
+ // Parse query string into object
54
+ const parseQuery = (queryString) => {
55
+ const queryObj = {};
56
+ if (queryString.startsWith('?')) {
57
+ queryString = queryString.substring(1);
58
+ }
59
+ queryString.split('&').forEach(pair => {
60
+ if (!pair)
61
+ return;
62
+ const [key, value] = pair.split('=');
63
+ queryObj[decodeURIComponent(key)] = decodeURIComponent(value || '');
64
+ });
65
+ setQuery(queryObj);
66
+ };
67
+ // Navigate programmatically
68
+ const navigate = (path) => {
69
+ if (typeof window === 'undefined')
70
+ return;
71
+ window.history.pushState(null, '', path);
72
+ setCurrentPath(path);
73
+ parseQuery(window.location.search);
74
+ };
75
+ return jsx(RouterContext.Provider, {
76
+ value: { currentPath, navigate, params, query },
77
+ children
78
+ });
79
+ }
80
+ export function Router({ routes }) {
81
+ const router = useRouter();
82
+ const currentPath = router.currentPath;
83
+ // Find matching route
84
+ const matchedRoute = findMatchingRoute(routes, currentPath);
85
+ if (!matchedRoute) {
86
+ return jsx('div', { children: '404 - Page Not Found' });
87
+ }
88
+ return matchedRoute.component({ children: matchedRoute.children });
89
+ }
90
+ function findMatchingRoute(routes, path) {
91
+ for (const route of routes) {
92
+ const match = matchPath(path, route);
93
+ if (match) {
94
+ return {
95
+ ...route,
96
+ params: match.params
97
+ };
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+ function matchPath(pathname, route) {
103
+ const { path, exact = true } = route;
104
+ // Convert route pattern to regex
105
+ const pattern = path.replace(/:[a-zA-Z0-9_]+/g, '([^/]+)');
106
+ const regex = new RegExp(`^${pattern}${exact ? '$' : ''}`);
107
+ const match = pathname.match(regex);
108
+ if (!match) {
109
+ return null;
110
+ }
111
+ // Extract params
112
+ const params = {};
113
+ const paramNames = path.match(/:[a-zA-Z0-9_]+/g) || [];
114
+ paramNames.forEach((paramName, index) => {
115
+ params[paramName.substring(1)] = match[index + 1];
116
+ });
117
+ return { params };
118
+ }
119
+ export function Link({ to, children, ...rest }) {
120
+ const router = useRouter();
121
+ const navigate = router.navigate;
122
+ const handleClick = (e) => {
123
+ e.preventDefault();
124
+ navigate(to);
125
+ };
126
+ return jsx('a', {
127
+ href: to,
128
+ onClick: handleClick,
129
+ ...rest,
130
+ children
131
+ });
132
+ }
133
+ export function Route({ path, component }) {
134
+ // This is a configuration component, not actually rendered
135
+ return null;
136
+ }
137
+ export function Switch({ children }) {
138
+ const router = useRouter();
139
+ const currentPath = router.currentPath;
140
+ // Find the first matching route
141
+ const child = Array.isArray(children)
142
+ ? children.find(child => {
143
+ if (!child || !child.props)
144
+ return false;
145
+ const routeObj = {
146
+ path: child.props.path,
147
+ component: child.props.component,
148
+ exact: child.props.exact
149
+ };
150
+ return matchPath(currentPath, routeObj);
151
+ })
152
+ : children;
153
+ return child || null;
154
+ }
155
+ export default {
156
+ RouterProvider,
157
+ Router,
158
+ Link,
159
+ Route,
160
+ Switch,
161
+ useRouter,
162
+ useParams,
163
+ useNavigate,
164
+ useLocation
165
+ };
166
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
- import { Express } from 'express';
1
+ import { Express, Request } from 'express';
2
2
  import cors from 'cors';
3
3
  import { SignOptions } from 'jsonwebtoken';
4
4
  import { renderToString } from '../server-renderer.js';
5
5
  import { Database } from './database.js';
6
6
  import { AuthService } from './auth.js';
7
+ import { ApiRouter } from './api-router.js';
8
+ import { safeJsonParse, generateToken, hashString, getPagination, sendSuccess, sendError, validateFields, validateFileUpload, getEnvironmentInfo, isDirectoryEmpty, ensureDirectory, writeJsonFile, readJsonFile } from './utils.js';
9
+ import { generateDocument, generateErrorPage, generateLoadingPage } from './templates.js';
7
10
  export interface ServerConfig {
8
11
  port?: number;
9
12
  apiDir?: string;
@@ -28,6 +31,10 @@ export declare class Server {
28
31
  private auth;
29
32
  constructor(config?: ServerConfig);
30
33
  private setupApiRoutes;
34
+ private generateApiDocs;
35
+ private scanApiDirectory;
36
+ private getRoutePath;
37
+ private detectApiMethods;
31
38
  private setupPageRoutes;
32
39
  private renderPage;
33
40
  getExpressApp(): Express;
@@ -35,7 +42,30 @@ export declare class Server {
35
42
  getAuth(): AuthService | null;
36
43
  start(): Promise<void>;
37
44
  stop(): Promise<void>;
45
+ restart(): Promise<void>;
46
+ enableSSR(options?: {
47
+ hydratable?: boolean;
48
+ }): void;
49
+ registerPlugin(plugin: (server: Server) => void): void;
50
+ addShutdownHandler(): void;
38
51
  }
52
+ /**
53
+ * Creates and configures a new server instance
54
+ */
55
+ export declare function createServer(config?: ServerConfig): Server;
56
+ /**
57
+ * Creates a new server with sensible defaults for development
58
+ */
59
+ export declare function createDevServer(options?: {
60
+ port?: number;
61
+ enableCors?: boolean;
62
+ }): Server;
63
+ /**
64
+ * Creates a production-ready server with optimized settings
65
+ */
66
+ export declare function createProductionServer(config: ServerConfig): Server;
67
+ export declare function getRequestIp(req: Request): string;
68
+ export declare function parseCookies(req: Request): Record<string, string>;
39
69
  export { Database } from './database.js';
40
70
  export { AuthService } from './auth.js';
41
71
  export { ApiRouter } from './api-router.js';
@@ -51,4 +81,47 @@ export declare const renderComponent: (Component: any, props?: any) => Promise<{
51
81
  error: unknown;
52
82
  }>;
53
83
  export { initNodeWasm, loadGoWasmFromFile } from './wasm.js';
54
- export default Server;
84
+ export * from './utils.js';
85
+ export * from './templates.js';
86
+ declare const _default: {
87
+ Server: typeof Server;
88
+ createServer: typeof createServer;
89
+ createDevServer: typeof createDevServer;
90
+ createProductionServer: typeof createProductionServer;
91
+ Database: typeof Database;
92
+ AuthService: typeof AuthService;
93
+ ApiRouter: typeof ApiRouter;
94
+ renderToString: typeof renderToString;
95
+ renderComponent: (Component: any, props?: any) => Promise<{
96
+ html: string;
97
+ success: boolean;
98
+ error?: undefined;
99
+ } | {
100
+ html: string;
101
+ success: boolean;
102
+ error: unknown;
103
+ }>;
104
+ templates: {
105
+ generateDocument: typeof generateDocument;
106
+ generateErrorPage: typeof generateErrorPage;
107
+ generateLoadingPage: typeof generateLoadingPage;
108
+ };
109
+ utils: {
110
+ getRequestIp: typeof getRequestIp;
111
+ parseCookies: typeof parseCookies;
112
+ safeJsonParse: typeof safeJsonParse;
113
+ generateToken: typeof generateToken;
114
+ hashString: typeof hashString;
115
+ getPagination: typeof getPagination;
116
+ sendSuccess: typeof sendSuccess;
117
+ sendError: typeof sendError;
118
+ validateFields: typeof validateFields;
119
+ validateFileUpload: typeof validateFileUpload;
120
+ getEnvironmentInfo: typeof getEnvironmentInfo;
121
+ isDirectoryEmpty: typeof isDirectoryEmpty;
122
+ ensureDirectory: typeof ensureDirectory;
123
+ writeJsonFile: typeof writeJsonFile;
124
+ readJsonFile: typeof readJsonFile;
125
+ };
126
+ };
127
+ export default _default;
@@ -2,10 +2,15 @@ import express from 'express';
2
2
  import path from 'path';
3
3
  import fs from 'fs';
4
4
  import cors from 'cors';
5
- import { renderToString } from '../server-renderer.js';
6
- import { Database } from './database.js';
7
- import { AuthService } from './auth.js';
8
- import { ApiRouter } from './api-router.js';
5
+ import { renderToString } from '../server-renderer';
6
+ import { Database } from './database';
7
+ import { AuthService } from './auth';
8
+ import { ApiRouter } from './api-router';
9
+ import { requestLogger } from './middleware';
10
+ // Import the utility functions that were missing
11
+ import { safeJsonParse, generateToken, hashString, getPagination, sendSuccess, sendError, validateFields, validateFileUpload, getEnvironmentInfo, isDirectoryEmpty, ensureDirectory, writeJsonFile, readJsonFile } from './utils';
12
+ // Import the HTML template generators
13
+ import { generateDocument, generateErrorPage, generateLoadingPage } from './templates';
9
14
  export class Server {
10
15
  constructor(config = {}) {
11
16
  Object.defineProperty(this, "app", {
@@ -79,7 +84,60 @@ export class Server {
79
84
  }
80
85
  setupApiRoutes() {
81
86
  const apiRouter = new ApiRouter(this.config.apiDir, this.auth);
82
- this.app.use('/api', apiRouter.router);
87
+ this.app.use('/api', requestLogger, apiRouter.router);
88
+ // Add API documentation route
89
+ this.app.get('/api-docs', (req, res) => {
90
+ const apiDocs = this.generateApiDocs();
91
+ res.json(apiDocs);
92
+ });
93
+ }
94
+ generateApiDocs() {
95
+ // Generate documentation based on API routes
96
+ const apiDir = path.resolve(process.cwd(), this.config.apiDir);
97
+ const docs = { endpoints: [] };
98
+ if (fs.existsSync(apiDir)) {
99
+ this.scanApiDirectory(apiDir, '', docs.endpoints);
100
+ }
101
+ return docs;
102
+ }
103
+ scanApiDirectory(dirPath, routePrefix, endpoints) {
104
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
105
+ for (const entry of entries) {
106
+ const fullPath = path.join(dirPath, entry.name);
107
+ if (entry.isDirectory()) {
108
+ this.scanApiDirectory(fullPath, `${routePrefix}/${entry.name}`, endpoints);
109
+ }
110
+ else if (entry.name.endsWith('.js') || entry.name.endsWith('.ts')) {
111
+ const routePath = this.getRoutePath(entry.name, routePrefix);
112
+ endpoints.push({
113
+ path: routePath,
114
+ file: path.relative(process.cwd(), fullPath),
115
+ methods: this.detectApiMethods(fullPath)
116
+ });
117
+ }
118
+ }
119
+ }
120
+ getRoutePath(filename, routePrefix) {
121
+ const baseName = path.basename(filename, path.extname(filename));
122
+ if (baseName === 'index') {
123
+ return routePrefix || '/';
124
+ }
125
+ const paramMatch = baseName.match(/^\[(.+)\]$/);
126
+ if (paramMatch) {
127
+ return `${routePrefix}/:${paramMatch[1]}`;
128
+ }
129
+ return `${routePrefix}/${baseName}`;
130
+ }
131
+ detectApiMethods(filePath) {
132
+ try {
133
+ const content = fs.readFileSync(filePath, 'utf8');
134
+ const methods = ['get', 'post', 'put', 'delete', 'patch', 'options'];
135
+ return methods.filter(method => new RegExp(`export (async )?function ${method}\\s*\\(`).test(content) ||
136
+ new RegExp(`export const ${method}\\s*=`).test(content));
137
+ }
138
+ catch (error) {
139
+ return [];
140
+ }
83
141
  }
84
142
  setupPageRoutes() {
85
143
  if (!fs.existsSync(path.resolve(process.cwd(), this.config.pagesDir))) {
@@ -136,6 +194,119 @@ export class Server {
136
194
  });
137
195
  });
138
196
  }
197
+ // Add new utility methods for server management
198
+ restart() {
199
+ return this.stop().then(() => this.start());
200
+ }
201
+ enableSSR(options = {}) {
202
+ if (!fs.existsSync(path.resolve(process.cwd(), this.config.pagesDir))) {
203
+ fs.mkdirSync(path.resolve(process.cwd(), this.config.pagesDir), { recursive: true });
204
+ }
205
+ // Set up client-side JS for hydration if needed
206
+ if (options.hydratable) {
207
+ const staticDir = path.resolve(process.cwd(), this.config.staticDir);
208
+ if (!fs.existsSync(staticDir)) {
209
+ fs.mkdirSync(staticDir, { recursive: true });
210
+ }
211
+ // Generate or copy client hydration script
212
+ // This is a simplified example - would need more implementation
213
+ const clientJsPath = path.join(staticDir, 'client.js');
214
+ if (!fs.existsSync(clientJsPath)) {
215
+ const clientJsContent = `
216
+ // Auto-generated hydration script
217
+ import { hydrate } from 'frontend-hamroun';
218
+
219
+ // Find SSR content and hydrate it
220
+ document.addEventListener('DOMContentLoaded', () => {
221
+ const ssrRoots = document.querySelectorAll('[data-ssr-root]');
222
+ ssrRoots.forEach(root => {
223
+ const componentPath = root.getAttribute('data-component');
224
+ if (componentPath) {
225
+ import(componentPath).then(module => {
226
+ hydrate(module.default, root);
227
+ });
228
+ }
229
+ });
230
+ });
231
+ `;
232
+ fs.writeFileSync(clientJsPath, clientJsContent);
233
+ }
234
+ }
235
+ }
236
+ registerPlugin(plugin) {
237
+ plugin(this);
238
+ }
239
+ addShutdownHandler() {
240
+ // Handle graceful shutdown
241
+ const gracefulShutdown = async () => {
242
+ console.log('Received shutdown signal, closing server...');
243
+ try {
244
+ await this.stop();
245
+ if (this.db) {
246
+ await this.db.disconnect();
247
+ }
248
+ console.log('Server shut down gracefully');
249
+ process.exit(0);
250
+ }
251
+ catch (error) {
252
+ console.error('Error during shutdown:', error);
253
+ process.exit(1);
254
+ }
255
+ };
256
+ // Listen for termination signals
257
+ process.on('SIGTERM', gracefulShutdown);
258
+ process.on('SIGINT', gracefulShutdown);
259
+ }
260
+ }
261
+ // Add server utility functions
262
+ /**
263
+ * Creates and configures a new server instance
264
+ */
265
+ export function createServer(config = {}) {
266
+ return new Server(config);
267
+ }
268
+ /**
269
+ * Creates a new server with sensible defaults for development
270
+ */
271
+ export function createDevServer(options = {}) {
272
+ return new Server({
273
+ port: options.port || 3000,
274
+ enableCors: options.enableCors !== false,
275
+ apiDir: './src/api',
276
+ pagesDir: './src/pages',
277
+ staticDir: './public'
278
+ });
279
+ }
280
+ /**
281
+ * Creates a production-ready server with optimized settings
282
+ */
283
+ export function createProductionServer(config) {
284
+ const server = new Server({
285
+ ...config,
286
+ // Fix the PORT parsing
287
+ port: config.port || (process.env.PORT ? parseInt(process.env.PORT) : 8080)
288
+ });
289
+ // Add shutdown handler for production environments
290
+ server.addShutdownHandler();
291
+ return server;
292
+ }
293
+ // Export additional utility functions
294
+ export function getRequestIp(req) {
295
+ return req.ip ||
296
+ req.headers['x-forwarded-for']?.split(',')[0].trim() ||
297
+ req.socket.remoteAddress ||
298
+ '';
299
+ }
300
+ export function parseCookies(req) {
301
+ const cookies = {};
302
+ const cookieHeader = req.headers.cookie;
303
+ if (cookieHeader) {
304
+ cookieHeader.split(';').forEach(cookie => {
305
+ const [name, value] = cookie.split('=').map(c => c.trim());
306
+ cookies[name] = value;
307
+ });
308
+ }
309
+ return cookies;
139
310
  }
140
311
  // Server module main export file
141
312
  // Export all server components
@@ -167,6 +338,51 @@ export const renderComponent = async (Component, props = {}) => {
167
338
  };
168
339
  // Export WASM utilities for server-side usage
169
340
  export { initNodeWasm, loadGoWasmFromFile } from './wasm.js';
170
- // Export default Server class for convenience
171
- export default Server;
172
- //# sourceMappingURL=index.js.map
341
+ // Import and export server utilities
342
+ export * from './utils.js';
343
+ export * from './templates.js';
344
+ // Update the default export
345
+ export default {
346
+ Server,
347
+ createServer,
348
+ createDevServer,
349
+ createProductionServer,
350
+ Database,
351
+ AuthService,
352
+ ApiRouter,
353
+ renderToString,
354
+ renderComponent,
355
+ // Template utilities
356
+ templates: {
357
+ generateDocument,
358
+ generateErrorPage,
359
+ generateLoadingPage
360
+ },
361
+ // Server utilities
362
+ utils: {
363
+ getRequestIp,
364
+ parseCookies,
365
+ safeJsonParse,
366
+ generateToken,
367
+ hashString,
368
+ getPagination,
369
+ sendSuccess,
370
+ sendError,
371
+ validateFields,
372
+ validateFileUpload,
373
+ getEnvironmentInfo,
374
+ isDirectoryEmpty,
375
+ ensureDirectory,
376
+ writeJsonFile,
377
+ readJsonFile
378
+ }
379
+ };
380
+ //# sourceMappingURL=index.js.map
381
+ // This module is compatible with both ESM and CommonJS
382
+ if (typeof exports === 'object' && typeof module !== 'undefined') {
383
+ // CommonJS environment
384
+ module.exports = exports;
385
+ } else if (typeof define === 'function' && define.amd) {
386
+ // AMD environment
387
+ define(['exports'], factory);
388
+ } // ESM environment is handled by default exports
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import { renderComponent } from '../renderComponent.js'; // Fixed import path with .js extension
3
+ import { renderComponent } from '../renderComponent'; // Fixed import path with .js extension
4
4
  class Server {
5
5
  constructor(config) {
6
6
  Object.defineProperty(this, "config", {
@@ -0,0 +1,28 @@
1
+ /**
2
+ * HTML template generators for server-side rendering
3
+ */
4
+ export interface DocumentOptions {
5
+ title?: string;
6
+ description?: string;
7
+ lang?: string;
8
+ charset?: string;
9
+ viewport?: string;
10
+ scripts?: string[];
11
+ styles?: string[];
12
+ meta?: Record<string, string>;
13
+ bodyClasses?: string;
14
+ htmlAttrs?: Record<string, string>;
15
+ bodyAttrs?: Record<string, string>;
16
+ }
17
+ /**
18
+ * Generate a complete HTML document
19
+ */
20
+ export declare function generateDocument(content: string, options?: DocumentOptions): string;
21
+ /**
22
+ * Generate an error page
23
+ */
24
+ export declare function generateErrorPage(statusCode: number, message: string, error?: Error): string;
25
+ /**
26
+ * Generate a loading page
27
+ */
28
+ export declare function generateLoadingPage(message?: string): string;