frontend-hamroun 1.2.79 → 1.2.80
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 +129 -1513
- package/bin/cli.js +505 -144
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.client.cjs +2 -0
- package/dist/index.client.cjs.map +1 -0
- package/dist/index.client.js +26 -0
- package/dist/index.client.js.map +1 -0
- package/dist/index.js +298 -1
- package/dist/index.js.map +1 -0
- package/dist/jsx-runtime.cjs +2 -0
- package/dist/jsx-runtime.cjs.map +1 -0
- package/dist/jsx-runtime.js +93 -1
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/renderer-Bo9zkUZ_.js +52 -0
- package/dist/renderer-Bo9zkUZ_.js.map +1 -0
- package/dist/renderer-Din1y3YM.cjs +2 -0
- package/dist/renderer-Din1y3YM.cjs.map +1 -0
- package/dist/server-renderer-CqIpQ-od.cjs +2 -0
- package/dist/server-renderer-CqIpQ-od.cjs.map +1 -0
- package/dist/server-renderer-QHt45Ip2.js +255 -0
- package/dist/server-renderer-QHt45Ip2.js.map +1 -0
- package/dist/server-renderer.cjs +2 -0
- package/dist/server-renderer.cjs.map +1 -0
- package/dist/server-renderer.js +5 -1
- package/dist/server-renderer.js.map +1 -0
- package/package.json +77 -120
- package/templates/basic-app/build.js +22 -0
- package/templates/basic-app/bun.lock +196 -0
- package/templates/basic-app/dev.js +27 -0
- package/templates/basic-app/docs/rapport_pfe.aux +27 -27
- package/templates/basic-app/docs/rapport_pfe.out +10 -10
- package/templates/basic-app/docs/rapport_pfe.toc +14 -14
- package/templates/basic-app/esbuild.config.js +28 -0
- package/templates/basic-app/index.html +1 -1
- package/templates/{fullstack-app → basic-app}/package-lock.json +4185 -5094
- package/templates/basic-app/package.json +29 -28
- package/templates/basic-app/server.js +24 -0
- package/templates/basic-app/src/App.tsx +26 -0
- package/templates/basic-app/src/client.tsx +11 -0
- package/templates/basic-app/src/components/Counter.tsx +18 -0
- package/templates/basic-app/src/jsx-shim.ts +4 -0
- package/templates/basic-app/src/main.tsx +0 -1
- package/templates/basic-app/src/server.ts +52 -0
- package/templates/basic-app/tsconfig.server.json +11 -0
- package/templates/fullstack-app/build/main.css +874 -874
- package/templates/fullstack-app/build/main.css.map +7 -7
- package/templates/fullstack-app/build/main.js +967 -967
- package/templates/fullstack-app/build/main.js.map +7 -7
- package/templates/fullstack-app/public/styles.css +768 -768
- package/templates/go/example.go +99 -154
- package/templates/go-wasm-app/babel.config.js +2 -8
- package/templates/go-wasm-app/package.json +12 -21
- package/templates/go-wasm-app/public/wasm/wasm_exec.js +561 -561
- package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +39 -39
- package/templates/go-wasm-app/server.js +510 -59
- package/templates/go-wasm-app/src/app.js +2 -22
- package/templates/go-wasm-app/src/wasm/example.go +75 -75
- package/templates/go-wasm-app/vite.config.js +5 -16
- package/templates/ssr-template/server.js +2 -2
- package/templates/ssr-template/vite.config.js +5 -16
- package/dist/Counter.d.ts +0 -0
- package/dist/batch/package.json +0 -16
- package/dist/client-router/package.json +0 -16
- package/dist/component/package.json +0 -16
- package/dist/context/package.json +0 -16
- package/dist/event-bus/package.json +0 -16
- package/dist/forms/package.json +0 -16
- package/dist/hooks/package.json +0 -16
- package/dist/hooks-0728361a.cjs +0 -1
- package/dist/hooks-b58f947c.js +0 -133
- package/dist/hooks.js +0 -1
- package/dist/hooks.mjs +0 -13
- package/dist/index.mjs +0 -137
- package/dist/jsx-runtime/package.json +0 -16
- package/dist/jsx-runtime.mjs +0 -64
- package/dist/lifecycle-events/package.json +0 -16
- package/dist/package.json +0 -71
- package/dist/render-component/package.json +0 -16
- package/dist/renderer/package.json +0 -16
- package/dist/renderer.js +0 -1
- package/dist/renderer.mjs +0 -27
- package/dist/router/package.json +0 -16
- package/dist/server/package.json +0 -17
- package/dist/server/src/batch.d.ts +0 -3
- package/dist/server/src/batch.js +0 -23
- package/dist/server/src/batch.js.map +0 -1
- package/dist/server/src/client-router.d.ts +0 -60
- package/dist/server/src/client-router.js +0 -210
- package/dist/server/src/client-router.js.map +0 -1
- package/dist/server/src/component.d.ts +0 -14
- package/dist/server/src/component.js +0 -106
- package/dist/server/src/component.js.map +0 -1
- package/dist/server/src/context.d.ts +0 -13
- package/dist/server/src/context.js +0 -21
- package/dist/server/src/context.js.map +0 -1
- package/dist/server/src/event-bus.d.ts +0 -23
- package/dist/server/src/event-bus.js +0 -75
- package/dist/server/src/event-bus.js.map +0 -1
- package/dist/server/src/forms.d.ts +0 -40
- package/dist/server/src/forms.js +0 -148
- package/dist/server/src/forms.js.map +0 -1
- package/dist/server/src/hooks.d.ts +0 -12
- package/dist/server/src/hooks.js +0 -170
- package/dist/server/src/hooks.js.map +0 -1
- package/dist/server/src/index.client.d.ts +0 -12
- package/dist/server/src/index.client.js +0 -14
- package/dist/server/src/index.client.js.map +0 -1
- package/dist/server/src/index.d.ts +0 -88
- package/dist/server/src/index.js +0 -79
- package/dist/server/src/index.js.map +0 -1
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
- package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
- package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
- package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
- package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
- package/dist/server/src/jsx-runtime.d.ts +0 -20
- package/dist/server/src/jsx-runtime.js +0 -105
- package/dist/server/src/jsx-runtime.js.map +0 -1
- package/dist/server/src/lifecycle-events.d.ts +0 -108
- package/dist/server/src/lifecycle-events.js +0 -177
- package/dist/server/src/lifecycle-events.js.map +0 -1
- package/dist/server/src/renderComponent.d.ts +0 -13
- package/dist/server/src/renderComponent.js +0 -30
- package/dist/server/src/renderComponent.js.map +0 -1
- package/dist/server/src/renderer.d.ts +0 -2
- package/dist/server/src/renderer.js +0 -31
- package/dist/server/src/renderer.js.map +0 -1
- package/dist/server/src/router.d.ts +0 -55
- package/dist/server/src/router.js +0 -166
- package/dist/server/src/router.js.map +0 -1
- package/dist/server/src/server/api-router.d.ts +0 -15
- package/dist/server/src/server/api-router.js +0 -111
- package/dist/server/src/server/api-router.js.map +0 -1
- package/dist/server/src/server/auth.d.ts +0 -32
- package/dist/server/src/server/auth.js +0 -80
- package/dist/server/src/server/auth.js.map +0 -1
- package/dist/server/src/server/database.d.ts +0 -24
- package/dist/server/src/server/database.js +0 -135
- package/dist/server/src/server/database.js.map +0 -1
- package/dist/server/src/server/index.d.ts +0 -116
- package/dist/server/src/server/index.js +0 -508
- package/dist/server/src/server/index.js.map +0 -1
- package/dist/server/src/server/middleware.d.ts +0 -11
- package/dist/server/src/server/middleware.js +0 -46
- package/dist/server/src/server/middleware.js.map +0 -1
- package/dist/server/src/server/server.d.ts +0 -9
- package/dist/server/src/server/server.js +0 -87
- package/dist/server/src/server/server.js.map +0 -1
- package/dist/server/src/server/templates.d.ts +0 -30
- package/dist/server/src/server/templates.js +0 -208
- package/dist/server/src/server/templates.js.map +0 -1
- package/dist/server/src/server/types.d.ts +0 -38
- package/dist/server/src/server/types.js +0 -4
- package/dist/server/src/server/types.js.map +0 -1
- package/dist/server/src/server/utils.d.ts +0 -70
- package/dist/server/src/server/utils.js +0 -156
- package/dist/server/src/server/utils.js.map +0 -1
- package/dist/server/src/server/wasm.d.ts +0 -9
- package/dist/server/src/server/wasm.js +0 -117
- package/dist/server/src/server/wasm.js.map +0 -1
- package/dist/server/src/server-renderer.d.ts +0 -5
- package/dist/server/src/server-renderer.js +0 -106
- package/dist/server/src/server-renderer.js.map +0 -1
- package/dist/server/src/server-types.d.ts +0 -42
- package/dist/server/src/server-types.js +0 -6
- package/dist/server/src/server-types.js.map +0 -1
- package/dist/server/src/store.d.ts +0 -41
- package/dist/server/src/store.js +0 -99
- package/dist/server/src/store.js.map +0 -1
- package/dist/server/src/types.d.ts +0 -19
- package/dist/server/src/types.js +0 -2
- package/dist/server/src/types.js.map +0 -1
- package/dist/server/src/utils.d.ts +0 -46
- package/dist/server/src/utils.js +0 -144
- package/dist/server/src/utils.js.map +0 -1
- package/dist/server/src/vdom.d.ts +0 -8
- package/dist/server/src/vdom.js +0 -22
- package/dist/server/src/vdom.js.map +0 -1
- package/dist/server/src/wasm.d.ts +0 -36
- package/dist/server/src/wasm.js +0 -159
- package/dist/server/src/wasm.js.map +0 -1
- package/dist/server/tsconfig.server.tsbuildinfo +0 -1
- package/dist/server-renderer/package.json +0 -16
- package/dist/server-renderer.mjs +0 -64
- package/dist/store/package.json +0 -16
- package/dist/types/package.json +0 -16
- package/dist/utils/package.json +0 -16
- package/dist/vdom/package.json +0 -16
- package/dist/wasm/package.json +0 -16
- package/dist/wasm.js +0 -1
- package/dist/wasm.mjs +0 -103
- package/templates/basic-app/docs/rapport_pfe.log +0 -399
- package/templates/complete-app/client.js +0 -58
- package/templates/complete-app/package-lock.json +0 -2536
- package/templates/complete-app/package.json +0 -17
- package/templates/complete-app/pages/about.js +0 -119
- package/templates/complete-app/pages/index.js +0 -157
- package/templates/complete-app/pages/wasm-demo.js +0 -290
- package/templates/complete-app/public/client.js +0 -80
- package/templates/complete-app/public/index.html +0 -47
- package/templates/complete-app/public/styles.css +0 -579
- package/templates/complete-app/readme.md +0 -188
- package/templates/complete-app/server.js +0 -417
- package/templates/complete-app/server.ts +0 -275
- package/templates/complete-app/src/App.tsx +0 -59
- package/templates/complete-app/src/client.ts +0 -61
- package/templates/complete-app/src/client.tsx +0 -18
- package/templates/complete-app/src/pages/index.tsx +0 -51
- package/templates/complete-app/src/server.ts +0 -218
- package/templates/complete-app/tsconfig.json +0 -22
- package/templates/complete-app/tsconfig.server.json +0 -19
- package/templates/complete-app/vite.config.js +0 -57
- package/templates/complete-app/vite.config.ts +0 -30
- package/templates/go-wasm-app/build.config.js +0 -62
- package/templates/go-wasm-app/build.js +0 -218
- package/templates/go-wasm-app/package-lock.json +0 -3732
@@ -1,32 +0,0 @@
|
|
1
|
-
import { SignOptions } from 'jsonwebtoken';
|
2
|
-
import { Request, Response, NextFunction } from 'express';
|
3
|
-
export interface AuthConfig {
|
4
|
-
secret: string;
|
5
|
-
expiresIn?: SignOptions['expiresIn'];
|
6
|
-
}
|
7
|
-
export interface User {
|
8
|
-
id: string | number;
|
9
|
-
username: string;
|
10
|
-
password?: string;
|
11
|
-
email?: string;
|
12
|
-
roles?: string[];
|
13
|
-
[key: string]: any;
|
14
|
-
}
|
15
|
-
export declare class AuthService {
|
16
|
-
private config;
|
17
|
-
constructor(config: AuthConfig);
|
18
|
-
hashPassword(password: string): Promise<string>;
|
19
|
-
comparePasswords(password: string, hashedPassword: string): Promise<boolean>;
|
20
|
-
generateToken(user: Omit<User, 'password'>): string;
|
21
|
-
verifyToken(token: string): any;
|
22
|
-
initialize(): (req: Request & {
|
23
|
-
user?: any;
|
24
|
-
}, res: Response, next: NextFunction) => void;
|
25
|
-
requireAuth(): (req: Request & {
|
26
|
-
user?: any;
|
27
|
-
}, res: Response, next: NextFunction) => void | Response<any, Record<string, any>>;
|
28
|
-
requireRoles(roles: string[]): (req: Request & {
|
29
|
-
user?: any;
|
30
|
-
}, res: Response, next: NextFunction) => void | Response<any, Record<string, any>>;
|
31
|
-
private extractToken;
|
32
|
-
}
|
@@ -1,80 +0,0 @@
|
|
1
|
-
import jwt from 'jsonwebtoken';
|
2
|
-
import bcrypt from 'bcryptjs';
|
3
|
-
export class AuthService {
|
4
|
-
constructor(config) {
|
5
|
-
Object.defineProperty(this, "config", {
|
6
|
-
enumerable: true,
|
7
|
-
configurable: true,
|
8
|
-
writable: true,
|
9
|
-
value: void 0
|
10
|
-
});
|
11
|
-
this.config = {
|
12
|
-
expiresIn: '24h',
|
13
|
-
...config
|
14
|
-
};
|
15
|
-
}
|
16
|
-
async hashPassword(password) {
|
17
|
-
return bcrypt.hash(password, 10);
|
18
|
-
}
|
19
|
-
async comparePasswords(password, hashedPassword) {
|
20
|
-
return bcrypt.compare(password, hashedPassword);
|
21
|
-
}
|
22
|
-
generateToken(user) {
|
23
|
-
const options = {};
|
24
|
-
if (this.config.expiresIn) {
|
25
|
-
options.expiresIn = this.config.expiresIn;
|
26
|
-
}
|
27
|
-
return jwt.sign({ id: user.id, username: user.username, roles: user.roles || [] }, this.config.secret, options);
|
28
|
-
}
|
29
|
-
verifyToken(token) {
|
30
|
-
try {
|
31
|
-
return jwt.verify(token, this.config.secret);
|
32
|
-
}
|
33
|
-
catch (error) {
|
34
|
-
return null;
|
35
|
-
}
|
36
|
-
}
|
37
|
-
// Express middleware for authentication
|
38
|
-
initialize() {
|
39
|
-
return (req, res, next) => {
|
40
|
-
const token = this.extractToken(req);
|
41
|
-
if (token) {
|
42
|
-
const decoded = this.verifyToken(token);
|
43
|
-
if (decoded) {
|
44
|
-
req.user = decoded;
|
45
|
-
}
|
46
|
-
}
|
47
|
-
next();
|
48
|
-
};
|
49
|
-
}
|
50
|
-
// Express middleware for requiring authentication
|
51
|
-
requireAuth() {
|
52
|
-
return (req, res, next) => {
|
53
|
-
if (!req.user) {
|
54
|
-
return res.status(401).json({ message: 'Unauthorized' });
|
55
|
-
}
|
56
|
-
return next();
|
57
|
-
};
|
58
|
-
}
|
59
|
-
// Express middleware for requiring specific roles
|
60
|
-
requireRoles(roles) {
|
61
|
-
return (req, res, next) => {
|
62
|
-
if (!req.user) {
|
63
|
-
return res.status(401).json({ message: 'Unauthorized' });
|
64
|
-
}
|
65
|
-
const userRoles = req.user.roles || [];
|
66
|
-
const hasRequiredRole = roles.some(role => userRoles.includes(role));
|
67
|
-
if (!hasRequiredRole) {
|
68
|
-
return res.status(403).json({ message: 'Forbidden' });
|
69
|
-
}
|
70
|
-
return next();
|
71
|
-
};
|
72
|
-
}
|
73
|
-
extractToken(req) {
|
74
|
-
if (req.headers.authorization && req.headers.authorization.startsWith('Bearer ')) {
|
75
|
-
return req.headers.authorization.substring(7);
|
76
|
-
}
|
77
|
-
return null;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
//# sourceMappingURL=auth.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/server/auth.ts"],"names":[],"mappings":"AAAA,OAAO,GAAoB,MAAM,cAAc,CAAC;AAChD,OAAO,MAAM,MAAM,UAAU,CAAC;AAiB9B,MAAM,OAAO,WAAW;IAGtB,YAAY,MAAkB;QAFtB;;;;;WAAmB;QAGzB,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,KAAK;YAChB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,cAAsB;QAC7D,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,IAA4B;QACxC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5C,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CACb,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,EACjE,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,UAAU;QACR,OAAO,CAAC,GAA6B,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,WAAW;QACT,OAAO,CAAC,GAA6B,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,YAAY,CAAC,KAAe;QAC1B,OAAO,CAAC,GAA6B,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAErE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,GAAY;QAC/B,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACjF,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
import { Db } from 'mongodb';
|
2
|
-
import mysql from 'mysql2/promise';
|
3
|
-
import pg from 'pg';
|
4
|
-
export interface DbConfig {
|
5
|
-
url: string;
|
6
|
-
type: 'mongodb' | 'mysql' | 'postgres';
|
7
|
-
}
|
8
|
-
export declare class Database {
|
9
|
-
private config;
|
10
|
-
private mongoClient;
|
11
|
-
private mongoDb;
|
12
|
-
private mysqlPool;
|
13
|
-
private pgPool;
|
14
|
-
constructor(config: DbConfig);
|
15
|
-
connect(): Promise<void>;
|
16
|
-
private connectMongo;
|
17
|
-
private connectMysql;
|
18
|
-
private connectPostgres;
|
19
|
-
disconnect(): Promise<void>;
|
20
|
-
getMongoDb(): Db | null;
|
21
|
-
getMysqlPool(): mysql.Pool | null;
|
22
|
-
getPgPool(): pg.Pool | null;
|
23
|
-
query(sql: string, values?: any[]): Promise<any>;
|
24
|
-
}
|
@@ -1,135 +0,0 @@
|
|
1
|
-
import { MongoClient } from 'mongodb';
|
2
|
-
import mysql from 'mysql2/promise';
|
3
|
-
import pg from 'pg';
|
4
|
-
export class Database {
|
5
|
-
constructor(config) {
|
6
|
-
Object.defineProperty(this, "config", {
|
7
|
-
enumerable: true,
|
8
|
-
configurable: true,
|
9
|
-
writable: true,
|
10
|
-
value: void 0
|
11
|
-
});
|
12
|
-
Object.defineProperty(this, "mongoClient", {
|
13
|
-
enumerable: true,
|
14
|
-
configurable: true,
|
15
|
-
writable: true,
|
16
|
-
value: null
|
17
|
-
});
|
18
|
-
Object.defineProperty(this, "mongoDb", {
|
19
|
-
enumerable: true,
|
20
|
-
configurable: true,
|
21
|
-
writable: true,
|
22
|
-
value: null
|
23
|
-
});
|
24
|
-
Object.defineProperty(this, "mysqlPool", {
|
25
|
-
enumerable: true,
|
26
|
-
configurable: true,
|
27
|
-
writable: true,
|
28
|
-
value: null
|
29
|
-
});
|
30
|
-
Object.defineProperty(this, "pgPool", {
|
31
|
-
enumerable: true,
|
32
|
-
configurable: true,
|
33
|
-
writable: true,
|
34
|
-
value: null
|
35
|
-
});
|
36
|
-
this.config = config;
|
37
|
-
}
|
38
|
-
async connect() {
|
39
|
-
switch (this.config.type) {
|
40
|
-
case 'mongodb':
|
41
|
-
await this.connectMongo();
|
42
|
-
break;
|
43
|
-
case 'mysql':
|
44
|
-
await this.connectMysql();
|
45
|
-
break;
|
46
|
-
case 'postgres':
|
47
|
-
await this.connectPostgres();
|
48
|
-
break;
|
49
|
-
default:
|
50
|
-
throw new Error(`Unsupported database type: ${this.config.type}`);
|
51
|
-
}
|
52
|
-
}
|
53
|
-
async connectMongo() {
|
54
|
-
try {
|
55
|
-
this.mongoClient = new MongoClient(this.config.url);
|
56
|
-
await this.mongoClient.connect();
|
57
|
-
this.mongoDb = this.mongoClient.db();
|
58
|
-
console.log('Connected to MongoDB');
|
59
|
-
}
|
60
|
-
catch (error) {
|
61
|
-
console.error('MongoDB connection error:', error);
|
62
|
-
throw error;
|
63
|
-
}
|
64
|
-
}
|
65
|
-
async connectMysql() {
|
66
|
-
try {
|
67
|
-
this.mysqlPool = mysql.createPool(this.config.url);
|
68
|
-
// Test connection
|
69
|
-
await this.mysqlPool.getConnection();
|
70
|
-
console.log('Connected to MySQL');
|
71
|
-
}
|
72
|
-
catch (error) {
|
73
|
-
console.error('MySQL connection error:', error);
|
74
|
-
throw error;
|
75
|
-
}
|
76
|
-
}
|
77
|
-
async connectPostgres() {
|
78
|
-
try {
|
79
|
-
this.pgPool = new pg.Pool({ connectionString: this.config.url });
|
80
|
-
// Test connection
|
81
|
-
const client = await this.pgPool.connect();
|
82
|
-
client.release();
|
83
|
-
console.log('Connected to PostgreSQL');
|
84
|
-
}
|
85
|
-
catch (error) {
|
86
|
-
console.error('PostgreSQL connection error:', error);
|
87
|
-
throw error;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
async disconnect() {
|
91
|
-
if (this.mongoClient) {
|
92
|
-
await this.mongoClient.close();
|
93
|
-
this.mongoClient = null;
|
94
|
-
this.mongoDb = null;
|
95
|
-
}
|
96
|
-
if (this.mysqlPool) {
|
97
|
-
await this.mysqlPool.end();
|
98
|
-
this.mysqlPool = null;
|
99
|
-
}
|
100
|
-
if (this.pgPool) {
|
101
|
-
await this.pgPool.end();
|
102
|
-
this.pgPool = null;
|
103
|
-
}
|
104
|
-
}
|
105
|
-
// Database-specific methods
|
106
|
-
getMongoDb() {
|
107
|
-
return this.mongoDb;
|
108
|
-
}
|
109
|
-
getMysqlPool() {
|
110
|
-
return this.mysqlPool;
|
111
|
-
}
|
112
|
-
getPgPool() {
|
113
|
-
return this.pgPool;
|
114
|
-
}
|
115
|
-
// Generic query method
|
116
|
-
async query(sql, values) {
|
117
|
-
switch (this.config.type) {
|
118
|
-
case 'mongodb':
|
119
|
-
throw new Error('For MongoDB, use getMongoDb() instead of query()');
|
120
|
-
case 'mysql':
|
121
|
-
if (!this.mysqlPool)
|
122
|
-
throw new Error('MySQL not connected');
|
123
|
-
const [rows] = await this.mysqlPool.execute(sql, values || []);
|
124
|
-
return rows;
|
125
|
-
case 'postgres':
|
126
|
-
if (!this.pgPool)
|
127
|
-
throw new Error('PostgreSQL not connected');
|
128
|
-
const result = await this.pgPool.query(sql, values || []);
|
129
|
-
return result.rows;
|
130
|
-
default:
|
131
|
-
throw new Error(`Unsupported database type: ${this.config.type}`);
|
132
|
-
}
|
133
|
-
}
|
134
|
-
}
|
135
|
-
//# sourceMappingURL=database.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/server/database.ts"],"names":[],"mappings":"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"}
|
@@ -1,116 +0,0 @@
|
|
1
|
-
import { Express, Request, Response, NextFunction } from 'express';
|
2
|
-
import cors from 'cors';
|
3
|
-
import { SignOptions } from 'jsonwebtoken';
|
4
|
-
import { renderToString } from '../server-renderer.js';
|
5
|
-
import { Database } from './database.js';
|
6
|
-
import { AuthService } from './auth.js';
|
7
|
-
import { ApiRouter } from './api-router.js';
|
8
|
-
import { rateLimit } from './middleware.js';
|
9
|
-
import * as utils from './utils.js';
|
10
|
-
import * as templates from './templates.js';
|
11
|
-
import { loadGoWasmFromFile } from './wasm.js';
|
12
|
-
export interface ServerConfig {
|
13
|
-
port?: number;
|
14
|
-
apiDir?: string;
|
15
|
-
pagesDir?: string;
|
16
|
-
staticDir?: string;
|
17
|
-
enableCors?: boolean;
|
18
|
-
corsOptions?: cors.CorsOptions;
|
19
|
-
db?: {
|
20
|
-
url: string;
|
21
|
-
type: 'mongodb' | 'mysql' | 'postgres';
|
22
|
-
};
|
23
|
-
auth?: {
|
24
|
-
secret: string;
|
25
|
-
expiresIn?: SignOptions['expiresIn'];
|
26
|
-
};
|
27
|
-
}
|
28
|
-
export declare class Server {
|
29
|
-
private app;
|
30
|
-
private server;
|
31
|
-
private config;
|
32
|
-
private db;
|
33
|
-
private auth;
|
34
|
-
constructor(config?: ServerConfig);
|
35
|
-
private setupApiRoutes;
|
36
|
-
private generateApiDocs;
|
37
|
-
private scanApiDirectory;
|
38
|
-
private getRoutePath;
|
39
|
-
private detectApiMethods;
|
40
|
-
private setupPageRoutes;
|
41
|
-
private renderPage;
|
42
|
-
getExpressApp(): Express;
|
43
|
-
getDatabase(): Database | null;
|
44
|
-
getAuth(): AuthService | null;
|
45
|
-
start(): Promise<void>;
|
46
|
-
stop(): Promise<void>;
|
47
|
-
restart(): Promise<void>;
|
48
|
-
enableSSR(options?: {
|
49
|
-
hydratable?: boolean;
|
50
|
-
}): void;
|
51
|
-
registerPlugin(plugin: (server: Server) => void): void;
|
52
|
-
addShutdownHandler(): void;
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* Creates and configures a new server instance
|
56
|
-
*/
|
57
|
-
export declare function createServer(config?: ServerConfig): Server;
|
58
|
-
/**
|
59
|
-
* Creates a new server with sensible defaults for development
|
60
|
-
*/
|
61
|
-
export declare function createDevServer(options?: {
|
62
|
-
port?: number;
|
63
|
-
enableCors?: boolean;
|
64
|
-
}): Server;
|
65
|
-
/**
|
66
|
-
* Creates a production-ready server with optimized settings
|
67
|
-
*/
|
68
|
-
export declare function createProductionServer(config: ServerConfig): Server;
|
69
|
-
export declare function getRequestIp(req: Request): string;
|
70
|
-
export declare function parseCookies(req: Request): Record<string, string>;
|
71
|
-
export declare const renderComponent: (Component: any, props?: any) => Promise<{
|
72
|
-
html: string;
|
73
|
-
success: boolean;
|
74
|
-
error?: undefined;
|
75
|
-
} | {
|
76
|
-
html: string;
|
77
|
-
success: boolean;
|
78
|
-
error: unknown;
|
79
|
-
}>;
|
80
|
-
export { initNodeWasm, loadGoWasmFromFile } from './wasm.js';
|
81
|
-
export * from './utils.js';
|
82
|
-
export * from './templates.js';
|
83
|
-
export { Database } from './database.js';
|
84
|
-
export { AuthService } from './auth.js';
|
85
|
-
export { ApiRouter } from './api-router.js';
|
86
|
-
export { requestLogger, errorHandler, notFoundHandler, rateLimit } from './middleware.js';
|
87
|
-
export { renderToString };
|
88
|
-
declare const _default: {
|
89
|
-
Server: typeof Server;
|
90
|
-
createServer: typeof createServer;
|
91
|
-
createDevServer: typeof createDevServer;
|
92
|
-
createProductionServer: typeof createProductionServer;
|
93
|
-
rateLimit: typeof rateLimit;
|
94
|
-
requestLogger: import("./middleware.js").MiddlewareFunction;
|
95
|
-
errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => void;
|
96
|
-
notFoundHandler: (req: Request, res: Response) => void;
|
97
|
-
loadGoWasmFromFile: typeof loadGoWasmFromFile;
|
98
|
-
templates: typeof templates;
|
99
|
-
utils: typeof utils;
|
100
|
-
renderComponent: (Component: any, props?: any) => Promise<{
|
101
|
-
html: string;
|
102
|
-
success: boolean;
|
103
|
-
error?: undefined;
|
104
|
-
} | {
|
105
|
-
html: string;
|
106
|
-
success: boolean;
|
107
|
-
error: unknown;
|
108
|
-
}>;
|
109
|
-
renderToString: typeof renderToString;
|
110
|
-
getRequestIp: typeof getRequestIp;
|
111
|
-
parseCookies: typeof parseCookies;
|
112
|
-
Database: typeof Database;
|
113
|
-
AuthService: typeof AuthService;
|
114
|
-
ApiRouter: typeof ApiRouter;
|
115
|
-
};
|
116
|
-
export default _default;
|