huxy-server 1.0.6 → 1.0.7

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 +72 -72
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huxy-server",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
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.4",
39
+ "huxy-node-server": "^1.0.5",
40
40
  "jsonwebtoken": "^9.0.3"
41
41
  },
42
42
  "engines": {
package/src/index.js CHANGED
@@ -1,21 +1,21 @@
1
1
  import {
2
- startServer as W,
2
+ startServer as M,
3
3
  startStatic as L,
4
- logger as q,
5
- createLogger as ee,
6
- dateTime as te,
7
- localIPs as re,
8
- nodeArgs as se,
9
- getEnvConfig as oe,
10
- checkPort as ae,
11
- getDirName as ne,
12
- resolvePath as ie,
4
+ logger as te,
5
+ createLogger as re,
6
+ dateTime as se,
7
+ localIPs as oe,
8
+ nodeArgs as ae,
9
+ getEnvConfig as ne,
10
+ checkPort as ie,
11
+ getDirName as pe,
12
+ resolvePath as ce,
13
13
  } from 'huxy-node-server';
14
- import {createProxyMiddleware as E} from 'http-proxy-middleware';
15
- import {dateTime as I} from 'huxy-node-server';
14
+ import {createProxyMiddleware as E, fixRequestBody as S} from 'http-proxy-middleware';
15
+ import {dateTime as C} from 'huxy-node-server';
16
16
  import T from 'jsonwebtoken';
17
- var x = (r, e = {secret, ...opt}) => T.verify(r, secret, opt);
18
- var y =
17
+ var m = (r, e = {secret, ...opt}) => T.verify(r, secret, opt);
18
+ var x =
19
19
  (r = {}) =>
20
20
  (e, t, s) => {
21
21
  let o = e.headers.authorization;
@@ -25,7 +25,7 @@ var y =
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 = x(n, r);
28
+ let a = m(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'
@@ -46,48 +46,49 @@ var H =
46
46
  let p = s.headers,
47
47
  i = p['x-huxy-auth'] || p['x-api-key'] || p.authorization?.split('Bearer ')[1];
48
48
  if ((i && i === a) || r.includes(i)) return 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);
49
+ let {secret: u, expiresIn: c, algorithm: l, issuer: h} = t;
50
+ x({secret: u, expiresIn: c, algorithm: l, issuer: h})(s, o, n);
51
51
  },
52
- w = H;
53
- var v = ['x-powered-by', 'server'],
54
- g = (r, e) => {
52
+ y = H;
53
+ var v = ['origin', 'referer', 'x-forwarded-for', 'x-real-ip', 'cf-connecting-ip', 'cf-ipcountry', 'cf-ray', 'x-huxy-auth'],
54
+ $ = ['x-powered-by', 'server'],
55
+ w = (r, e) => {
55
56
  let t = new Headers(r);
56
- return (headersToRemove.forEach(s => t.delete(s)), t.set('Host', e), t.set('User-Agent', 'IHUXY-API/1.0'), t);
57
+ return (v.forEach(s => t.delete(s)), t.set('Host', e), t.set('User-Agent', 'IHUXY-API/1.0'), t);
57
58
  },
58
- A = r => {
59
+ g = r => {
59
60
  let e = new Headers(r);
60
61
  return (
61
- v.forEach(t => e.delete(t)),
62
+ $.forEach(t => e.delete(t)),
62
63
  e.set('Access-Control-Allow-Origin', '*'),
63
64
  e.set('X-Content-Type-Options', 'nosniff'),
64
65
  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
66
  e
66
67
  );
67
68
  };
68
- var R = r => Object.prototype.toString.call(r).slice(8, -1).toLowerCase(),
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('//', '/'));
73
- var S = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {}, s = !1) => ({
69
+ var I = r => Object.prototype.toString.call(r).slice(8, -1).toLowerCase(),
70
+ R = r => (I(r) === 'object' ? [r] : Array.isArray(r) ? r : []),
71
+ A = (r, e) => R(r).map(t => ((t.prefix = `${e}${(t.prefix ?? t.name) ? `/${t.name}` : ''}`.replace('//', '/')), t)),
72
+ P = r => (Array.isArray(r) ? r : []).filter(Boolean),
73
+ j = (r, e) => [...new Set(['/', '/health', e, ...(Array.isArray(r) ? r : [])])].filter(Boolean).map(t => `${e}${t}`.replace('//', '/'));
74
+ var k = ({target: r = 'http://', prefix: e, ...t} = {}, s = !1) => ({
74
75
  target: r,
75
- pathRewrite: {[`^${e}`]: ''},
76
+ pathRewrite: e?.length > 1 ? {[`^${e}`]: ''} : void 0,
76
77
  changeOrigin: !0,
77
78
  selfHandleResponse: !1,
78
- onProxyReq: (o, n, a) => {
79
- !s && g(o.headers, r);
80
- },
81
- onProxyRes: (o, n, a) => {
82
- !s && A(o.headers);
83
- },
84
- onError: (o, n, a) => {
85
- (n.log.error({err: o}, '\u4EE3\u7406\u9519\u8BEF'), a.headersSent || a.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
79
+ on: {
80
+ proxyReq: (o, n, a) => (!s && w(o.headers, r), S(o, n, a)),
81
+ proxyRes: (o, n, a) => {
82
+ !s && g(o.headers);
83
+ },
84
+ error: (o, n, a) => {
85
+ (n.log.error({err: o}, '\u4EE3\u7406\u9519\u8BEF'), a.headersSent || a.status(502).json({error: '\u7F51\u5173\u9519\u8BEF'}));
86
+ },
86
87
  },
87
88
  ...t,
88
89
  }),
89
- k = (r, e) => {
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
+ O = (r, e) => {
91
+ let t = {status: 'OK', message: `API \u670D\u52A1\u5668\u8FD0\u884C\u4E2D \u{1F449} ${e}`, timestamp: C(), uptime: process.uptime(), memoryUsage: process.memoryUsage()};
91
92
  (r.get(e, (s, o) => {
92
93
  o.status(200).json(t);
93
94
  }),
@@ -95,22 +96,21 @@ var S = ({target: r = 'http://localhost:11434', prefix: e = '/api', ...t} = {},
95
96
  o.status(200).json(t);
96
97
  }));
97
98
  },
98
- C = (r, e = {}, t) => {
99
- let {apiPrefix: s, proxys: o = [], whiteAuthKeys: n = [], whitePathList: a = [], preserve: p = !1} = e,
100
- i = P(o, s);
99
+ W = (r, e = {}, t) => {
100
+ let {apiPrefix: s = '/', proxys: o = [], whiteAuthKeys: n = [], whitePathList: a = [], preserve: p = !1} = e,
101
+ i = A(o, s);
101
102
  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}`));
103
+ (t.info(`\u{1F4DD} API \u63A5\u53E3\u5730\u5740: ${e.protocol}://${e.host}:${e.port}${s}`), O(r, s));
104
+ let u = y({whiteAuthKeys: P(n), whitePathList: j(a, s), config: e});
105
+ i.map(({prefix: c, target: l, ...h}) => {
106
+ (r.use(c, u, E(k({prefix: c, target: l, ...h}, p))), t.info(`\u2705 \u4EE3\u7406\u4E2D ${c} \u{1F449} ${l}`));
107
107
  });
108
108
  },
109
- m = C;
110
- var O = {
109
+ d = W;
110
+ var B = {
111
111
  port: parseInt(process.env.PORT || '8080', 10),
112
112
  host: process.env.HOST || 'localhost',
113
- apiPrefix: process.env.API_PREFIX || '/api',
113
+ apiPrefix: process.env.API_PREFIX || '/',
114
114
  authToken: !1,
115
115
  proxys: [],
116
116
  whitePathList: ['/health'],
@@ -119,30 +119,30 @@ var O = {
119
119
  expiresIn: process.env.JWT_EXPIRES_IN || '30d',
120
120
  issuer: process.env.JWT_ISSUER || 'huxyApp',
121
121
  },
122
- f = O;
123
- var M = (r, e) =>
124
- W({...f, ...r}, async (t, s, o, n) => {
125
- (await e?.(t, s, o, n), m(s, t, n));
122
+ f = B;
123
+ var U = (r, e) =>
124
+ M({...f, ...r}, async (t, s, o, n) => {
125
+ (await e?.(t, s, o, n), d(s, t, n));
126
126
  }),
127
- le = M,
128
- he = (r, e) =>
127
+ he = U,
128
+ de = (r, e) =>
129
129
  L({...f, ...r}, async (t, s, o, n) => {
130
- (await e?.(t, s, o, n), m(s, t, n));
130
+ (await e?.(t, s, o, n), d(s, t, n));
131
131
  });
132
132
  export {
133
- m as appProxy,
134
- ae as checkPort,
135
- ee as createLogger,
136
- te as dateTime,
137
- le as default,
138
- ne as getDirName,
139
- oe as getEnvConfig,
140
- re as localIPs,
141
- q as logger,
142
- se as nodeArgs,
143
- ie as resolvePath,
144
- M as startApp,
145
- W as startServer,
133
+ d as appProxy,
134
+ ie as checkPort,
135
+ re as createLogger,
136
+ se as dateTime,
137
+ he as default,
138
+ pe as getDirName,
139
+ ne as getEnvConfig,
140
+ oe as localIPs,
141
+ te as logger,
142
+ ae as nodeArgs,
143
+ ce as resolvePath,
144
+ U as startApp,
145
+ M as startServer,
146
146
  L as startStatic,
147
- he as startStaticApp,
147
+ de as startStaticApp,
148
148
  };