@ruiapp/rapid-core 0.11.5 → 0.11.7

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 (204) hide show
  1. package/CHANGELOG.md +11 -11
  2. package/dist/core/pluginManager.d.ts +2 -0
  3. package/dist/core/server.d.ts +3 -0
  4. package/dist/dataAccess/entityManager.d.ts +3 -3
  5. package/dist/index.js +118 -41
  6. package/dist/server.d.ts +1 -0
  7. package/dist/types.d.ts +2 -0
  8. package/package.json +1 -1
  9. package/rollup.config.js +16 -16
  10. package/src/bootstrapApplicationConfig.ts +904 -904
  11. package/src/core/ExpressionInterpreter.ts +45 -45
  12. package/src/core/actionHandler.ts +24 -24
  13. package/src/core/actionHandlers/ifActionHandler.ts +27 -27
  14. package/src/core/eventManager.ts +20 -20
  15. package/src/core/facility.ts +7 -7
  16. package/src/core/http/formDataParser.ts +87 -87
  17. package/src/core/http-types.ts +4 -4
  18. package/src/core/pluginManager.ts +202 -193
  19. package/src/core/providers/runtimeProvider.ts +5 -5
  20. package/src/core/request.ts +96 -96
  21. package/src/core/response.ts +84 -84
  22. package/src/core/routeContext.ts +127 -127
  23. package/src/core/routes/healthz.ts +20 -20
  24. package/src/core/routes/index.ts +3 -3
  25. package/src/core/routesBuilder.ts +129 -122
  26. package/src/core/server.ts +161 -158
  27. package/src/dataAccess/columnTypeMapper.ts +22 -22
  28. package/src/dataAccess/dataAccessTypes.ts +165 -165
  29. package/src/dataAccess/dataAccessor.ts +135 -135
  30. package/src/dataAccess/entityManager.ts +2031 -1986
  31. package/src/dataAccess/entityMapper.ts +111 -111
  32. package/src/dataAccess/entityValidator.ts +33 -33
  33. package/src/dataAccess/propertyMapper.ts +28 -28
  34. package/src/deno-std/assert/assert.ts +9 -9
  35. package/src/deno-std/assert/assertion_error.ts +7 -7
  36. package/src/deno-std/datetime/to_imf.ts +32 -32
  37. package/src/deno-std/encoding/base64.ts +141 -141
  38. package/src/deno-std/http/cookie.ts +372 -372
  39. package/src/facilities/cache/CacheFacilityTypes.ts +29 -29
  40. package/src/facilities/cache/CacheFactory.ts +31 -31
  41. package/src/facilities/cache/MemoryCache.ts +58 -58
  42. package/src/facilities/cache/MemoryCacheProvider.ts +15 -15
  43. package/src/facilities/log/LogFacility.ts +35 -35
  44. package/src/helpers/dbTransactionHelper.ts +42 -42
  45. package/src/helpers/entityHelper.ts +89 -89
  46. package/src/helpers/filterHelper.ts +148 -148
  47. package/src/helpers/inputHelper.ts +11 -11
  48. package/src/helpers/licenseHelper.ts +29 -29
  49. package/src/helpers/metaHelper.ts +111 -111
  50. package/src/helpers/runCollectionEntityActionHandler.ts +58 -58
  51. package/src/index.ts +85 -85
  52. package/src/plugins/auth/AuthPlugin.ts +107 -107
  53. package/src/plugins/auth/AuthPluginTypes.ts +11 -11
  54. package/src/plugins/auth/actionHandlers/changePassword.ts +61 -61
  55. package/src/plugins/auth/actionHandlers/createSession.ts +68 -68
  56. package/src/plugins/auth/actionHandlers/deleteSession.ts +18 -18
  57. package/src/plugins/auth/actionHandlers/getMyProfile.ts +28 -28
  58. package/src/plugins/auth/actionHandlers/index.ts +8 -8
  59. package/src/plugins/auth/actionHandlers/resetPassword.ts +45 -45
  60. package/src/plugins/auth/models/AccessToken.ts +56 -56
  61. package/src/plugins/auth/models/index.ts +3 -3
  62. package/src/plugins/auth/routes/changePassword.ts +15 -15
  63. package/src/plugins/auth/routes/getMyProfile.ts +15 -15
  64. package/src/plugins/auth/routes/index.ts +7 -7
  65. package/src/plugins/auth/routes/resetPassword.ts +15 -15
  66. package/src/plugins/auth/routes/signin.ts +15 -15
  67. package/src/plugins/auth/routes/signout.ts +15 -15
  68. package/src/plugins/auth/services/AuthService.ts +66 -66
  69. package/src/plugins/cronJob/CronJobPlugin.ts +104 -104
  70. package/src/plugins/cronJob/CronJobPluginTypes.ts +44 -44
  71. package/src/plugins/cronJob/actionHandlers/index.ts +4 -4
  72. package/src/plugins/cronJob/actionHandlers/runCronJob.ts +32 -32
  73. package/src/plugins/cronJob/entityWatchers/cronJobEntityWatchers.ts +24 -24
  74. package/src/plugins/cronJob/entityWatchers/index.ts +4 -4
  75. package/src/plugins/cronJob/models/CronJob.ts +129 -129
  76. package/src/plugins/cronJob/models/index.ts +3 -3
  77. package/src/plugins/cronJob/routes/index.ts +3 -3
  78. package/src/plugins/cronJob/routes/runCronJob.ts +15 -15
  79. package/src/plugins/cronJob/services/CronJobService.ts +255 -255
  80. package/src/plugins/dataManage/DataManagePlugin.ts +165 -165
  81. package/src/plugins/dataManage/actionHandlers/addEntityRelations.ts +15 -15
  82. package/src/plugins/dataManage/actionHandlers/countCollectionEntities.ts +17 -17
  83. package/src/plugins/dataManage/actionHandlers/createCollectionEntitiesBatch.ts +81 -81
  84. package/src/plugins/dataManage/actionHandlers/createCollectionEntity.ts +20 -20
  85. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntities.ts +47 -45
  86. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntityById.ts +20 -20
  87. package/src/plugins/dataManage/actionHandlers/findCollectionEntities.ts +27 -27
  88. package/src/plugins/dataManage/actionHandlers/findCollectionEntityById.ts +30 -30
  89. package/src/plugins/dataManage/actionHandlers/queryDatabase.ts +22 -22
  90. package/src/plugins/dataManage/actionHandlers/removeEntityRelations.ts +15 -15
  91. package/src/plugins/dataManage/actionHandlers/saveEntity.ts +46 -46
  92. package/src/plugins/dataManage/actionHandlers/updateCollectionEntityById.ts +38 -38
  93. package/src/plugins/entityAccessControl/EntityAccessControlPlugin.ts +146 -146
  94. package/src/plugins/fileManage/FileManagePlugin.ts +52 -52
  95. package/src/plugins/fileManage/actionHandlers/downloadDocument.ts +65 -65
  96. package/src/plugins/fileManage/actionHandlers/downloadFile.ts +44 -44
  97. package/src/plugins/fileManage/actionHandlers/uploadFile.ts +33 -33
  98. package/src/plugins/fileManage/routes/downloadDocument.ts +15 -15
  99. package/src/plugins/fileManage/routes/downloadFile.ts +15 -15
  100. package/src/plugins/fileManage/routes/index.ts +5 -5
  101. package/src/plugins/fileManage/routes/uploadFile.ts +15 -15
  102. package/src/plugins/license/LicensePlugin.ts +79 -79
  103. package/src/plugins/license/LicensePluginTypes.ts +95 -95
  104. package/src/plugins/license/LicenseService.ts +141 -141
  105. package/src/plugins/license/actionHandlers/getLicense.ts +18 -18
  106. package/src/plugins/license/actionHandlers/index.ts +5 -5
  107. package/src/plugins/license/actionHandlers/updateLicense.ts +24 -24
  108. package/src/plugins/license/helpers/certHelper.ts +21 -21
  109. package/src/plugins/license/helpers/cryptoHelper.ts +47 -47
  110. package/src/plugins/license/models/index.ts +1 -1
  111. package/src/plugins/license/routes/getLicense.ts +15 -15
  112. package/src/plugins/license/routes/index.ts +4 -4
  113. package/src/plugins/license/routes/updateLicense.ts +15 -15
  114. package/src/plugins/mail/MailPlugin.ts +74 -74
  115. package/src/plugins/mail/MailPluginTypes.ts +27 -27
  116. package/src/plugins/mail/MailService.ts +38 -38
  117. package/src/plugins/mail/actionHandlers/index.ts +3 -3
  118. package/src/plugins/mail/models/index.ts +1 -1
  119. package/src/plugins/mail/routes/index.ts +1 -1
  120. package/src/plugins/metaManage/MetaManagePlugin.ts +198 -198
  121. package/src/plugins/metaManage/actionHandlers/getMetaModelDetail.ts +10 -10
  122. package/src/plugins/metaManage/actionHandlers/listMetaModels.ts +10 -10
  123. package/src/plugins/metaManage/actionHandlers/listMetaRoutes.ts +10 -10
  124. package/src/plugins/metaManage/services/MetaService.ts +376 -376
  125. package/src/plugins/notification/NotificationPlugin.ts +68 -68
  126. package/src/plugins/notification/NotificationPluginTypes.ts +13 -13
  127. package/src/plugins/notification/NotificationService.ts +25 -25
  128. package/src/plugins/notification/actionHandlers/index.ts +3 -3
  129. package/src/plugins/notification/models/Notification.ts +60 -60
  130. package/src/plugins/notification/models/index.ts +3 -3
  131. package/src/plugins/notification/routes/index.ts +1 -1
  132. package/src/plugins/routeManage/RouteManagePlugin.ts +64 -64
  133. package/src/plugins/routeManage/actionHandlers/httpProxy.ts +13 -13
  134. package/src/plugins/routeManage/actionHandlers/mock.ts +28 -28
  135. package/src/plugins/sequence/SequencePlugin.ts +146 -146
  136. package/src/plugins/sequence/SequencePluginTypes.ts +69 -69
  137. package/src/plugins/sequence/SequenceService.ts +92 -92
  138. package/src/plugins/sequence/actionHandlers/generateSn.ts +32 -32
  139. package/src/plugins/sequence/actionHandlers/index.ts +4 -4
  140. package/src/plugins/sequence/models/SequenceAutoIncrementRecord.ts +49 -49
  141. package/src/plugins/sequence/models/SequenceRule.ts +42 -42
  142. package/src/plugins/sequence/models/index.ts +4 -4
  143. package/src/plugins/sequence/routes/generateSn.ts +15 -15
  144. package/src/plugins/sequence/routes/index.ts +3 -3
  145. package/src/plugins/sequence/segment-utility.ts +11 -11
  146. package/src/plugins/sequence/segments/autoIncrement.ts +90 -90
  147. package/src/plugins/sequence/segments/dayOfMonth.ts +19 -19
  148. package/src/plugins/sequence/segments/index.ts +9 -9
  149. package/src/plugins/sequence/segments/literal.ts +16 -16
  150. package/src/plugins/sequence/segments/month.ts +19 -19
  151. package/src/plugins/sequence/segments/parameter.ts +20 -20
  152. package/src/plugins/sequence/segments/year.ts +19 -19
  153. package/src/plugins/serverOperation/ServerOperationPlugin.ts +93 -93
  154. package/src/plugins/serverOperation/ServerOperationPluginTypes.ts +25 -25
  155. package/src/plugins/serverOperation/actionHandlers/index.ts +4 -4
  156. package/src/plugins/serverOperation/actionHandlers/runServerOperation.ts +20 -20
  157. package/src/plugins/setting/SettingPlugin.ts +68 -68
  158. package/src/plugins/setting/SettingPluginTypes.ts +37 -37
  159. package/src/plugins/setting/SettingService.ts +222 -222
  160. package/src/plugins/setting/actionHandlers/getSystemSettingValues.ts +30 -30
  161. package/src/plugins/setting/actionHandlers/getUserSettingValues.ts +38 -38
  162. package/src/plugins/setting/actionHandlers/index.ts +6 -6
  163. package/src/plugins/setting/actionHandlers/setSystemSettingValues.ts +30 -30
  164. package/src/plugins/setting/models/SystemSettingGroupSetting.ts +57 -57
  165. package/src/plugins/setting/models/SystemSettingItem.ts +48 -48
  166. package/src/plugins/setting/models/SystemSettingItemSetting.ts +73 -73
  167. package/src/plugins/setting/models/UserSettingGroupSetting.ts +57 -57
  168. package/src/plugins/setting/models/UserSettingItem.ts +55 -55
  169. package/src/plugins/setting/models/UserSettingItemSetting.ts +73 -73
  170. package/src/plugins/setting/models/index.ts +8 -8
  171. package/src/plugins/setting/routes/getSystemSettingValues.ts +15 -15
  172. package/src/plugins/setting/routes/getUserSettingValues.ts +15 -15
  173. package/src/plugins/setting/routes/index.ts +5 -5
  174. package/src/plugins/setting/routes/setSystemSettingValues.ts +15 -15
  175. package/src/plugins/stateMachine/StateMachinePlugin.ts +196 -196
  176. package/src/plugins/stateMachine/StateMachinePluginTypes.ts +48 -48
  177. package/src/plugins/stateMachine/actionHandlers/index.ts +4 -4
  178. package/src/plugins/stateMachine/actionHandlers/sendStateMachineEvent.ts +54 -54
  179. package/src/plugins/stateMachine/models/StateMachine.ts +42 -42
  180. package/src/plugins/stateMachine/models/index.ts +3 -3
  181. package/src/plugins/stateMachine/routes/index.ts +3 -3
  182. package/src/plugins/stateMachine/routes/sendStateMachineEvent.ts +15 -15
  183. package/src/plugins/stateMachine/stateMachineHelper.ts +36 -36
  184. package/src/plugins/webhooks/WebhooksPlugin.ts +148 -148
  185. package/src/plugins/webhooks/pluginConfig.ts +75 -75
  186. package/src/polyfill.ts +5 -5
  187. package/src/proxy/mod.ts +38 -38
  188. package/src/proxy/types.ts +21 -21
  189. package/src/queryBuilder/index.ts +1 -1
  190. package/src/queryBuilder/queryBuilder.ts +755 -755
  191. package/src/server.ts +567 -556
  192. package/src/types/cron-job-types.ts +71 -71
  193. package/src/types.ts +884 -882
  194. package/src/utilities/accessControlUtility.ts +33 -33
  195. package/src/utilities/entityUtility.ts +18 -18
  196. package/src/utilities/errorUtility.ts +15 -15
  197. package/src/utilities/fsUtility.ts +137 -137
  198. package/src/utilities/httpUtility.ts +19 -19
  199. package/src/utilities/jwtUtility.ts +26 -26
  200. package/src/utilities/passwordUtility.ts +26 -26
  201. package/src/utilities/pathUtility.ts +14 -14
  202. package/src/utilities/timeUtility.ts +17 -17
  203. package/src/utilities/typeUtility.ts +15 -15
  204. package/tsconfig.json +19 -19
@@ -1,48 +1,48 @@
1
- import { AnyActorRef, AnyEventObject, EventObject, MachineConfig, MachineContext, MachineSnapshot, MetaObject, StateValue } from "xstate";
2
-
3
- export type PropertyStateMachineConfig = {
4
- enabled: boolean;
5
- config: MachineConfig<any, any>;
6
- transferControl?: boolean;
7
- };
8
-
9
- export type SendStateMachineEventOptions = {
10
- code: string;
11
- };
12
-
13
- export type StateMachineEvent = AnyEventObject;
14
-
15
- export type SendStateMachineEventInput = {
16
- code?: string;
17
- context: any;
18
- currentState: string;
19
- event: StateMachineEvent;
20
- };
21
-
22
- export type GetStateMachineNextSnapshotOptions = {
23
- machineConfig: MachineConfig<any, any>;
24
- context: any;
25
- currentState: string;
26
- event: StateMachineEvent;
27
- };
28
-
29
- export type DefaultStateMachineSnapshot = MachineSnapshot<
30
- MachineContext,
31
- EventObject,
32
- Record<string, AnyActorRef | undefined>,
33
- StateValue,
34
- string,
35
- unknown,
36
- MetaObject
37
- >;
38
-
39
- export type TryGetStateMachineNextSnapshotResult = TryGetStateMachineNextSnapshotPositiveResult | TryGetStateMachineNextSnapshotNegativeResult;
40
-
41
- export type TryGetStateMachineNextSnapshotPositiveResult = {
42
- canTransfer: true;
43
- nextSnapshot: DefaultStateMachineSnapshot;
44
- };
45
-
46
- export type TryGetStateMachineNextSnapshotNegativeResult = {
47
- canTransfer: false;
48
- };
1
+ import { AnyActorRef, AnyEventObject, EventObject, MachineConfig, MachineContext, MachineSnapshot, MetaObject, StateValue } from "xstate";
2
+
3
+ export type PropertyStateMachineConfig = {
4
+ enabled: boolean;
5
+ config: MachineConfig<any, any>;
6
+ transferControl?: boolean;
7
+ };
8
+
9
+ export type SendStateMachineEventOptions = {
10
+ code: string;
11
+ };
12
+
13
+ export type StateMachineEvent = AnyEventObject;
14
+
15
+ export type SendStateMachineEventInput = {
16
+ code?: string;
17
+ context: any;
18
+ currentState: string;
19
+ event: StateMachineEvent;
20
+ };
21
+
22
+ export type GetStateMachineNextSnapshotOptions = {
23
+ machineConfig: MachineConfig<any, any>;
24
+ context: any;
25
+ currentState: string;
26
+ event: StateMachineEvent;
27
+ };
28
+
29
+ export type DefaultStateMachineSnapshot = MachineSnapshot<
30
+ MachineContext,
31
+ EventObject,
32
+ Record<string, AnyActorRef | undefined>,
33
+ StateValue,
34
+ string,
35
+ unknown,
36
+ MetaObject
37
+ >;
38
+
39
+ export type TryGetStateMachineNextSnapshotResult = TryGetStateMachineNextSnapshotPositiveResult | TryGetStateMachineNextSnapshotNegativeResult;
40
+
41
+ export type TryGetStateMachineNextSnapshotPositiveResult = {
42
+ canTransfer: true;
43
+ nextSnapshot: DefaultStateMachineSnapshot;
44
+ };
45
+
46
+ export type TryGetStateMachineNextSnapshotNegativeResult = {
47
+ canTransfer: false;
48
+ };
@@ -1,4 +1,4 @@
1
- import { IPluginActionHandler } from "~/core/actionHandler";
2
- import * as sendStateMachineEvent from "./sendStateMachineEvent";
3
-
4
- export default [sendStateMachineEvent] satisfies IPluginActionHandler[];
1
+ import { IPluginActionHandler } from "~/core/actionHandler";
2
+ import * as sendStateMachineEvent from "./sendStateMachineEvent";
3
+
4
+ export default [sendStateMachineEvent] satisfies IPluginActionHandler[];
@@ -1,54 +1,54 @@
1
- import { ActionHandlerContext } from "~/core/actionHandler";
2
- import { RapidPlugin } from "~/core/server";
3
- import { SendStateMachineEventInput, SendStateMachineEventOptions } from "../StateMachinePluginTypes";
4
- import { getStateMachineNextSnapshot } from "../stateMachineHelper";
5
-
6
- export const code = "sendStateMachineEvent";
7
-
8
- export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: SendStateMachineEventOptions) {
9
- const { server, routerContext: routeContext } = ctx;
10
- const { response } = routeContext;
11
-
12
- const input: SendStateMachineEventInput = ctx.input;
13
- if (options?.code) {
14
- input.code = options.code;
15
- }
16
-
17
- if (!input.code) {
18
- throw new Error(`State machine code is required when sending event.`);
19
- }
20
-
21
- const stateMachineDataAccessor = server.getDataAccessor({
22
- singularCode: "state_machine",
23
- });
24
-
25
- const stateMachine = await stateMachineDataAccessor.findOne(
26
- {
27
- filters: [
28
- {
29
- operator: "eq",
30
- field: "code",
31
- value: input.code,
32
- },
33
- ],
34
- },
35
- routeContext?.getDbTransactionClient(),
36
- );
37
-
38
- if (!stateMachine) {
39
- throw new Error(`State machine with code '${input.code}' was not found.`);
40
- }
41
-
42
- stateMachine.config.id = input.code;
43
-
44
- const snapshot = await getStateMachineNextSnapshot({
45
- machineConfig: stateMachine.config,
46
- context: input.context,
47
- currentState: input.currentState,
48
- event: input.event,
49
- });
50
-
51
- response.json({
52
- state: snapshot.value,
53
- });
54
- }
1
+ import { ActionHandlerContext } from "~/core/actionHandler";
2
+ import { RapidPlugin } from "~/core/server";
3
+ import { SendStateMachineEventInput, SendStateMachineEventOptions } from "../StateMachinePluginTypes";
4
+ import { getStateMachineNextSnapshot } from "../stateMachineHelper";
5
+
6
+ export const code = "sendStateMachineEvent";
7
+
8
+ export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: SendStateMachineEventOptions) {
9
+ const { server, routerContext: routeContext } = ctx;
10
+ const { response } = routeContext;
11
+
12
+ const input: SendStateMachineEventInput = ctx.input;
13
+ if (options?.code) {
14
+ input.code = options.code;
15
+ }
16
+
17
+ if (!input.code) {
18
+ throw new Error(`State machine code is required when sending event.`);
19
+ }
20
+
21
+ const stateMachineDataAccessor = server.getDataAccessor({
22
+ singularCode: "state_machine",
23
+ });
24
+
25
+ const stateMachine = await stateMachineDataAccessor.findOne(
26
+ {
27
+ filters: [
28
+ {
29
+ operator: "eq",
30
+ field: "code",
31
+ value: input.code,
32
+ },
33
+ ],
34
+ },
35
+ routeContext?.getDbTransactionClient(),
36
+ );
37
+
38
+ if (!stateMachine) {
39
+ throw new Error(`State machine with code '${input.code}' was not found.`);
40
+ }
41
+
42
+ stateMachine.config.id = input.code;
43
+
44
+ const snapshot = await getStateMachineNextSnapshot({
45
+ machineConfig: stateMachine.config,
46
+ context: input.context,
47
+ currentState: input.currentState,
48
+ event: input.event,
49
+ });
50
+
51
+ response.json({
52
+ state: snapshot.value,
53
+ });
54
+ }
@@ -1,42 +1,42 @@
1
- import { RpdDataModel } from "~/types";
2
-
3
- export default {
4
- maintainedBy: "stateMachinePlugin",
5
- namespace: "svc",
6
- name: "state_machine",
7
- singularCode: "state_machine",
8
- pluralCode: "state_machines",
9
- schema: "public",
10
- tableName: "state_machines",
11
- properties: [
12
- {
13
- name: "id",
14
- code: "id",
15
- columnName: "id",
16
- type: "integer",
17
- required: true,
18
- autoIncrement: true,
19
- },
20
- {
21
- name: "code",
22
- code: "code",
23
- columnName: "code",
24
- type: "text",
25
- required: true,
26
- },
27
- {
28
- name: "description",
29
- code: "description",
30
- columnName: "description",
31
- type: "text",
32
- required: false,
33
- },
34
- {
35
- name: "config",
36
- code: "config",
37
- columnName: "config",
38
- type: "json",
39
- required: false,
40
- },
41
- ],
42
- } as RpdDataModel;
1
+ import { RpdDataModel } from "~/types";
2
+
3
+ export default {
4
+ maintainedBy: "stateMachinePlugin",
5
+ namespace: "svc",
6
+ name: "state_machine",
7
+ singularCode: "state_machine",
8
+ pluralCode: "state_machines",
9
+ schema: "public",
10
+ tableName: "state_machines",
11
+ properties: [
12
+ {
13
+ name: "id",
14
+ code: "id",
15
+ columnName: "id",
16
+ type: "integer",
17
+ required: true,
18
+ autoIncrement: true,
19
+ },
20
+ {
21
+ name: "code",
22
+ code: "code",
23
+ columnName: "code",
24
+ type: "text",
25
+ required: true,
26
+ },
27
+ {
28
+ name: "description",
29
+ code: "description",
30
+ columnName: "description",
31
+ type: "text",
32
+ required: false,
33
+ },
34
+ {
35
+ name: "config",
36
+ code: "config",
37
+ columnName: "config",
38
+ type: "json",
39
+ required: false,
40
+ },
41
+ ],
42
+ } as RpdDataModel;
@@ -1,3 +1,3 @@
1
- import StateMachine from "./StateMachine";
2
-
3
- export default [StateMachine];
1
+ import StateMachine from "./StateMachine";
2
+
3
+ export default [StateMachine];
@@ -1,3 +1,3 @@
1
- import sendStateMachineEvent from "./sendStateMachineEvent";
2
-
3
- export default [sendStateMachineEvent];
1
+ import sendStateMachineEvent from "./sendStateMachineEvent";
2
+
3
+ export default [sendStateMachineEvent];
@@ -1,15 +1,15 @@
1
- import { RpdRoute } from "~/types";
2
-
3
- export default {
4
- namespace: "svc",
5
- name: "svc.sendStateMachineEvent",
6
- code: "svc.sendStateMachineEvent",
7
- type: "RESTful",
8
- method: "POST",
9
- endpoint: "/svc/sendStateMachineEvent",
10
- actions: [
11
- {
12
- code: "sendStateMachineEvent",
13
- },
14
- ],
15
- } satisfies RpdRoute;
1
+ import { RpdRoute } from "~/types";
2
+
3
+ export default {
4
+ namespace: "svc",
5
+ name: "svc.sendStateMachineEvent",
6
+ code: "svc.sendStateMachineEvent",
7
+ type: "RESTful",
8
+ method: "POST",
9
+ endpoint: "/svc/sendStateMachineEvent",
10
+ actions: [
11
+ {
12
+ code: "sendStateMachineEvent",
13
+ },
14
+ ],
15
+ } satisfies RpdRoute;
@@ -1,36 +1,36 @@
1
- import { DefaultStateMachineSnapshot, GetStateMachineNextSnapshotOptions, TryGetStateMachineNextSnapshotResult } from "./StateMachinePluginTypes";
2
- import { createMachine, getInitialSnapshot, getNextSnapshot } from "xstate";
3
-
4
- export async function getStateMachineNextSnapshot(options: GetStateMachineNextSnapshotOptions) {
5
- const { machineConfig, currentState, event } = options;
6
- machineConfig.initial = currentState;
7
-
8
- const machine = createMachine(machineConfig);
9
- const snapshot = getInitialSnapshot(machine);
10
-
11
- if (!snapshot.can(event)) {
12
- throw new Error(`'${event.type}' action is not allowed at '${currentState}' state.`);
13
- }
14
-
15
- const nextSnapshot = getNextSnapshot(machine, snapshot, event);
16
- return nextSnapshot;
17
- }
18
-
19
- export async function tryGetStateMachineNextSnapshot(options: GetStateMachineNextSnapshotOptions): Promise<TryGetStateMachineNextSnapshotResult> {
20
- const { machineConfig, currentState, event } = options;
21
- machineConfig.initial = currentState;
22
-
23
- const machine = createMachine(machineConfig);
24
- const snapshot = getInitialSnapshot(machine);
25
-
26
- const canTransfer = snapshot.can(event);
27
- let nextSnapshot: DefaultStateMachineSnapshot;
28
- if (canTransfer) {
29
- nextSnapshot = getNextSnapshot(machine, snapshot, event);
30
- }
31
-
32
- return {
33
- canTransfer,
34
- nextSnapshot,
35
- };
36
- }
1
+ import { DefaultStateMachineSnapshot, GetStateMachineNextSnapshotOptions, TryGetStateMachineNextSnapshotResult } from "./StateMachinePluginTypes";
2
+ import { createMachine, getInitialSnapshot, getNextSnapshot } from "xstate";
3
+
4
+ export async function getStateMachineNextSnapshot(options: GetStateMachineNextSnapshotOptions) {
5
+ const { machineConfig, currentState, event } = options;
6
+ machineConfig.initial = currentState;
7
+
8
+ const machine = createMachine(machineConfig);
9
+ const snapshot = getInitialSnapshot(machine);
10
+
11
+ if (!snapshot.can(event)) {
12
+ throw new Error(`'${event.type}' action is not allowed at '${currentState}' state.`);
13
+ }
14
+
15
+ const nextSnapshot = getNextSnapshot(machine, snapshot, event);
16
+ return nextSnapshot;
17
+ }
18
+
19
+ export async function tryGetStateMachineNextSnapshot(options: GetStateMachineNextSnapshotOptions): Promise<TryGetStateMachineNextSnapshotResult> {
20
+ const { machineConfig, currentState, event } = options;
21
+ machineConfig.initial = currentState;
22
+
23
+ const machine = createMachine(machineConfig);
24
+ const snapshot = getInitialSnapshot(machine);
25
+
26
+ const canTransfer = snapshot.can(event);
27
+ let nextSnapshot: DefaultStateMachineSnapshot;
28
+ if (canTransfer) {
29
+ nextSnapshot = getNextSnapshot(machine, snapshot, event);
30
+ }
31
+
32
+ return {
33
+ canTransfer,
34
+ nextSnapshot,
35
+ };
36
+ }