@discover-cloud/shared 1.2.9 → 1.3.0
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/authorization/index.d.ts +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/authorization/permission-cache.service.d.ts +104 -16
- package/dist/authorization/permission-cache.service.js +156 -143
- package/dist/authorization/permission-checker.d.ts +30 -0
- package/dist/authorization/permission-checker.js +40 -0
- package/dist/contracts/auth-service/account.dto.d.ts +30 -0
- package/dist/contracts/auth-service/account.dto.js +7 -0
- package/dist/contracts/auth-service/auth.dto.d.ts +21 -0
- package/dist/contracts/auth-service/auth.dto.js +10 -0
- package/dist/dtos/auth-service.dto.d.ts +72 -26
- package/dist/dtos/auth-service.dto.js +4 -0
- package/dist/dtos/cloud-service.dto.d.ts +51 -27
- package/dist/dtos/cloud-service.dto.js +5 -0
- package/dist/dtos/insights-service.dto.d.ts +18 -27
- package/dist/dtos/insights-service.dto.js +8 -0
- package/dist/dtos/response.dto.d.ts +7 -84
- package/dist/dtos/response.dto.js +2 -21
- package/dist/dtos/user-service.dto.d.ts +118 -13
- package/dist/enums/domain.enums.d.ts +246 -75
- package/dist/enums/domain.enums.js +305 -102
- package/dist/enums/permissions.enums.d.ts +142 -80
- package/dist/enums/permissions.enums.js +174 -133
- package/dist/errors/app-error.d.ts +13 -18
- package/dist/errors/app-error.js +14 -20
- package/dist/errors/http-errors.d.ts +105 -17
- package/dist/errors/http-errors.js +118 -33
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.js +1 -0
- package/dist/http/request-context.d.ts +8 -0
- package/dist/http/request-context.js +37 -0
- package/dist/http/service-client.d.ts +91 -38
- package/dist/http/service-client.js +102 -53
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/jwt/index.d.ts +2 -1
- package/dist/jwt/index.js +2 -1
- package/dist/jwt/machine-jwt-verifier.d.ts +21 -0
- package/dist/jwt/machine-jwt-verifier.js +84 -0
- package/dist/jwt/machine-token-client.d.ts +35 -4
- package/dist/jwt/machine-token-client.js +57 -23
- package/dist/jwt/user-jwt-verifier.d.ts +31 -0
- package/dist/jwt/user-jwt-verifier.js +101 -0
- package/dist/messaging/index.d.ts +1 -0
- package/dist/{security → messaging}/index.js +1 -1
- package/dist/messaging/rabbitmq.client.d.ts +13 -0
- package/dist/messaging/rabbitmq.client.js +127 -0
- package/dist/middleware/error-handler.middleware.d.ts +8 -28
- package/dist/middleware/error-handler.middleware.js +61 -52
- package/dist/middleware/index.d.ts +7 -5
- package/dist/middleware/index.js +7 -5
- package/dist/middleware/request-context.middleware.d.ts +17 -0
- package/dist/middleware/request-context.middleware.js +73 -0
- package/dist/middleware/require-auth.middleware.d.ts +17 -70
- package/dist/middleware/require-auth.middleware.js +24 -103
- package/dist/middleware/require-machine.middleware.d.ts +38 -0
- package/dist/middleware/require-machine.middleware.js +123 -0
- package/dist/middleware/require-org-permission-from-body.middleware.d.ts +10 -0
- package/dist/middleware/require-org-permission-from-body.middleware.js +24 -0
- package/dist/middleware/require-org-permission.middleware.d.ts +19 -0
- package/dist/middleware/require-org-permission.middleware.js +115 -0
- package/dist/middleware/require-platform-permission.middleware.d.ts +19 -0
- package/dist/middleware/require-platform-permission.middleware.js +91 -0
- package/dist/middleware/require-user.middleware.d.ts +14 -0
- package/dist/middleware/require-user.middleware.js +30 -0
- package/dist/middleware/require-workspace-permission.middleware.d.ts +20 -0
- package/dist/middleware/require-workspace-permission.middleware.js +114 -0
- package/dist/middleware/validate.middleware.d.ts +29 -29
- package/dist/middleware/validate.middleware.js +30 -32
- package/dist/types/express.types.d.ts +83 -122
- package/dist/types/express.types.js +28 -47
- package/dist/utils/date.util.d.ts +6 -0
- package/dist/utils/date.util.js +11 -0
- package/dist/utils/env.util.d.ts +6 -0
- package/dist/utils/env.util.js +19 -0
- package/dist/utils/index.d.ts +5 -4
- package/dist/utils/index.js +5 -4
- package/dist/utils/logger.util.d.ts +26 -0
- package/dist/utils/logger.util.js +53 -0
- package/dist/utils/pagination.util.d.ts +6 -0
- package/dist/utils/pagination.util.js +20 -0
- package/dist/utils/response.util.d.ts +27 -0
- package/dist/utils/response.util.js +56 -0
- package/dist/utils/slug.util.d.ts +9 -0
- package/dist/utils/slug.util.js +32 -0
- package/dist/utils/url-safety.util.d.ts +6 -0
- package/dist/utils/url-safety.util.js +72 -0
- package/package.json +3 -1
- package/dist/authorization/permissions.d.ts +0 -78
- package/dist/authorization/permissions.js +0 -174
- package/dist/context/access-context.d.ts +0 -10
- package/dist/context/access-context.js +0 -2
- package/dist/context/index.d.ts +0 -1
- package/dist/context/index.js +0 -17
- package/dist/dto/auth-service.dtos.d.ts +0 -44
- package/dist/dto/auth-service.dtos.js +0 -2
- package/dist/dto/index.d.ts +0 -3
- package/dist/dto/index.js +0 -19
- package/dist/dto/response.dtos.d.ts +0 -55
- package/dist/dto/response.dtos.js +0 -6
- package/dist/dto/user-service.dtos.d.ts +0 -50
- package/dist/dto/user-service.dtos.js +0 -2
- package/dist/enums/auth-service.enums.d.ts +0 -12
- package/dist/enums/auth-service.enums.js +0 -17
- package/dist/enums/permissions.types.d.ts +0 -12
- package/dist/enums/permissions.types.js +0 -17
- package/dist/enums/user-service.enums.d.ts +0 -32
- package/dist/enums/user-service.enums.js +0 -41
- package/dist/internal/index.d.ts +0 -4
- package/dist/internal/index.js +0 -20
- package/dist/internal/internal-jwt.service.d.ts +0 -13
- package/dist/internal/internal-jwt.service.js +0 -88
- package/dist/internal/internal-jwt.types.d.ts +0 -7
- package/dist/internal/internal-jwt.types.js +0 -2
- package/dist/internal/internal-key-manager.d.ts +0 -16
- package/dist/internal/internal-key-manager.js +0 -67
- package/dist/internal/registry.d.ts +0 -8
- package/dist/internal/registry.js +0 -34
- package/dist/internal/service-client.d.ts +0 -9
- package/dist/internal/service-client.js +0 -94
- package/dist/jwt/internal-jwt-verifier.d.ts +0 -41
- package/dist/jwt/internal-jwt-verifier.js +0 -185
- package/dist/jwt/jwt-verifier.d.ts +0 -9
- package/dist/jwt/jwt-verifier.js +0 -36
- package/dist/jwt/service-client.d.ts +0 -7
- package/dist/jwt/service-client.js +0 -87
- package/dist/middleware/authorize.d.ts +0 -3
- package/dist/middleware/authorize.js +0 -24
- package/dist/middleware/authorize.middleware.d.ts +0 -54
- package/dist/middleware/authorize.middleware.js +0 -104
- package/dist/middleware/error-handler.d.ts +0 -4
- package/dist/middleware/error-handler.js +0 -23
- package/dist/middleware/request-id.d.ts +0 -2
- package/dist/middleware/request-id.js +0 -9
- package/dist/middleware/request-id.middleware.d.ts +0 -22
- package/dist/middleware/request-id.middleware.js +0 -34
- package/dist/middleware/require-auth.d.ts +0 -10
- package/dist/middleware/require-auth.js +0 -34
- package/dist/middleware/require-human.middleware.d.ts +0 -2
- package/dist/middleware/require-human.middleware.js +0 -18
- package/dist/middleware/require-internal.middleware.d.ts +0 -18
- package/dist/middleware/require-internal.middleware.js +0 -183
- package/dist/middleware/validate.d.ts +0 -5
- package/dist/middleware/validate.js +0 -18
- package/dist/middleware/validated-merge.middleware.d.ts +0 -20
- package/dist/middleware/validated-merge.middleware.js +0 -33
- package/dist/middleware/verify-internal-jwt.d.ts +0 -7
- package/dist/middleware/verify-internal-jwt.js +0 -25
- package/dist/security/guard.d.ts +0 -10
- package/dist/security/guard.js +0 -40
- package/dist/security/index.d.ts +0 -1
- package/dist/types/express.d.ts +0 -22
- package/dist/types/express.js +0 -3
- package/dist/utils/date.utils.d.ts +0 -25
- package/dist/utils/date.utils.js +0 -30
- package/dist/utils/env.d.ts +0 -46
- package/dist/utils/env.js +0 -61
- package/dist/utils/env.utils.d.ts +0 -46
- package/dist/utils/env.utils.js +0 -61
- package/dist/utils/logger.utils.d.ts +0 -66
- package/dist/utils/logger.utils.js +0 -97
- package/dist/utils/response.d.ts +0 -4
- package/dist/utils/response.js +0 -35
- package/dist/utils/response.utils.d.ts +0 -54
- package/dist/utils/response.utils.js +0 -85
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { AccountStatus } from "../enums";
|
|
2
|
-
export interface AccountDto {
|
|
3
|
-
id: string;
|
|
4
|
-
email: string;
|
|
5
|
-
isVerified: boolean;
|
|
6
|
-
status: AccountStatus;
|
|
7
|
-
createdAt: Date;
|
|
8
|
-
updatedAt: Date;
|
|
9
|
-
}
|
|
10
|
-
export interface EmailVerificationDto {
|
|
11
|
-
id: string;
|
|
12
|
-
accountId: string;
|
|
13
|
-
token: string;
|
|
14
|
-
expiresAt: Date;
|
|
15
|
-
isUsed: boolean;
|
|
16
|
-
createdAt: Date;
|
|
17
|
-
}
|
|
18
|
-
export interface OAuthIdentityDto {
|
|
19
|
-
id: string;
|
|
20
|
-
accountId: string;
|
|
21
|
-
provider: string;
|
|
22
|
-
providerId: string;
|
|
23
|
-
createdAt: Date;
|
|
24
|
-
updatedAt: Date;
|
|
25
|
-
}
|
|
26
|
-
export interface PasswordResetDto {
|
|
27
|
-
id: string;
|
|
28
|
-
accountId: string;
|
|
29
|
-
token: string;
|
|
30
|
-
expiresAt: Date;
|
|
31
|
-
isUsed: boolean;
|
|
32
|
-
createdAt: Date;
|
|
33
|
-
}
|
|
34
|
-
export interface SessionDto {
|
|
35
|
-
id: string;
|
|
36
|
-
accountId: string;
|
|
37
|
-
expiresAt: Date;
|
|
38
|
-
revokedAt: Date | null;
|
|
39
|
-
ipAddress: string | null;
|
|
40
|
-
userAgent: string | null;
|
|
41
|
-
device: string | null;
|
|
42
|
-
createdAt: Date;
|
|
43
|
-
updatedAt: Date;
|
|
44
|
-
}
|
package/dist/dto/index.d.ts
DELETED
package/dist/dto/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./user-service.dtos"), exports);
|
|
18
|
-
__exportStar(require("./auth-service.dtos"), exports);
|
|
19
|
-
__exportStar(require("./response.dtos"), exports);
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export interface ApiMeta {
|
|
2
|
-
requestId: string;
|
|
3
|
-
timestamp: string;
|
|
4
|
-
}
|
|
5
|
-
export interface ApiSuccessResponse<T> {
|
|
6
|
-
success: true;
|
|
7
|
-
data: T;
|
|
8
|
-
meta: ApiMeta;
|
|
9
|
-
}
|
|
10
|
-
export interface ApiErrorResponse {
|
|
11
|
-
success: false;
|
|
12
|
-
error: {
|
|
13
|
-
code: string;
|
|
14
|
-
message: string;
|
|
15
|
-
details?: unknown;
|
|
16
|
-
};
|
|
17
|
-
meta: ApiMeta;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Returned on login / token refresh.
|
|
21
|
-
* accessToken goes in the response body.
|
|
22
|
-
* refreshToken goes in an HttpOnly cookie — not in the body.
|
|
23
|
-
* Only include refreshToken here if your client explicitly needs it
|
|
24
|
-
* (e.g. mobile clients that can't use cookies).
|
|
25
|
-
*/
|
|
26
|
-
export interface TokensResponseDto {
|
|
27
|
-
accessToken: string;
|
|
28
|
-
}
|
|
29
|
-
/** Generic message — use for simple confirmations */
|
|
30
|
-
export interface MessageResponseDto {
|
|
31
|
-
message: string;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Generic action confirmation — use when the client needs to know
|
|
35
|
-
* which action was performed (e.g. in a polling or event-driven context).
|
|
36
|
-
*
|
|
37
|
-
* action: machine-readable string, e.g. "account.suspended", "session.revoked"
|
|
38
|
-
* message: human-readable description
|
|
39
|
-
*/
|
|
40
|
-
export interface ActionResponseDto {
|
|
41
|
-
action: string;
|
|
42
|
-
message: string;
|
|
43
|
-
}
|
|
44
|
-
export interface PaginationMeta {
|
|
45
|
-
page: number;
|
|
46
|
-
pageSize: number;
|
|
47
|
-
totalItems: number;
|
|
48
|
-
totalPages: number;
|
|
49
|
-
hasNext: boolean;
|
|
50
|
-
hasPrev: boolean;
|
|
51
|
-
}
|
|
52
|
-
export interface PaginatedResponseDto<T> {
|
|
53
|
-
items: T[];
|
|
54
|
-
pagination: PaginationMeta;
|
|
55
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* ====================================================================
|
|
3
|
-
RESPONSE DTOs
|
|
4
|
-
Shared HTTP response shapes used across all services.
|
|
5
|
-
==================================================================== */
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { AccountStatus, OrganizationRole, MembershipStatus, OrganizationStatus, Theme, Currency } from "../enums";
|
|
2
|
-
export interface UserDto {
|
|
3
|
-
id: string;
|
|
4
|
-
email: string;
|
|
5
|
-
status: AccountStatus;
|
|
6
|
-
createdAt: Date;
|
|
7
|
-
updatedAt: Date;
|
|
8
|
-
}
|
|
9
|
-
export interface UserProfileDto {
|
|
10
|
-
id: string;
|
|
11
|
-
userId: string;
|
|
12
|
-
displayName: string | null;
|
|
13
|
-
avatarUrl: string | null;
|
|
14
|
-
jobTitle: string | null;
|
|
15
|
-
bio: string | null;
|
|
16
|
-
timezone: string | null;
|
|
17
|
-
locale: string;
|
|
18
|
-
country: string | null;
|
|
19
|
-
pronouns: string | null;
|
|
20
|
-
createdAt: Date;
|
|
21
|
-
updatedAt: Date;
|
|
22
|
-
}
|
|
23
|
-
export interface UserPreferencesDto {
|
|
24
|
-
id: string;
|
|
25
|
-
userId: string;
|
|
26
|
-
theme: Theme;
|
|
27
|
-
language: string;
|
|
28
|
-
currency: Currency;
|
|
29
|
-
emailAlerts: boolean;
|
|
30
|
-
createdAt: Date;
|
|
31
|
-
updatedAt: Date;
|
|
32
|
-
}
|
|
33
|
-
export interface OrganizationDto {
|
|
34
|
-
id: string;
|
|
35
|
-
name: string;
|
|
36
|
-
slug: string;
|
|
37
|
-
status: OrganizationStatus;
|
|
38
|
-
createdAt: Date;
|
|
39
|
-
updatedAt: Date;
|
|
40
|
-
deletedAt: Date | null;
|
|
41
|
-
}
|
|
42
|
-
export interface OrganizationMemberDto {
|
|
43
|
-
id: string;
|
|
44
|
-
userId: string;
|
|
45
|
-
organizationId: string;
|
|
46
|
-
role: OrganizationRole;
|
|
47
|
-
status: MembershipStatus;
|
|
48
|
-
createdAt: Date;
|
|
49
|
-
updatedAt: Date;
|
|
50
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare enum AccountStatus {
|
|
2
|
-
ACTIVE = "ACTIVE",
|
|
3
|
-
SUSPENDED = "SUSPENDED",
|
|
4
|
-
DELETED = "DELETED"
|
|
5
|
-
}
|
|
6
|
-
export declare enum AccountRole {
|
|
7
|
-
SUPERADMIN = "SUPERADMIN",
|
|
8
|
-
ADMIN = "ADMIN",
|
|
9
|
-
SUPPORT = "SUPPORT",
|
|
10
|
-
MODERATOR = "MODERATOR",
|
|
11
|
-
USER = "USER"
|
|
12
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AccountRole = exports.AccountStatus = void 0;
|
|
4
|
-
var AccountStatus;
|
|
5
|
-
(function (AccountStatus) {
|
|
6
|
-
AccountStatus["ACTIVE"] = "ACTIVE";
|
|
7
|
-
AccountStatus["SUSPENDED"] = "SUSPENDED";
|
|
8
|
-
AccountStatus["DELETED"] = "DELETED";
|
|
9
|
-
})(AccountStatus || (exports.AccountStatus = AccountStatus = {}));
|
|
10
|
-
var AccountRole;
|
|
11
|
-
(function (AccountRole) {
|
|
12
|
-
AccountRole["SUPERADMIN"] = "SUPERADMIN";
|
|
13
|
-
AccountRole["ADMIN"] = "ADMIN";
|
|
14
|
-
AccountRole["SUPPORT"] = "SUPPORT";
|
|
15
|
-
AccountRole["MODERATOR"] = "MODERATOR";
|
|
16
|
-
AccountRole["USER"] = "USER";
|
|
17
|
-
})(AccountRole || (exports.AccountRole = AccountRole = {}));
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare enum GlobalPermission {
|
|
2
|
-
MANAGE_SYSTEM = "manage_system",
|
|
3
|
-
MANAGE_ALL_ORGS = "manage_all_orgs",
|
|
4
|
-
MANAGE_USERS = "manage_users",
|
|
5
|
-
VIEW_SYSTEM_LOGS = "view_system_logs",
|
|
6
|
-
SUPPORT_ACTIONS = "support_actions",
|
|
7
|
-
MODERATE_CONTENT = "moderate_content"
|
|
8
|
-
}
|
|
9
|
-
export declare enum OrgPermission {
|
|
10
|
-
MANAGE_ORG = "manage_org",
|
|
11
|
-
MANAGE_MEMBERS = "manage_members"
|
|
12
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OrgPermission = exports.GlobalPermission = void 0;
|
|
4
|
-
var GlobalPermission;
|
|
5
|
-
(function (GlobalPermission) {
|
|
6
|
-
GlobalPermission["MANAGE_SYSTEM"] = "manage_system";
|
|
7
|
-
GlobalPermission["MANAGE_ALL_ORGS"] = "manage_all_orgs";
|
|
8
|
-
GlobalPermission["MANAGE_USERS"] = "manage_users";
|
|
9
|
-
GlobalPermission["VIEW_SYSTEM_LOGS"] = "view_system_logs";
|
|
10
|
-
GlobalPermission["SUPPORT_ACTIONS"] = "support_actions";
|
|
11
|
-
GlobalPermission["MODERATE_CONTENT"] = "moderate_content";
|
|
12
|
-
})(GlobalPermission || (exports.GlobalPermission = GlobalPermission = {}));
|
|
13
|
-
var OrgPermission;
|
|
14
|
-
(function (OrgPermission) {
|
|
15
|
-
OrgPermission["MANAGE_ORG"] = "manage_org";
|
|
16
|
-
OrgPermission["MANAGE_MEMBERS"] = "manage_members";
|
|
17
|
-
})(OrgPermission || (exports.OrgPermission = OrgPermission = {}));
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export declare enum OrganizationRole {
|
|
2
|
-
OWNER = "OWNER",
|
|
3
|
-
ADMIN = "ADMIN",
|
|
4
|
-
EDITOR = "EDITOR",
|
|
5
|
-
VIEWER = "VIEWER"
|
|
6
|
-
}
|
|
7
|
-
export declare enum UserStatus {
|
|
8
|
-
ACTIVE = "ACTIVE",
|
|
9
|
-
SUSPENDED = "SUSPENDED",
|
|
10
|
-
DELETED = "DELETED"
|
|
11
|
-
}
|
|
12
|
-
export declare enum OrganizationStatus {
|
|
13
|
-
ACTIVE = "ACTIVE",
|
|
14
|
-
SUSPENDED = "SUSPENDED",
|
|
15
|
-
CLOSED = "CLOSED"
|
|
16
|
-
}
|
|
17
|
-
export declare enum MembershipStatus {
|
|
18
|
-
ACTIVE = "ACTIVE",
|
|
19
|
-
INVITED = "INVITED",
|
|
20
|
-
SUSPENDED = "SUSPENDED"
|
|
21
|
-
}
|
|
22
|
-
export declare enum Theme {
|
|
23
|
-
LIGHT = "LIGHT",
|
|
24
|
-
DARK = "DARK",
|
|
25
|
-
SYSTEM = "SYSTEM"
|
|
26
|
-
}
|
|
27
|
-
export declare enum Currency {
|
|
28
|
-
USD = "USD",
|
|
29
|
-
EUR = "EUR",
|
|
30
|
-
GBP = "GBP",
|
|
31
|
-
INR = "INR"
|
|
32
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Currency = exports.Theme = exports.MembershipStatus = exports.OrganizationStatus = exports.UserStatus = exports.OrganizationRole = void 0;
|
|
4
|
-
var OrganizationRole;
|
|
5
|
-
(function (OrganizationRole) {
|
|
6
|
-
OrganizationRole["OWNER"] = "OWNER";
|
|
7
|
-
OrganizationRole["ADMIN"] = "ADMIN";
|
|
8
|
-
OrganizationRole["EDITOR"] = "EDITOR";
|
|
9
|
-
OrganizationRole["VIEWER"] = "VIEWER";
|
|
10
|
-
})(OrganizationRole || (exports.OrganizationRole = OrganizationRole = {}));
|
|
11
|
-
var UserStatus;
|
|
12
|
-
(function (UserStatus) {
|
|
13
|
-
UserStatus["ACTIVE"] = "ACTIVE";
|
|
14
|
-
UserStatus["SUSPENDED"] = "SUSPENDED";
|
|
15
|
-
UserStatus["DELETED"] = "DELETED";
|
|
16
|
-
})(UserStatus || (exports.UserStatus = UserStatus = {}));
|
|
17
|
-
var OrganizationStatus;
|
|
18
|
-
(function (OrganizationStatus) {
|
|
19
|
-
OrganizationStatus["ACTIVE"] = "ACTIVE";
|
|
20
|
-
OrganizationStatus["SUSPENDED"] = "SUSPENDED";
|
|
21
|
-
OrganizationStatus["CLOSED"] = "CLOSED";
|
|
22
|
-
})(OrganizationStatus || (exports.OrganizationStatus = OrganizationStatus = {}));
|
|
23
|
-
var MembershipStatus;
|
|
24
|
-
(function (MembershipStatus) {
|
|
25
|
-
MembershipStatus["ACTIVE"] = "ACTIVE";
|
|
26
|
-
MembershipStatus["INVITED"] = "INVITED";
|
|
27
|
-
MembershipStatus["SUSPENDED"] = "SUSPENDED";
|
|
28
|
-
})(MembershipStatus || (exports.MembershipStatus = MembershipStatus = {}));
|
|
29
|
-
var Theme;
|
|
30
|
-
(function (Theme) {
|
|
31
|
-
Theme["LIGHT"] = "LIGHT";
|
|
32
|
-
Theme["DARK"] = "DARK";
|
|
33
|
-
Theme["SYSTEM"] = "SYSTEM";
|
|
34
|
-
})(Theme || (exports.Theme = Theme = {}));
|
|
35
|
-
var Currency;
|
|
36
|
-
(function (Currency) {
|
|
37
|
-
Currency["USD"] = "USD";
|
|
38
|
-
Currency["EUR"] = "EUR";
|
|
39
|
-
Currency["GBP"] = "GBP";
|
|
40
|
-
Currency["INR"] = "INR";
|
|
41
|
-
})(Currency || (exports.Currency = Currency = {}));
|
package/dist/internal/index.d.ts
DELETED
package/dist/internal/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./internal-jwt.service"), exports);
|
|
18
|
-
__exportStar(require("./registry"), exports);
|
|
19
|
-
__exportStar(require("./internal-jwt.types"), exports);
|
|
20
|
-
__exportStar(require("./internal-key-manager"), exports);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { InternalKeyManager } from "./internal-key-manager";
|
|
2
|
-
import { InternalJwtPayload } from "./internal-jwt.types";
|
|
3
|
-
export declare class InternalJwtService {
|
|
4
|
-
private readonly keyManager;
|
|
5
|
-
private readonly serviceName;
|
|
6
|
-
private jwksCache;
|
|
7
|
-
constructor(keyManager: InternalKeyManager);
|
|
8
|
-
sign(payload: {
|
|
9
|
-
requestId: string;
|
|
10
|
-
}, targetService: string): Promise<string>;
|
|
11
|
-
verify(token: string): Promise<InternalJwtPayload>;
|
|
12
|
-
private getRemoteJWKS;
|
|
13
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.InternalJwtService = void 0;
|
|
37
|
-
const jose = __importStar(require("jose"));
|
|
38
|
-
class InternalJwtService {
|
|
39
|
-
constructor(keyManager) {
|
|
40
|
-
this.keyManager = keyManager;
|
|
41
|
-
this.jwksCache = new Map();
|
|
42
|
-
this.serviceName = process.env.SERVICE_NAME || "unknown-service";
|
|
43
|
-
}
|
|
44
|
-
async sign(payload, targetService) {
|
|
45
|
-
const signer = this.keyManager.getPrivateKey();
|
|
46
|
-
const kid = this.keyManager.getKid();
|
|
47
|
-
return new jose.SignJWT({
|
|
48
|
-
...payload,
|
|
49
|
-
typ: "internal"
|
|
50
|
-
})
|
|
51
|
-
.setProtectedHeader({ alg: "RS256", kid })
|
|
52
|
-
.setIssuer(this.serviceName)
|
|
53
|
-
.setAudience(targetService)
|
|
54
|
-
.setIssuedAt()
|
|
55
|
-
.setExpirationTime("1m")
|
|
56
|
-
.sign(signer);
|
|
57
|
-
}
|
|
58
|
-
async verify(token) {
|
|
59
|
-
const unverified = jose.decodeJwt(token);
|
|
60
|
-
if (!unverified.iss)
|
|
61
|
-
throw new Error("Missing issuer");
|
|
62
|
-
if (unverified.typ !== "internal")
|
|
63
|
-
throw new Error("Invalid token type");
|
|
64
|
-
const jwks = this.getRemoteJWKS(unverified.iss);
|
|
65
|
-
const { payload } = await jose.jwtVerify(token, jwks, {
|
|
66
|
-
algorithms: ["RS256"],
|
|
67
|
-
audience: this.serviceName,
|
|
68
|
-
issuer: unverified.iss
|
|
69
|
-
});
|
|
70
|
-
return payload;
|
|
71
|
-
}
|
|
72
|
-
getRemoteJWKS(issuer) {
|
|
73
|
-
const envKey = `${issuer.replace(/-/g, "_").toUpperCase()}_URL`;
|
|
74
|
-
const baseUrl = process.env[envKey];
|
|
75
|
-
const url = baseUrl
|
|
76
|
-
? `${baseUrl}/internal/jwks`
|
|
77
|
-
: `http://${issuer}/internal/jwks`;
|
|
78
|
-
if (!this.jwksCache.has(url)) {
|
|
79
|
-
console.log(`[InternalJwt] Caching JWKS for ${issuer} at ${url}`);
|
|
80
|
-
this.jwksCache.set(url, jose.createRemoteJWKSet(new URL(url), {
|
|
81
|
-
cacheMaxAge: 600000,
|
|
82
|
-
cooldownDuration: 30000
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
return this.jwksCache.get(url);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.InternalJwtService = InternalJwtService;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { JWK } from "jose";
|
|
2
|
-
import { KeyObject } from "crypto";
|
|
3
|
-
export declare class InternalKeyManager {
|
|
4
|
-
private privateKey;
|
|
5
|
-
private publicKey;
|
|
6
|
-
private jwks;
|
|
7
|
-
private readonly serviceName;
|
|
8
|
-
private readonly keyPath;
|
|
9
|
-
constructor();
|
|
10
|
-
private init;
|
|
11
|
-
getPrivateKey(): CryptoKey | KeyObject;
|
|
12
|
-
getPublicJwks(): {
|
|
13
|
-
keys: JWK[];
|
|
14
|
-
};
|
|
15
|
-
getKid(): string;
|
|
16
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.InternalKeyManager = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const jose_1 = require("jose");
|
|
10
|
-
class InternalKeyManager {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.jwks = [];
|
|
13
|
-
this.serviceName = process.env.SERVICE_NAME || "unknown-service";
|
|
14
|
-
this.keyPath = (() => {
|
|
15
|
-
const envPath = process.env.INTERNAL_KEYS_PATH;
|
|
16
|
-
if (!envPath) {
|
|
17
|
-
console.warn("[InternalKeyManager] INTERNAL_KEYS_PATH not set. Using default: src/keys/internal");
|
|
18
|
-
return path_1.default.join(process.cwd(), "src/keys/internal");
|
|
19
|
-
}
|
|
20
|
-
return path_1.default.isAbsolute(envPath) ? envPath : path_1.default.join(process.cwd(), envPath);
|
|
21
|
-
})();
|
|
22
|
-
this.init();
|
|
23
|
-
}
|
|
24
|
-
async init() {
|
|
25
|
-
try {
|
|
26
|
-
if (!fs_1.default.existsSync(this.keyPath)) {
|
|
27
|
-
console.error(`[InternalKeyManager] Missing keys directory: ${this.keyPath}`);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const privPath = path_1.default.join(this.keyPath, "/private/private.pem");
|
|
31
|
-
if (fs_1.default.existsSync(privPath)) {
|
|
32
|
-
const privPem = fs_1.default.readFileSync(privPath, "utf8");
|
|
33
|
-
this.privateKey = await (0, jose_1.importPKCS8)(privPem, "RS256");
|
|
34
|
-
}
|
|
35
|
-
const pubPath = path_1.default.join(this.keyPath, "/public/public.pem");
|
|
36
|
-
if (fs_1.default.existsSync(pubPath)) {
|
|
37
|
-
const pubPem = fs_1.default.readFileSync(pubPath, "utf8");
|
|
38
|
-
this.publicKey = await (0, jose_1.importSPKI)(pubPem, "RS256");
|
|
39
|
-
const jwk = await (0, jose_1.exportJWK)(this.publicKey);
|
|
40
|
-
this.jwks = [{
|
|
41
|
-
...jwk,
|
|
42
|
-
kid: `${this.serviceName}-internal`,
|
|
43
|
-
use: "sig",
|
|
44
|
-
alg: "RS256"
|
|
45
|
-
}];
|
|
46
|
-
}
|
|
47
|
-
console.log(`[InternalKeyManager] Loaded keys for: ${this.serviceName}`);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
console.error("[InternalKeyManager] Failed to load keys.", error);
|
|
51
|
-
if (process.env.NODE_ENV === "production")
|
|
52
|
-
process.exit(1);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
getPrivateKey() {
|
|
56
|
-
if (!this.privateKey)
|
|
57
|
-
throw new Error("Private key not loaded");
|
|
58
|
-
return this.privateKey;
|
|
59
|
-
}
|
|
60
|
-
getPublicJwks() {
|
|
61
|
-
return { keys: this.jwks };
|
|
62
|
-
}
|
|
63
|
-
getKid() {
|
|
64
|
-
return `${this.serviceName}-internal`;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
exports.InternalKeyManager = InternalKeyManager;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare const SERVICE_REGISTRY: {
|
|
2
|
-
readonly auth: "auth-service";
|
|
3
|
-
readonly user: "user-service";
|
|
4
|
-
readonly billing: "billing-service";
|
|
5
|
-
readonly notifications: "notification-service";
|
|
6
|
-
};
|
|
7
|
-
export type ServiceName = typeof SERVICE_REGISTRY[keyof typeof SERVICE_REGISTRY];
|
|
8
|
-
export declare const extractServiceName: (url?: string) => ServiceName | null;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extractServiceName = exports.SERVICE_REGISTRY = void 0;
|
|
4
|
-
exports.SERVICE_REGISTRY = {
|
|
5
|
-
auth: "auth-service",
|
|
6
|
-
user: "user-service",
|
|
7
|
-
billing: "billing-service",
|
|
8
|
-
notifications: "notification-service"
|
|
9
|
-
};
|
|
10
|
-
const extractServiceName = (url) => {
|
|
11
|
-
if (!url)
|
|
12
|
-
return null;
|
|
13
|
-
try {
|
|
14
|
-
const u = new URL(url);
|
|
15
|
-
// If localhost, infer by port
|
|
16
|
-
switch (u.port) {
|
|
17
|
-
case "3001": return "auth-service";
|
|
18
|
-
case "3002": return "user-service";
|
|
19
|
-
case "3003": return "billing-service";
|
|
20
|
-
case "3004": return "notification-service";
|
|
21
|
-
default: break;
|
|
22
|
-
}
|
|
23
|
-
// Docker/K8s case: hostname is service name
|
|
24
|
-
const host = u.hostname.split(".")[0];
|
|
25
|
-
if (Object.values(exports.SERVICE_REGISTRY).includes(host)) {
|
|
26
|
-
return host;
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
exports.extractServiceName = extractServiceName;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { AxiosInstance } from "axios";
|
|
2
|
-
import { InternalJwtService } from "./internal-jwt.service";
|
|
3
|
-
export declare class ServiceClient {
|
|
4
|
-
private readonly internalJwt;
|
|
5
|
-
readonly http: AxiosInstance;
|
|
6
|
-
constructor(internalJwt: InternalJwtService);
|
|
7
|
-
private setupRetry;
|
|
8
|
-
private setupInterceptors;
|
|
9
|
-
}
|