@nolag/core 0.4.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/LICENSE +202 -0
- package/NOTICE +28 -0
- package/README.md +244 -0
- package/dist/common/entities/base.entity.d.ts +12 -0
- package/dist/common/entities/base.entity.d.ts.map +1 -0
- package/dist/common/entities/base.entity.js +31 -0
- package/dist/common/pagination.d.ts +34 -0
- package/dist/common/pagination.d.ts.map +1 -0
- package/dist/common/pagination.js +100 -0
- package/dist/common/utils/secretCipher.d.ts +3 -0
- package/dist/common/utils/secretCipher.d.ts.map +1 -0
- package/dist/common/utils/secretCipher.js +45 -0
- package/dist/common/utils/secretHash.d.ts +15 -0
- package/dist/common/utils/secretHash.d.ts.map +1 -0
- package/dist/common/utils/secretHash.js +46 -0
- package/dist/common/utils/ttlCache.d.ts +13 -0
- package/dist/common/utils/ttlCache.d.ts.map +1 -0
- package/dist/common/utils/ttlCache.js +47 -0
- package/dist/common/validators/isValidTopicName.validator.d.ts +7 -0
- package/dist/common/validators/isValidTopicName.validator.d.ts.map +1 -0
- package/dist/common/validators/isValidTopicName.validator.js +44 -0
- package/dist/core.config.d.ts +10 -0
- package/dist/core.config.d.ts.map +1 -0
- package/dist/core.config.js +41 -0
- package/dist/core.module.d.ts +6 -0
- package/dist/core.module.d.ts.map +1 -0
- package/dist/core.module.js +67 -0
- package/dist/core.options.d.ts +26 -0
- package/dist/core.options.d.ts.map +1 -0
- package/dist/core.options.js +10 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/migrations/1786323955167-InitialSchema.d.ts +7 -0
- package/dist/migrations/1786323955167-InitialSchema.d.ts.map +1 -0
- package/dist/migrations/1786323955167-InitialSchema.js +106 -0
- package/dist/modules/accessScopeModule/accessScope.entity.d.ts +15 -0
- package/dist/modules/accessScopeModule/accessScope.entity.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/accessScope.entity.js +78 -0
- package/dist/modules/accessScopeModule/accessScope.facade.d.ts +22 -0
- package/dist/modules/accessScopeModule/accessScope.facade.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/accessScope.facade.js +103 -0
- package/dist/modules/accessScopeModule/accessScope.module.d.ts +3 -0
- package/dist/modules/accessScopeModule/accessScope.module.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/accessScope.module.js +34 -0
- package/dist/modules/accessScopeModule/accessScope.repository.d.ts +7 -0
- package/dist/modules/accessScopeModule/accessScope.repository.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/accessScope.repository.js +35 -0
- package/dist/modules/accessScopeModule/accessScope.service.d.ts +15 -0
- package/dist/modules/accessScopeModule/accessScope.service.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/accessScope.service.js +87 -0
- package/dist/modules/accessScopeModule/dto/accessScope.dto.d.ts +13 -0
- package/dist/modules/accessScopeModule/dto/accessScope.dto.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/dto/accessScope.dto.js +88 -0
- package/dist/modules/accessScopeModule/query/accessScope.query.d.ts +8 -0
- package/dist/modules/accessScopeModule/query/accessScope.query.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/query/accessScope.query.js +35 -0
- package/dist/modules/accessScopeModule/query/accessScope.query.service.d.ts +10 -0
- package/dist/modules/accessScopeModule/query/accessScope.query.service.d.ts.map +1 -0
- package/dist/modules/accessScopeModule/query/accessScope.query.service.js +47 -0
- package/dist/modules/actorTokenModule/actorAppAccess.entity.d.ts +19 -0
- package/dist/modules/actorTokenModule/actorAppAccess.entity.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorAppAccess.entity.js +92 -0
- package/dist/modules/actorTokenModule/actorToken.entity.d.ts +23 -0
- package/dist/modules/actorTokenModule/actorToken.entity.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorToken.entity.js +117 -0
- package/dist/modules/actorTokenModule/actorToken.facade.d.ts +35 -0
- package/dist/modules/actorTokenModule/actorToken.facade.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorToken.facade.js +123 -0
- package/dist/modules/actorTokenModule/actorToken.module.d.ts +3 -0
- package/dist/modules/actorTokenModule/actorToken.module.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorToken.module.js +41 -0
- package/dist/modules/actorTokenModule/actorToken.repository.d.ts +11 -0
- package/dist/modules/actorTokenModule/actorToken.repository.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorToken.repository.js +41 -0
- package/dist/modules/actorTokenModule/actorToken.service.d.ts +26 -0
- package/dist/modules/actorTokenModule/actorToken.service.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorToken.service.js +169 -0
- package/dist/modules/actorTokenModule/actorTokenState.entity.d.ts +31 -0
- package/dist/modules/actorTokenModule/actorTokenState.entity.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorTokenState.entity.js +77 -0
- package/dist/modules/actorTokenModule/actorTokenState.repository.d.ts +10 -0
- package/dist/modules/actorTokenModule/actorTokenState.repository.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/actorTokenState.repository.js +54 -0
- package/dist/modules/actorTokenModule/dto/actorToken.dto.d.ts +21 -0
- package/dist/modules/actorTokenModule/dto/actorToken.dto.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/dto/actorToken.dto.js +99 -0
- package/dist/modules/actorTokenModule/enum/EAccessPermission.enum.d.ts +6 -0
- package/dist/modules/actorTokenModule/enum/EAccessPermission.enum.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/enum/EAccessPermission.enum.js +9 -0
- package/dist/modules/actorTokenModule/enum/EActorTokenPrefix.enum.d.ts +5 -0
- package/dist/modules/actorTokenModule/enum/EActorTokenPrefix.enum.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/enum/EActorTokenPrefix.enum.js +8 -0
- package/dist/modules/actorTokenModule/enum/EActorTokenStatus.enum.d.ts +5 -0
- package/dist/modules/actorTokenModule/enum/EActorTokenStatus.enum.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/enum/EActorTokenStatus.enum.js +8 -0
- package/dist/modules/actorTokenModule/enum/EActorType.enum.d.ts +11 -0
- package/dist/modules/actorTokenModule/enum/EActorType.enum.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/enum/EActorType.enum.js +17 -0
- package/dist/modules/actorTokenModule/query/actorToken.query.d.ts +10 -0
- package/dist/modules/actorTokenModule/query/actorToken.query.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/query/actorToken.query.js +41 -0
- package/dist/modules/actorTokenModule/query/actorToken.query.service.d.ts +10 -0
- package/dist/modules/actorTokenModule/query/actorToken.query.service.d.ts.map +1 -0
- package/dist/modules/actorTokenModule/query/actorToken.query.service.js +47 -0
- package/dist/modules/authzModule/adapters/brokerResponse.adapter.d.ts +128 -0
- package/dist/modules/authzModule/adapters/brokerResponse.adapter.d.ts.map +1 -0
- package/dist/modules/authzModule/adapters/brokerResponse.adapter.js +103 -0
- package/dist/modules/authzModule/authz.facade.d.ts +18 -0
- package/dist/modules/authzModule/authz.facade.d.ts.map +1 -0
- package/dist/modules/authzModule/authz.facade.js +52 -0
- package/dist/modules/authzModule/authz.module.d.ts +3 -0
- package/dist/modules/authzModule/authz.module.d.ts.map +1 -0
- package/dist/modules/authzModule/authz.module.js +50 -0
- package/dist/modules/authzModule/authz.service.d.ts +34 -0
- package/dist/modules/authzModule/authz.service.d.ts.map +1 -0
- package/dist/modules/authzModule/authz.service.js +654 -0
- package/dist/modules/authzModule/dto/authz.dto.d.ts +99 -0
- package/dist/modules/authzModule/dto/authz.dto.d.ts.map +1 -0
- package/dist/modules/authzModule/dto/authz.dto.js +236 -0
- package/dist/modules/lobbyModule/dto/lobby.dto.d.ts +12 -0
- package/dist/modules/lobbyModule/dto/lobby.dto.d.ts.map +1 -0
- package/dist/modules/lobbyModule/dto/lobby.dto.js +79 -0
- package/dist/modules/lobbyModule/lobby.entity.d.ts +16 -0
- package/dist/modules/lobbyModule/lobby.entity.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobby.entity.js +79 -0
- package/dist/modules/lobbyModule/lobby.facade.d.ts +40 -0
- package/dist/modules/lobbyModule/lobby.facade.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobby.facade.js +199 -0
- package/dist/modules/lobbyModule/lobby.module.d.ts +3 -0
- package/dist/modules/lobbyModule/lobby.module.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobby.module.js +36 -0
- package/dist/modules/lobbyModule/lobby.repository.d.ts +9 -0
- package/dist/modules/lobbyModule/lobby.repository.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobby.repository.js +42 -0
- package/dist/modules/lobbyModule/lobby.service.d.ts +41 -0
- package/dist/modules/lobbyModule/lobby.service.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobby.service.js +159 -0
- package/dist/modules/lobbyModule/lobbyRoom.entity.d.ts +11 -0
- package/dist/modules/lobbyModule/lobbyRoom.entity.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobbyRoom.entity.js +52 -0
- package/dist/modules/lobbyModule/lobbyRoom.repository.d.ts +8 -0
- package/dist/modules/lobbyModule/lobbyRoom.repository.d.ts.map +1 -0
- package/dist/modules/lobbyModule/lobbyRoom.repository.js +36 -0
- package/dist/modules/lobbyModule/query/lobby.query.d.ts +7 -0
- package/dist/modules/lobbyModule/query/lobby.query.d.ts.map +1 -0
- package/dist/modules/lobbyModule/query/lobby.query.js +32 -0
- package/dist/modules/lobbyModule/query/lobby.query.service.d.ts +10 -0
- package/dist/modules/lobbyModule/query/lobby.query.service.d.ts.map +1 -0
- package/dist/modules/lobbyModule/query/lobby.query.service.js +42 -0
- package/dist/modules/platformAppModule/dto/platformApp.dto.d.ts +28 -0
- package/dist/modules/platformAppModule/dto/platformApp.dto.d.ts.map +1 -0
- package/dist/modules/platformAppModule/dto/platformApp.dto.js +180 -0
- package/dist/modules/platformAppModule/enum/EAppAccessMode.enum.d.ts +5 -0
- package/dist/modules/platformAppModule/enum/EAppAccessMode.enum.d.ts.map +1 -0
- package/dist/modules/platformAppModule/enum/EAppAccessMode.enum.js +8 -0
- package/dist/modules/platformAppModule/enum/EAppStatus.enum.d.ts +6 -0
- package/dist/modules/platformAppModule/enum/EAppStatus.enum.d.ts.map +1 -0
- package/dist/modules/platformAppModule/enum/EAppStatus.enum.js +9 -0
- package/dist/modules/platformAppModule/platformApp.entity.d.ts +32 -0
- package/dist/modules/platformAppModule/platformApp.entity.d.ts.map +1 -0
- package/dist/modules/platformAppModule/platformApp.entity.js +113 -0
- package/dist/modules/platformAppModule/platformApp.facade.d.ts +25 -0
- package/dist/modules/platformAppModule/platformApp.facade.d.ts.map +1 -0
- package/dist/modules/platformAppModule/platformApp.facade.js +188 -0
- package/dist/modules/platformAppModule/platformApp.module.d.ts +3 -0
- package/dist/modules/platformAppModule/platformApp.module.d.ts.map +1 -0
- package/dist/modules/platformAppModule/platformApp.module.js +29 -0
- package/dist/modules/platformAppModule/platformApp.repository.d.ts +10 -0
- package/dist/modules/platformAppModule/platformApp.repository.d.ts.map +1 -0
- package/dist/modules/platformAppModule/platformApp.repository.js +45 -0
- package/dist/modules/platformAppModule/query/platformApp.query.d.ts +9 -0
- package/dist/modules/platformAppModule/query/platformApp.query.d.ts.map +1 -0
- package/dist/modules/platformAppModule/query/platformApp.query.js +40 -0
- package/dist/modules/platformAppModule/query/platformApp.query.service.d.ts +10 -0
- package/dist/modules/platformAppModule/query/platformApp.query.service.d.ts.map +1 -0
- package/dist/modules/platformAppModule/query/platformApp.query.service.js +45 -0
- package/dist/modules/projectConfigModule/dto/projectConfig.dto.d.ts +116 -0
- package/dist/modules/projectConfigModule/dto/projectConfig.dto.d.ts.map +1 -0
- package/dist/modules/projectConfigModule/dto/projectConfig.dto.js +566 -0
- package/dist/modules/projectConfigModule/projectConfig.facade.d.ts +18 -0
- package/dist/modules/projectConfigModule/projectConfig.facade.d.ts.map +1 -0
- package/dist/modules/projectConfigModule/projectConfig.facade.js +71 -0
- package/dist/modules/projectConfigModule/projectConfig.module.d.ts +3 -0
- package/dist/modules/projectConfigModule/projectConfig.module.d.ts.map +1 -0
- package/dist/modules/projectConfigModule/projectConfig.module.js +23 -0
- package/dist/modules/projectConfigModule/projectConfig.service.d.ts +12 -0
- package/dist/modules/projectConfigModule/projectConfig.service.d.ts.map +1 -0
- package/dist/modules/projectConfigModule/projectConfig.service.js +411 -0
- package/dist/modules/projectModule/dto/project.dto.d.ts +15 -0
- package/dist/modules/projectModule/dto/project.dto.d.ts.map +1 -0
- package/dist/modules/projectModule/dto/project.dto.js +86 -0
- package/dist/modules/projectModule/project.entity.d.ts +14 -0
- package/dist/modules/projectModule/project.entity.d.ts.map +1 -0
- package/dist/modules/projectModule/project.entity.js +74 -0
- package/dist/modules/projectModule/project.facade.d.ts +27 -0
- package/dist/modules/projectModule/project.facade.d.ts.map +1 -0
- package/dist/modules/projectModule/project.facade.js +150 -0
- package/dist/modules/projectModule/project.module.d.ts +3 -0
- package/dist/modules/projectModule/project.module.d.ts.map +1 -0
- package/dist/modules/projectModule/project.module.js +25 -0
- package/dist/modules/projectModule/project.repository.d.ts +9 -0
- package/dist/modules/projectModule/project.repository.d.ts.map +1 -0
- package/dist/modules/projectModule/project.repository.js +42 -0
- package/dist/modules/projectModule/query/project.query.d.ts +7 -0
- package/dist/modules/projectModule/query/project.query.d.ts.map +1 -0
- package/dist/modules/projectModule/query/project.query.js +32 -0
- package/dist/modules/projectModule/query/project.query.service.d.ts +10 -0
- package/dist/modules/projectModule/query/project.query.service.d.ts.map +1 -0
- package/dist/modules/projectModule/query/project.query.service.js +43 -0
- package/dist/modules/roomModule/dto/room.dto.d.ts +17 -0
- package/dist/modules/roomModule/dto/room.dto.d.ts.map +1 -0
- package/dist/modules/roomModule/dto/room.dto.js +123 -0
- package/dist/modules/roomModule/dto/roomActorAccess.dto.d.ts +21 -0
- package/dist/modules/roomModule/dto/roomActorAccess.dto.d.ts.map +1 -0
- package/dist/modules/roomModule/dto/roomActorAccess.dto.js +135 -0
- package/dist/modules/roomModule/enum/ERoomStatus.enum.d.ts +5 -0
- package/dist/modules/roomModule/enum/ERoomStatus.enum.d.ts.map +1 -0
- package/dist/modules/roomModule/enum/ERoomStatus.enum.js +8 -0
- package/dist/modules/roomModule/query/room.query.d.ts +9 -0
- package/dist/modules/roomModule/query/room.query.d.ts.map +1 -0
- package/dist/modules/roomModule/query/room.query.js +40 -0
- package/dist/modules/roomModule/query/room.query.service.d.ts +10 -0
- package/dist/modules/roomModule/query/room.query.service.d.ts.map +1 -0
- package/dist/modules/roomModule/query/room.query.service.js +45 -0
- package/dist/modules/roomModule/room.entity.d.ts +17 -0
- package/dist/modules/roomModule/room.entity.d.ts.map +1 -0
- package/dist/modules/roomModule/room.entity.js +90 -0
- package/dist/modules/roomModule/room.facade.d.ts +30 -0
- package/dist/modules/roomModule/room.facade.d.ts.map +1 -0
- package/dist/modules/roomModule/room.facade.js +154 -0
- package/dist/modules/roomModule/room.module.d.ts +3 -0
- package/dist/modules/roomModule/room.module.d.ts.map +1 -0
- package/dist/modules/roomModule/room.module.js +39 -0
- package/dist/modules/roomModule/room.repository.d.ts +10 -0
- package/dist/modules/roomModule/room.repository.d.ts.map +1 -0
- package/dist/modules/roomModule/room.repository.js +48 -0
- package/dist/modules/roomModule/room.service.d.ts +26 -0
- package/dist/modules/roomModule/room.service.d.ts.map +1 -0
- package/dist/modules/roomModule/room.service.js +130 -0
- package/dist/modules/roomModule/roomActorAccess.entity.d.ts +22 -0
- package/dist/modules/roomModule/roomActorAccess.entity.d.ts.map +1 -0
- package/dist/modules/roomModule/roomActorAccess.entity.js +101 -0
- package/dist/modules/roomModule/roomActorAccess.facade.d.ts +20 -0
- package/dist/modules/roomModule/roomActorAccess.facade.d.ts.map +1 -0
- package/dist/modules/roomModule/roomActorAccess.facade.js +134 -0
- package/dist/modules/roomModule/roomActorAccess.repository.d.ts +15 -0
- package/dist/modules/roomModule/roomActorAccess.repository.d.ts.map +1 -0
- package/dist/modules/roomModule/roomActorAccess.repository.js +81 -0
- package/dist/modules/signingKeyModule/dto/signingKey.dto.d.ts +14 -0
- package/dist/modules/signingKeyModule/dto/signingKey.dto.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/dto/signingKey.dto.js +57 -0
- package/dist/modules/signingKeyModule/enum/ESigningKeyPrefix.enum.d.ts +5 -0
- package/dist/modules/signingKeyModule/enum/ESigningKeyPrefix.enum.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/enum/ESigningKeyPrefix.enum.js +8 -0
- package/dist/modules/signingKeyModule/enum/ESigningKeyStatus.enum.d.ts +5 -0
- package/dist/modules/signingKeyModule/enum/ESigningKeyStatus.enum.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/enum/ESigningKeyStatus.enum.js +8 -0
- package/dist/modules/signingKeyModule/query/signingKey.query.d.ts +8 -0
- package/dist/modules/signingKeyModule/query/signingKey.query.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/query/signingKey.query.js +33 -0
- package/dist/modules/signingKeyModule/query/signingKey.query.service.d.ts +10 -0
- package/dist/modules/signingKeyModule/query/signingKey.query.service.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/query/signingKey.query.service.js +52 -0
- package/dist/modules/signingKeyModule/signingKey.entity.d.ts +16 -0
- package/dist/modules/signingKeyModule/signingKey.entity.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/signingKey.entity.js +85 -0
- package/dist/modules/signingKeyModule/signingKey.facade.d.ts +25 -0
- package/dist/modules/signingKeyModule/signingKey.facade.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/signingKey.facade.js +90 -0
- package/dist/modules/signingKeyModule/signingKey.module.d.ts +3 -0
- package/dist/modules/signingKeyModule/signingKey.module.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/signingKey.module.js +35 -0
- package/dist/modules/signingKeyModule/signingKey.repository.d.ts +11 -0
- package/dist/modules/signingKeyModule/signingKey.repository.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/signingKey.repository.js +39 -0
- package/dist/modules/signingKeyModule/signingKey.service.d.ts +40 -0
- package/dist/modules/signingKeyModule/signingKey.service.d.ts.map +1 -0
- package/dist/modules/signingKeyModule/signingKey.service.js +259 -0
- package/dist/schema.d.ts +19 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +33 -0
- package/dist/utils/clientToken.d.ts +2 -0
- package/dist/utils/clientToken.d.ts.map +1 -0
- package/dist/utils/clientToken.js +6 -0
- package/dist/utils/exceptions.d.ts +16 -0
- package/dist/utils/exceptions.d.ts.map +1 -0
- package/dist/utils/exceptions.js +24 -0
- package/dist/utils/guid.d.ts +4 -0
- package/dist/utils/guid.d.ts.map +1 -0
- package/dist/utils/guid.js +16 -0
- package/package.json +127 -0
|
@@ -0,0 +1,259 @@
|
|
|
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
var SigningKeyService_1;
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.SigningKeyService = void 0;
|
|
47
|
+
const common_1 = require("@nestjs/common");
|
|
48
|
+
const jwt = __importStar(require("jsonwebtoken"));
|
|
49
|
+
const secretCipher_1 = require("../../common/utils/secretCipher");
|
|
50
|
+
const secretHash_1 = require("../../common/utils/secretHash");
|
|
51
|
+
const ttlCache_1 = require("../../common/utils/ttlCache");
|
|
52
|
+
const core_config_1 = require("../../core.config");
|
|
53
|
+
const ESigningKeyPrefix_enum_1 = require("./enum/ESigningKeyPrefix.enum");
|
|
54
|
+
const ESigningKeyStatus_enum_1 = require("./enum/ESigningKeyStatus.enum");
|
|
55
|
+
const typeorm_1 = require("typeorm");
|
|
56
|
+
const exceptions_1 = require("../../utils/exceptions");
|
|
57
|
+
const signingKey_entity_1 = require("./signingKey.entity");
|
|
58
|
+
const signingKey_repository_1 = require("./signingKey.repository");
|
|
59
|
+
const KID_PATTERN = /^sk_(live|sandbox)_[0-9a-f]{12}$/;
|
|
60
|
+
const SUB_PATTERN = /^at_(live|sandbox)_[0-9a-f]{12}$/;
|
|
61
|
+
const MAX_TTL_SECONDS = 3600;
|
|
62
|
+
const CLOCK_SKEW_SECONDS = 60;
|
|
63
|
+
let SigningKeyService = SigningKeyService_1 = class SigningKeyService {
|
|
64
|
+
_signingKeyRepository;
|
|
65
|
+
_config;
|
|
66
|
+
_logger = new common_1.Logger(SigningKeyService_1.name);
|
|
67
|
+
_kidCache = new ttlCache_1.TtlCache(60_000);
|
|
68
|
+
constructor(_signingKeyRepository, _config) {
|
|
69
|
+
this._signingKeyRepository = _signingKeyRepository;
|
|
70
|
+
this._config = _config;
|
|
71
|
+
}
|
|
72
|
+
encryptionKey() {
|
|
73
|
+
const key = this._config.signingKeyEncryptionKey;
|
|
74
|
+
if (!key) {
|
|
75
|
+
throw new Error("SIGNING_KEY_ENCRYPTION_KEY is not configured; signing keys are unavailable");
|
|
76
|
+
}
|
|
77
|
+
return key;
|
|
78
|
+
}
|
|
79
|
+
generateSigningKey(environmentPrefix = ESigningKeyPrefix_enum_1.ESigningKeyPrefix.Live) {
|
|
80
|
+
const { keyId, secret, credential } = (0, secretHash_1.generateCredential)(environmentPrefix);
|
|
81
|
+
return { keyId, secret, signingKey: credential };
|
|
82
|
+
}
|
|
83
|
+
encryptForStorage(secret) {
|
|
84
|
+
return (0, secretCipher_1.encryptSecret)(secret, this.encryptionKey());
|
|
85
|
+
}
|
|
86
|
+
async verifyClientToken(token) {
|
|
87
|
+
const segments = token.split(".");
|
|
88
|
+
if (segments.length !== 3 || !token.startsWith("eyJ")) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const decoded = jwt.decode(token, { complete: true });
|
|
92
|
+
if (!decoded) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
const { alg, kid } = decoded.header;
|
|
96
|
+
if (alg !== "HS256") {
|
|
97
|
+
this._logger.warn("Client token rejected: disallowed algorithm", { alg });
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
if (!kid || !KID_PATTERN.test(kid)) {
|
|
101
|
+
this._logger.warn("Client token rejected: missing or malformed kid");
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const resolved = await this._resolveSigningKey(kid);
|
|
105
|
+
if (!resolved) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
let payload;
|
|
109
|
+
try {
|
|
110
|
+
payload = jwt.verify(token, resolved.secret, {
|
|
111
|
+
algorithms: ["HS256"],
|
|
112
|
+
clockTolerance: CLOCK_SKEW_SECONDS,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
this._logger.warn("Client token rejected: verification failed", {
|
|
117
|
+
kid,
|
|
118
|
+
reason: error instanceof Error ? error.message : "unknown",
|
|
119
|
+
});
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
if (typeof payload.exp !== "number") {
|
|
123
|
+
this._logger.warn("Client token rejected: missing exp claim", { kid });
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
127
|
+
if (payload.exp > nowSeconds + MAX_TTL_SECONDS + CLOCK_SKEW_SECONDS) {
|
|
128
|
+
this._logger.warn("Client token rejected: exp exceeds TTL cap", {
|
|
129
|
+
kid,
|
|
130
|
+
exp: payload.exp,
|
|
131
|
+
});
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
if (typeof payload.sub !== "string" || !SUB_PATTERN.test(payload.sub)) {
|
|
135
|
+
this._logger.warn("Client token rejected: missing or malformed sub", {
|
|
136
|
+
kid,
|
|
137
|
+
});
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
void this._signingKeyRepository
|
|
141
|
+
.updateLastUsed(resolved.entity.signingKeyId)
|
|
142
|
+
.catch((err) => this._logger.error("Failed to update lastUsedAt", err));
|
|
143
|
+
return {
|
|
144
|
+
signingKey: resolved.entity,
|
|
145
|
+
payload: {
|
|
146
|
+
sub: payload.sub,
|
|
147
|
+
exp: payload.exp,
|
|
148
|
+
iat: payload.iat,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
async _resolveSigningKey(kid) {
|
|
153
|
+
const cached = this._kidCache.get(kid);
|
|
154
|
+
if (cached) {
|
|
155
|
+
return cached;
|
|
156
|
+
}
|
|
157
|
+
const entity = await this._signingKeyRepository.findByKeyId(kid);
|
|
158
|
+
if (!entity) {
|
|
159
|
+
this._logger.warn("Client token rejected: unknown signing key", { kid });
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
if (entity.status !== ESigningKeyStatus_enum_1.ESigningKeyStatus.Active) {
|
|
163
|
+
this._logger.warn("Client token rejected: signing key not active", {
|
|
164
|
+
kid,
|
|
165
|
+
projectId: entity.projectId,
|
|
166
|
+
status: entity.status,
|
|
167
|
+
});
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
let secret;
|
|
171
|
+
try {
|
|
172
|
+
secret = (0, secretCipher_1.decryptSecret)(entity.secretEncrypted, this.encryptionKey());
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
this._logger.error("Failed to decrypt signing key secret", {
|
|
176
|
+
kid,
|
|
177
|
+
projectId: entity.projectId,
|
|
178
|
+
error: error instanceof Error ? error.message : "unknown",
|
|
179
|
+
});
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
const resolved = { entity, secret };
|
|
183
|
+
this._kidCache.set(kid, resolved);
|
|
184
|
+
return resolved;
|
|
185
|
+
}
|
|
186
|
+
invalidateCache(keyId) {
|
|
187
|
+
this._kidCache.delete(keyId);
|
|
188
|
+
}
|
|
189
|
+
_repo(manager) {
|
|
190
|
+
return manager
|
|
191
|
+
? manager.getRepository(signingKey_entity_1.SigningKeyEntity)
|
|
192
|
+
: this._signingKeyRepository;
|
|
193
|
+
}
|
|
194
|
+
findByIdAndProject(signingKeyId, projectId, manager) {
|
|
195
|
+
return this._repo(manager).findOne({
|
|
196
|
+
where: { signingKeyId, projectId, deletedAt: (0, typeorm_1.IsNull)() },
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
async createSigningKey(projectId, data, manager) {
|
|
200
|
+
const prefix = data.environment === "sandbox"
|
|
201
|
+
? ESigningKeyPrefix_enum_1.ESigningKeyPrefix.Sandbox
|
|
202
|
+
: ESigningKeyPrefix_enum_1.ESigningKeyPrefix.Live;
|
|
203
|
+
const generated = this.generateSigningKey(prefix);
|
|
204
|
+
const entity = new signingKey_entity_1.SigningKeyEntity();
|
|
205
|
+
entity.projectId = projectId;
|
|
206
|
+
entity.keyId = generated.keyId;
|
|
207
|
+
entity.secretEncrypted = this.encryptForStorage(generated.secret);
|
|
208
|
+
entity.name = data.name;
|
|
209
|
+
entity.status = ESigningKeyStatus_enum_1.ESigningKeyStatus.Active;
|
|
210
|
+
const saved = await this._repo(manager).save(entity);
|
|
211
|
+
return { entity: saved, signingKey: generated.signingKey };
|
|
212
|
+
}
|
|
213
|
+
updateLock(signingKeyId, projectId, manager) {
|
|
214
|
+
const alias = signingKey_entity_1.SigningKeyEntity.entityName();
|
|
215
|
+
return manager
|
|
216
|
+
.createQueryBuilder(signingKey_entity_1.SigningKeyEntity, alias)
|
|
217
|
+
.where(`${alias}.signingKeyId = :signingKeyId AND ${alias}.projectId = :projectId`, { signingKeyId, projectId })
|
|
218
|
+
.andWhere(`${alias}.deletedAt IS NULL`)
|
|
219
|
+
.setLock("pessimistic_read")
|
|
220
|
+
.getOne();
|
|
221
|
+
}
|
|
222
|
+
async patchSigningKey(signingKeyId, projectId, data, manager) {
|
|
223
|
+
const repo = this._repo(manager);
|
|
224
|
+
const entity = await repo.findOne({
|
|
225
|
+
where: { signingKeyId, projectId, deletedAt: (0, typeorm_1.IsNull)() },
|
|
226
|
+
});
|
|
227
|
+
if (!entity) {
|
|
228
|
+
throw (0, exceptions_1.badRequestException)(this._logger, {
|
|
229
|
+
errorMsgUser: "Could not update signing key",
|
|
230
|
+
errorMsgSystem: "SigningKeyService:patchSigningKey:not_found",
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
if (data.name !== undefined)
|
|
234
|
+
entity.name = data.name;
|
|
235
|
+
if (data.status !== undefined)
|
|
236
|
+
entity.status = data.status;
|
|
237
|
+
const saved = await repo.save(entity);
|
|
238
|
+
this.invalidateCache(entity.keyId);
|
|
239
|
+
return saved;
|
|
240
|
+
}
|
|
241
|
+
async removeSigningKey(signingKeyId, projectId, manager) {
|
|
242
|
+
const existing = await this.findByIdAndProject(signingKeyId, projectId, manager);
|
|
243
|
+
const result = await this._repo(manager).softDelete({
|
|
244
|
+
signingKeyId,
|
|
245
|
+
projectId,
|
|
246
|
+
deletedAt: (0, typeorm_1.IsNull)(),
|
|
247
|
+
});
|
|
248
|
+
if (existing) {
|
|
249
|
+
this.invalidateCache(existing.keyId);
|
|
250
|
+
}
|
|
251
|
+
return result;
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
exports.SigningKeyService = SigningKeyService;
|
|
255
|
+
exports.SigningKeyService = SigningKeyService = SigningKeyService_1 = __decorate([
|
|
256
|
+
(0, common_1.Injectable)(),
|
|
257
|
+
__metadata("design:paramtypes", [signingKey_repository_1.SigningKeyRepository,
|
|
258
|
+
core_config_1.CoreConfig])
|
|
259
|
+
], SigningKeyService);
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MigrationInterface } from "typeorm";
|
|
2
|
+
type MigrationClass = new (...args: never[]) => MigrationInterface;
|
|
3
|
+
import { AccessScopeEntity } from "./modules/accessScopeModule/accessScope.entity";
|
|
4
|
+
import { ActorAppAccessEntity } from "./modules/actorTokenModule/actorAppAccess.entity";
|
|
5
|
+
import { ActorTokenEntity } from "./modules/actorTokenModule/actorToken.entity";
|
|
6
|
+
import { ActorTokenStateEntity } from "./modules/actorTokenModule/actorTokenState.entity";
|
|
7
|
+
import { LobbyEntity } from "./modules/lobbyModule/lobby.entity";
|
|
8
|
+
import { LobbyRoomEntity } from "./modules/lobbyModule/lobbyRoom.entity";
|
|
9
|
+
import { PlatformAppEntity } from "./modules/platformAppModule/platformApp.entity";
|
|
10
|
+
import { ProjectEntity } from "./modules/projectModule/project.entity";
|
|
11
|
+
import { RoomActorAccessEntity } from "./modules/roomModule/roomActorAccess.entity";
|
|
12
|
+
import { RoomEntity } from "./modules/roomModule/room.entity";
|
|
13
|
+
import { SigningKeyEntity } from "./modules/signingKeyModule/signingKey.entity";
|
|
14
|
+
export declare const coreEntities: (typeof ProjectEntity | typeof AccessScopeEntity | typeof ActorTokenEntity | typeof PlatformAppEntity | typeof ActorAppAccessEntity | typeof ActorTokenStateEntity | typeof RoomEntity | typeof LobbyRoomEntity | typeof LobbyEntity | typeof RoomActorAccessEntity | typeof SigningKeyEntity)[];
|
|
15
|
+
export declare const coreInitialMigrations: MigrationClass[];
|
|
16
|
+
export declare const coreMigrations: MigrationClass[];
|
|
17
|
+
export declare const allCoreMigrations: MigrationClass[];
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,KAAK,cAAc,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,kBAAkB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAUhF,eAAO,MAAM,YAAY,kSAYxB,CAAC;AAUF,eAAO,MAAM,qBAAqB,EAAE,cAAc,EAEjD,CAAC;AAKF,eAAO,MAAM,cAAc,EAAE,cAAc,EAAO,CAAC;AAGnD,eAAO,MAAM,iBAAiB,kBAAgD,CAAC"}
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allCoreMigrations = exports.coreMigrations = exports.coreInitialMigrations = exports.coreEntities = void 0;
|
|
4
|
+
const _1786323955167_InitialSchema_1 = require("./migrations/1786323955167-InitialSchema");
|
|
5
|
+
const accessScope_entity_1 = require("./modules/accessScopeModule/accessScope.entity");
|
|
6
|
+
const actorAppAccess_entity_1 = require("./modules/actorTokenModule/actorAppAccess.entity");
|
|
7
|
+
const actorToken_entity_1 = require("./modules/actorTokenModule/actorToken.entity");
|
|
8
|
+
const actorTokenState_entity_1 = require("./modules/actorTokenModule/actorTokenState.entity");
|
|
9
|
+
const lobby_entity_1 = require("./modules/lobbyModule/lobby.entity");
|
|
10
|
+
const lobbyRoom_entity_1 = require("./modules/lobbyModule/lobbyRoom.entity");
|
|
11
|
+
const platformApp_entity_1 = require("./modules/platformAppModule/platformApp.entity");
|
|
12
|
+
const project_entity_1 = require("./modules/projectModule/project.entity");
|
|
13
|
+
const roomActorAccess_entity_1 = require("./modules/roomModule/roomActorAccess.entity");
|
|
14
|
+
const room_entity_1 = require("./modules/roomModule/room.entity");
|
|
15
|
+
const signingKey_entity_1 = require("./modules/signingKeyModule/signingKey.entity");
|
|
16
|
+
exports.coreEntities = [
|
|
17
|
+
project_entity_1.ProjectEntity,
|
|
18
|
+
platformApp_entity_1.PlatformAppEntity,
|
|
19
|
+
room_entity_1.RoomEntity,
|
|
20
|
+
roomActorAccess_entity_1.RoomActorAccessEntity,
|
|
21
|
+
lobby_entity_1.LobbyEntity,
|
|
22
|
+
lobbyRoom_entity_1.LobbyRoomEntity,
|
|
23
|
+
accessScope_entity_1.AccessScopeEntity,
|
|
24
|
+
actorToken_entity_1.ActorTokenEntity,
|
|
25
|
+
actorTokenState_entity_1.ActorTokenStateEntity,
|
|
26
|
+
actorAppAccess_entity_1.ActorAppAccessEntity,
|
|
27
|
+
signingKey_entity_1.SigningKeyEntity,
|
|
28
|
+
];
|
|
29
|
+
exports.coreInitialMigrations = [
|
|
30
|
+
_1786323955167_InitialSchema_1.InitialSchema1786323955167,
|
|
31
|
+
];
|
|
32
|
+
exports.coreMigrations = [];
|
|
33
|
+
exports.allCoreMigrations = [...exports.coreInitialMigrations, ...exports.coreMigrations];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientToken.d.ts","sourceRoot":"","sources":["../../src/utils/clientToken.ts"],"names":[],"mappings":"AAWA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type HttpException, Logger } from "@nestjs/common";
|
|
2
|
+
export interface IErrorMessagesOptions {
|
|
3
|
+
errorMsgUser?: string;
|
|
4
|
+
errorMsgSystem?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IException {
|
|
7
|
+
id: string;
|
|
8
|
+
message: string;
|
|
9
|
+
timestamp: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const badRequestException: (loggerInstance: Logger, errorMessagesOptions?: IErrorMessagesOptions) => HttpException;
|
|
12
|
+
export declare const unauthorizedException: (loggerInstance: Logger, errorMessagesOptions?: IErrorMessagesOptions) => HttpException;
|
|
13
|
+
export declare const forbiddenException: (loggerInstance: Logger, errorMessagesOptions?: IErrorMessagesOptions) => HttpException;
|
|
14
|
+
export declare const notFoundException: (loggerInstance: Logger, errorMessagesOptions?: IErrorMessagesOptions) => HttpException;
|
|
15
|
+
export declare const conflictException: (loggerInstance: Logger, errorMessagesOptions?: IErrorMessagesOptions) => HttpException;
|
|
16
|
+
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/utils/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAClB,MAAM,EAGP,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,qBAAqB;IAEpC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAqCD,eAAO,MAAM,mBAAmB,mBAlBZ,MAAM,yBACC,qBAAqB,KAC3C,aAoBJ,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAxBd,MAAM,yBACC,qBAAqB,KAC3C,aA0BJ,CAAC;AAEF,eAAO,MAAM,kBAAkB,mBA9BX,MAAM,yBACC,qBAAqB,KAC3C,aAgCJ,CAAC;AAEF,eAAO,MAAM,iBAAiB,mBApCV,MAAM,yBACC,qBAAqB,KAC3C,aAkCyE,CAAC;AAE/E,eAAO,MAAM,iBAAiB,mBAtCV,MAAM,yBACC,qBAAqB,KAC3C,aAoCwE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.conflictException = exports.notFoundException = exports.forbiddenException = exports.unauthorizedException = exports.badRequestException = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const guid_1 = require("./guid");
|
|
6
|
+
const build = (Exception, defaultMessage, level) => {
|
|
7
|
+
return (loggerInstance, errorMessagesOptions) => {
|
|
8
|
+
const exception = {
|
|
9
|
+
id: (0, guid_1.generateRandomUuid)(),
|
|
10
|
+
message: errorMessagesOptions?.errorMsgUser || defaultMessage,
|
|
11
|
+
timestamp: new Date().toISOString(),
|
|
12
|
+
};
|
|
13
|
+
loggerInstance[level]({
|
|
14
|
+
...exception,
|
|
15
|
+
errorMsgSystem: errorMessagesOptions?.errorMsgSystem,
|
|
16
|
+
});
|
|
17
|
+
return new Exception(exception);
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
exports.badRequestException = build(common_1.BadRequestException, "Bad request", "warn");
|
|
21
|
+
exports.unauthorizedException = build(common_1.UnauthorizedException, "Unauthorized", "warn");
|
|
22
|
+
exports.forbiddenException = build(common_1.ForbiddenException, "Forbidden", "warn");
|
|
23
|
+
exports.notFoundException = build(common_1.NotFoundException, "Not found", "warn");
|
|
24
|
+
exports.conflictException = build(common_1.ConflictException, "Conflict", "warn");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guid.d.ts","sourceRoot":"","sources":["../../src/utils/guid.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc,QAAO,MAEjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAErC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,OAE3C,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateUUID = exports.generateRandomUuid = exports.generateDBUuid = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const generateDBUuid = () => {
|
|
6
|
+
return (0, uuid_1.v7)();
|
|
7
|
+
};
|
|
8
|
+
exports.generateDBUuid = generateDBUuid;
|
|
9
|
+
const generateRandomUuid = () => {
|
|
10
|
+
return (0, uuid_1.v4)();
|
|
11
|
+
};
|
|
12
|
+
exports.generateRandomUuid = generateRandomUuid;
|
|
13
|
+
const validateUUID = (uuid) => {
|
|
14
|
+
return (0, uuid_1.validate)(uuid);
|
|
15
|
+
};
|
|
16
|
+
exports.validateUUID = validateUUID;
|
package/package.json
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nolag/core",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "The authorization domain of NoLag, as a library",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"private": false,
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/NoLagApp/nolag-core.git"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc -p tsconfig.build.json",
|
|
13
|
+
"clean": "rm -rf dist *.tsbuildinfo",
|
|
14
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
15
|
+
"lint": "eslint \"{src,test}/**/*.ts\" --fix",
|
|
16
|
+
"test": "jest",
|
|
17
|
+
"test:watch": "jest --watch",
|
|
18
|
+
"test:cov": "jest --coverage",
|
|
19
|
+
"test:e2e": "jest --config ./test/jest-e2e.json",
|
|
20
|
+
"test:stack": "jest --config ./test/jest-stack.json",
|
|
21
|
+
"test:package": "bash scripts/test-package.sh",
|
|
22
|
+
"migration:create": "typeorm-ts-node-commonjs migration:create",
|
|
23
|
+
"migration:generate": "typeorm-ts-node-commonjs migration:generate -d tools/data-source.ts",
|
|
24
|
+
"migration:run": "typeorm-ts-node-commonjs migration:run -d tools/data-source.ts",
|
|
25
|
+
"migration:revert": "typeorm-ts-node-commonjs migration:revert -d tools/data-source.ts",
|
|
26
|
+
"migration:show": "typeorm-ts-node-commonjs migration:show -d tools/data-source.ts",
|
|
27
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
28
|
+
},
|
|
29
|
+
"overridesNote": "js-yaml: @nestjs/swagger pins exactly 5.2.1, which carries GHSA-pm4m-ph32-ghv5 (DoS via flow collections). It only parses the OpenAPI document we author ourselves, so the practical risk is nil, but a patch bump keeps `npm audit` clean for anyone cloning this. Drop the override once @nestjs/swagger ships a fixed pin.",
|
|
30
|
+
"overrides": {
|
|
31
|
+
"js-yaml": "^5.2.3"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"jsonwebtoken": "^9.0.2",
|
|
35
|
+
"uuid": "^13.0.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@eslint/eslintrc": "^3.2.0",
|
|
39
|
+
"@eslint/js": "^9.18.0",
|
|
40
|
+
"@nestjs/cli": "^11.0.0",
|
|
41
|
+
"@nestjs/common": "^11.0.0",
|
|
42
|
+
"@nestjs/config": "^4.0.4",
|
|
43
|
+
"@nestjs/core": "^11.0.0",
|
|
44
|
+
"@nestjs/platform-express": "^11.0.1",
|
|
45
|
+
"@nestjs/schematics": "^11.0.0",
|
|
46
|
+
"@nestjs/swagger": "^11.0.0",
|
|
47
|
+
"@nestjs/testing": "^11.0.1",
|
|
48
|
+
"@nestjs/typeorm": "^11.0.0",
|
|
49
|
+
"@nolag/js-sdk": "^1.11.0",
|
|
50
|
+
"@types/express": "^5.0.0",
|
|
51
|
+
"@types/jest": "^30.0.0",
|
|
52
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
53
|
+
"@types/node": "^22.10.7",
|
|
54
|
+
"@types/pg": "^8.11.10",
|
|
55
|
+
"@types/supertest": "^6.0.2",
|
|
56
|
+
"@types/uuid": "^11.0.0",
|
|
57
|
+
"class-transformer": "^0.5.1",
|
|
58
|
+
"class-validator": "^0.14.1",
|
|
59
|
+
"dotenv": "^16.4.7",
|
|
60
|
+
"eslint": "^9.18.0",
|
|
61
|
+
"eslint-config-prettier": "^10.0.1",
|
|
62
|
+
"eslint-plugin-prettier": "^5.2.2",
|
|
63
|
+
"globals": "^16.0.0",
|
|
64
|
+
"jest": "^30.0.0",
|
|
65
|
+
"pg": "^8.13.1",
|
|
66
|
+
"prettier": "^3.4.2",
|
|
67
|
+
"reflect-metadata": "^0.2.0",
|
|
68
|
+
"rxjs": "^7.8.0",
|
|
69
|
+
"supertest": "^7.0.0",
|
|
70
|
+
"ts-jest": "^29.2.5",
|
|
71
|
+
"ts-loader": "^9.5.2",
|
|
72
|
+
"ts-node": "^10.9.2",
|
|
73
|
+
"tsconfig-paths": "^4.2.0",
|
|
74
|
+
"typeorm": "^0.3.21",
|
|
75
|
+
"typescript": "^5.7.3",
|
|
76
|
+
"typescript-eslint": "^8.20.0"
|
|
77
|
+
},
|
|
78
|
+
"jest": {
|
|
79
|
+
"moduleFileExtensions": [
|
|
80
|
+
"js",
|
|
81
|
+
"json",
|
|
82
|
+
"ts"
|
|
83
|
+
],
|
|
84
|
+
"rootDir": "src",
|
|
85
|
+
"testRegex": ".*\\.spec\\.ts$",
|
|
86
|
+
"transform": {
|
|
87
|
+
"^.+\\.(t|j)s$": "ts-jest"
|
|
88
|
+
},
|
|
89
|
+
"transformIgnorePatterns": [
|
|
90
|
+
"/node_modules/(?!(uuid)/)"
|
|
91
|
+
],
|
|
92
|
+
"collectCoverageFrom": [
|
|
93
|
+
"**/*.(t|j)s"
|
|
94
|
+
],
|
|
95
|
+
"coverageDirectory": "../coverage",
|
|
96
|
+
"testEnvironment": "node"
|
|
97
|
+
},
|
|
98
|
+
"main": "dist/index.js",
|
|
99
|
+
"types": "dist/index.d.ts",
|
|
100
|
+
"files": [
|
|
101
|
+
"dist",
|
|
102
|
+
"README.md",
|
|
103
|
+
"LICENSE",
|
|
104
|
+
"NOTICE"
|
|
105
|
+
],
|
|
106
|
+
"exports": {
|
|
107
|
+
".": {
|
|
108
|
+
"types": "./dist/index.d.ts",
|
|
109
|
+
"default": "./dist/index.js"
|
|
110
|
+
},
|
|
111
|
+
"./package.json": "./package.json"
|
|
112
|
+
},
|
|
113
|
+
"publishConfig": {
|
|
114
|
+
"access": "public"
|
|
115
|
+
},
|
|
116
|
+
"peerDependencies": {
|
|
117
|
+
"@nestjs/common": "^11.0.0",
|
|
118
|
+
"@nestjs/core": "^11.0.0",
|
|
119
|
+
"@nestjs/swagger": "^11.0.0",
|
|
120
|
+
"@nestjs/typeorm": "^11.0.0",
|
|
121
|
+
"class-transformer": "^0.5.1",
|
|
122
|
+
"class-validator": "^0.14.1",
|
|
123
|
+
"reflect-metadata": "^0.2.0",
|
|
124
|
+
"rxjs": "^7.8.0",
|
|
125
|
+
"typeorm": "^0.3.21"
|
|
126
|
+
}
|
|
127
|
+
}
|