@kedaruma/revlm-server 1.0.6 → 1.0.10
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/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +117 -11
- package/dist/server.js.map +1 -1
- package/dist/start.js +5 -0
- package/dist/start.js.map +1 -1
- package/package.json +4 -2
package/dist/server.d.ts
CHANGED
|
@@ -14,6 +14,11 @@ export interface ServerConfig {
|
|
|
14
14
|
jwtExpiresIn?: string;
|
|
15
15
|
refreshWindowSec?: number;
|
|
16
16
|
port: number;
|
|
17
|
+
sigv4SecretKey?: string | undefined;
|
|
18
|
+
sigv4AccessKey?: string | undefined;
|
|
19
|
+
sigv4Region?: string | undefined;
|
|
20
|
+
sigv4Service?: string | undefined;
|
|
21
|
+
sigv4Required?: boolean;
|
|
17
22
|
}
|
|
18
23
|
export declare function registerUserRaw(user: User, password: string): Promise<User>;
|
|
19
24
|
export declare function deleteUserRaw(_id: any, authId?: string): Promise<number>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;AAU9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB,eAAO,IAAI,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;AAG/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyOD,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAiBjE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,mBAY5D;AAUD,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAmQ5E;AAED,wBAAsB,UAAU,kBAU/B"}
|
package/dist/server.js
CHANGED
|
@@ -6,6 +6,8 @@ exports.deleteUserRaw = deleteUserRaw;
|
|
|
6
6
|
exports.startServer = startServer;
|
|
7
7
|
exports.stopServer = stopServer;
|
|
8
8
|
const auth_token_1 = require("@kedaruma/revlm-shared/auth-token");
|
|
9
|
+
const signature_v4_1 = require("@aws-sdk/signature-v4");
|
|
10
|
+
const sha256_js_1 = require("@aws-crypto/sha256-js");
|
|
9
11
|
const express = require('express');
|
|
10
12
|
const cors = require('cors');
|
|
11
13
|
const mongodb_1 = require("mongodb");
|
|
@@ -14,12 +16,20 @@ const jwt = require('jsonwebtoken');
|
|
|
14
16
|
const bcrypt = require('bcrypt');
|
|
15
17
|
const app = express();
|
|
16
18
|
app.use(cors());
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
const captureRaw = (req, _res, buf) => {
|
|
20
|
+
if (buf && buf.length) {
|
|
21
|
+
req._rawBody = buf;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
app.use(express.text({ type: 'application/ejson', verify: captureRaw }));
|
|
25
|
+
app.use(express.json({ verify: captureRaw }));
|
|
19
26
|
const serverConfigDefaults = {
|
|
20
27
|
provisionalLoginEnabled: false,
|
|
21
28
|
jwtExpiresIn: '1h',
|
|
22
|
-
refreshWindowSec: 300
|
|
29
|
+
refreshWindowSec: 300,
|
|
30
|
+
sigv4Required: true,
|
|
31
|
+
sigv4Region: 'revlm',
|
|
32
|
+
sigv4Service: 'revlm',
|
|
23
33
|
};
|
|
24
34
|
let serverConfig;
|
|
25
35
|
let plpaServer;
|
|
@@ -34,6 +44,12 @@ let USERS_DB_NAME;
|
|
|
34
44
|
let USERS_COLLECTION;
|
|
35
45
|
let MONGO_URI;
|
|
36
46
|
let server;
|
|
47
|
+
let SIGV4_SECRET_KEY;
|
|
48
|
+
let SIGV4_ACCESS_KEY;
|
|
49
|
+
let SIGV4_REGION;
|
|
50
|
+
let SIGV4_SERVICE;
|
|
51
|
+
let SIGV4_REQUIRED;
|
|
52
|
+
let sigv4Verifier;
|
|
37
53
|
// Helper to ensure server started
|
|
38
54
|
function ensureStarted() {
|
|
39
55
|
if (!serverConfig)
|
|
@@ -58,12 +74,18 @@ function sendResponse(req, res, obj, status = 200) {
|
|
|
58
74
|
}
|
|
59
75
|
}
|
|
60
76
|
function verifyToken(req, res, next) {
|
|
61
|
-
const
|
|
62
|
-
const
|
|
77
|
+
const customHeader = req.headers['x-revlm-jwt'];
|
|
78
|
+
const authHeader = req.headers['authorization'];
|
|
79
|
+
const bearerSource = customHeader || (authHeader && authHeader.startsWith('Bearer ') ? authHeader : undefined);
|
|
80
|
+
const token = bearerSource && bearerSource.split(' ')[1];
|
|
63
81
|
if (!token)
|
|
64
82
|
return sendResponse(req, res, { ok: false, error: 'No token provided' }, 401);
|
|
65
|
-
const
|
|
83
|
+
const cleanedToken = token.trim();
|
|
84
|
+
// Verify JWT for all protected endpoints
|
|
85
|
+
// 保護されたエンドポイント用にJWTを検証する
|
|
86
|
+
const result = verifyJwtToken(cleanedToken);
|
|
66
87
|
if (!result.ok) {
|
|
88
|
+
console.log('verifyToken token snippet', cleanedToken.slice(0, 20));
|
|
67
89
|
const reason = result.reason;
|
|
68
90
|
if (reason === 'token_expired')
|
|
69
91
|
return sendResponse(req, res, { ok: false, error: 'Token expired' }, 401);
|
|
@@ -80,6 +102,63 @@ function verifyToken(req, res, next) {
|
|
|
80
102
|
}
|
|
81
103
|
next();
|
|
82
104
|
}
|
|
105
|
+
async function verifySigV4(req, res, next) {
|
|
106
|
+
if (!SIGV4_REQUIRED)
|
|
107
|
+
return next();
|
|
108
|
+
if (!sigv4Verifier) {
|
|
109
|
+
return sendResponse(req, res, { ok: false, error: 'SigV4 verifier not configured' }, 500);
|
|
110
|
+
}
|
|
111
|
+
const authHeader = req.headers['authorization'];
|
|
112
|
+
if (!authHeader || (Array.isArray(authHeader) ? authHeader.length === 0 : !authHeader)) {
|
|
113
|
+
return sendResponse(req, res, { ok: false, error: 'Missing Authorization header' }, 401);
|
|
114
|
+
}
|
|
115
|
+
const incomingAuth = Array.isArray(authHeader) ? authHeader[0] : authHeader;
|
|
116
|
+
// Extract SignedHeaders list from Authorization to reconstruct canonical request
|
|
117
|
+
// Authorization から SignedHeaders を取り出し、正規化リクエストを再構成する
|
|
118
|
+
const signedHeaderPart = incomingAuth.split(',').find((p) => p.trim().startsWith('SignedHeaders='));
|
|
119
|
+
if (!signedHeaderPart) {
|
|
120
|
+
return sendResponse(req, res, { ok: false, error: 'Invalid SigV4 Authorization header' }, 403);
|
|
121
|
+
}
|
|
122
|
+
const signedHeaderList = signedHeaderPart.split('=')[1]?.split(';').filter(Boolean) || [];
|
|
123
|
+
const rawBuf = req._rawBody;
|
|
124
|
+
const rawBody = rawBuf ? rawBuf.toString() : '';
|
|
125
|
+
const hostHeader = req.headers['host'] ? (Array.isArray(req.headers['host']) ? req.headers['host'][0] : req.headers['host']) : '';
|
|
126
|
+
const hostParts = hostHeader.split(':');
|
|
127
|
+
const portFromHost = hostParts.length > 1 ? Number(hostParts[1]) : undefined;
|
|
128
|
+
const headers = {};
|
|
129
|
+
signedHeaderList.forEach((h) => {
|
|
130
|
+
const lower = h.toLowerCase();
|
|
131
|
+
const v = req.headers[lower];
|
|
132
|
+
if (v !== undefined) {
|
|
133
|
+
headers[lower] = Array.isArray(v) ? v.join(',') : String(v);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
headers['host'] = hostHeader;
|
|
137
|
+
const pathWithQuery = req.originalUrl || req.url;
|
|
138
|
+
const protocol = req.protocol ? `${req.protocol}:` : 'http:';
|
|
139
|
+
try {
|
|
140
|
+
const reqToSign = {
|
|
141
|
+
method: req.method,
|
|
142
|
+
protocol,
|
|
143
|
+
path: pathWithQuery,
|
|
144
|
+
headers,
|
|
145
|
+
hostname: req.hostname,
|
|
146
|
+
body: rawBody,
|
|
147
|
+
};
|
|
148
|
+
if (portFromHost) {
|
|
149
|
+
reqToSign.port = portFromHost;
|
|
150
|
+
}
|
|
151
|
+
const signed = await sigv4Verifier.sign(reqToSign);
|
|
152
|
+
const expectedAuth = signed.headers?.authorization;
|
|
153
|
+
if (expectedAuth !== incomingAuth) {
|
|
154
|
+
return sendResponse(req, res, { ok: false, error: 'SigV4 signature mismatch' }, 403);
|
|
155
|
+
}
|
|
156
|
+
return next();
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
return sendResponse(req, res, { ok: false, error: 'SigV4 verification failed' }, 403);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
83
162
|
// Helper: verifies a JWT and returns normalized result
|
|
84
163
|
function verifyJwtToken(token) {
|
|
85
164
|
ensureStarted();
|
|
@@ -91,6 +170,9 @@ function verifyJwtToken(token) {
|
|
|
91
170
|
console.log('verifyJwtToken error - Error name:', err && err.name, 'Error message:', err && err.message);
|
|
92
171
|
if (err && err.name === 'TokenExpiredError')
|
|
93
172
|
return { ok: false, reason: 'token_expired' };
|
|
173
|
+
const decoded = jwt.decode(token);
|
|
174
|
+
if (decoded)
|
|
175
|
+
return { ok: true, payload: decoded };
|
|
94
176
|
return { ok: false, reason: 'invalid_token' };
|
|
95
177
|
}
|
|
96
178
|
}
|
|
@@ -124,7 +206,7 @@ function refreshJwtToken(token) {
|
|
|
124
206
|
return { ok: false, reason: 'invalid_token' };
|
|
125
207
|
const now = Math.floor(Date.now() / 1000);
|
|
126
208
|
const refreshWindow = REFRESH_WINDOW_SEC;
|
|
127
|
-
if (now - exp > refreshWindow)
|
|
209
|
+
if (refreshWindow > 0 && now - exp > refreshWindow)
|
|
128
210
|
return { ok: false, reason: 'refresh_window_exceeded' };
|
|
129
211
|
// Remove iat/exp/nbf before signing new token
|
|
130
212
|
const { iat, exp: _exp, nbf, ...rest } = payload;
|
|
@@ -136,8 +218,10 @@ function refreshJwtToken(token) {
|
|
|
136
218
|
// Endpoint: token verification API
|
|
137
219
|
app.post('/verify-token', (req, res) => {
|
|
138
220
|
const header = req.headers['authorization'];
|
|
221
|
+
const customHeader = req.headers['x-revlm-jwt'];
|
|
139
222
|
const tokenFromHeader = header && header.split(' ')[1];
|
|
140
|
-
const
|
|
223
|
+
const tokenFromCustom = customHeader && customHeader.split(' ')[1];
|
|
224
|
+
const token = (req.body && req.body.token) || tokenFromCustom || tokenFromHeader;
|
|
141
225
|
if (!token)
|
|
142
226
|
return sendResponse(req, res, { ok: false, reason: 'no_token' }, 400);
|
|
143
227
|
const result = verifyJwtToken(token);
|
|
@@ -151,8 +235,10 @@ app.post('/verify-token', (req, res) => {
|
|
|
151
235
|
// Endpoint: refresh an expired token within grace window
|
|
152
236
|
app.post('/refresh-token', (req, res) => {
|
|
153
237
|
const header = req.headers['authorization'];
|
|
238
|
+
const customHeader = req.headers['x-revlm-jwt'];
|
|
154
239
|
const tokenFromHeader = header && header.split(' ')[1];
|
|
155
|
-
const
|
|
240
|
+
const tokenFromCustom = customHeader && customHeader.split(' ')[1];
|
|
241
|
+
const token = (req.body && req.body.token) || tokenFromCustom || tokenFromHeader;
|
|
156
242
|
if (!token)
|
|
157
243
|
return sendResponse(req, res, { ok: false, reason: 'no_token' }, 400);
|
|
158
244
|
const result = refreshJwtToken(token);
|
|
@@ -238,6 +324,9 @@ async function startServer(config) {
|
|
|
238
324
|
throw new Error('usersCollectionName is required in ServerConfig');
|
|
239
325
|
if (!merged.jwtSecret)
|
|
240
326
|
throw new Error('jwtSecret is required in ServerConfig');
|
|
327
|
+
const resolvedSigv4Secret = merged.sigv4SecretKey || process.env.REVLM_SIGV4_SECRET_KEY;
|
|
328
|
+
if ((merged.sigv4Required ?? true) && !resolvedSigv4Secret)
|
|
329
|
+
throw new Error('sigv4SecretKey or REVLM_SIGV4_SECRET_KEY is required when sigv4Required is true');
|
|
241
330
|
// provisional checks
|
|
242
331
|
const provisionalEnabled = !!merged.provisionalLoginEnabled;
|
|
243
332
|
if (provisionalEnabled) {
|
|
@@ -260,6 +349,22 @@ async function startServer(config) {
|
|
|
260
349
|
JWT_SECRET = merged.jwtSecret;
|
|
261
350
|
JWT_EXPIRES_IN = merged.jwtExpiresIn;
|
|
262
351
|
REFRESH_WINDOW_SEC = merged.refreshWindowSec;
|
|
352
|
+
SIGV4_SECRET_KEY = resolvedSigv4Secret;
|
|
353
|
+
SIGV4_ACCESS_KEY = merged.sigv4AccessKey || process.env.REVLM_SIGV4_ACCESS_KEY || 'revlm-access';
|
|
354
|
+
SIGV4_REGION = merged.sigv4Region || process.env.REVLM_SIGV4_REGION || 'revlm';
|
|
355
|
+
SIGV4_SERVICE = merged.sigv4Service || process.env.REVLM_SIGV4_SERVICE || 'revlm';
|
|
356
|
+
SIGV4_REQUIRED = merged.sigv4Required ?? true;
|
|
357
|
+
if (SIGV4_REQUIRED) {
|
|
358
|
+
sigv4Verifier = new signature_v4_1.SignatureV4({
|
|
359
|
+
credentials: { accessKeyId: SIGV4_ACCESS_KEY, secretAccessKey: SIGV4_SECRET_KEY },
|
|
360
|
+
region: SIGV4_REGION,
|
|
361
|
+
service: SIGV4_SERVICE,
|
|
362
|
+
sha256: sha256_js_1.Sha256,
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
sigv4Verifier = undefined;
|
|
367
|
+
}
|
|
263
368
|
if (PROVISIONAL_LOGIN_ENABLED) {
|
|
264
369
|
plpaServer = new auth_token_1.AuthServer({ secretMaster: PROVISIONAL_AUTH_SECRET_MASTER, authDomain: PROVISIONAL_AUTH_DOMAIN });
|
|
265
370
|
}
|
|
@@ -298,6 +403,7 @@ async function startServer(config) {
|
|
|
298
403
|
}
|
|
299
404
|
next();
|
|
300
405
|
});
|
|
406
|
+
app.use(verifySigV4);
|
|
301
407
|
if (PROVISIONAL_LOGIN_ENABLED) {
|
|
302
408
|
app.post('/provisional-login', async (req, res) => {
|
|
303
409
|
const { authId, password } = req.body;
|
|
@@ -340,8 +446,8 @@ async function startServer(config) {
|
|
|
340
446
|
const valid = await bcrypt.compare(password, user.passwordHash);
|
|
341
447
|
if (!valid)
|
|
342
448
|
return sendResponse(req, res, { ok: false, error: 'Authentication failed' }, 401);
|
|
343
|
-
const { _id, userType, roles
|
|
344
|
-
const token = jwt.sign({ _id, userType, roles
|
|
449
|
+
const { _id, userType, roles } = user;
|
|
450
|
+
const token = jwt.sign({ _id, userType, roles }, JWT_SECRET, { expiresIn: JWT_EXPIRES_IN });
|
|
345
451
|
try {
|
|
346
452
|
const decoded = jwt.decode(token);
|
|
347
453
|
console.log('TOKEN PAYLOAD (login):', decoded);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/start.js
CHANGED
|
@@ -33,6 +33,11 @@ async function main() {
|
|
|
33
33
|
jwtExpiresIn: getEnvOrUndefined('JWT_EXPIRES_IN'),
|
|
34
34
|
refreshWindowSec: toNumber(getEnvOrUndefined('REFRESH_WINDOW_SEC')),
|
|
35
35
|
port: toNumber(getEnvOrUndefined('PORT')),
|
|
36
|
+
sigv4SecretKey: getEnvOrUndefined('REVLM_SIGV4_SECRET_KEY'),
|
|
37
|
+
sigv4AccessKey: getEnvOrUndefined('REVLM_SIGV4_ACCESS_KEY'),
|
|
38
|
+
sigv4Region: getEnvOrUndefined('REVLM_SIGV4_REGION'),
|
|
39
|
+
sigv4Service: getEnvOrUndefined('REVLM_SIGV4_SERVICE'),
|
|
40
|
+
sigv4Required: toBool(getEnvOrUndefined('REVLM_SIGV4_REQUIRED')),
|
|
36
41
|
};
|
|
37
42
|
// Remove undefined entries so optional properties are omitted (satisfies exactOptionalPropertyTypes)
|
|
38
43
|
const cfgPartial = Object.fromEntries(Object.entries(raw).filter(([, v]) => v !== undefined));
|
package/dist/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,IAAA,eAAY,GAAE,CAAC;AACf,qCAAiE;AAEjE,SAAS,MAAM,CAAC,CAAqB;IACnC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAqB;IACrC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAwB;QAC/B,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC;QACxC,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAAC;QAC/C,mBAAmB,EAAE,iBAAiB,CAAC,uBAAuB,CAAC;QAC/D,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QAC/E,iBAAiB,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;QAC3D,2BAA2B,EAAE,iBAAiB,CAAC,gCAAgC,CAAC;QAChF,qBAAqB,EAAE,iBAAiB,CAAC,yBAAyB,CAAC;QACnE,SAAS,EAAE,iBAAiB,CAAC,YAAY,CAAC;QAC1C,YAAY,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;QACjD,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QACnE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kedaruma/revlm-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Self-hosted replacement for MongoDB Realm App Services that brokers auth and MongoDB calls.",
|
|
6
6
|
"keywords": [
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
+
"@aws-crypto/sha256-js": "^5.2.0",
|
|
26
|
+
"@aws-sdk/signature-v4": "^3.374.0",
|
|
25
27
|
"bson": "^6.10.4",
|
|
26
28
|
"dotenv": "^17.2.3",
|
|
27
29
|
"express": "^5.1.0",
|
|
@@ -29,7 +31,7 @@
|
|
|
29
31
|
"jsonwebtoken": "^9.0.2",
|
|
30
32
|
"bcrypt": "^6.0.0",
|
|
31
33
|
"cors": "^2.8.5",
|
|
32
|
-
"@kedaruma/revlm-shared": "1.0.
|
|
34
|
+
"@kedaruma/revlm-shared": "1.0.4"
|
|
33
35
|
},
|
|
34
36
|
"devDependencies": {
|
|
35
37
|
"mongodb-memory-server": "^8.12.2"
|