@ruiapp/rapid-core 0.8.20 → 0.9.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.
Files changed (191) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/core/request.d.ts +1 -0
  3. package/dist/core/server.d.ts +2 -1
  4. package/dist/index.js +746 -741
  5. package/dist/server.d.ts +2 -1
  6. package/package.json +1 -1
  7. package/rollup.config.js +16 -16
  8. package/src/bootstrapApplicationConfig.ts +782 -782
  9. package/src/core/actionHandler.ts +23 -23
  10. package/src/core/eventManager.ts +20 -20
  11. package/src/core/facility.ts +7 -7
  12. package/src/core/http/formDataParser.ts +89 -89
  13. package/src/core/http-types.ts +4 -4
  14. package/src/core/pluginManager.ts +184 -184
  15. package/src/core/providers/runtimeProvider.ts +5 -5
  16. package/src/core/request.ts +96 -95
  17. package/src/core/response.ts +79 -79
  18. package/src/core/routeContext.ts +127 -127
  19. package/src/core/routesBuilder.ts +90 -90
  20. package/src/core/server.ts +152 -151
  21. package/src/dataAccess/columnTypeMapper.ts +22 -22
  22. package/src/dataAccess/dataAccessTypes.ts +165 -165
  23. package/src/dataAccess/dataAccessor.ts +135 -135
  24. package/src/dataAccess/entityManager.ts +1932 -1932
  25. package/src/dataAccess/entityMapper.ts +111 -111
  26. package/src/dataAccess/entityValidator.ts +33 -26
  27. package/src/dataAccess/propertyMapper.ts +28 -28
  28. package/src/deno-std/assert/assert.ts +9 -9
  29. package/src/deno-std/assert/assertion_error.ts +7 -7
  30. package/src/deno-std/datetime/to_imf.ts +32 -32
  31. package/src/deno-std/encoding/base64.ts +141 -141
  32. package/src/deno-std/http/cookie.ts +372 -372
  33. package/src/facilities/cache/CacheFacilityTypes.ts +29 -29
  34. package/src/facilities/cache/CacheFactory.ts +31 -31
  35. package/src/facilities/cache/MemoryCache.ts +58 -58
  36. package/src/facilities/cache/MemoryCacheProvider.ts +15 -15
  37. package/src/facilities/log/LogFacility.ts +35 -35
  38. package/src/helpers/entityHelpers.ts +76 -76
  39. package/src/helpers/filterHelper.ts +148 -148
  40. package/src/helpers/inputHelper.ts +11 -11
  41. package/src/helpers/licenseHelper.ts +29 -29
  42. package/src/helpers/metaHelper.ts +111 -111
  43. package/src/helpers/runCollectionEntityActionHandler.ts +58 -58
  44. package/src/index.ts +76 -76
  45. package/src/plugins/auth/AuthPlugin.ts +93 -93
  46. package/src/plugins/auth/actionHandlers/changePassword.ts +61 -61
  47. package/src/plugins/auth/actionHandlers/createSession.ts +67 -67
  48. package/src/plugins/auth/actionHandlers/deleteSession.ts +18 -18
  49. package/src/plugins/auth/actionHandlers/getMyProfile.ts +35 -35
  50. package/src/plugins/auth/actionHandlers/index.ts +8 -8
  51. package/src/plugins/auth/actionHandlers/resetPassword.ts +45 -45
  52. package/src/plugins/auth/models/AccessToken.ts +56 -56
  53. package/src/plugins/auth/models/index.ts +3 -3
  54. package/src/plugins/auth/routes/changePassword.ts +15 -15
  55. package/src/plugins/auth/routes/getMyProfile.ts +15 -15
  56. package/src/plugins/auth/routes/index.ts +7 -7
  57. package/src/plugins/auth/routes/resetPassword.ts +15 -15
  58. package/src/plugins/auth/routes/signin.ts +15 -15
  59. package/src/plugins/auth/routes/signout.ts +15 -15
  60. package/src/plugins/auth/services/AuthService.ts +39 -39
  61. package/src/plugins/cronJob/CronJobPlugin.ts +104 -104
  62. package/src/plugins/cronJob/CronJobPluginTypes.ts +44 -44
  63. package/src/plugins/cronJob/actionHandlers/index.ts +4 -4
  64. package/src/plugins/cronJob/actionHandlers/runCronJob.ts +32 -32
  65. package/src/plugins/cronJob/entityWatchers/cronJobEntityWatchers.ts +24 -24
  66. package/src/plugins/cronJob/entityWatchers/index.ts +4 -4
  67. package/src/plugins/cronJob/models/CronJob.ts +129 -129
  68. package/src/plugins/cronJob/models/index.ts +3 -3
  69. package/src/plugins/cronJob/routes/index.ts +3 -3
  70. package/src/plugins/cronJob/routes/runCronJob.ts +15 -15
  71. package/src/plugins/cronJob/services/CronJobService.ts +252 -252
  72. package/src/plugins/dataManage/DataManagePlugin.ts +163 -163
  73. package/src/plugins/dataManage/actionHandlers/addEntityRelations.ts +15 -15
  74. package/src/plugins/dataManage/actionHandlers/countCollectionEntities.ts +17 -17
  75. package/src/plugins/dataManage/actionHandlers/createCollectionEntitiesBatch.ts +81 -81
  76. package/src/plugins/dataManage/actionHandlers/createCollectionEntity.ts +20 -20
  77. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntities.ts +45 -45
  78. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntityById.ts +20 -20
  79. package/src/plugins/dataManage/actionHandlers/findCollectionEntities.ts +27 -27
  80. package/src/plugins/dataManage/actionHandlers/findCollectionEntityById.ts +30 -30
  81. package/src/plugins/dataManage/actionHandlers/queryDatabase.ts +22 -22
  82. package/src/plugins/dataManage/actionHandlers/removeEntityRelations.ts +15 -15
  83. package/src/plugins/dataManage/actionHandlers/updateCollectionEntityById.ts +38 -38
  84. package/src/plugins/entityAccessControl/EntityAccessControlPlugin.ts +146 -146
  85. package/src/plugins/fileManage/FileManagePlugin.ts +52 -52
  86. package/src/plugins/fileManage/actionHandlers/downloadDocument.ts +65 -65
  87. package/src/plugins/fileManage/actionHandlers/downloadFile.ts +44 -44
  88. package/src/plugins/fileManage/actionHandlers/uploadFile.ts +33 -33
  89. package/src/plugins/fileManage/routes/downloadDocument.ts +15 -15
  90. package/src/plugins/fileManage/routes/downloadFile.ts +15 -15
  91. package/src/plugins/fileManage/routes/index.ts +5 -5
  92. package/src/plugins/fileManage/routes/uploadFile.ts +15 -15
  93. package/src/plugins/license/LicensePlugin.ts +79 -79
  94. package/src/plugins/license/LicensePluginTypes.ts +95 -95
  95. package/src/plugins/license/LicenseService.ts +118 -118
  96. package/src/plugins/license/actionHandlers/getLicense.ts +18 -18
  97. package/src/plugins/license/actionHandlers/index.ts +4 -4
  98. package/src/plugins/license/helpers/certHelper.ts +21 -21
  99. package/src/plugins/license/helpers/cryptoHelper.ts +47 -47
  100. package/src/plugins/license/models/index.ts +1 -1
  101. package/src/plugins/license/routes/getLicense.ts +15 -15
  102. package/src/plugins/license/routes/index.ts +3 -3
  103. package/src/plugins/mail/MailPlugin.ts +74 -74
  104. package/src/plugins/mail/MailPluginTypes.ts +27 -27
  105. package/src/plugins/mail/MailService.ts +38 -38
  106. package/src/plugins/mail/actionHandlers/index.ts +3 -3
  107. package/src/plugins/mail/models/index.ts +1 -1
  108. package/src/plugins/mail/routes/index.ts +1 -1
  109. package/src/plugins/metaManage/MetaManagePlugin.ts +198 -198
  110. package/src/plugins/metaManage/actionHandlers/getMetaModelDetail.ts +10 -10
  111. package/src/plugins/metaManage/actionHandlers/listMetaModels.ts +9 -9
  112. package/src/plugins/metaManage/actionHandlers/listMetaRoutes.ts +9 -9
  113. package/src/plugins/metaManage/services/MetaService.ts +376 -376
  114. package/src/plugins/notification/NotificationPlugin.ts +68 -68
  115. package/src/plugins/notification/NotificationPluginTypes.ts +13 -13
  116. package/src/plugins/notification/NotificationService.ts +25 -25
  117. package/src/plugins/notification/actionHandlers/index.ts +3 -3
  118. package/src/plugins/notification/models/Notification.ts +60 -60
  119. package/src/plugins/notification/models/index.ts +3 -3
  120. package/src/plugins/notification/routes/index.ts +1 -1
  121. package/src/plugins/routeManage/RouteManagePlugin.ts +62 -62
  122. package/src/plugins/routeManage/actionHandlers/httpProxy.ts +13 -13
  123. package/src/plugins/sequence/SequencePlugin.ts +146 -146
  124. package/src/plugins/sequence/SequencePluginTypes.ts +69 -69
  125. package/src/plugins/sequence/SequenceService.ts +92 -92
  126. package/src/plugins/sequence/actionHandlers/generateSn.ts +32 -32
  127. package/src/plugins/sequence/actionHandlers/index.ts +4 -4
  128. package/src/plugins/sequence/models/SequenceAutoIncrementRecord.ts +49 -49
  129. package/src/plugins/sequence/models/SequenceRule.ts +42 -42
  130. package/src/plugins/sequence/models/index.ts +4 -4
  131. package/src/plugins/sequence/routes/generateSn.ts +15 -15
  132. package/src/plugins/sequence/routes/index.ts +3 -3
  133. package/src/plugins/sequence/segment-utility.ts +11 -11
  134. package/src/plugins/sequence/segments/autoIncrement.ts +90 -90
  135. package/src/plugins/sequence/segments/dayOfMonth.ts +19 -19
  136. package/src/plugins/sequence/segments/index.ts +9 -9
  137. package/src/plugins/sequence/segments/literal.ts +16 -16
  138. package/src/plugins/sequence/segments/month.ts +19 -19
  139. package/src/plugins/sequence/segments/parameter.ts +20 -20
  140. package/src/plugins/sequence/segments/year.ts +19 -19
  141. package/src/plugins/serverOperation/ServerOperationPlugin.ts +91 -91
  142. package/src/plugins/serverOperation/ServerOperationPluginTypes.ts +15 -15
  143. package/src/plugins/serverOperation/actionHandlers/index.ts +4 -4
  144. package/src/plugins/serverOperation/actionHandlers/runServerOperation.ts +15 -15
  145. package/src/plugins/setting/SettingPlugin.ts +68 -68
  146. package/src/plugins/setting/SettingPluginTypes.ts +37 -37
  147. package/src/plugins/setting/SettingService.ts +213 -213
  148. package/src/plugins/setting/actionHandlers/getSystemSettingValues.ts +30 -30
  149. package/src/plugins/setting/actionHandlers/getUserSettingValues.ts +38 -38
  150. package/src/plugins/setting/actionHandlers/index.ts +6 -6
  151. package/src/plugins/setting/actionHandlers/setSystemSettingValues.ts +30 -30
  152. package/src/plugins/setting/models/SystemSettingGroupSetting.ts +57 -57
  153. package/src/plugins/setting/models/SystemSettingItem.ts +48 -48
  154. package/src/plugins/setting/models/SystemSettingItemSetting.ts +73 -73
  155. package/src/plugins/setting/models/UserSettingGroupSetting.ts +57 -57
  156. package/src/plugins/setting/models/UserSettingItem.ts +55 -55
  157. package/src/plugins/setting/models/UserSettingItemSetting.ts +73 -73
  158. package/src/plugins/setting/models/index.ts +8 -8
  159. package/src/plugins/setting/routes/getSystemSettingValues.ts +15 -15
  160. package/src/plugins/setting/routes/getUserSettingValues.ts +15 -15
  161. package/src/plugins/setting/routes/index.ts +5 -5
  162. package/src/plugins/setting/routes/setSystemSettingValues.ts +15 -15
  163. package/src/plugins/stateMachine/StateMachinePlugin.ts +196 -196
  164. package/src/plugins/stateMachine/StateMachinePluginTypes.ts +48 -48
  165. package/src/plugins/stateMachine/actionHandlers/index.ts +4 -4
  166. package/src/plugins/stateMachine/actionHandlers/sendStateMachineEvent.ts +54 -54
  167. package/src/plugins/stateMachine/models/StateMachine.ts +42 -42
  168. package/src/plugins/stateMachine/models/index.ts +3 -3
  169. package/src/plugins/stateMachine/routes/index.ts +3 -3
  170. package/src/plugins/stateMachine/routes/sendStateMachineEvent.ts +15 -15
  171. package/src/plugins/stateMachine/stateMachineHelper.ts +36 -36
  172. package/src/plugins/webhooks/WebhooksPlugin.ts +148 -148
  173. package/src/plugins/webhooks/pluginConfig.ts +75 -75
  174. package/src/polyfill.ts +5 -5
  175. package/src/proxy/mod.ts +38 -38
  176. package/src/proxy/types.ts +21 -21
  177. package/src/queryBuilder/index.ts +1 -1
  178. package/src/queryBuilder/queryBuilder.ts +755 -755
  179. package/src/server.ts +523 -524
  180. package/src/types/cron-job-types.ts +66 -66
  181. package/src/types.ts +832 -832
  182. package/src/utilities/accessControlUtility.ts +33 -33
  183. package/src/utilities/entityUtility.ts +18 -18
  184. package/src/utilities/errorUtility.ts +15 -15
  185. package/src/utilities/fsUtility.ts +61 -61
  186. package/src/utilities/httpUtility.ts +19 -19
  187. package/src/utilities/jwtUtility.ts +26 -26
  188. package/src/utilities/pathUtility.ts +14 -14
  189. package/src/utilities/timeUtility.ts +17 -17
  190. package/src/utilities/typeUtility.ts +15 -15
  191. package/tsconfig.json +19 -19
@@ -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,18 +1,18 @@
1
- import { isObject } from "lodash";
2
-
3
- export function getEntityRelationTargetId(entity: Record<string, any>, propName: string, targetColumnName?: string) {
4
- if (!entity) {
5
- throw new Error(`"entity" parameter is required.`);
6
- }
7
-
8
- let targetId: number | { id?: number } = entity[propName];
9
- if (!targetId && targetColumnName) {
10
- targetId = entity[targetColumnName];
11
- }
12
-
13
- if (isObject(targetId)) {
14
- return targetId.id;
15
- } else {
16
- return targetId;
17
- }
18
- }
1
+ import { isObject } from "lodash";
2
+
3
+ export function getEntityRelationTargetId(entity: Record<string, any>, propName: string, targetColumnName?: string) {
4
+ if (!entity) {
5
+ throw new Error(`"entity" parameter is required.`);
6
+ }
7
+
8
+ let targetId: number | { id?: number } = entity[propName];
9
+ if (!targetId && targetColumnName) {
10
+ targetId = entity[targetColumnName];
11
+ }
12
+
13
+ if (isObject(targetId)) {
14
+ return targetId.id;
15
+ } else {
16
+ return targetId;
17
+ }
18
+ }
@@ -1,15 +1,15 @@
1
- export function newError(type: string, message?: string, cause?: any) {
2
- const error = new Error(message, {
3
- cause,
4
- });
5
- error.name = type;
6
- return error;
7
- }
8
-
9
- export function newDatabaseError(message?: string, cause?: any) {
10
- return newError("DatabaseError", message, cause);
11
- }
12
-
13
- export function newEntityOperationError(message?: string, cause?: any) {
14
- return newError("EntityOperationError", message, cause);
15
- }
1
+ export function newError(type: string, message?: string, cause?: any) {
2
+ const error = new Error(message, {
3
+ cause,
4
+ });
5
+ error.name = type;
6
+ return error;
7
+ }
8
+
9
+ export function newDatabaseError(message?: string, cause?: any) {
10
+ return newError("DatabaseError", message, cause);
11
+ }
12
+
13
+ export function newEntityOperationError(message?: string, cause?: any) {
14
+ return newError("EntityOperationError", message, cause);
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,14 +1,14 @@
1
- import path from "path";
2
-
3
- export function getFileExtensionName(pathname: string) {
4
- return path.extname(pathname);
5
- }
6
-
7
- export function getFileName(pathname: string) {
8
- return path.basename(pathname);
9
- }
10
-
11
- export function getFileBaseName(pathname: string) {
12
- const extName = path.extname(pathname);
13
- return path.basename(pathname, extName);
14
- }
1
+ import path from "path";
2
+
3
+ export function getFileExtensionName(pathname: string) {
4
+ return path.extname(pathname);
5
+ }
6
+
7
+ export function getFileName(pathname: string) {
8
+ return path.basename(pathname);
9
+ }
10
+
11
+ export function getFileBaseName(pathname: string) {
12
+ const extName = path.extname(pathname);
13
+ return path.basename(pathname, extName);
14
+ }
@@ -1,17 +1,17 @@
1
- import dayjs from "dayjs";
2
-
3
- export function getNowString() {
4
- return dayjs().format("YYYY-MM-DD HH:mm:ss.SSS");
5
- }
6
-
7
- export function getNowStringWithTimezone() {
8
- return dayjs().format("YYYY-MM-DD HH:mm:ss.SSSZ");
9
- }
10
-
11
- export function getDateString(timeString) {
12
- return dayjs(timeString).format("YYYY-MM-DD");
13
- }
14
-
15
- export function formatDateTimeWithTimezone(source: any) {
16
- return dayjs(source).format("YYYY-MM-DD HH:mm:ss.SSSZ");
17
- }
1
+ import dayjs from "dayjs";
2
+
3
+ export function getNowString() {
4
+ return dayjs().format("YYYY-MM-DD HH:mm:ss.SSS");
5
+ }
6
+
7
+ export function getNowStringWithTimezone() {
8
+ return dayjs().format("YYYY-MM-DD HH:mm:ss.SSSZ");
9
+ }
10
+
11
+ export function getDateString(timeString) {
12
+ return dayjs(timeString).format("YYYY-MM-DD");
13
+ }
14
+
15
+ export function formatDateTimeWithTimezone(source: any) {
16
+ return dayjs(source).format("YYYY-MM-DD HH:mm:ss.SSSZ");
17
+ }
@@ -1,15 +1,15 @@
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
- }
12
-
13
- export function isNullOrUndefinedOrEmpty(val: any) {
14
- return isNull(val) || isUndefined(val) || val === "";
15
- }
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
+ }
12
+
13
+ export function isNullOrUndefinedOrEmpty(val: any) {
14
+ return isNull(val) || isUndefined(val) || val === "";
15
+ }
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
+ }