@ruiapp/rapid-core 0.3.1 → 0.3.3

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 (187) hide show
  1. package/CHANGELOG.md +7 -7
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.js +403 -158
  4. package/dist/plugins/license/LicensePlugin.d.ts +23 -0
  5. package/dist/plugins/license/LicensePluginTypes.d.ts +78 -0
  6. package/dist/plugins/license/LicenseService.d.ts +22 -0
  7. package/dist/plugins/license/actionHandlers/getLicense.d.ts +6 -0
  8. package/dist/plugins/license/actionHandlers/index.d.ts +3 -0
  9. package/dist/plugins/license/helpers/certHelper.d.ts +2 -0
  10. package/dist/plugins/license/helpers/cryptoHelper.d.ts +8 -0
  11. package/dist/plugins/license/models/index.d.ts +2 -0
  12. package/dist/plugins/license/routes/getLicense.d.ts +12 -0
  13. package/dist/plugins/license/routes/index.d.ts +12 -0
  14. package/dist/utilities/entityUtility.d.ts +1 -0
  15. package/dist/utilities/typeUtility.d.ts +1 -0
  16. package/package.json +1 -1
  17. package/rollup.config.js +16 -16
  18. package/src/bootstrapApplicationConfig.ts +631 -631
  19. package/src/core/actionHandler.ts +22 -22
  20. package/src/core/eventManager.ts +20 -20
  21. package/src/core/facility.ts +7 -7
  22. package/src/core/http/formDataParser.ts +89 -89
  23. package/src/core/http-types.ts +4 -4
  24. package/src/core/pluginManager.ts +175 -175
  25. package/src/core/providers/runtimeProvider.ts +5 -5
  26. package/src/core/request.ts +86 -86
  27. package/src/core/response.ts +76 -76
  28. package/src/core/routeContext.ts +47 -47
  29. package/src/core/routesBuilder.ts +88 -88
  30. package/src/core/server.ts +142 -142
  31. package/src/dataAccess/columnTypeMapper.ts +22 -22
  32. package/src/dataAccess/dataAccessTypes.ts +163 -163
  33. package/src/dataAccess/dataAccessor.ts +135 -135
  34. package/src/dataAccess/entityManager.ts +1718 -1718
  35. package/src/dataAccess/entityMapper.ts +100 -100
  36. package/src/dataAccess/propertyMapper.ts +28 -28
  37. package/src/deno-std/assert/assert.ts +9 -9
  38. package/src/deno-std/assert/assertion_error.ts +7 -7
  39. package/src/deno-std/datetime/to_imf.ts +32 -32
  40. package/src/deno-std/encoding/base64.ts +141 -141
  41. package/src/deno-std/http/cookie.ts +372 -372
  42. package/src/facilities/log/LogFacility.ts +35 -35
  43. package/src/helpers/entityHelpers.ts +76 -76
  44. package/src/helpers/filterHelper.ts +148 -148
  45. package/src/helpers/inputHelper.ts +11 -11
  46. package/src/helpers/metaHelper.ts +89 -89
  47. package/src/helpers/runCollectionEntityActionHandler.ts +27 -27
  48. package/src/index.ts +60 -54
  49. package/src/plugins/auth/AuthPlugin.ts +85 -85
  50. package/src/plugins/auth/actionHandlers/changePassword.ts +54 -54
  51. package/src/plugins/auth/actionHandlers/createSession.ts +75 -63
  52. package/src/plugins/auth/actionHandlers/deleteSession.ts +18 -18
  53. package/src/plugins/auth/actionHandlers/getMyProfile.ts +35 -35
  54. package/src/plugins/auth/actionHandlers/index.ts +8 -8
  55. package/src/plugins/auth/actionHandlers/resetPassword.ts +38 -38
  56. package/src/plugins/auth/models/AccessToken.ts +56 -56
  57. package/src/plugins/auth/models/index.ts +3 -3
  58. package/src/plugins/auth/routes/changePassword.ts +15 -15
  59. package/src/plugins/auth/routes/getMyProfile.ts +15 -15
  60. package/src/plugins/auth/routes/index.ts +7 -7
  61. package/src/plugins/auth/routes/resetPassword.ts +15 -15
  62. package/src/plugins/auth/routes/signin.ts +15 -15
  63. package/src/plugins/auth/routes/signout.ts +15 -15
  64. package/src/plugins/cronJob/CronJobPlugin.ts +112 -112
  65. package/src/plugins/cronJob/CronJobPluginTypes.ts +49 -49
  66. package/src/plugins/cronJob/actionHandlers/index.ts +4 -4
  67. package/src/plugins/cronJob/actionHandlers/runCronJob.ts +29 -29
  68. package/src/plugins/cronJob/routes/index.ts +3 -3
  69. package/src/plugins/cronJob/routes/runCronJob.ts +15 -15
  70. package/src/plugins/dataManage/DataManagePlugin.ts +163 -163
  71. package/src/plugins/dataManage/actionHandlers/addEntityRelations.ts +20 -20
  72. package/src/plugins/dataManage/actionHandlers/countCollectionEntities.ts +16 -16
  73. package/src/plugins/dataManage/actionHandlers/createCollectionEntitiesBatch.ts +42 -42
  74. package/src/plugins/dataManage/actionHandlers/createCollectionEntity.ts +24 -24
  75. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntities.ts +38 -38
  76. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntityById.ts +22 -22
  77. package/src/plugins/dataManage/actionHandlers/findCollectionEntities.ts +26 -26
  78. package/src/plugins/dataManage/actionHandlers/findCollectionEntityById.ts +21 -21
  79. package/src/plugins/dataManage/actionHandlers/queryDatabase.ts +22 -22
  80. package/src/plugins/dataManage/actionHandlers/removeEntityRelations.ts +20 -20
  81. package/src/plugins/dataManage/actionHandlers/updateCollectionEntityById.ts +41 -41
  82. package/src/plugins/entityAccessControl/EntityAccessControlPlugin.ts +146 -146
  83. package/src/plugins/fileManage/FileManagePlugin.ts +52 -52
  84. package/src/plugins/fileManage/actionHandlers/downloadDocument.ts +65 -65
  85. package/src/plugins/fileManage/actionHandlers/downloadFile.ts +44 -44
  86. package/src/plugins/fileManage/actionHandlers/uploadFile.ts +33 -33
  87. package/src/plugins/fileManage/routes/downloadDocument.ts +15 -15
  88. package/src/plugins/fileManage/routes/downloadFile.ts +15 -15
  89. package/src/plugins/fileManage/routes/index.ts +5 -5
  90. package/src/plugins/fileManage/routes/uploadFile.ts +15 -15
  91. package/src/plugins/license/LicensePlugin.ts +79 -0
  92. package/src/plugins/license/LicensePluginTypes.ts +95 -0
  93. package/src/plugins/license/LicenseService.ts +112 -0
  94. package/src/plugins/license/actionHandlers/getLicense.ts +18 -0
  95. package/src/plugins/license/actionHandlers/index.ts +4 -0
  96. package/src/plugins/license/helpers/certHelper.ts +21 -0
  97. package/src/plugins/license/helpers/cryptoHelper.ts +47 -0
  98. package/src/plugins/license/models/index.ts +1 -0
  99. package/src/plugins/license/routes/getLicense.ts +15 -0
  100. package/src/plugins/license/routes/index.ts +3 -0
  101. package/src/plugins/mail/MailPlugin.ts +74 -74
  102. package/src/plugins/mail/MailPluginTypes.ts +27 -27
  103. package/src/plugins/mail/MailService.ts +38 -38
  104. package/src/plugins/mail/actionHandlers/index.ts +3 -3
  105. package/src/plugins/mail/models/index.ts +1 -1
  106. package/src/plugins/mail/routes/index.ts +1 -1
  107. package/src/plugins/metaManage/MetaManagePlugin.ts +504 -504
  108. package/src/plugins/metaManage/actionHandlers/getMetaModelDetail.ts +10 -10
  109. package/src/plugins/metaManage/actionHandlers/listMetaModels.ts +9 -9
  110. package/src/plugins/metaManage/actionHandlers/listMetaRoutes.ts +9 -9
  111. package/src/plugins/notification/NotificationPlugin.ts +68 -68
  112. package/src/plugins/notification/NotificationPluginTypes.ts +13 -13
  113. package/src/plugins/notification/NotificationService.ts +25 -25
  114. package/src/plugins/notification/actionHandlers/index.ts +3 -3
  115. package/src/plugins/notification/models/Notification.ts +60 -60
  116. package/src/plugins/notification/models/index.ts +3 -3
  117. package/src/plugins/notification/routes/index.ts +1 -1
  118. package/src/plugins/routeManage/RouteManagePlugin.ts +62 -62
  119. package/src/plugins/routeManage/actionHandlers/httpProxy.ts +13 -13
  120. package/src/plugins/sequence/SequencePlugin.ts +136 -136
  121. package/src/plugins/sequence/SequencePluginTypes.ts +69 -69
  122. package/src/plugins/sequence/SequenceService.ts +81 -81
  123. package/src/plugins/sequence/actionHandlers/generateSn.ts +32 -32
  124. package/src/plugins/sequence/actionHandlers/index.ts +4 -4
  125. package/src/plugins/sequence/models/SequenceAutoIncrementRecord.ts +49 -49
  126. package/src/plugins/sequence/models/SequenceRule.ts +42 -42
  127. package/src/plugins/sequence/models/index.ts +4 -4
  128. package/src/plugins/sequence/routes/generateSn.ts +15 -15
  129. package/src/plugins/sequence/routes/index.ts +3 -3
  130. package/src/plugins/sequence/segment-utility.ts +11 -11
  131. package/src/plugins/sequence/segments/autoIncrement.ts +78 -78
  132. package/src/plugins/sequence/segments/dayOfMonth.ts +17 -17
  133. package/src/plugins/sequence/segments/index.ts +9 -9
  134. package/src/plugins/sequence/segments/literal.ts +14 -14
  135. package/src/plugins/sequence/segments/month.ts +17 -17
  136. package/src/plugins/sequence/segments/parameter.ts +18 -18
  137. package/src/plugins/sequence/segments/year.ts +17 -17
  138. package/src/plugins/serverOperation/ServerOperationPlugin.ts +91 -91
  139. package/src/plugins/serverOperation/ServerOperationPluginTypes.ts +15 -15
  140. package/src/plugins/serverOperation/actionHandlers/index.ts +4 -4
  141. package/src/plugins/serverOperation/actionHandlers/runServerOperation.ts +15 -15
  142. package/src/plugins/setting/SettingPlugin.ts +68 -68
  143. package/src/plugins/setting/SettingPluginTypes.ts +37 -37
  144. package/src/plugins/setting/SettingService.ts +213 -213
  145. package/src/plugins/setting/actionHandlers/getSystemSettingValues.ts +30 -30
  146. package/src/plugins/setting/actionHandlers/getUserSettingValues.ts +38 -38
  147. package/src/plugins/setting/actionHandlers/index.ts +6 -6
  148. package/src/plugins/setting/actionHandlers/setSystemSettingValues.ts +30 -30
  149. package/src/plugins/setting/models/SystemSettingGroupSetting.ts +57 -57
  150. package/src/plugins/setting/models/SystemSettingItem.ts +48 -42
  151. package/src/plugins/setting/models/SystemSettingItemSetting.ts +73 -73
  152. package/src/plugins/setting/models/UserSettingGroupSetting.ts +57 -57
  153. package/src/plugins/setting/models/UserSettingItem.ts +55 -49
  154. package/src/plugins/setting/models/UserSettingItemSetting.ts +73 -73
  155. package/src/plugins/setting/models/index.ts +8 -8
  156. package/src/plugins/setting/routes/getSystemSettingValues.ts +15 -15
  157. package/src/plugins/setting/routes/getUserSettingValues.ts +15 -15
  158. package/src/plugins/setting/routes/index.ts +5 -5
  159. package/src/plugins/setting/routes/setSystemSettingValues.ts +15 -15
  160. package/src/plugins/stateMachine/StateMachinePlugin.ts +186 -186
  161. package/src/plugins/stateMachine/StateMachinePluginTypes.ts +48 -48
  162. package/src/plugins/stateMachine/actionHandlers/index.ts +4 -4
  163. package/src/plugins/stateMachine/actionHandlers/sendStateMachineEvent.ts +51 -51
  164. package/src/plugins/stateMachine/models/StateMachine.ts +42 -42
  165. package/src/plugins/stateMachine/models/index.ts +3 -3
  166. package/src/plugins/stateMachine/routes/index.ts +3 -3
  167. package/src/plugins/stateMachine/routes/sendStateMachineEvent.ts +15 -15
  168. package/src/plugins/stateMachine/stateMachineHelper.ts +36 -36
  169. package/src/plugins/webhooks/WebhooksPlugin.ts +148 -148
  170. package/src/plugins/webhooks/pluginConfig.ts +75 -75
  171. package/src/polyfill.ts +5 -5
  172. package/src/proxy/mod.ts +38 -38
  173. package/src/proxy/types.ts +21 -21
  174. package/src/queryBuilder/index.ts +1 -1
  175. package/src/queryBuilder/queryBuilder.ts +665 -665
  176. package/src/server.ts +463 -463
  177. package/src/types.ts +701 -701
  178. package/src/utilities/accessControlUtility.ts +33 -33
  179. package/src/utilities/entityUtility.ts +18 -0
  180. package/src/utilities/errorUtility.ts +15 -15
  181. package/src/utilities/fsUtility.ts +61 -61
  182. package/src/utilities/httpUtility.ts +19 -19
  183. package/src/utilities/jwtUtility.ts +26 -26
  184. package/src/utilities/pathUtility.ts +14 -14
  185. package/src/utilities/timeUtility.ts +9 -9
  186. package/src/utilities/typeUtility.ts +15 -11
  187. package/tsconfig.json +19 -19
@@ -1,135 +1,135 @@
1
- import { CreateEntityOptions, IRpdDataAccessor, RpdDataModel, IDatabaseAccessor, DatabaseQuery } from "~/types";
2
- import QueryBuilder from "~/queryBuilder/queryBuilder";
3
- import { first, set } from "lodash";
4
- import { IRpdServer } from "~/core/server";
5
- import { Logger } from "~/facilities/log/LogFacility";
6
- import { newDatabaseError } from "~/utilities/errorUtility";
7
- import { CountRowOptions, FindRowOptions, UpdateRowOptions } from "./dataAccessTypes";
8
-
9
- export interface IDataAccessorOptions {
10
- model: RpdDataModel;
11
- queryBuilder: QueryBuilder;
12
- }
13
-
14
- export default class DataAccessor<T = any> implements IRpdDataAccessor<T> {
15
- #logger: Logger;
16
- #model: RpdDataModel;
17
- #queryBuilder: QueryBuilder;
18
- #server: IRpdServer;
19
- #databaseAccessor: IDatabaseAccessor;
20
-
21
- constructor(server: IRpdServer, databaseAccessor: IDatabaseAccessor, options: IDataAccessorOptions) {
22
- this.#server = server;
23
- this.#logger = server.getLogger();
24
- this.#databaseAccessor = databaseAccessor;
25
- this.#queryBuilder = options.queryBuilder;
26
- this.#model = options.model;
27
- }
28
-
29
- getModel() {
30
- return this.#model;
31
- }
32
-
33
- async create(entity: Partial<T>): Promise<T> {
34
- const options: CreateEntityOptions = {
35
- entity,
36
- };
37
- const query = this.#queryBuilder.insert(this.#model, options);
38
- const result = await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
39
- return first(result);
40
- }
41
-
42
- async updateById(id: any, entity: Partial<T>): Promise<{ count: number }> {
43
- const options: UpdateRowOptions = {
44
- entity,
45
- filters: [
46
- {
47
- field: {
48
- name: "id",
49
- },
50
- operator: "eq",
51
- value: id,
52
- },
53
- ],
54
- };
55
- const query = this.#queryBuilder.update(this.#model, options);
56
- const result = await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
57
- return first(result);
58
- }
59
-
60
- async find(options: FindRowOptions): Promise<T[]> {
61
- this.#logger.debug(`Finding '${this.#model.singularCode}' entity.`, { options });
62
- let query: DatabaseQuery;
63
- if (this.#model.base) {
64
- const baseModel = this.#server.getModel({
65
- singularCode: this.#model.base,
66
- });
67
- query = this.#queryBuilder.selectDerived(this.#model, baseModel, options);
68
- } else {
69
- query = this.#queryBuilder.select(this.#model, options);
70
- }
71
-
72
- try {
73
- return await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
74
- } catch (err) {
75
- throw newDatabaseError(`Failed to find entities. ${err.message}`, err);
76
- }
77
- }
78
-
79
- async findOne(options: FindRowOptions): Promise<T> {
80
- set(options, "pagination.limit", 1);
81
- const list = await this.find(options);
82
- return first(list);
83
- }
84
-
85
- async findById(id: any): Promise<T | null> {
86
- const options: FindRowOptions = {
87
- filters: [
88
- {
89
- field: {
90
- name: "id",
91
- },
92
- operator: "eq",
93
- value: id,
94
- },
95
- ],
96
- };
97
- const result = await this.findOne(options);
98
- return result;
99
- }
100
-
101
- async count(options: CountRowOptions): Promise<number> {
102
- let query: DatabaseQuery;
103
- if (this.#model.base) {
104
- const baseModel = this.#server.getModel({
105
- singularCode: this.#model.base,
106
- });
107
- query = this.#queryBuilder.countDerived(this.#model, baseModel, options);
108
- } else {
109
- query = this.#queryBuilder.count(this.#model, options);
110
- }
111
- const result = await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
112
-
113
- const row = first(result);
114
- if (row) {
115
- return row.count;
116
- }
117
- return 0;
118
- }
119
-
120
- async deleteById(id: any) {
121
- const options: FindRowOptions = {
122
- filters: [
123
- {
124
- field: {
125
- name: "id",
126
- },
127
- operator: "eq",
128
- value: id,
129
- },
130
- ],
131
- };
132
- const query = this.#queryBuilder.delete(this.#model, options);
133
- await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
134
- }
135
- }
1
+ import { CreateEntityOptions, IRpdDataAccessor, RpdDataModel, IDatabaseAccessor, DatabaseQuery } from "~/types";
2
+ import QueryBuilder from "~/queryBuilder/queryBuilder";
3
+ import { first, set } from "lodash";
4
+ import { IRpdServer } from "~/core/server";
5
+ import { Logger } from "~/facilities/log/LogFacility";
6
+ import { newDatabaseError } from "~/utilities/errorUtility";
7
+ import { CountRowOptions, FindRowOptions, UpdateRowOptions } from "./dataAccessTypes";
8
+
9
+ export interface IDataAccessorOptions {
10
+ model: RpdDataModel;
11
+ queryBuilder: QueryBuilder;
12
+ }
13
+
14
+ export default class DataAccessor<T = any> implements IRpdDataAccessor<T> {
15
+ #logger: Logger;
16
+ #model: RpdDataModel;
17
+ #queryBuilder: QueryBuilder;
18
+ #server: IRpdServer;
19
+ #databaseAccessor: IDatabaseAccessor;
20
+
21
+ constructor(server: IRpdServer, databaseAccessor: IDatabaseAccessor, options: IDataAccessorOptions) {
22
+ this.#server = server;
23
+ this.#logger = server.getLogger();
24
+ this.#databaseAccessor = databaseAccessor;
25
+ this.#queryBuilder = options.queryBuilder;
26
+ this.#model = options.model;
27
+ }
28
+
29
+ getModel() {
30
+ return this.#model;
31
+ }
32
+
33
+ async create(entity: Partial<T>): Promise<T> {
34
+ const options: CreateEntityOptions = {
35
+ entity,
36
+ };
37
+ const query = this.#queryBuilder.insert(this.#model, options);
38
+ const result = await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
39
+ return first(result);
40
+ }
41
+
42
+ async updateById(id: any, entity: Partial<T>): Promise<{ count: number }> {
43
+ const options: UpdateRowOptions = {
44
+ entity,
45
+ filters: [
46
+ {
47
+ field: {
48
+ name: "id",
49
+ },
50
+ operator: "eq",
51
+ value: id,
52
+ },
53
+ ],
54
+ };
55
+ const query = this.#queryBuilder.update(this.#model, options);
56
+ const result = await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
57
+ return first(result);
58
+ }
59
+
60
+ async find(options: FindRowOptions): Promise<T[]> {
61
+ this.#logger.debug(`Finding '${this.#model.singularCode}' entity.`, { options });
62
+ let query: DatabaseQuery;
63
+ if (this.#model.base) {
64
+ const baseModel = this.#server.getModel({
65
+ singularCode: this.#model.base,
66
+ });
67
+ query = this.#queryBuilder.selectDerived(this.#model, baseModel, options);
68
+ } else {
69
+ query = this.#queryBuilder.select(this.#model, options);
70
+ }
71
+
72
+ try {
73
+ return await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
74
+ } catch (err) {
75
+ throw newDatabaseError(`Failed to find entities. ${err.message}`, err);
76
+ }
77
+ }
78
+
79
+ async findOne(options: FindRowOptions): Promise<T> {
80
+ set(options, "pagination.limit", 1);
81
+ const list = await this.find(options);
82
+ return first(list);
83
+ }
84
+
85
+ async findById(id: any): Promise<T | null> {
86
+ const options: FindRowOptions = {
87
+ filters: [
88
+ {
89
+ field: {
90
+ name: "id",
91
+ },
92
+ operator: "eq",
93
+ value: id,
94
+ },
95
+ ],
96
+ };
97
+ const result = await this.findOne(options);
98
+ return result;
99
+ }
100
+
101
+ async count(options: CountRowOptions): Promise<number> {
102
+ let query: DatabaseQuery;
103
+ if (this.#model.base) {
104
+ const baseModel = this.#server.getModel({
105
+ singularCode: this.#model.base,
106
+ });
107
+ query = this.#queryBuilder.countDerived(this.#model, baseModel, options);
108
+ } else {
109
+ query = this.#queryBuilder.count(this.#model, options);
110
+ }
111
+ const result = await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
112
+
113
+ const row = first(result);
114
+ if (row) {
115
+ return row.count;
116
+ }
117
+ return 0;
118
+ }
119
+
120
+ async deleteById(id: any) {
121
+ const options: FindRowOptions = {
122
+ filters: [
123
+ {
124
+ field: {
125
+ name: "id",
126
+ },
127
+ operator: "eq",
128
+ value: id,
129
+ },
130
+ ],
131
+ };
132
+ const query = this.#queryBuilder.delete(this.#model, options);
133
+ await this.#databaseAccessor.queryDatabaseObject(query.command, query.params);
134
+ }
135
+ }