@ruiapp/rapid-core 0.5.11 → 0.5.13

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 (185) hide show
  1. package/CHANGELOG.md +7 -7
  2. package/dist/facilities/cache/CacheFacilityTypes.d.ts +4 -2
  3. package/dist/facilities/cache/MemoryCache.d.ts +3 -1
  4. package/dist/index.d.ts +4 -0
  5. package/dist/index.js +131 -72
  6. package/dist/utilities/entityUtility.d.ts +1 -0
  7. package/dist/utilities/passwordUtility.d.ts +14 -0
  8. package/package.json +2 -2
  9. package/rollup.config.js +16 -16
  10. package/src/bootstrapApplicationConfig.ts +638 -638
  11. package/src/core/actionHandler.ts +22 -22
  12. package/src/core/eventManager.ts +20 -20
  13. package/src/core/facility.ts +7 -7
  14. package/src/core/http/formDataParser.ts +89 -89
  15. package/src/core/http-types.ts +4 -4
  16. package/src/core/pluginManager.ts +175 -175
  17. package/src/core/providers/runtimeProvider.ts +5 -5
  18. package/src/core/request.ts +95 -95
  19. package/src/core/response.ts +79 -79
  20. package/src/core/routeContext.ts +100 -100
  21. package/src/core/routesBuilder.ts +88 -88
  22. package/src/core/server.ts +145 -145
  23. package/src/dataAccess/columnTypeMapper.ts +22 -22
  24. package/src/dataAccess/dataAccessTypes.ts +163 -163
  25. package/src/dataAccess/dataAccessor.ts +135 -135
  26. package/src/dataAccess/entityManager.ts +1910 -1910
  27. package/src/dataAccess/entityMapper.ts +100 -100
  28. package/src/dataAccess/propertyMapper.ts +28 -28
  29. package/src/deno-std/assert/assert.ts +9 -9
  30. package/src/deno-std/assert/assertion_error.ts +7 -7
  31. package/src/deno-std/datetime/to_imf.ts +32 -32
  32. package/src/deno-std/encoding/base64.ts +141 -141
  33. package/src/deno-std/http/cookie.ts +372 -372
  34. package/src/facilities/cache/CacheFacilityTypes.ts +29 -27
  35. package/src/facilities/cache/CacheFactory.ts +31 -31
  36. package/src/facilities/cache/MemoryCache.ts +58 -42
  37. package/src/facilities/cache/MemoryCacheProvider.ts +15 -15
  38. package/src/facilities/log/LogFacility.ts +35 -35
  39. package/src/helpers/entityHelpers.ts +76 -76
  40. package/src/helpers/filterHelper.ts +148 -148
  41. package/src/helpers/inputHelper.ts +11 -11
  42. package/src/helpers/metaHelper.ts +104 -104
  43. package/src/helpers/runCollectionEntityActionHandler.ts +57 -57
  44. package/src/index.ts +67 -63
  45. package/src/plugins/auth/AuthPlugin.ts +93 -93
  46. package/src/plugins/auth/actionHandlers/changePassword.ts +60 -61
  47. package/src/plugins/auth/actionHandlers/createSession.ts +68 -68
  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 +44 -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 +112 -112
  62. package/src/plugins/cronJob/CronJobPluginTypes.ts +49 -49
  63. package/src/plugins/cronJob/actionHandlers/index.ts +4 -4
  64. package/src/plugins/cronJob/actionHandlers/runCronJob.ts +29 -29
  65. package/src/plugins/cronJob/routes/index.ts +3 -3
  66. package/src/plugins/cronJob/routes/runCronJob.ts +15 -15
  67. package/src/plugins/dataManage/DataManagePlugin.ts +163 -163
  68. package/src/plugins/dataManage/actionHandlers/addEntityRelations.ts +15 -15
  69. package/src/plugins/dataManage/actionHandlers/countCollectionEntities.ts +17 -17
  70. package/src/plugins/dataManage/actionHandlers/createCollectionEntitiesBatch.ts +81 -81
  71. package/src/plugins/dataManage/actionHandlers/createCollectionEntity.ts +20 -20
  72. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntities.ts +45 -45
  73. package/src/plugins/dataManage/actionHandlers/deleteCollectionEntityById.ts +20 -20
  74. package/src/plugins/dataManage/actionHandlers/findCollectionEntities.ts +27 -27
  75. package/src/plugins/dataManage/actionHandlers/findCollectionEntityById.ts +30 -30
  76. package/src/plugins/dataManage/actionHandlers/queryDatabase.ts +22 -22
  77. package/src/plugins/dataManage/actionHandlers/removeEntityRelations.ts +15 -15
  78. package/src/plugins/dataManage/actionHandlers/updateCollectionEntityById.ts +38 -38
  79. package/src/plugins/entityAccessControl/EntityAccessControlPlugin.ts +146 -146
  80. package/src/plugins/fileManage/FileManagePlugin.ts +52 -52
  81. package/src/plugins/fileManage/actionHandlers/downloadDocument.ts +65 -65
  82. package/src/plugins/fileManage/actionHandlers/downloadFile.ts +44 -44
  83. package/src/plugins/fileManage/actionHandlers/uploadFile.ts +33 -33
  84. package/src/plugins/fileManage/routes/downloadDocument.ts +15 -15
  85. package/src/plugins/fileManage/routes/downloadFile.ts +15 -15
  86. package/src/plugins/fileManage/routes/index.ts +5 -5
  87. package/src/plugins/fileManage/routes/uploadFile.ts +15 -15
  88. package/src/plugins/license/LicensePlugin.ts +79 -79
  89. package/src/plugins/license/LicensePluginTypes.ts +95 -95
  90. package/src/plugins/license/LicenseService.ts +118 -118
  91. package/src/plugins/license/actionHandlers/getLicense.ts +18 -18
  92. package/src/plugins/license/actionHandlers/index.ts +4 -4
  93. package/src/plugins/license/helpers/certHelper.ts +21 -21
  94. package/src/plugins/license/helpers/cryptoHelper.ts +47 -47
  95. package/src/plugins/license/models/index.ts +1 -1
  96. package/src/plugins/license/routes/getLicense.ts +15 -15
  97. package/src/plugins/license/routes/index.ts +3 -3
  98. package/src/plugins/mail/MailPlugin.ts +74 -74
  99. package/src/plugins/mail/MailPluginTypes.ts +27 -27
  100. package/src/plugins/mail/MailService.ts +38 -38
  101. package/src/plugins/mail/actionHandlers/index.ts +3 -3
  102. package/src/plugins/mail/models/index.ts +1 -1
  103. package/src/plugins/mail/routes/index.ts +1 -1
  104. package/src/plugins/metaManage/MetaManagePlugin.ts +530 -530
  105. package/src/plugins/metaManage/actionHandlers/getMetaModelDetail.ts +10 -10
  106. package/src/plugins/metaManage/actionHandlers/listMetaModels.ts +9 -9
  107. package/src/plugins/metaManage/actionHandlers/listMetaRoutes.ts +9 -9
  108. package/src/plugins/notification/NotificationPlugin.ts +68 -68
  109. package/src/plugins/notification/NotificationPluginTypes.ts +13 -13
  110. package/src/plugins/notification/NotificationService.ts +25 -25
  111. package/src/plugins/notification/actionHandlers/index.ts +3 -3
  112. package/src/plugins/notification/models/Notification.ts +60 -60
  113. package/src/plugins/notification/models/index.ts +3 -3
  114. package/src/plugins/notification/routes/index.ts +1 -1
  115. package/src/plugins/routeManage/RouteManagePlugin.ts +62 -62
  116. package/src/plugins/routeManage/actionHandlers/httpProxy.ts +13 -13
  117. package/src/plugins/sequence/SequencePlugin.ts +146 -146
  118. package/src/plugins/sequence/SequencePluginTypes.ts +69 -69
  119. package/src/plugins/sequence/SequenceService.ts +92 -92
  120. package/src/plugins/sequence/actionHandlers/generateSn.ts +32 -32
  121. package/src/plugins/sequence/actionHandlers/index.ts +4 -4
  122. package/src/plugins/sequence/models/SequenceAutoIncrementRecord.ts +49 -49
  123. package/src/plugins/sequence/models/SequenceRule.ts +42 -42
  124. package/src/plugins/sequence/models/index.ts +4 -4
  125. package/src/plugins/sequence/routes/generateSn.ts +15 -15
  126. package/src/plugins/sequence/routes/index.ts +3 -3
  127. package/src/plugins/sequence/segment-utility.ts +11 -11
  128. package/src/plugins/sequence/segments/autoIncrement.ts +90 -90
  129. package/src/plugins/sequence/segments/dayOfMonth.ts +19 -19
  130. package/src/plugins/sequence/segments/index.ts +9 -9
  131. package/src/plugins/sequence/segments/literal.ts +16 -16
  132. package/src/plugins/sequence/segments/month.ts +19 -19
  133. package/src/plugins/sequence/segments/parameter.ts +20 -20
  134. package/src/plugins/sequence/segments/year.ts +19 -19
  135. package/src/plugins/serverOperation/ServerOperationPlugin.ts +91 -91
  136. package/src/plugins/serverOperation/ServerOperationPluginTypes.ts +15 -15
  137. package/src/plugins/serverOperation/actionHandlers/index.ts +4 -4
  138. package/src/plugins/serverOperation/actionHandlers/runServerOperation.ts +15 -15
  139. package/src/plugins/setting/SettingPlugin.ts +68 -68
  140. package/src/plugins/setting/SettingPluginTypes.ts +37 -37
  141. package/src/plugins/setting/SettingService.ts +213 -213
  142. package/src/plugins/setting/actionHandlers/getSystemSettingValues.ts +30 -30
  143. package/src/plugins/setting/actionHandlers/getUserSettingValues.ts +38 -38
  144. package/src/plugins/setting/actionHandlers/index.ts +6 -6
  145. package/src/plugins/setting/actionHandlers/setSystemSettingValues.ts +30 -30
  146. package/src/plugins/setting/models/SystemSettingGroupSetting.ts +57 -57
  147. package/src/plugins/setting/models/SystemSettingItem.ts +48 -48
  148. package/src/plugins/setting/models/SystemSettingItemSetting.ts +73 -73
  149. package/src/plugins/setting/models/UserSettingGroupSetting.ts +57 -57
  150. package/src/plugins/setting/models/UserSettingItem.ts +55 -55
  151. package/src/plugins/setting/models/UserSettingItemSetting.ts +73 -73
  152. package/src/plugins/setting/models/index.ts +8 -8
  153. package/src/plugins/setting/routes/getSystemSettingValues.ts +15 -15
  154. package/src/plugins/setting/routes/getUserSettingValues.ts +15 -15
  155. package/src/plugins/setting/routes/index.ts +5 -5
  156. package/src/plugins/setting/routes/setSystemSettingValues.ts +15 -15
  157. package/src/plugins/stateMachine/StateMachinePlugin.ts +196 -196
  158. package/src/plugins/stateMachine/StateMachinePluginTypes.ts +48 -48
  159. package/src/plugins/stateMachine/actionHandlers/index.ts +4 -4
  160. package/src/plugins/stateMachine/actionHandlers/sendStateMachineEvent.ts +54 -54
  161. package/src/plugins/stateMachine/models/StateMachine.ts +42 -42
  162. package/src/plugins/stateMachine/models/index.ts +3 -3
  163. package/src/plugins/stateMachine/routes/index.ts +3 -3
  164. package/src/plugins/stateMachine/routes/sendStateMachineEvent.ts +15 -15
  165. package/src/plugins/stateMachine/stateMachineHelper.ts +36 -36
  166. package/src/plugins/webhooks/WebhooksPlugin.ts +148 -148
  167. package/src/plugins/webhooks/pluginConfig.ts +75 -75
  168. package/src/polyfill.ts +5 -5
  169. package/src/proxy/mod.ts +38 -38
  170. package/src/proxy/types.ts +21 -21
  171. package/src/queryBuilder/index.ts +1 -1
  172. package/src/queryBuilder/queryBuilder.ts +668 -668
  173. package/src/server.ts +480 -480
  174. package/src/types.ts +722 -722
  175. package/src/utilities/accessControlUtility.ts +33 -33
  176. package/src/utilities/entityUtility.ts +18 -0
  177. package/src/utilities/errorUtility.ts +15 -15
  178. package/src/utilities/fsUtility.ts +61 -61
  179. package/src/utilities/httpUtility.ts +19 -19
  180. package/src/utilities/jwtUtility.ts +26 -26
  181. package/src/utilities/passwordUtility.ts +26 -0
  182. package/src/utilities/pathUtility.ts +14 -14
  183. package/src/utilities/timeUtility.ts +9 -9
  184. package/src/utilities/typeUtility.ts +15 -15
  185. 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
+ }