@fonoster/identity 0.8.25 → 0.8.27
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/apikeys/{createApiKey.d.ts → createCreateApiKey.d.ts} +2 -2
- package/dist/apikeys/{createApiKey.js → createCreateApiKey.js} +5 -6
- package/dist/apikeys/createDeleteApiKey.d.ts +6 -0
- package/dist/apikeys/{deleteApiKey.js → createDeleteApiKey.js} +4 -4
- package/dist/apikeys/createListApiKeys.d.ts +6 -0
- package/dist/apikeys/{listApiKeys.js → createListApiKeys.js} +5 -6
- package/dist/apikeys/createRegenerateApiKey.d.ts +6 -0
- package/dist/apikeys/{regenerateApiKey.js → createRegenerateApiKey.js} +4 -4
- package/dist/apikeys/index.d.ts +4 -4
- package/dist/apikeys/index.js +4 -4
- package/dist/exchanges/{exchangeRefreshToken.d.ts → createExchangeApiKey.d.ts} +2 -2
- package/dist/exchanges/{exchangeApiKey.js → createExchangeApiKey.js} +6 -6
- package/dist/exchanges/{exchangeOauth2Code.d.ts → createExchangeCredentials.d.ts} +2 -2
- package/dist/exchanges/{exchangeCredentials.js → createExchangeCredentials.js} +6 -6
- package/dist/exchanges/{exchangeCredentials.d.ts → createExchangeOauth2Code.d.ts} +2 -2
- package/dist/exchanges/{exchangeOauth2Code.js → createExchangeOauth2Code.js} +6 -6
- package/dist/exchanges/{exchangeApiKey.d.ts → createExchangeRefreshToken.d.ts} +2 -2
- package/dist/exchanges/{exchangeRefreshToken.js → createExchangeRefreshToken.js} +4 -4
- package/dist/exchanges/exchangeTokens.js +5 -5
- package/dist/exchanges/index.d.ts +4 -5
- package/dist/exchanges/index.js +4 -5
- package/dist/exchanges/payloads/apikeys/createGetAccessTokenPayload.d.ts +5 -0
- package/dist/exchanges/payloads/apikeys/createGetAccessTokenPayload.js +46 -0
- package/dist/exchanges/payloads/apikeys/createGetRefreshTokenPayload.d.ts +5 -0
- package/dist/exchanges/payloads/apikeys/{getRefreshTokenPayload.js → createGetRefreshTokenPayload.js} +18 -16
- package/dist/exchanges/payloads/apikeys/index.d.ts +2 -2
- package/dist/exchanges/payloads/apikeys/index.js +2 -2
- package/dist/exchanges/payloads/buildRefreshTokenPayload.d.ts +2 -1
- package/dist/exchanges/payloads/buildRefreshTokenPayload.js +2 -2
- package/dist/exchanges/payloads/users/createGetAccessTokenPayload.d.ts +5 -0
- package/dist/exchanges/payloads/users/createGetAccessTokenPayload.js +75 -0
- package/dist/exchanges/payloads/users/createGetIdTokenPayload.d.ts +5 -0
- package/dist/exchanges/payloads/users/createGetIdTokenPayload.js +40 -0
- package/dist/exchanges/payloads/users/createGetRefreshTokenPayload.d.ts +5 -0
- package/dist/exchanges/payloads/users/{getRefreshTokenPayload.js → createGetRefreshTokenPayload.js} +22 -20
- package/dist/exchanges/payloads/users/index.d.ts +3 -3
- package/dist/exchanges/payloads/users/index.js +3 -3
- package/dist/exchanges/types.d.ts +1 -36
- package/dist/getPublicKey.d.ts +2 -2
- package/dist/getPublicKey.js +8 -6
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -2
- package/dist/service.js +22 -22
- package/dist/{apikeys/listApiKeys.d.ts → users/createCreateUser.d.ts} +2 -2
- package/dist/users/{createUser.js → createCreateUser.js} +4 -4
- package/dist/users/{createUser.d.ts → createDeleteUser.d.ts} +2 -2
- package/dist/users/{deleteUser.js → createDeleteUser.js} +5 -6
- package/dist/{apikeys/deleteApiKey.d.ts → users/createGetUser.d.ts} +2 -2
- package/dist/users/{getUser.js → createGetUser.js} +5 -6
- package/dist/{apikeys/regenerateApiKey.d.ts → users/createUpdateUser.d.ts} +2 -2
- package/dist/users/{updateUser.js → createUpdateUser.js} +5 -6
- package/dist/users/index.d.ts +4 -4
- package/dist/users/index.js +4 -4
- package/dist/utils/createGenerateCallAccessToken.d.ts +6 -0
- package/dist/utils/{createCallAccessToken.js → createGenerateCallAccessToken.js} +29 -28
- package/dist/utils/{createWorkspaceInviteToken.d.ts → createGenerateWorkspaceInviteToken.d.ts} +2 -2
- package/dist/utils/{createWorkspaceInviteToken.js → createGenerateWorkspaceInviteToken.js} +21 -19
- package/dist/utils/createGetAccessKeyIdFromEmail.d.ts +3 -0
- package/dist/utils/{getAccessKeyIdFromEmail.js → createGetAccessKeyIdFromEmail.js} +8 -6
- package/dist/utils/{getApiKeyByAccessKeyId.d.ts → createGetApiKeyByAccessKeyId.d.ts} +5 -5
- package/dist/utils/{getApiKeyByAccessKeyId.js → createGetApiKeyByAccessKeyId.js} +13 -11
- package/dist/utils/{getUserByEmail.d.ts → createGetUserByEmail.d.ts} +2 -2
- package/dist/utils/{getUserByEmail.js → createGetUserByEmail.js} +10 -8
- package/dist/utils/createUpdateMembershipStatus.d.ts +3 -0
- package/dist/utils/{updateMembershipStatus.js → createUpdateMembershipStatus.js} +18 -16
- package/dist/utils/getAccessKeyIdFromToken.js +3 -4
- package/dist/utils/getUserRefFromToken.js +3 -4
- package/dist/utils/hasAccessToResource.js +3 -4
- package/dist/utils/index.d.ts +2 -8
- package/dist/utils/index.js +2 -8
- package/dist/verification/createVerifyCode.js +2 -2
- package/dist/workspaces/createCreateWorkspace.d.ts +6 -0
- package/dist/workspaces/{createWorkspace.js → createCreateWorkspace.js} +5 -6
- package/dist/workspaces/createDeleteWorkspace.d.ts +6 -0
- package/dist/workspaces/{deleteWorkspace.js → createDeleteWorkspace.js} +5 -6
- package/dist/workspaces/createGetWorkspace.d.ts +6 -0
- package/dist/workspaces/{getWorkspace.js → createGetWorkspace.js} +5 -6
- package/dist/workspaces/{inviteUserToWorkspace.d.ts → createInviteUserToWorkspace.d.ts} +2 -2
- package/dist/workspaces/{inviteUserToWorkspace.js → createInviteUserToWorkspace.js} +26 -25
- package/dist/workspaces/createIsAdminMember.d.ts +3 -0
- package/dist/workspaces/{isAdminMember.js → createIsAdminMember.js} +21 -19
- package/dist/workspaces/createIsWorkspaceMember.d.ts +3 -0
- package/dist/workspaces/createIsWorkspaceMember.js +33 -0
- package/dist/workspaces/createListWorkspaces.d.ts +6 -0
- package/dist/workspaces/{listWorkspaces.js → createListWorkspaces.js} +6 -8
- package/dist/workspaces/createRemoveUserFromWorkspace.d.ts +6 -0
- package/dist/workspaces/{removeUserFromWorkspace.js → createRemoveUserFromWorkspace.js} +8 -10
- package/dist/workspaces/{resendWorkspaceMembershipInvitation.d.ts → createResendWorkspaceMembershipInvitation.d.ts} +2 -2
- package/dist/workspaces/{resendWorkspaceMembershipInvitation.js → createResendWorkspaceMembershipInvitation.js} +10 -11
- package/dist/workspaces/createUpdateWorkspace.d.ts +6 -0
- package/dist/workspaces/{updateWorkspace.js → createUpdateWorkspace.js} +7 -8
- package/dist/workspaces/index.d.ts +8 -8
- package/dist/workspaces/index.js +8 -8
- package/package.json +5 -5
- package/dist/JsonWebErrorEnum.d.ts +0 -5
- package/dist/JsonWebErrorEnum.js +0 -26
- package/dist/createAuthInterceptor.d.ts +0 -15
- package/dist/createAuthInterceptor.js +0 -74
- package/dist/errors.d.ts +0 -4
- package/dist/errors.js +0 -35
- package/dist/exchanges/TokenUseEnum.d.ts +0 -6
- package/dist/exchanges/TokenUseEnum.js +0 -27
- package/dist/exchanges/payloads/apikeys/getAccessTokenPayload.d.ts +0 -4
- package/dist/exchanges/payloads/apikeys/getAccessTokenPayload.js +0 -44
- package/dist/exchanges/payloads/apikeys/getRefreshTokenPayload.d.ts +0 -4
- package/dist/exchanges/payloads/users/getAccessTokenPayload.d.ts +0 -4
- package/dist/exchanges/payloads/users/getAccessTokenPayload.js +0 -73
- package/dist/exchanges/payloads/users/getIdTokenPayload.d.ts +0 -4
- package/dist/exchanges/payloads/users/getIdTokenPayload.js +0 -38
- package/dist/exchanges/payloads/users/getRefreshTokenPayload.d.ts +0 -4
- package/dist/getPublicKeyClient.d.ts +0 -5
- package/dist/getPublicKeyClient.js +0 -71
- package/dist/roles.d.ts +0 -5
- package/dist/roles.js +0 -129
- package/dist/users/deleteUser.d.ts +0 -6
- package/dist/users/getUser.d.ts +0 -6
- package/dist/users/updateUser.d.ts +0 -6
- package/dist/utils/createCallAccessToken.d.ts +0 -6
- package/dist/utils/decodeToken.d.ts +0 -4
- package/dist/utils/decodeToken.js +0 -25
- package/dist/utils/getAccessKeyIdFromCall.d.ts +0 -3
- package/dist/utils/getAccessKeyIdFromCall.js +0 -8
- package/dist/utils/getAccessKeyIdFromEmail.d.ts +0 -3
- package/dist/utils/getTokenFromCall.d.ts +0 -3
- package/dist/utils/getTokenFromCall.js +0 -8
- package/dist/utils/hasAccess.d.ts +0 -3
- package/dist/utils/hasAccess.js +0 -9
- package/dist/utils/isValidToken.d.ts +0 -2
- package/dist/utils/isValidToken.js +0 -51
- package/dist/utils/tokenHasAccessKeyId.d.ts +0 -2
- package/dist/utils/tokenHasAccessKeyId.js +0 -28
- package/dist/utils/updateMembershipStatus.d.ts +0 -3
- package/dist/workspaces/createWorkspace.d.ts +0 -6
- package/dist/workspaces/deleteWorkspace.d.ts +0 -6
- package/dist/workspaces/getWorkspace.d.ts +0 -6
- package/dist/workspaces/isAdminMember.d.ts +0 -3
- package/dist/workspaces/isWorkspaceMember.d.ts +0 -3
- package/dist/workspaces/isWorkspaceMember.js +0 -31
- package/dist/workspaces/listWorkspaces.d.ts +0 -6
- package/dist/workspaces/removeUserFromWorkspace.d.ts +0 -6
- package/dist/workspaces/updateWorkspace.d.ts +0 -6
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.createGenerateCallAccessToken = createGenerateCallAccessToken;
|
|
16
16
|
/*
|
|
17
17
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
18
18
|
* http://github.com/fonoster/fonoster
|
|
@@ -33,32 +33,33 @@ exports.createCallAccessToken = createCallAccessToken;
|
|
|
33
33
|
*/
|
|
34
34
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
35
35
|
const constants_1 = require("../constants");
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
const common_1 = require("@fonoster/common");
|
|
37
|
+
function createGenerateCallAccessToken(identityConfig) {
|
|
38
|
+
return function generateCallAccessToken(params) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const { privateKey } = identityConfig;
|
|
41
|
+
const accessTokenSignOptions = {
|
|
42
|
+
algorithm: constants_1.SIGN_ALGORITHM,
|
|
43
|
+
// Just enough time to validate a request
|
|
44
|
+
expiresIn: "30s"
|
|
45
|
+
};
|
|
46
|
+
const { issuer, audience } = identityConfig;
|
|
47
|
+
const { accessKeyId, appRef } = params;
|
|
48
|
+
const access = [
|
|
49
|
+
{
|
|
50
|
+
accessKeyId,
|
|
51
|
+
role: common_1.VOICE_SERVICE_ROLE
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
const unsignedToken = {
|
|
55
|
+
iss: issuer,
|
|
56
|
+
sub: appRef,
|
|
57
|
+
aud: audience,
|
|
58
|
+
tokenUse: common_1.TokenUseEnum.ACCESS,
|
|
50
59
|
accessKeyId,
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
sub: appRef,
|
|
57
|
-
aud: audience,
|
|
58
|
-
tokenUse: TokenUseEnum_1.TokenUseEnum.ACCESS,
|
|
59
|
-
accessKeyId,
|
|
60
|
-
access
|
|
61
|
-
};
|
|
62
|
-
return jsonwebtoken_1.default.sign(unsignedToken, privateKey, accessTokenSignOptions);
|
|
63
|
-
});
|
|
60
|
+
access
|
|
61
|
+
};
|
|
62
|
+
return jsonwebtoken_1.default.sign(unsignedToken, privateKey, accessTokenSignOptions);
|
|
63
|
+
});
|
|
64
|
+
};
|
|
64
65
|
}
|
package/dist/utils/{createWorkspaceInviteToken.d.ts → createGenerateWorkspaceInviteToken.d.ts}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IdentityConfig } from "../exchanges/types";
|
|
2
|
-
declare function
|
|
2
|
+
declare function createGenerateWorkspaceInviteToken(identityConfig: IdentityConfig): (params: {
|
|
3
3
|
userRef: string;
|
|
4
4
|
memberRef: string;
|
|
5
5
|
accessKeyId: string;
|
|
6
6
|
expiresIn?: string;
|
|
7
7
|
}) => Promise<string>;
|
|
8
|
-
export {
|
|
8
|
+
export { createGenerateWorkspaceInviteToken };
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.createGenerateWorkspaceInviteToken = createGenerateWorkspaceInviteToken;
|
|
16
16
|
/*
|
|
17
17
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
18
18
|
* http://github.com/fonoster/fonoster
|
|
@@ -33,22 +33,24 @@ exports.createWorkspaceInviteToken = createWorkspaceInviteToken;
|
|
|
33
33
|
*/
|
|
34
34
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
35
35
|
const constants_1 = require("../constants");
|
|
36
|
-
function
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
function createGenerateWorkspaceInviteToken(identityConfig) {
|
|
37
|
+
return function generateWorkspaceInviteToken(params) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const { privateKey } = identityConfig;
|
|
40
|
+
const { issuer, audience } = identityConfig;
|
|
41
|
+
const { userRef, memberRef, accessKeyId, expiresIn } = params;
|
|
42
|
+
const accessTokenSignOptions = {
|
|
43
|
+
algorithm: constants_1.SIGN_ALGORITHM,
|
|
44
|
+
expiresIn: expiresIn || "1d"
|
|
45
|
+
};
|
|
46
|
+
const unsignedToken = {
|
|
47
|
+
iss: issuer,
|
|
48
|
+
sub: userRef,
|
|
49
|
+
aud: audience,
|
|
50
|
+
memberRef: memberRef,
|
|
51
|
+
accessKeyId
|
|
52
|
+
};
|
|
53
|
+
return jsonwebtoken_1.default.sign(unsignedToken, privateKey, accessTokenSignOptions);
|
|
54
|
+
});
|
|
55
|
+
};
|
|
54
56
|
}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.createGetAccessKeyIdFromEmail = createGetAccessKeyIdFromEmail;
|
|
13
13
|
/*
|
|
14
14
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
15
15
|
* http://github.com/fonoster/fonoster
|
|
@@ -28,9 +28,11 @@ exports.getAccessKeyIdFromEmail = getAccessKeyIdFromEmail;
|
|
|
28
28
|
* See the License for the specific language governing permissions and
|
|
29
29
|
* limitations under the License.
|
|
30
30
|
*/
|
|
31
|
-
const
|
|
32
|
-
function
|
|
33
|
-
return
|
|
34
|
-
return (
|
|
35
|
-
|
|
31
|
+
const createGetUserByEmail_1 = require("./createGetUserByEmail");
|
|
32
|
+
function createGetAccessKeyIdFromEmail(prisma) {
|
|
33
|
+
return function getAccessKeyIdFromEmail(email) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return (yield (0, createGetUserByEmail_1.createGetUserByEmail)(prisma)(email)).accessKeyId;
|
|
36
|
+
});
|
|
37
|
+
};
|
|
36
38
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Prisma } from "../db";
|
|
2
|
-
declare function
|
|
2
|
+
declare function createGetApiKeyByAccessKeyId(prisma: Prisma): (accessKeyId: string) => Promise<{
|
|
3
|
+
role: import("../generated/@prisma/client").$Enums.ApiKeyRole;
|
|
4
|
+
expiresAt: Date | null;
|
|
3
5
|
ref: string;
|
|
4
6
|
accessKeyId: string;
|
|
5
|
-
accessKeySecret: string;
|
|
6
|
-
role: import("../generated/@prisma/client").$Enums.ApiKeyRole;
|
|
7
7
|
createdAt: Date;
|
|
8
8
|
updatedAt: Date;
|
|
9
|
-
|
|
9
|
+
accessKeySecret: string;
|
|
10
10
|
workspaceRef: string;
|
|
11
11
|
}>;
|
|
12
|
-
export {
|
|
12
|
+
export { createGetApiKeyByAccessKeyId };
|
|
@@ -9,17 +9,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
function
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
exports.createGetApiKeyByAccessKeyId = createGetApiKeyByAccessKeyId;
|
|
13
|
+
function createGetApiKeyByAccessKeyId(prisma) {
|
|
14
|
+
return function getApiKeyByAccessKeyId(accessKeyId) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const key = yield prisma.apiKey.findFirst({
|
|
17
|
+
where: {
|
|
18
|
+
accessKeyId
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
if (!key) {
|
|
22
|
+
return null;
|
|
18
23
|
}
|
|
24
|
+
return key;
|
|
19
25
|
});
|
|
20
|
-
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
return key;
|
|
24
|
-
});
|
|
26
|
+
};
|
|
25
27
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Prisma } from "../db";
|
|
2
|
-
declare function
|
|
2
|
+
declare function createGetUserByEmail(prisma: Prisma): (email: string) => Promise<{
|
|
3
3
|
name: string;
|
|
4
4
|
ref: string;
|
|
5
5
|
accessKeyId: string;
|
|
@@ -13,4 +13,4 @@ declare function getUserByEmail(prisma: Prisma): (email: string) => Promise<{
|
|
|
13
13
|
avatar: string | null;
|
|
14
14
|
extended: import("../generated/@prisma/client/runtime/library").JsonValue | null;
|
|
15
15
|
}>;
|
|
16
|
-
export {
|
|
16
|
+
export { createGetUserByEmail };
|
|
@@ -9,13 +9,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
function
|
|
14
|
-
return
|
|
15
|
-
return
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
exports.createGetUserByEmail = createGetUserByEmail;
|
|
13
|
+
function createGetUserByEmail(prisma) {
|
|
14
|
+
return function getUserByEmail(email) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
return yield prisma.user.findFirst({
|
|
17
|
+
where: {
|
|
18
|
+
email
|
|
19
|
+
}
|
|
20
|
+
});
|
|
19
21
|
});
|
|
20
|
-
}
|
|
22
|
+
};
|
|
21
23
|
}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.createUpdateMembershipStatus = createUpdateMembershipStatus;
|
|
13
13
|
/*
|
|
14
14
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
15
15
|
* http://github.com/fonoster/fonoster
|
|
@@ -30,22 +30,24 @@ exports.updateMembershipStatus = updateMembershipStatus;
|
|
|
30
30
|
*/
|
|
31
31
|
const types_1 = require("@fonoster/types");
|
|
32
32
|
const jwt_decode_1 = require("jwt-decode");
|
|
33
|
-
const
|
|
33
|
+
const common_1 = require("@fonoster/common");
|
|
34
34
|
const db_1 = require("../db");
|
|
35
|
-
function
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const { memberRef } = (0, jwt_decode_1.jwtDecode)(token);
|
|
41
|
-
yield db_1.prisma.workspaceMember.update({
|
|
42
|
-
where: {
|
|
43
|
-
ref: memberRef
|
|
44
|
-
},
|
|
45
|
-
data: {
|
|
46
|
-
status: types_1.WorkspaceMemberStatus.ACTIVE,
|
|
47
|
-
updatedAt: new Date()
|
|
35
|
+
function createUpdateMembershipStatus(identityConfig) {
|
|
36
|
+
return function pdateMembershipStatus(token) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
if (!(0, common_1.isValidToken)(token, identityConfig.privateKey)) {
|
|
39
|
+
throw new Error("Invalid token");
|
|
48
40
|
}
|
|
41
|
+
const { memberRef } = (0, jwt_decode_1.jwtDecode)(token);
|
|
42
|
+
yield db_1.prisma.workspaceMember.update({
|
|
43
|
+
where: {
|
|
44
|
+
ref: memberRef
|
|
45
|
+
},
|
|
46
|
+
data: {
|
|
47
|
+
status: types_1.WorkspaceMemberStatus.ACTIVE,
|
|
48
|
+
updatedAt: new Date()
|
|
49
|
+
}
|
|
50
|
+
});
|
|
49
51
|
});
|
|
50
|
-
}
|
|
52
|
+
};
|
|
51
53
|
}
|
|
@@ -19,11 +19,10 @@ exports.getAccessKeyIdFromToken = getAccessKeyIdFromToken;
|
|
|
19
19
|
* See the License for the specific language governing permissions and
|
|
20
20
|
* limitations under the License.
|
|
21
21
|
*/
|
|
22
|
-
const
|
|
23
|
-
const TokenUseEnum_1 = require("../exchanges/TokenUseEnum");
|
|
22
|
+
const common_1 = require("@fonoster/common");
|
|
24
23
|
function getAccessKeyIdFromToken(token) {
|
|
25
|
-
const decodedToken = (0,
|
|
26
|
-
if (decodedToken.tokenUse !==
|
|
24
|
+
const decodedToken = (0, common_1.decodeToken)(token);
|
|
25
|
+
if (decodedToken.tokenUse !== common_1.TokenUseEnum.ACCESS) {
|
|
27
26
|
throw new Error("Invalid token type");
|
|
28
27
|
}
|
|
29
28
|
return decodedToken.accessKeyId;
|
|
@@ -19,11 +19,10 @@ exports.getUserRefFromToken = getUserRefFromToken;
|
|
|
19
19
|
* See the License for the specific language governing permissions and
|
|
20
20
|
* limitations under the License.
|
|
21
21
|
*/
|
|
22
|
-
const
|
|
23
|
-
const TokenUseEnum_1 = require("../exchanges/TokenUseEnum");
|
|
22
|
+
const common_1 = require("@fonoster/common");
|
|
24
23
|
function getUserRefFromToken(token) {
|
|
25
|
-
const decodedToken = (0,
|
|
26
|
-
if (decodedToken.tokenUse !==
|
|
24
|
+
const decodedToken = (0, common_1.decodeToken)(token);
|
|
25
|
+
if (decodedToken.tokenUse !== common_1.TokenUseEnum.ACCESS) {
|
|
27
26
|
throw new Error("Invalid token type");
|
|
28
27
|
}
|
|
29
28
|
return decodedToken.sub;
|
|
@@ -29,8 +29,7 @@ exports.hasAccessToResource = hasAccessToResource;
|
|
|
29
29
|
* limitations under the License.
|
|
30
30
|
*/
|
|
31
31
|
const logger_1 = require("@fonoster/logger");
|
|
32
|
-
const
|
|
33
|
-
const getTokenFromCall_1 = require("./getTokenFromCall");
|
|
32
|
+
const common_1 = require("@fonoster/common");
|
|
34
33
|
const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
|
|
35
34
|
function hasAccessToResource(call, getFn) {
|
|
36
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -44,8 +43,8 @@ function hasAccessToResource(call, getFn) {
|
|
|
44
43
|
// If the resource doesn't exist, allow the operation
|
|
45
44
|
if (!extended)
|
|
46
45
|
return true;
|
|
47
|
-
const token = (0,
|
|
48
|
-
const decodedToken = (0,
|
|
46
|
+
const token = (0, common_1.getTokenFromCall)(call);
|
|
47
|
+
const decodedToken = (0, common_1.decodeToken)(token);
|
|
49
48
|
const accessKeyIds = (_a = decodedToken.access) === null || _a === void 0 ? void 0 : _a.map((a) => a.accessKeyId);
|
|
50
49
|
return accessKeyIds.includes(extended === null || extended === void 0 ? void 0 : extended.accessKeyId);
|
|
51
50
|
});
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./createGenerateCallAccessToken";
|
|
2
2
|
export * from "./createSendEmail";
|
|
3
3
|
export * from "./createGetUserByWorkspaceAccessKeyId";
|
|
4
|
-
export * from "./decodeToken";
|
|
5
4
|
export * from "./generateAccessKeyId";
|
|
6
|
-
export * from "./getAccessKeyIdFromCall";
|
|
7
5
|
export * from "./getAccessKeyIdFromToken";
|
|
8
|
-
export * from "./getTokenFromCall";
|
|
9
|
-
export * from "./hasAccess";
|
|
10
6
|
export * from "./hasAccessToResource";
|
|
11
|
-
export * from "./
|
|
12
|
-
export * from "./tokenHasAccessKeyId";
|
|
13
|
-
export * from "./updateMembershipStatus";
|
|
7
|
+
export * from "./createUpdateMembershipStatus";
|
|
14
8
|
export * from "./withAccess";
|
package/dist/utils/index.js
CHANGED
|
@@ -32,17 +32,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
32
32
|
* See the License for the specific language governing permissions and
|
|
33
33
|
* limitations under the License.
|
|
34
34
|
*/
|
|
35
|
-
__exportStar(require("./
|
|
35
|
+
__exportStar(require("./createGenerateCallAccessToken"), exports);
|
|
36
36
|
__exportStar(require("./createSendEmail"), exports);
|
|
37
37
|
__exportStar(require("./createGetUserByWorkspaceAccessKeyId"), exports);
|
|
38
|
-
__exportStar(require("./decodeToken"), exports);
|
|
39
38
|
__exportStar(require("./generateAccessKeyId"), exports);
|
|
40
|
-
__exportStar(require("./getAccessKeyIdFromCall"), exports);
|
|
41
39
|
__exportStar(require("./getAccessKeyIdFromToken"), exports);
|
|
42
|
-
__exportStar(require("./getTokenFromCall"), exports);
|
|
43
|
-
__exportStar(require("./hasAccess"), exports);
|
|
44
40
|
__exportStar(require("./hasAccessToResource"), exports);
|
|
45
|
-
__exportStar(require("./
|
|
46
|
-
__exportStar(require("./tokenHasAccessKeyId"), exports);
|
|
47
|
-
__exportStar(require("./updateMembershipStatus"), exports);
|
|
41
|
+
__exportStar(require("./createUpdateMembershipStatus"), exports);
|
|
48
42
|
__exportStar(require("./withAccess"), exports);
|
|
@@ -34,7 +34,7 @@ const grpc_js_1 = require("@grpc/grpc-js");
|
|
|
34
34
|
const createIsValidVerificationCode_1 = require("../utils/createIsValidVerificationCode");
|
|
35
35
|
function createVerifyCode(prisma) {
|
|
36
36
|
const isValidVerificationCode = (0, createIsValidVerificationCode_1.createIsValidVerificationCode)(prisma);
|
|
37
|
-
const
|
|
37
|
+
const verifyCode = (call, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
38
38
|
const { request } = call;
|
|
39
39
|
const { username, contactType, value, verificationCode } = request;
|
|
40
40
|
const actualContactType = contactType !== null && contactType !== void 0 ? contactType : types_1.ContactType.EMAIL;
|
|
@@ -63,5 +63,5 @@ function createVerifyCode(prisma) {
|
|
|
63
63
|
}
|
|
64
64
|
callback(null);
|
|
65
65
|
});
|
|
66
|
-
return (0, common_1.withErrorHandlingAndValidation)(
|
|
66
|
+
return (0, common_1.withErrorHandlingAndValidation)(verifyCode, common_1.Validators.verifyCodeRequestSchema);
|
|
67
67
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GrpcErrorMessage } from "@fonoster/common";
|
|
2
|
+
import { Prisma } from "../db";
|
|
3
|
+
declare function createCreateWorkspace(prisma: Prisma): (call: {
|
|
4
|
+
request: unknown;
|
|
5
|
+
}, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
|
|
6
|
+
export { createCreateWorkspace };
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.createCreateWorkspace = createCreateWorkspace;
|
|
13
13
|
/*
|
|
14
14
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
15
15
|
* http://github.com/fonoster/fonoster
|
|
@@ -31,14 +31,13 @@ exports.createWorkspace = createWorkspace;
|
|
|
31
31
|
const common_1 = require("@fonoster/common");
|
|
32
32
|
const logger_1 = require("@fonoster/logger");
|
|
33
33
|
const generateAccessKeyId_1 = require("../utils/generateAccessKeyId");
|
|
34
|
-
const getTokenFromCall_1 = require("../utils/getTokenFromCall");
|
|
35
34
|
const getUserRefFromToken_1 = require("../utils/getUserRefFromToken");
|
|
36
35
|
const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
|
|
37
|
-
function
|
|
38
|
-
const
|
|
36
|
+
function createCreateWorkspace(prisma) {
|
|
37
|
+
const createWorkspace = (call, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
39
38
|
const { request } = call;
|
|
40
39
|
const { name } = request;
|
|
41
|
-
const token = (0,
|
|
40
|
+
const token = (0, common_1.getTokenFromCall)(call);
|
|
42
41
|
const ownerRef = (0, getUserRefFromToken_1.getUserRefFromToken)(token);
|
|
43
42
|
const accessKeyId = (0, generateAccessKeyId_1.generateAccessKeyId)(generateAccessKeyId_1.AccessKeyIdType.WORKSPACE);
|
|
44
43
|
logger.verbose("call to createWorkspace", { name, ownerRef });
|
|
@@ -52,5 +51,5 @@ function createWorkspace(prisma) {
|
|
|
52
51
|
const { ref } = workspace;
|
|
53
52
|
callback(null, { ref });
|
|
54
53
|
});
|
|
55
|
-
return (0, common_1.withErrorHandlingAndValidation)(
|
|
54
|
+
return (0, common_1.withErrorHandlingAndValidation)(createWorkspace, common_1.Validators.createWorkspaceRequestSchema);
|
|
56
55
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GrpcErrorMessage } from "@fonoster/common";
|
|
2
|
+
import { Prisma } from "../db";
|
|
3
|
+
declare function createDeleteWorkspace(prisma: Prisma): (call: {
|
|
4
|
+
request: unknown;
|
|
5
|
+
}, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
|
|
6
|
+
export { createDeleteWorkspace };
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.createDeleteWorkspace = createDeleteWorkspace;
|
|
13
13
|
/*
|
|
14
14
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
15
15
|
* http://github.com/fonoster/fonoster
|
|
@@ -30,14 +30,13 @@ exports.deleteWorkspace = deleteWorkspace;
|
|
|
30
30
|
*/
|
|
31
31
|
const common_1 = require("@fonoster/common");
|
|
32
32
|
const logger_1 = require("@fonoster/logger");
|
|
33
|
-
const getTokenFromCall_1 = require("../utils/getTokenFromCall");
|
|
34
33
|
const getUserRefFromToken_1 = require("../utils/getUserRefFromToken");
|
|
35
34
|
const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
|
|
36
|
-
function
|
|
37
|
-
const
|
|
35
|
+
function createDeleteWorkspace(prisma) {
|
|
36
|
+
const deleteWorkspace = (call, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
38
37
|
const { request } = call;
|
|
39
38
|
const { ref } = request;
|
|
40
|
-
const token = (0,
|
|
39
|
+
const token = (0, common_1.getTokenFromCall)(call);
|
|
41
40
|
const ownerRef = (0, getUserRefFromToken_1.getUserRefFromToken)(token);
|
|
42
41
|
logger.verbose("deleting workspace from the system", { ref, ownerRef });
|
|
43
42
|
yield prisma.workspace.delete({
|
|
@@ -48,5 +47,5 @@ function deleteWorkspace(prisma) {
|
|
|
48
47
|
});
|
|
49
48
|
callback(null, { ref });
|
|
50
49
|
});
|
|
51
|
-
return (0, common_1.withErrorHandlingAndValidation)(
|
|
50
|
+
return (0, common_1.withErrorHandlingAndValidation)(deleteWorkspace, common_1.Validators.emptySchema);
|
|
52
51
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GrpcErrorMessage } from "@fonoster/common";
|
|
2
|
+
import { Prisma } from "../db";
|
|
3
|
+
declare function createGetWorkspace(prisma: Prisma): (call: {
|
|
4
|
+
request: unknown;
|
|
5
|
+
}, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
|
|
6
|
+
export { createGetWorkspace };
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.createGetWorkspace = createGetWorkspace;
|
|
13
13
|
/*
|
|
14
14
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
15
15
|
* http://github.com/fonoster/fonoster
|
|
@@ -31,14 +31,13 @@ exports.getWorkspace = getWorkspace;
|
|
|
31
31
|
const common_1 = require("@fonoster/common");
|
|
32
32
|
const logger_1 = require("@fonoster/logger");
|
|
33
33
|
const grpc_js_1 = require("@grpc/grpc-js");
|
|
34
|
-
const getTokenFromCall_1 = require("../utils/getTokenFromCall");
|
|
35
34
|
const getUserRefFromToken_1 = require("../utils/getUserRefFromToken");
|
|
36
35
|
const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
|
|
37
|
-
function
|
|
38
|
-
const
|
|
36
|
+
function createGetWorkspace(prisma) {
|
|
37
|
+
const getWorkspace = (call, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
39
38
|
const { request } = call;
|
|
40
39
|
const { ref } = request;
|
|
41
|
-
const token = (0,
|
|
40
|
+
const token = (0, common_1.getTokenFromCall)(call);
|
|
42
41
|
const ownerRef = (0, getUserRefFromToken_1.getUserRefFromToken)(token);
|
|
43
42
|
logger.verbose("getting workspace by id", { ref, ownerRef });
|
|
44
43
|
const workspace = yield prisma.workspace.findUnique({
|
|
@@ -57,5 +56,5 @@ function getWorkspace(prisma) {
|
|
|
57
56
|
const response = (0, common_1.datesMapper)(workspace);
|
|
58
57
|
callback(null, response);
|
|
59
58
|
});
|
|
60
|
-
return (0, common_1.withErrorHandlingAndValidation)(
|
|
59
|
+
return (0, common_1.withErrorHandlingAndValidation)(getWorkspace, common_1.Validators.emptySchema);
|
|
61
60
|
}
|
|
@@ -2,7 +2,7 @@ import { GrpcErrorMessage } from "@fonoster/common";
|
|
|
2
2
|
import { Prisma } from "../db";
|
|
3
3
|
import { IdentityConfig } from "../exchanges/types";
|
|
4
4
|
import { SendInvite } from "../invites";
|
|
5
|
-
declare function
|
|
5
|
+
declare function createInviteUserToWorkspace(prisma: Prisma, identityConfig: IdentityConfig, sendInvite: SendInvite): (call: {
|
|
6
6
|
request: unknown;
|
|
7
7
|
}, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
|
|
8
|
-
export {
|
|
8
|
+
export { createInviteUserToWorkspace };
|