@ruiapp/rapid-core 0.1.63 → 0.1.66
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/helpers/entityHelpers.d.ts +3 -1
- package/dist/{dataAccess → helpers}/metaHelper.d.ts +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +879 -154
- package/dist/plugins/setting/SettingPlugin.d.ts +21 -0
- package/dist/plugins/setting/SettingPluginTypes.d.ts +33 -0
- package/dist/plugins/setting/SettingService.d.ts +22 -0
- package/dist/plugins/setting/actionHandlers/getSystemSettingValues.d.ts +7 -0
- package/dist/plugins/setting/actionHandlers/getUserSettingValues.d.ts +7 -0
- package/dist/plugins/setting/actionHandlers/index.d.ts +4 -0
- package/dist/plugins/setting/models/SystemSettingGroupSetting.d.ts +3 -0
- package/dist/plugins/setting/models/SystemSettingItem.d.ts +3 -0
- package/dist/plugins/setting/models/SystemSettingItemSetting.d.ts +3 -0
- package/dist/plugins/setting/models/UserSettingGroupSetting.d.ts +3 -0
- package/dist/plugins/setting/models/UserSettingItem.d.ts +3 -0
- package/dist/plugins/setting/models/UserSettingItemSetting.d.ts +3 -0
- package/dist/plugins/setting/models/index.d.ts +2 -0
- package/dist/plugins/setting/routes/getSystemSettingValues.d.ts +12 -0
- package/dist/plugins/setting/routes/getUserSettingValues.d.ts +12 -0
- package/dist/plugins/setting/routes/index.d.ts +12 -0
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
- package/rollup.config.js +16 -16
- package/src/bootstrapApplicationConfig.ts +552 -545
- package/src/core/actionHandler.ts +22 -22
- package/src/core/eventManager.ts +20 -20
- package/src/core/facility.ts +7 -7
- package/src/core/http/formDataParser.ts +89 -89
- package/src/core/http-types.ts +4 -4
- package/src/core/pluginManager.ts +175 -175
- package/src/core/providers/runtimeProvider.ts +5 -5
- package/src/core/request.ts +86 -86
- package/src/core/response.ts +76 -76
- package/src/core/routeContext.ts +43 -43
- package/src/core/routesBuilder.ts +88 -88
- package/src/core/server.ts +16 -1
- package/src/dataAccess/dataAccessTypes.ts +109 -109
- package/src/dataAccess/dataAccessor.ts +137 -137
- package/src/dataAccess/entityManager.ts +1298 -1292
- package/src/dataAccess/entityMapper.ts +4 -5
- package/src/dataAccess/propertyMapper.ts +27 -27
- package/src/deno-std/assert/assert.ts +9 -9
- package/src/deno-std/assert/assertion_error.ts +7 -7
- package/src/deno-std/datetime/to_imf.ts +32 -32
- package/src/deno-std/encoding/base64.ts +141 -141
- package/src/deno-std/http/cookie.ts +8 -1
- package/src/facilities/log/LogFacility.ts +35 -35
- package/src/helpers/entityHelpers.ts +76 -21
- package/src/{dataAccess → helpers}/filterHelper.ts +3 -1
- package/src/helpers/inputHelper.ts +11 -11
- package/src/{dataAccess → helpers}/metaHelper.ts +15 -6
- package/src/helpers/runCollectionEntityActionHandler.ts +6 -1
- package/src/index.ts +44 -41
- package/src/plugins/auth/AuthPlugin.ts +7 -1
- package/src/plugins/auth/actionHandlers/changePassword.ts +54 -54
- package/src/plugins/auth/actionHandlers/createSession.ts +63 -63
- package/src/plugins/auth/actionHandlers/deleteSession.ts +18 -18
- package/src/plugins/auth/actionHandlers/getMyProfile.ts +35 -35
- package/src/plugins/auth/actionHandlers/index.ts +8 -8
- package/src/plugins/auth/actionHandlers/resetPassword.ts +38 -38
- package/src/plugins/auth/models/AccessToken.ts +56 -56
- package/src/plugins/auth/models/index.ts +3 -3
- package/src/plugins/auth/routes/changePassword.ts +15 -15
- package/src/plugins/auth/routes/getMyProfile.ts +15 -15
- package/src/plugins/auth/routes/index.ts +7 -7
- package/src/plugins/auth/routes/resetPassword.ts +15 -15
- package/src/plugins/auth/routes/signin.ts +15 -15
- package/src/plugins/auth/routes/signout.ts +15 -15
- package/src/plugins/cronJob/CronJobPlugin.ts +7 -1
- package/src/plugins/cronJob/CronJobPluginTypes.ts +49 -49
- package/src/plugins/cronJob/actionHandlers/index.ts +4 -4
- package/src/plugins/cronJob/actionHandlers/runCronJob.ts +29 -29
- package/src/plugins/cronJob/routes/index.ts +3 -3
- package/src/plugins/cronJob/routes/runCronJob.ts +15 -15
- package/src/plugins/dataManage/DataManagePlugin.ts +7 -1
- package/src/plugins/dataManage/actionHandlers/addEntityRelations.ts +20 -20
- package/src/plugins/dataManage/actionHandlers/countCollectionEntities.ts +15 -15
- package/src/plugins/dataManage/actionHandlers/createCollectionEntitiesBatch.ts +42 -42
- package/src/plugins/dataManage/actionHandlers/createCollectionEntity.ts +24 -24
- package/src/plugins/dataManage/actionHandlers/deleteCollectionEntityById.ts +7 -4
- package/src/plugins/dataManage/actionHandlers/findCollectionEntities.ts +26 -26
- package/src/plugins/dataManage/actionHandlers/findCollectionEntityById.ts +21 -21
- package/src/plugins/dataManage/actionHandlers/queryDatabase.ts +22 -22
- package/src/plugins/dataManage/actionHandlers/removeEntityRelations.ts +20 -20
- package/src/plugins/dataManage/actionHandlers/updateCollectionEntityById.ts +35 -35
- package/src/plugins/entityAccessControl/EntityAccessControlPlugin.ts +146 -146
- package/src/plugins/fileManage/FileManagePlugin.ts +7 -1
- package/src/plugins/fileManage/actionHandlers/downloadDocument.ts +36 -36
- package/src/plugins/fileManage/actionHandlers/downloadFile.ts +28 -28
- package/src/plugins/fileManage/actionHandlers/uploadFile.ts +33 -33
- package/src/plugins/fileManage/routes/downloadDocument.ts +15 -15
- package/src/plugins/fileManage/routes/downloadFile.ts +15 -15
- package/src/plugins/fileManage/routes/index.ts +5 -5
- package/src/plugins/fileManage/routes/uploadFile.ts +15 -15
- package/src/plugins/metaManage/MetaManagePlugin.ts +37 -9
- package/src/plugins/metaManage/actionHandlers/getMetaModelDetail.ts +10 -10
- package/src/plugins/metaManage/actionHandlers/listMetaModels.ts +9 -9
- package/src/plugins/metaManage/actionHandlers/listMetaRoutes.ts +9 -9
- package/src/plugins/routeManage/RouteManagePlugin.ts +7 -1
- package/src/plugins/routeManage/actionHandlers/httpProxy.ts +13 -13
- package/src/plugins/sequence/SequencePlugin.ts +8 -2
- package/src/plugins/sequence/SequencePluginTypes.ts +9 -1
- package/src/plugins/sequence/SequenceService.ts +81 -81
- package/src/plugins/sequence/actionHandlers/generateSn.ts +32 -32
- package/src/plugins/sequence/actionHandlers/index.ts +4 -4
- package/src/plugins/sequence/models/SequenceAutoIncrementRecord.ts +49 -49
- package/src/plugins/sequence/models/SequenceRule.ts +42 -42
- package/src/plugins/sequence/models/index.ts +4 -4
- package/src/plugins/sequence/routes/generateSn.ts +15 -15
- package/src/plugins/sequence/routes/index.ts +3 -3
- package/src/plugins/sequence/segment-utility.ts +11 -11
- package/src/plugins/sequence/segments/autoIncrement.ts +6 -1
- package/src/plugins/sequence/segments/dayOfMonth.ts +6 -1
- package/src/plugins/sequence/segments/index.ts +9 -9
- package/src/plugins/sequence/segments/literal.ts +6 -1
- package/src/plugins/sequence/segments/month.ts +6 -1
- package/src/plugins/sequence/segments/parameter.ts +6 -1
- package/src/plugins/sequence/segments/year.ts +6 -1
- package/src/plugins/serverOperation/ServerOperationPlugin.ts +91 -91
- package/src/plugins/serverOperation/ServerOperationPluginTypes.ts +15 -15
- package/src/plugins/serverOperation/actionHandlers/index.ts +4 -4
- package/src/plugins/serverOperation/actionHandlers/runServerOperation.ts +15 -15
- package/src/plugins/setting/SettingPlugin.ts +68 -0
- package/src/plugins/setting/SettingPluginTypes.ts +37 -0
- package/src/plugins/setting/SettingService.ts +206 -0
- package/src/plugins/setting/actionHandlers/getSystemSettingValues.ts +30 -0
- package/src/plugins/setting/actionHandlers/getUserSettingValues.ts +38 -0
- package/src/plugins/setting/actionHandlers/index.ts +5 -0
- package/src/plugins/setting/models/SystemSettingGroupSetting.ts +56 -0
- package/src/plugins/setting/models/SystemSettingItem.ts +42 -0
- package/src/plugins/setting/models/SystemSettingItemSetting.ts +72 -0
- package/src/plugins/setting/models/UserSettingGroupSetting.ts +56 -0
- package/src/plugins/setting/models/UserSettingItem.ts +49 -0
- package/src/plugins/setting/models/UserSettingItemSetting.ts +72 -0
- package/src/plugins/setting/models/index.ts +8 -0
- package/src/plugins/setting/routes/getSystemSettingValues.ts +15 -0
- package/src/plugins/setting/routes/getUserSettingValues.ts +15 -0
- package/src/plugins/setting/routes/index.ts +4 -0
- package/src/plugins/stateMachine/StateMachinePlugin.ts +8 -2
- package/src/plugins/stateMachine/StateMachinePluginTypes.ts +9 -1
- package/src/plugins/stateMachine/actionHandlers/index.ts +4 -4
- package/src/plugins/stateMachine/actionHandlers/sendStateMachineEvent.ts +51 -51
- package/src/plugins/stateMachine/models/StateMachine.ts +42 -42
- package/src/plugins/stateMachine/models/index.ts +3 -3
- package/src/plugins/stateMachine/routes/index.ts +3 -3
- package/src/plugins/stateMachine/routes/sendStateMachineEvent.ts +15 -15
- package/src/plugins/stateMachine/stateMachineHelper.ts +36 -36
- package/src/plugins/webhooks/WebhooksPlugin.ts +13 -2
- package/src/plugins/webhooks/pluginConfig.ts +74 -74
- package/src/polyfill.ts +5 -5
- package/src/proxy/mod.ts +38 -38
- package/src/proxy/types.ts +21 -21
- package/src/queryBuilder/index.ts +1 -1
- package/src/queryBuilder/queryBuilder.ts +473 -473
- package/src/server.ts +23 -3
- package/src/types.ts +593 -589
- package/src/utilities/accessControlUtility.ts +33 -33
- package/src/utilities/errorUtility.ts +4 -6
- package/src/utilities/fsUtility.ts +61 -61
- package/src/utilities/httpUtility.ts +19 -19
- package/src/utilities/jwtUtility.ts +26 -26
- package/src/utilities/typeUtility.ts +11 -11
- package/tsconfig.json +19 -19
- package/dist/utilities/rapidUtility.d.ts +0 -2
- package/src/utilities/rapidUtility.ts +0 -5
- /package/dist/{dataAccess → helpers}/filterHelper.d.ts +0 -0
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { find } from "lodash";
|
|
2
|
-
|
|
3
|
-
export type PermissionCheckPolicy = {
|
|
4
|
-
any?: string[];
|
|
5
|
-
all?: string[];
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export function isAccessAllowed(policy: PermissionCheckPolicy, allowedActions: string[]): boolean {
|
|
9
|
-
let isAnyCheckPassed = true;
|
|
10
|
-
let isAllCheckPassed = true;
|
|
11
|
-
|
|
12
|
-
if (policy.any) {
|
|
13
|
-
isAnyCheckPassed = false;
|
|
14
|
-
for (const action of policy.any) {
|
|
15
|
-
if (find(allowedActions, (item) => item === action) != null) {
|
|
16
|
-
isAnyCheckPassed = true;
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (policy.all) {
|
|
23
|
-
isAllCheckPassed = true;
|
|
24
|
-
for (const action of policy.all) {
|
|
25
|
-
if (find(allowedActions, (item) => item === action) == null) {
|
|
26
|
-
isAnyCheckPassed = false;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return isAnyCheckPassed && isAllCheckPassed;
|
|
33
|
-
}
|
|
1
|
+
import { find } from "lodash";
|
|
2
|
+
|
|
3
|
+
export type PermissionCheckPolicy = {
|
|
4
|
+
any?: string[];
|
|
5
|
+
all?: string[];
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export function isAccessAllowed(policy: PermissionCheckPolicy, allowedActions: string[]): boolean {
|
|
9
|
+
let isAnyCheckPassed = true;
|
|
10
|
+
let isAllCheckPassed = true;
|
|
11
|
+
|
|
12
|
+
if (policy.any) {
|
|
13
|
+
isAnyCheckPassed = false;
|
|
14
|
+
for (const action of policy.any) {
|
|
15
|
+
if (find(allowedActions, (item) => item === action) != null) {
|
|
16
|
+
isAnyCheckPassed = true;
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (policy.all) {
|
|
23
|
+
isAllCheckPassed = true;
|
|
24
|
+
for (const action of policy.all) {
|
|
25
|
+
if (find(allowedActions, (item) => item === action) == null) {
|
|
26
|
+
isAnyCheckPassed = false;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return isAnyCheckPassed && isAllCheckPassed;
|
|
33
|
+
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
export function newError(type: string, message?: string, cause?: any) {
|
|
2
|
-
const error = new Error(
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
);
|
|
2
|
+
const error = new Error(message, {
|
|
3
|
+
cause,
|
|
4
|
+
});
|
|
7
5
|
error.name = type;
|
|
8
6
|
return error;
|
|
9
7
|
}
|
|
@@ -14,4 +12,4 @@ export function newDatabaseError(message?: string, cause?: any) {
|
|
|
14
12
|
|
|
15
13
|
export function newEntityOperationError(message?: string, cause?: any) {
|
|
16
14
|
return newError("EntityOperationError", message, cause);
|
|
17
|
-
}
|
|
15
|
+
}
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
|
|
3
|
-
export async function readFile(path: string): Promise<Buffer> {
|
|
4
|
-
return new Promise((resolve, reject) => {
|
|
5
|
-
fs.readFile(path, null, (err, data) => {
|
|
6
|
-
if (err) {
|
|
7
|
-
reject(err);
|
|
8
|
-
} else {
|
|
9
|
-
resolve(data);
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export async function copyFile(fromPath: string, toPath: string): Promise<void> {
|
|
16
|
-
return new Promise((resolve, reject) => {
|
|
17
|
-
fs.copyFile(fromPath, toPath, (err) => {
|
|
18
|
-
if (err) {
|
|
19
|
-
reject(err);
|
|
20
|
-
} else {
|
|
21
|
-
resolve();
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export async function removeFile(path: string): Promise<void> {
|
|
28
|
-
return new Promise((resolve, reject) => {
|
|
29
|
-
fs.rm(path, (err) => {
|
|
30
|
-
if (err) {
|
|
31
|
-
reject(err);
|
|
32
|
-
} else {
|
|
33
|
-
resolve();
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export async function moveFile(fromPath: string, toPath: string): Promise<void> {
|
|
40
|
-
return new Promise((resolve, reject) => {
|
|
41
|
-
fs.rename(fromPath, toPath, (err) => {
|
|
42
|
-
if (err) {
|
|
43
|
-
reject(err);
|
|
44
|
-
} else {
|
|
45
|
-
resolve();
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export async function appendFile(path: string, data: ArrayBuffer): Promise<void> {
|
|
52
|
-
return new Promise((resolve, reject) => {
|
|
53
|
-
fs.appendFile(path, Buffer.from(data), (err) => {
|
|
54
|
-
if (err) {
|
|
55
|
-
reject(err);
|
|
56
|
-
} else {
|
|
57
|
-
resolve();
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
|
|
3
|
+
export async function readFile(path: string): Promise<Buffer> {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
fs.readFile(path, null, (err, data) => {
|
|
6
|
+
if (err) {
|
|
7
|
+
reject(err);
|
|
8
|
+
} else {
|
|
9
|
+
resolve(data);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function copyFile(fromPath: string, toPath: string): Promise<void> {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
fs.copyFile(fromPath, toPath, (err) => {
|
|
18
|
+
if (err) {
|
|
19
|
+
reject(err);
|
|
20
|
+
} else {
|
|
21
|
+
resolve();
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export async function removeFile(path: string): Promise<void> {
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
fs.rm(path, (err) => {
|
|
30
|
+
if (err) {
|
|
31
|
+
reject(err);
|
|
32
|
+
} else {
|
|
33
|
+
resolve();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export async function moveFile(fromPath: string, toPath: string): Promise<void> {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
fs.rename(fromPath, toPath, (err) => {
|
|
42
|
+
if (err) {
|
|
43
|
+
reject(err);
|
|
44
|
+
} else {
|
|
45
|
+
resolve();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export async function appendFile(path: string, data: ArrayBuffer): Promise<void> {
|
|
52
|
+
return new Promise((resolve, reject) => {
|
|
53
|
+
fs.appendFile(path, Buffer.from(data), (err) => {
|
|
54
|
+
if (err) {
|
|
55
|
+
reject(err);
|
|
56
|
+
} else {
|
|
57
|
+
resolve();
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export async function fetchWithTimeout(url: string, reqInit: RequestInit, timeout?: number): Promise<Response> {
|
|
2
|
-
if (!timeout) {
|
|
3
|
-
return await fetch(url, reqInit);
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
let timer: any;
|
|
7
|
-
const [res] = await Promise.all([
|
|
8
|
-
fetch(url, reqInit).then((res) => {
|
|
9
|
-
clearTimeout(timer);
|
|
10
|
-
return res;
|
|
11
|
-
}),
|
|
12
|
-
new Promise((_, reject) => {
|
|
13
|
-
timer = setTimeout(() => {
|
|
14
|
-
reject(new Error(`Request to "${url}" was timeout.`));
|
|
15
|
-
}, timeout);
|
|
16
|
-
}),
|
|
17
|
-
]);
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
1
|
+
export async function fetchWithTimeout(url: string, reqInit: RequestInit, timeout?: number): Promise<Response> {
|
|
2
|
+
if (!timeout) {
|
|
3
|
+
return await fetch(url, reqInit);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
let timer: any;
|
|
7
|
+
const [res] = await Promise.all([
|
|
8
|
+
fetch(url, reqInit).then((res) => {
|
|
9
|
+
clearTimeout(timer);
|
|
10
|
+
return res;
|
|
11
|
+
}),
|
|
12
|
+
new Promise((_, reject) => {
|
|
13
|
+
timer = setTimeout(() => {
|
|
14
|
+
reject(new Error(`Request to "${url}" was timeout.`));
|
|
15
|
+
}, timeout);
|
|
16
|
+
}),
|
|
17
|
+
]);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { sign, verify, decode, Secret, JwtPayload } from "jsonwebtoken";
|
|
2
|
-
import { encode as base64Encode } from "~/deno-std/encoding/base64";
|
|
3
|
-
import crypto from "crypto";
|
|
4
|
-
|
|
5
|
-
export function createJwt(payload: Record<string, any>, secret: Secret) {
|
|
6
|
-
return sign(payload, secret, {
|
|
7
|
-
algorithm: "HS512",
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function verifyJwt(token: string, secret: Secret): JwtPayload {
|
|
12
|
-
return verify(token, secret, {
|
|
13
|
-
algorithms: ["HS512"],
|
|
14
|
-
}) as JwtPayload;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function decodeJwt(token: string) {
|
|
18
|
-
return decode(token, { complete: true });
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export async function generateJwtSecretKey() {
|
|
22
|
-
const key = await crypto.subtle.generateKey({ name: "HMAC", hash: "SHA-512" }, true, ["sign", "verify"]);
|
|
23
|
-
|
|
24
|
-
const exportedKey = await crypto.subtle.exportKey("raw", key);
|
|
25
|
-
return base64Encode(exportedKey);
|
|
26
|
-
}
|
|
1
|
+
import { sign, verify, decode, Secret, JwtPayload } from "jsonwebtoken";
|
|
2
|
+
import { encode as base64Encode } from "~/deno-std/encoding/base64";
|
|
3
|
+
import crypto from "crypto";
|
|
4
|
+
|
|
5
|
+
export function createJwt(payload: Record<string, any>, secret: Secret) {
|
|
6
|
+
return sign(payload, secret, {
|
|
7
|
+
algorithm: "HS512",
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function verifyJwt(token: string, secret: Secret): JwtPayload {
|
|
12
|
+
return verify(token, secret, {
|
|
13
|
+
algorithms: ["HS512"],
|
|
14
|
+
}) as JwtPayload;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function decodeJwt(token: string) {
|
|
18
|
+
return decode(token, { complete: true });
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function generateJwtSecretKey() {
|
|
22
|
+
const key = await crypto.subtle.generateKey({ name: "HMAC", hash: "SHA-512" }, true, ["sign", "verify"]);
|
|
23
|
+
|
|
24
|
+
const exportedKey = await crypto.subtle.exportKey("raw", key);
|
|
25
|
+
return base64Encode(exportedKey);
|
|
26
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export function isUndefined(val: any) {
|
|
2
|
-
return typeof val === "undefined";
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export function isNull(val: any) {
|
|
6
|
-
return val === null;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function isNullOrUndefined(val: any) {
|
|
10
|
-
return isNull(val) || isUndefined(val);
|
|
11
|
-
}
|
|
1
|
+
export function isUndefined(val: any) {
|
|
2
|
+
return typeof val === "undefined";
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function isNull(val: any) {
|
|
6
|
+
return val === null;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isNullOrUndefined(val: any) {
|
|
10
|
+
return isNull(val) || isUndefined(val);
|
|
11
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ESNext",
|
|
4
|
-
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
|
5
|
-
"esModuleInterop": true,
|
|
6
|
-
"jsx": "react-jsx",
|
|
7
|
-
"module": "ESNext",
|
|
8
|
-
"moduleResolution": "Node",
|
|
9
|
-
"allowJs": true,
|
|
10
|
-
"sourceMap": true,
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"outDir": "./dist",
|
|
13
|
-
"paths": {
|
|
14
|
-
"~/*": ["./src/*"]
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"exclude": ["src/**/*.spec.ts", "src/**/*.spec.tsx", "node_modules"],
|
|
18
|
-
"include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"]
|
|
19
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ESNext",
|
|
4
|
+
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
|
5
|
+
"esModuleInterop": true,
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"module": "ESNext",
|
|
8
|
+
"moduleResolution": "Node",
|
|
9
|
+
"allowJs": true,
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"outDir": "./dist",
|
|
13
|
+
"paths": {
|
|
14
|
+
"~/*": ["./src/*"]
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"exclude": ["src/**/*.spec.ts", "src/**/*.spec.tsx", "node_modules"],
|
|
18
|
+
"include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"]
|
|
19
|
+
}
|
|
File without changes
|