huxy-server 1.0.4 → 1.0.6

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 (2) hide show
  1. package/package.json +2 -2
  2. package/src/index.js +42 -41
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huxy-server",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "一个精炼、高性能的 Express.js 服务器模板,为现代 Node.js 应用程序设计,提供灵活的功能和最佳实践。",
5
5
  "type": "module",
6
6
  "module": "./src/index.js",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "http-proxy-middleware": "^3.0.5",
39
- "huxy-node-server": "^1.0.2",
39
+ "huxy-node-server": "^1.0.4",
40
40
  "jsonwebtoken": "^9.0.3"
41
41
  },
42
42
  "engines": {
package/src/index.js CHANGED
@@ -11,11 +11,11 @@ import {
11
11
  getDirName as ne,
12
12
  resolvePath as ie,
13
13
  } from 'huxy-node-server';
14
- import {createProxyMiddleware as I} from 'http-proxy-middleware';
15
- import {dateTime as $} from 'huxy-node-server';
14
+ import {createProxyMiddleware as E} from 'http-proxy-middleware';
15
+ import {dateTime as I} from 'huxy-node-server';
16
16
  import T from 'jsonwebtoken';
17
- var f = (r, e = {secret, ...opt}) => T.verify(r, secret, opt);
18
- var x =
17
+ var x = (r, e = {secret, ...opt}) => T.verify(r, secret, opt);
18
+ var y =
19
19
  (r = {}) =>
20
20
  (e, t, s) => {
21
21
  let o = e.headers.authorization;
@@ -25,7 +25,7 @@ var x =
25
25
  let n = o.split(' ')[1];
26
26
  if (!n) return (e.log.warn('\u8BA4\u8BC1\u5931\u8D25: \u8BBF\u95EE\u4EE4\u724C\u7F3A\u5931'), t.status(401).json({message: '\u8BBF\u95EE\u4EE4\u724C\u7F3A\u5931'}));
27
27
  try {
28
- let a = f(n, r);
28
+ let a = x(n, r);
29
29
  (e.log.info(a, '\u8BA4\u8BC1\u6210\u529F'), (e.user = a), s());
30
30
  } catch (a) {
31
31
  return a.name === 'TokenExpiredError'
@@ -37,27 +37,28 @@ var x =
37
37
  : (e.log.warn({err: a, ip: e.ip}, '\u8BA4\u8BC1\u5931\u8D25: \u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF'), t.status(500).json({message: '\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF'}));
38
38
  }
39
39
  };
40
- var v =
40
+ var H =
41
41
  ({whiteAuthKeys: r = [], whiteAuthPaths: e = [], config: t = {}}) =>
42
42
  (s, o, n) => {
43
43
  if (s.method === 'OPTIONS' || e.includes(s.path)) return n();
44
44
  let {authToken: a} = t;
45
45
  if (a === !1 || a === 'false') return n();
46
- let i = s.headers['x-huxy-auth'] || s.headers['x-api-key'];
46
+ let p = s.headers,
47
+ i = p['x-huxy-auth'] || p['x-api-key'] || p.authorization?.split('Bearer ')[1];
47
48
  if ((i && i === a) || r.includes(i)) return n();
48
- let {secret: c, expiresIn: l, algorithm: p, issuer: h} = t;
49
- x({secret: c, expiresIn: l, algorithm: p, issuer: h})(s, o, n);
49
+ let {secret: h, expiresIn: c, algorithm: l, issuer: u} = t;
50
+ y({secret: h, expiresIn: c, algorithm: l, issuer: u})(s, o, n);
50
51
  },
51
- y = v;
52
- var H = ['x-powered-by', 'server'],
53
- w = (r, e) => {
52
+ w = H;
53
+ var v = ['x-powered-by', 'server'],
54
+ g = (r, e) => {
54
55
  let t = new Headers(r);
55
56
  return (headersToRemove.forEach(s => t.delete(s)), t.set('Host', e), t.set('User-Agent', 'IHUXY-API/1.0'), t);
56
57
  },
57
- g = r => {
58
+ A = r => {
58
59
  let e = new Headers(r);
59
60
  return (
60
- H.forEach(t => e.delete(t)),
61
+ v.forEach(t => e.delete(t)),
61
62
  e.set('Access-Control-Allow-Origin', '*'),
62
63
  e.set('X-Content-Type-Options', 'nosniff'),
63
64
  e.get('content-type')?.includes('text/event-stream') && ((e['Cache-Control'] = 'no-cache, no-transform'), (e.Connection = 'keep-alive'), (e['X-Accel-Buffering'] = 'no')),
@@ -65,20 +66,20 @@ var H = ['x-powered-by', 'server'],
65
66
  );
66
67
  };
67
68
  var R = r => Object.prototype.toString.call(r).slice(8, -1).toLowerCase(),
68
- E = r => (R(r) === 'object' ? [r] : Array.isArray(r) ? r : []),
69
- A = (r, e) => E(r).map(t => ((t.prefix = `${e}${t.prefix ?? `/${t.name}`}`.replace('//', '/')), t)),
70
- u = r => (Array.isArray(r) ? r : []).filter(Boolean),
71
- P = (r, e) => ['/', '/health', e, ...u(r)].map(t => `${e}${t}`.replace('//', '/'));
69
+ $ = r => (R(r) === 'object' ? [r] : Array.isArray(r) ? r : []),
70
+ P = (r, e) => $(r).map(t => ((t.prefix = `${e}${t.prefix ?? `/${t.name}`}`.replace('//', '/')), t)),
71
+ d = r => (Array.isArray(r) ? r : []).filter(Boolean),
72
+ j = (r, e) => ['/', '/health', e, ...d(r)].map(t => `${e}${t}`.replace('//', '/'));
72
73
  var S = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {}, s = !1) => ({
73
74
  target: r,
74
75
  pathRewrite: {[`^${e}`]: ''},
75
76
  changeOrigin: !0,
76
77
  selfHandleResponse: !1,
77
78
  onProxyReq: (o, n, a) => {
78
- !s && w(o.headers, r);
79
+ !s && g(o.headers, r);
79
80
  },
80
81
  onProxyRes: (o, n, a) => {
81
- !s && g(o.headers);
82
+ !s && A(o.headers);
82
83
  },
83
84
  onError: (o, n, a) => {
84
85
  (n.log.error({err: o}, '\u4EE3\u7406\u9519\u8BEF'), a.headersSent || a.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
@@ -86,7 +87,7 @@ var S = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {},
86
87
  ...t,
87
88
  }),
88
89
  k = (r, e) => {
89
- let t = {status: 'OK', message: `API \u670D\u52A1\u5668\u8FD0\u884C\u4E2D \u{1F449} ${e}`, timestamp: $(), uptime: process.uptime(), memoryUsage: process.memoryUsage()};
90
+ let t = {status: 'OK', message: `API \u670D\u52A1\u5668\u8FD0\u884C\u4E2D \u{1F449} ${e}`, timestamp: I(), uptime: process.uptime(), memoryUsage: process.memoryUsage()};
90
91
  (r.get(e, (s, o) => {
91
92
  o.status(200).json(t);
92
93
  }),
@@ -95,17 +96,17 @@ var S = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {},
95
96
  }));
96
97
  },
97
98
  C = (r, e = {}, t) => {
98
- let {apiPrefix: s, proxys: o = [], whiteAuthKeys: n = [], whitePathList: a = [], preserve: i = !1} = e,
99
- c = A(o, s);
100
- if (!c.length) return;
101
- (t.info(`\u{1F4DD} API \u63A5\u53E3\u5730\u5740: http://${e.host}:${e.port}${s}`), k(r, s));
102
- let l = y({whiteAuthKeys: u(n), whitePathList: P(a, s), config: e});
103
- c.map(({prefix: p, target: h}) => {
104
- let j = S({prefix: p, target: h}, i);
105
- (r.use(p, l, I(j)), t.info(`\u2705 \u4EE3\u7406\u4E2D ${p} \u{1F449} ${h}`));
99
+ let {apiPrefix: s, proxys: o = [], whiteAuthKeys: n = [], whitePathList: a = [], preserve: p = !1} = e,
100
+ i = P(o, s);
101
+ if (!i.length) return;
102
+ (t.info(`\u{1F4DD} API \u63A5\u53E3\u5730\u5740: ${e.protocol}://${e.host}:${e.port}${s}`), k(r, s));
103
+ let h = w({whiteAuthKeys: d(n), whitePathList: j(a, s), config: e});
104
+ i.map(({prefix: c, target: l}) => {
105
+ let u = S({prefix: c, target: l}, p);
106
+ (r.use(c, h, E(u)), t.info(`\u2705 \u4EE3\u7406\u4E2D ${c} \u{1F449} ${l}`));
106
107
  });
107
108
  },
108
- d = C;
109
+ m = C;
109
110
  var O = {
110
111
  port: parseInt(process.env.PORT || '8080', 10),
111
112
  host: process.env.HOST || 'localhost',
@@ -114,26 +115,26 @@ var O = {
114
115
  proxys: [],
115
116
  whitePathList: ['/health'],
116
117
  algorithm: 'HS256',
117
- secret: process.env.JWT_SECRET || 'ah.yiru@gmail.com',
118
+ secret: process.env.JWT_SECRET || 'hy123',
118
119
  expiresIn: process.env.JWT_EXPIRES_IN || '30d',
119
120
  issuer: process.env.JWT_ISSUER || 'huxyApp',
120
121
  },
121
- m = O;
122
+ f = O;
122
123
  var M = (r, e) =>
123
- W({...m, ...r}, async (t, s, o, n) => {
124
- (await e?.(t, s, o, n), d(s, t, n));
124
+ W({...f, ...r}, async (t, s, o, n) => {
125
+ (await e?.(t, s, o, n), m(s, t, n));
125
126
  }),
126
- he = M,
127
- le = (r, e) =>
128
- L({...m, ...r}, async (t, s, o, n) => {
129
- (await e?.(t, s, o, n), d(s, t, n));
127
+ le = M,
128
+ he = (r, e) =>
129
+ L({...f, ...r}, async (t, s, o, n) => {
130
+ (await e?.(t, s, o, n), m(s, t, n));
130
131
  });
131
132
  export {
132
- d as appProxy,
133
+ m as appProxy,
133
134
  ae as checkPort,
134
135
  ee as createLogger,
135
136
  te as dateTime,
136
- he as default,
137
+ le as default,
137
138
  ne as getDirName,
138
139
  oe as getEnvConfig,
139
140
  re as localIPs,
@@ -143,5 +144,5 @@ export {
143
144
  M as startApp,
144
145
  W as startServer,
145
146
  L as startStatic,
146
- le as startStaticApp,
147
+ he as startStaticApp,
147
148
  };