proto.io 0.0.150 → 0.0.152
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/adapters/file/database.d.ts +2 -2
- package/dist/adapters/file/filesystem.d.ts +2 -2
- package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
- package/dist/adapters/storage/progres.d.ts +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +20 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -8
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{index-CsRN32Jf.d.ts → index-DQm5Xz3Q.d.ts} +2 -2
- package/dist/internals/index-DQm5Xz3Q.d.ts.map +1 -0
- package/dist/internals/{index-CyX8Lu9K.d.ts → index-DeD3CiUK.d.ts} +2 -2
- package/dist/internals/index-DeD3CiUK.d.ts.map +1 -0
- package/dist/internals/{index-013pxZ3P.d.ts → index-m4WmZoWj.d.ts} +7 -4
- package/dist/internals/index-m4WmZoWj.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/internals/index-013pxZ3P.d.ts.map +0 -1
- package/dist/internals/index-CsRN32Jf.d.ts.map +0 -1
- package/dist/internals/index-CyX8Lu9K.d.ts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1112,7 +1112,10 @@ const _session = (proto, request) => {
|
|
|
1112
1112
|
const cached = sessionMap.get(request);
|
|
1113
1113
|
if (cached)
|
|
1114
1114
|
return cached;
|
|
1115
|
-
sessionMap.set(request, {
|
|
1115
|
+
sessionMap.set(request, {
|
|
1116
|
+
sessionId: randomUUID(),
|
|
1117
|
+
createdAt: new Date,
|
|
1118
|
+
});
|
|
1116
1119
|
const jwtToken = proto[PVK].options.jwtToken;
|
|
1117
1120
|
if (_.isEmpty(jwtToken))
|
|
1118
1121
|
throw Error('Invalid jwt token');
|
|
@@ -1131,8 +1134,9 @@ const _session = (proto, request) => {
|
|
|
1131
1134
|
if (!_.isObject(payload))
|
|
1132
1135
|
return;
|
|
1133
1136
|
const session = {
|
|
1134
|
-
sessionId: payload.sessionId ?? randomUUID(),
|
|
1135
1137
|
...payload,
|
|
1138
|
+
sessionId: payload.sessionId ?? randomUUID(),
|
|
1139
|
+
createdAt: new Date(payload.createdAt),
|
|
1136
1140
|
};
|
|
1137
1141
|
sessionMap.set(request, session);
|
|
1138
1142
|
return session;
|
|
@@ -1144,9 +1148,9 @@ const sessionId = (proto, request) => {
|
|
|
1144
1148
|
const sessionInfoMap = new WeakMap();
|
|
1145
1149
|
const fetchSessionInfo = async (proto, userId) => {
|
|
1146
1150
|
const user = _.isString(userId) ? await proto.Query('User').get(userId, { master: true }) : undefined;
|
|
1147
|
-
const roles = user instanceof TUser ? _.
|
|
1151
|
+
const roles = user instanceof TUser ? _.filter(await proto.userRoles(user), x => !_.isEmpty(x.name)) : [];
|
|
1148
1152
|
return {
|
|
1149
|
-
|
|
1153
|
+
_roles: roles,
|
|
1150
1154
|
user: user instanceof TUser ? user : undefined,
|
|
1151
1155
|
};
|
|
1152
1156
|
};
|
|
@@ -1176,9 +1180,13 @@ const signUser = async (proto, res, user, options) => {
|
|
|
1176
1180
|
if (_.isNil(proto[PVK].options.jwtToken))
|
|
1177
1181
|
return;
|
|
1178
1182
|
const session = _session(proto, res.req);
|
|
1179
|
-
const sessionId = sessionMap.get(res.req)?.sessionId ?? session?.sessionId ?? randomUUID();
|
|
1180
1183
|
const cookieOptions = options?.cookieOptions ?? session?.cookieOptions ?? proto[PVK].options.cookieOptions;
|
|
1181
|
-
const token = proto[PVK].jwtSign({
|
|
1184
|
+
const token = proto[PVK].jwtSign({
|
|
1185
|
+
sessionId: session?.sessionId ?? randomUUID(),
|
|
1186
|
+
createdAt: session?.createdAt?.getTime() ?? Date.now(),
|
|
1187
|
+
user: user?.objectId,
|
|
1188
|
+
cookieOptions,
|
|
1189
|
+
}, options?.jwtSignOptions ?? 'login');
|
|
1182
1190
|
res.cookie(AUTH_COOKIE_KEY, token, cookieOptions);
|
|
1183
1191
|
sessionInfoMap.set(res.req, user ? await fetchSessionInfo(proto, user.objectId) : {});
|
|
1184
1192
|
};
|
|
@@ -1343,9 +1351,13 @@ class ProtoService extends ProtoType {
|
|
|
1343
1351
|
const session = await this.sessionInfo();
|
|
1344
1352
|
return session?.user;
|
|
1345
1353
|
}
|
|
1346
|
-
async
|
|
1354
|
+
async _currentRoles() {
|
|
1347
1355
|
const session = await this.sessionInfo();
|
|
1348
|
-
return session?.
|
|
1356
|
+
return session?._roles ?? [];
|
|
1357
|
+
}
|
|
1358
|
+
async currentRoles() {
|
|
1359
|
+
const roles = await this._currentRoles();
|
|
1360
|
+
return _.compact(_.map(roles, x => x.name));
|
|
1349
1361
|
}
|
|
1350
1362
|
get isMaster() {
|
|
1351
1363
|
return this.req ? sessionIsMaster(this, this.req) === 'valid' : false;
|