quidproquo-xstate 0.1.2 → 0.1.4

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 (85) hide show
  1. package/lib/commonjs/actionProcessor/getStateMachineCreateActionProcessor.js +1 -0
  2. package/lib/commonjs/actionProcessor/getStateMachineCreateActionProcessor.js.map +1 -0
  3. package/lib/commonjs/actionProcessor/getStateMachineGetActionProcessor.js +1 -0
  4. package/lib/commonjs/actionProcessor/getStateMachineGetActionProcessor.js.map +1 -0
  5. package/lib/commonjs/actionProcessor/getStateMachineGetStateActionProcessor.js +1 -0
  6. package/lib/commonjs/actionProcessor/getStateMachineGetStateActionProcessor.js.map +1 -0
  7. package/lib/commonjs/actionProcessor/getStateMachineSendEventActionProcessor.js +1 -0
  8. package/lib/commonjs/actionProcessor/getStateMachineSendEventActionProcessor.js.map +1 -0
  9. package/lib/commonjs/actionProcessor/index.js +1 -0
  10. package/lib/commonjs/actionProcessor/index.js.map +1 -0
  11. package/lib/commonjs/actions/StateMachineActionType.js +1 -0
  12. package/lib/commonjs/actions/StateMachineActionType.js.map +1 -0
  13. package/lib/commonjs/actions/StateMachineCreateActionRequester.js +1 -0
  14. package/lib/commonjs/actions/StateMachineCreateActionRequester.js.map +1 -0
  15. package/lib/commonjs/actions/StateMachineCreateActionTypes.js +1 -0
  16. package/lib/commonjs/actions/StateMachineCreateActionTypes.js.map +1 -0
  17. package/lib/commonjs/actions/StateMachineGetActionRequester.js +1 -0
  18. package/lib/commonjs/actions/StateMachineGetActionRequester.js.map +1 -0
  19. package/lib/commonjs/actions/StateMachineGetActionTypes.js +1 -0
  20. package/lib/commonjs/actions/StateMachineGetActionTypes.js.map +1 -0
  21. package/lib/commonjs/actions/StateMachineGetStateActionRequester.js +1 -0
  22. package/lib/commonjs/actions/StateMachineGetStateActionRequester.js.map +1 -0
  23. package/lib/commonjs/actions/StateMachineGetStateActionTypes.js +1 -0
  24. package/lib/commonjs/actions/StateMachineGetStateActionTypes.js.map +1 -0
  25. package/lib/commonjs/actions/StateMachineSendEventActionRequester.js +1 -0
  26. package/lib/commonjs/actions/StateMachineSendEventActionRequester.js.map +1 -0
  27. package/lib/commonjs/actions/StateMachineSendEventActionTypes.js +1 -0
  28. package/lib/commonjs/actions/StateMachineSendEventActionTypes.js.map +1 -0
  29. package/lib/commonjs/actions/index.js +1 -0
  30. package/lib/commonjs/actions/index.js.map +1 -0
  31. package/lib/commonjs/config/QPQConfig.js +1 -0
  32. package/lib/commonjs/config/QPQConfig.js.map +1 -0
  33. package/lib/commonjs/config/index.js +1 -0
  34. package/lib/commonjs/config/index.js.map +1 -0
  35. package/lib/commonjs/config/qpqXStateConfigUtils.js +1 -0
  36. package/lib/commonjs/config/qpqXStateConfigUtils.js.map +1 -0
  37. package/lib/commonjs/config/settings/index.js +1 -0
  38. package/lib/commonjs/config/settings/index.js.map +1 -0
  39. package/lib/commonjs/config/settings/stateMachine.js +1 -0
  40. package/lib/commonjs/config/settings/stateMachine.js.map +1 -0
  41. package/lib/commonjs/index.js +1 -0
  42. package/lib/commonjs/index.js.map +1 -0
  43. package/lib/esm/actionProcessor/getStateMachineCreateActionProcessor.js +1 -0
  44. package/lib/esm/actionProcessor/getStateMachineCreateActionProcessor.js.map +1 -0
  45. package/lib/esm/actionProcessor/getStateMachineGetActionProcessor.js +1 -0
  46. package/lib/esm/actionProcessor/getStateMachineGetActionProcessor.js.map +1 -0
  47. package/lib/esm/actionProcessor/getStateMachineGetStateActionProcessor.js +1 -0
  48. package/lib/esm/actionProcessor/getStateMachineGetStateActionProcessor.js.map +1 -0
  49. package/lib/esm/actionProcessor/getStateMachineSendEventActionProcessor.js +1 -0
  50. package/lib/esm/actionProcessor/getStateMachineSendEventActionProcessor.js.map +1 -0
  51. package/lib/esm/actionProcessor/index.js +1 -0
  52. package/lib/esm/actionProcessor/index.js.map +1 -0
  53. package/lib/esm/actions/StateMachineActionType.js +1 -0
  54. package/lib/esm/actions/StateMachineActionType.js.map +1 -0
  55. package/lib/esm/actions/StateMachineCreateActionRequester.js +1 -0
  56. package/lib/esm/actions/StateMachineCreateActionRequester.js.map +1 -0
  57. package/lib/esm/actions/StateMachineCreateActionTypes.js +1 -0
  58. package/lib/esm/actions/StateMachineCreateActionTypes.js.map +1 -0
  59. package/lib/esm/actions/StateMachineGetActionRequester.js +1 -0
  60. package/lib/esm/actions/StateMachineGetActionRequester.js.map +1 -0
  61. package/lib/esm/actions/StateMachineGetActionTypes.js +1 -0
  62. package/lib/esm/actions/StateMachineGetActionTypes.js.map +1 -0
  63. package/lib/esm/actions/StateMachineGetStateActionRequester.js +1 -0
  64. package/lib/esm/actions/StateMachineGetStateActionRequester.js.map +1 -0
  65. package/lib/esm/actions/StateMachineGetStateActionTypes.js +1 -0
  66. package/lib/esm/actions/StateMachineGetStateActionTypes.js.map +1 -0
  67. package/lib/esm/actions/StateMachineSendEventActionRequester.js +1 -0
  68. package/lib/esm/actions/StateMachineSendEventActionRequester.js.map +1 -0
  69. package/lib/esm/actions/StateMachineSendEventActionTypes.js +1 -0
  70. package/lib/esm/actions/StateMachineSendEventActionTypes.js.map +1 -0
  71. package/lib/esm/actions/index.js +1 -0
  72. package/lib/esm/actions/index.js.map +1 -0
  73. package/lib/esm/config/QPQConfig.js +1 -0
  74. package/lib/esm/config/QPQConfig.js.map +1 -0
  75. package/lib/esm/config/index.js +1 -0
  76. package/lib/esm/config/index.js.map +1 -0
  77. package/lib/esm/config/qpqXStateConfigUtils.js +1 -0
  78. package/lib/esm/config/qpqXStateConfigUtils.js.map +1 -0
  79. package/lib/esm/config/settings/index.js +1 -0
  80. package/lib/esm/config/settings/index.js.map +1 -0
  81. package/lib/esm/config/settings/stateMachine.js +1 -0
  82. package/lib/esm/config/settings/stateMachine.js.map +1 -0
  83. package/lib/esm/index.js +1 -0
  84. package/lib/esm/index.js.map +1 -0
  85. package/package.json +3 -3
@@ -66,3 +66,4 @@ const getStateMachineCreateActionProcessor = (qpqConfig) => __awaiter(void 0, vo
66
66
  });
67
67
  });
68
68
  exports.getStateMachineCreateActionProcessor = getStateMachineCreateActionProcessor;
69
+ //# sourceMappingURL=getStateMachineCreateActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineCreateActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineCreateActionProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreUpsert,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { createActor, createMachine } from 'xstate';\n\nimport { StateMachineActionType, StateMachineCreateActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineCreate = (qpqConfig: QPQConfig): StateMachineCreateActionProcessor<any> => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine Create'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n // XState: determine initial state and which entry actions fire\n const firedActions: string[] = [];\n const actionImpls: Record<string, () => void> = {};\n for (const actionName of Object.keys(smConfig.actions)) {\n actionImpls[actionName] = () => {\n firedActions.push(actionName);\n };\n }\n\n const machine = createMachine(smConfig.config as any, {\n actions: actionImpls,\n });\n\n const actor = createActor(machine);\n actor.start();\n const initialSnapshot = actor.getPersistedSnapshot();\n actor.stop();\n\n // Build entity with id and machine state\n const entity: Record<string, any> = { ...payload.item, id: payload.id };\n entity[smConfig.stateField] = initialSnapshot;\n\n // Persist to KVS\n const upsertResult = await resolveStory(function* () {\n yield* askKeyValueStoreUpsert(smConfig.keyValueStoreName, entity);\n }, []);\n if (upsertResult.error) {\n return actionResultError(upsertResult.error.errorType, upsertResult.error.errorText);\n }\n\n // Execute side-effect stories for any initial entry actions\n for (const actionName of firedActions) {\n const runtime = smConfig.actions[actionName];\n if (runtime) {\n const storyModule = await dynamicModuleLoader(runtime);\n const storyResult = await resolveStory(storyModule, [entity]);\n if (storyResult.error) {\n return actionResultError(storyResult.error.errorType, storyResult.error.errorText);\n }\n }\n }\n\n return actionResult(entity);\n };\n};\n\nexport const getStateMachineCreateActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.Create]: getProcessStateMachineCreate(qpqConfig),\n});\n"]}
@@ -39,3 +39,4 @@ const getStateMachineGetActionProcessor = (qpqConfig) => __awaiter(void 0, void
39
39
  });
40
40
  });
41
41
  exports.getStateMachineGetActionProcessor = getStateMachineGetActionProcessor;
42
+ //# sourceMappingURL=getStateMachineGetActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineGetActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineGetActionProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDASyB;AAEzB,wCAAoF;AACpF,sCAAkD;AAElD,MAAM,yBAAyB,GAAG,CAAC,SAAoB,EAAuC,EAAE;IAC9F,OAAO,CAAO,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,EAAE;QAC9G,MAAM,QAAQ,GAAG,IAAA,8BAAqB,EAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAA,mCAAiB,EAAC,+BAAa,CAAC,QAAQ,EAAE,4BAA4B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,6CAA2B,EAC9C,SAAS,EACT,CAAC,kBAAkB,CAAC,EACpB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC9B,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAC5D,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,mBAAmB,EACnB,cAAc,CACf,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC;YAC5C,OAAO,KAAK,CAAC,CAAC,IAAA,qCAAmB,EAAsB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,IAAA,mCAAiB,EAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAA,mCAAiB,EAAC,+BAAa,CAAC,QAAQ,EAAE,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,IAAA,8BAAY,EAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,iCAAiC,GAAgC,CAAO,SAAoB,EAAgC,EAAE;IAAC,OAAA,CAAC;QAC3I,CAAC,gCAAsB,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC;KACnE,CAAC,CAAA;EAAA,CAAC;AAFU,QAAA,iCAAiC,qCAE3C","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreGet,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { StateMachineActionType, StateMachineGetActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineGet = (qpqConfig: QPQConfig): StateMachineGetActionProcessor<any> => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine Get'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n const getResult = await resolveStory(function* () {\n return yield* askKeyValueStoreGet<Record<string, any>>(smConfig.keyValueStoreName, payload.id);\n }, []);\n if (getResult.error) {\n return actionResultError(getResult.error.errorType, getResult.error.errorText);\n }\n\n const entity = getResult.result;\n if (!entity) {\n return actionResultError(ErrorTypeEnum.NotFound, `Entity not found: ${payload.id}`);\n }\n\n return actionResult(entity);\n };\n};\n\nexport const getStateMachineGetActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.Get]: getProcessStateMachineGet(qpqConfig),\n});\n"]}
@@ -54,3 +54,4 @@ const getStateMachineGetStateActionProcessor = (qpqConfig) => __awaiter(void 0,
54
54
  });
55
55
  });
56
56
  exports.getStateMachineGetStateActionProcessor = getStateMachineGetStateActionProcessor;
57
+ //# sourceMappingURL=getStateMachineGetStateActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineGetStateActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineGetStateActionProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreGet,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { createActor, createMachine } from 'xstate';\n\nimport { StateMachineActionType, StateMachineGetStateActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineGetState = (qpqConfig: QPQConfig): StateMachineGetStateActionProcessor => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine GetState'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n // Load entity from KVS\n const getResult = await resolveStory(function* () {\n return yield* askKeyValueStoreGet<Record<string, any>>(smConfig.keyValueStoreName, payload.id);\n }, []);\n if (getResult.error) {\n return actionResultError(getResult.error.errorType, getResult.error.errorText);\n }\n\n const entity = getResult.result;\n if (!entity) {\n return actionResultError(ErrorTypeEnum.NotFound, `Entity not found: ${payload.id}`);\n }\n\n const persistedSnapshot = entity[smConfig.stateField];\n if (!persistedSnapshot) {\n return actionResultError(ErrorTypeEnum.NotFound, `No state machine state found on entity: ${payload.id}`);\n }\n\n // XState: rehydrate to read current state\n const machine = createMachine(smConfig.config as any);\n const actor = createActor(machine, { snapshot: persistedSnapshot });\n actor.start();\n\n const snapshot = actor.getSnapshot();\n actor.stop();\n\n return actionResult({\n value: typeof snapshot.value === 'string' ? snapshot.value : JSON.stringify(snapshot.value),\n done: snapshot.status === 'done',\n });\n };\n};\n\nexport const getStateMachineGetStateActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.GetState]: getProcessStateMachineGetState(qpqConfig),\n});\n"]}
@@ -102,3 +102,4 @@ const getStateMachineSendEventActionProcessor = (qpqConfig) => __awaiter(void 0,
102
102
  });
103
103
  });
104
104
  exports.getStateMachineSendEventActionProcessor = getStateMachineSendEventActionProcessor;
105
+ //# sourceMappingURL=getStateMachineSendEventActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineSendEventActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineSendEventActionProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreGet,\n askKeyValueStoreUpsert,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { createActor, createMachine } from 'xstate';\n\nimport { StateMachineActionType, StateMachineSendEventActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineSendEvent = (qpqConfig: QPQConfig): StateMachineSendEventActionProcessor<any> => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine SendEvent'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n // Load entity from KVS\n let entity: Record<string, any> | undefined;\n const getResult = await resolveStory(function* () {\n return yield* askKeyValueStoreGet<Record<string, any>>(smConfig.keyValueStoreName, payload.id);\n }, []);\n if (getResult.error) {\n return actionResultError(getResult.error.errorType, getResult.error.errorText);\n }\n entity = getResult.result;\n\n if (!entity) {\n return actionResultError(ErrorTypeEnum.NotFound, `Entity not found: ${payload.id}`);\n }\n\n // Pre-evaluate guards via QPQ stories\n const guardResults: Record<string, boolean> = {};\n for (const [guardName, guardRuntime] of Object.entries(smConfig.guards)) {\n const guardModule = await dynamicModuleLoader(guardRuntime);\n const guardResult = await resolveStory(guardModule, [entity, payload.event]);\n if (guardResult.error) {\n return actionResultError(guardResult.error.errorType, guardResult.error.errorText);\n }\n guardResults[guardName] = guardResult.result;\n }\n\n const guardImpls: Record<string, () => boolean> = {};\n for (const [guardName, result] of Object.entries(guardResults)) {\n guardImpls[guardName] = () => result;\n }\n\n // Track which actions fire during the transition\n const firedActions: string[] = [];\n const actionImpls: Record<string, () => void> = {};\n for (const actionName of Object.keys(smConfig.actions)) {\n actionImpls[actionName] = () => {\n firedActions.push(actionName);\n };\n }\n\n // XState: build machine, rehydrate, send event\n const machine = createMachine(smConfig.config as any, {\n actions: actionImpls,\n guards: guardImpls,\n });\n\n const persistedSnapshot = entity[smConfig.stateField];\n const actor = createActor(machine, {\n snapshot: persistedSnapshot || undefined,\n });\n\n const previousState = actor.getSnapshot().value;\n\n actor.start();\n actor.send(payload.event);\n\n const newSnapshot = actor.getPersistedSnapshot();\n const currentState = actor.getSnapshot().value;\n const isDone = actor.getSnapshot().status === 'done';\n\n actor.stop();\n\n if (previousState === currentState && !isDone) {\n return actionResultError(\n ErrorTypeEnum.BadRequest,\n `Event '${payload.event.type}' is not valid for current state '${JSON.stringify(previousState)}'`,\n );\n }\n\n // Persist new snapshot\n entity[smConfig.stateField] = newSnapshot;\n const upsertResult = await resolveStory(function* () {\n yield* askKeyValueStoreUpsert(smConfig.keyValueStoreName, entity);\n }, []);\n if (upsertResult.error) {\n return actionResultError(upsertResult.error.errorType, upsertResult.error.errorText);\n }\n\n // Execute side-effect stories for fired actions\n for (const actionName of firedActions) {\n const runtime = smConfig.actions[actionName];\n if (runtime) {\n const storyModule = await dynamicModuleLoader(runtime);\n const storyResult = await resolveStory(storyModule, [entity, payload.event]);\n if (storyResult.error) {\n return actionResultError(storyResult.error.errorType, storyResult.error.errorText);\n }\n }\n }\n\n return actionResult(entity);\n };\n};\n\nexport const getStateMachineSendEventActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.SendEvent]: getProcessStateMachineSendEvent(qpqConfig),\n});\n"]}
@@ -18,3 +18,4 @@ const getStateMachineActionProcessor = (qpqConfig, dynamicModuleLoader) => __awa
18
18
  return (Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, getStateMachineCreateActionProcessor_1.getStateMachineCreateActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getStateMachineGetActionProcessor_1.getStateMachineGetActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getStateMachineGetStateActionProcessor_1.getStateMachineGetStateActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getStateMachineSendEventActionProcessor_1.getStateMachineSendEventActionProcessor)(qpqConfig, dynamicModuleLoader))));
19
19
  });
20
20
  exports.getStateMachineActionProcessor = getStateMachineActionProcessor;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actionProcessor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,iGAA8F;AAC9F,2FAAwF;AACxF,qGAAkG;AAClG,uGAAoG;AAE7F,MAAM,8BAA8B,GAAgC,CACzE,SAAoB,EACpB,mBAAwC,EACV,EAAE;IAAC,OAAA,6DAC9B,CAAC,MAAM,IAAA,2EAAoC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC5E,CAAC,MAAM,IAAA,qEAAiC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GACzE,CAAC,MAAM,IAAA,+EAAsC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAC9E,CAAC,MAAM,IAAA,iFAAuC,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,EAClF,CAAA;EAAA,CAAC;AARU,QAAA,8BAA8B,kCAQxC","sourcesContent":["import { ActionProcessorList, ActionProcessorListResolver, DynamicModuleLoader, QPQConfig } from 'quidproquo-core';\n\nimport { getStateMachineCreateActionProcessor } from './getStateMachineCreateActionProcessor';\nimport { getStateMachineGetActionProcessor } from './getStateMachineGetActionProcessor';\nimport { getStateMachineGetStateActionProcessor } from './getStateMachineGetStateActionProcessor';\nimport { getStateMachineSendEventActionProcessor } from './getStateMachineSendEventActionProcessor';\n\nexport const getStateMachineActionProcessor: ActionProcessorListResolver = async (\n qpqConfig: QPQConfig,\n dynamicModuleLoader: DynamicModuleLoader,\n): Promise<ActionProcessorList> => ({\n ...(await getStateMachineCreateActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getStateMachineGetActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getStateMachineGetStateActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getStateMachineSendEventActionProcessor(qpqConfig, dynamicModuleLoader)),\n});\n"]}
@@ -8,3 +8,4 @@ var StateMachineActionType;
8
8
  StateMachineActionType["GetState"] = "@quidproquo-core/StateMachine/GetState";
9
9
  StateMachineActionType["SendEvent"] = "@quidproquo-core/StateMachine/SendEvent";
10
10
  })(StateMachineActionType || (exports.StateMachineActionType = StateMachineActionType = {}));
11
+ //# sourceMappingURL=StateMachineActionType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineActionType.js","sourceRoot":"","sources":["../../../src/actions/StateMachineActionType.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,yEAA+C,CAAA;IAC/C,mEAAyC,CAAA;IACzC,6EAAmD,CAAA;IACnD,+EAAqD,CAAA;AACvD,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC","sourcesContent":["export enum StateMachineActionType {\n Create = '@quidproquo-core/StateMachine/Create',\n Get = '@quidproquo-core/StateMachine/Get',\n GetState = '@quidproquo-core/StateMachine/GetState',\n SendEvent = '@quidproquo-core/StateMachine/SendEvent',\n}\n"]}
@@ -12,3 +12,4 @@ function* askStateMachineCreate(stateMachineName, id, item) {
12
12
  },
13
13
  };
14
14
  }
15
+ //# sourceMappingURL=StateMachineCreateActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineCreateActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineCreateActionRequester.ts"],"names":[],"mappings":";;AAGA,sDASC;AAZD,qEAAkE;AAGlE,QAAe,CAAC,CAAC,qBAAqB,CAAI,gBAAwB,EAAE,EAAU,EAAE,IAAO;IACrF,OAAO,MAAM;QACX,IAAI,EAAE,+CAAsB,CAAC,MAAM;QACnC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;YACF,IAAI;SACL;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineCreateActionRequester } from './StateMachineCreateActionTypes';\n\nexport function* askStateMachineCreate<T>(stateMachineName: string, id: string, item: T): StateMachineCreateActionRequester<T> {\n return yield {\n type: StateMachineActionType.Create,\n payload: {\n stateMachineName,\n id,\n item,\n },\n };\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=StateMachineCreateActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineCreateActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineCreateActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineCreateActionPayload<T> {\n stateMachineName: string;\n id: string;\n item: T;\n}\n\nexport interface StateMachineCreateAction<T> extends Action<StateMachineCreateActionPayload<T>> {\n type: StateMachineActionType.Create;\n payload: StateMachineCreateActionPayload<T>;\n}\n\nexport type StateMachineCreateActionProcessor<T> = ActionProcessor<StateMachineCreateAction<T>, T>;\nexport type StateMachineCreateActionRequester<T> = ActionRequester<StateMachineCreateAction<T>, T>;\n"]}
@@ -11,3 +11,4 @@ function* askStateMachineGet(stateMachineName, id) {
11
11
  },
12
12
  };
13
13
  }
14
+ //# sourceMappingURL=StateMachineGetActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetActionRequester.ts"],"names":[],"mappings":";;AAGA,gDAQC;AAXD,qEAAkE;AAGlE,QAAe,CAAC,CAAC,kBAAkB,CAAI,gBAAwB,EAAE,EAAU;IACzE,OAAO,MAAM;QACX,IAAI,EAAE,+CAAsB,CAAC,GAAG;QAChC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;SACH;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineGetActionRequester } from './StateMachineGetActionTypes';\n\nexport function* askStateMachineGet<T>(stateMachineName: string, id: string): StateMachineGetActionRequester<T> {\n return yield {\n type: StateMachineActionType.Get,\n payload: {\n stateMachineName,\n id,\n },\n };\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=StateMachineGetActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineGetActionPayload {\n stateMachineName: string;\n id: string;\n}\n\nexport interface StateMachineGetAction<T> extends Action<StateMachineGetActionPayload> {\n type: StateMachineActionType.Get;\n payload: StateMachineGetActionPayload;\n}\n\nexport type StateMachineGetActionProcessor<T> = ActionProcessor<StateMachineGetAction<T>, T>;\nexport type StateMachineGetActionRequester<T> = ActionRequester<StateMachineGetAction<T>, T>;\n"]}
@@ -11,3 +11,4 @@ function* askStateMachineGetState(stateMachineName, id) {
11
11
  },
12
12
  };
13
13
  }
14
+ //# sourceMappingURL=StateMachineGetStateActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetStateActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetStateActionRequester.ts"],"names":[],"mappings":";;AAGA,0DAQC;AAXD,qEAAkE;AAGlE,QAAe,CAAC,CAAC,uBAAuB,CAAC,gBAAwB,EAAE,EAAU;IAC3E,OAAO,MAAM;QACX,IAAI,EAAE,+CAAsB,CAAC,QAAQ;QACrC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;SACH;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineGetStateActionRequester } from './StateMachineGetStateActionTypes';\n\nexport function* askStateMachineGetState(stateMachineName: string, id: string): StateMachineGetStateActionRequester {\n return yield {\n type: StateMachineActionType.GetState,\n payload: {\n stateMachineName,\n id,\n },\n };\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=StateMachineGetStateActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetStateActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetStateActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineGetStateActionPayload {\n stateMachineName: string;\n id: string;\n}\n\nexport interface StateMachineStateInfo {\n value: string;\n done: boolean;\n}\n\nexport interface StateMachineGetStateAction extends Action<StateMachineGetStateActionPayload> {\n type: StateMachineActionType.GetState;\n payload: StateMachineGetStateActionPayload;\n}\n\nexport type StateMachineGetStateActionProcessor = ActionProcessor<StateMachineGetStateAction, StateMachineStateInfo>;\nexport type StateMachineGetStateActionRequester = ActionRequester<StateMachineGetStateAction, StateMachineStateInfo>;\n"]}
@@ -12,3 +12,4 @@ function* askStateMachineSendEvent(stateMachineName, id, event) {
12
12
  },
13
13
  };
14
14
  }
15
+ //# sourceMappingURL=StateMachineSendEventActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineSendEventActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineSendEventActionRequester.ts"],"names":[],"mappings":";;AAGA,4DAaC;AAhBD,qEAAkE;AAGlE,QAAe,CAAC,CAAC,wBAAwB,CACvC,gBAAwB,EACxB,EAAU,EACV,KAAwB;IAExB,OAAO,MAAM;QACX,IAAI,EAAE,+CAAsB,CAAC,SAAS;QACtC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;YACF,KAAK;SACN;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineEvent, StateMachineSendEventActionRequester } from './StateMachineSendEventActionTypes';\n\nexport function* askStateMachineSendEvent<T>(\n stateMachineName: string,\n id: string,\n event: StateMachineEvent,\n): StateMachineSendEventActionRequester<T> {\n return yield {\n type: StateMachineActionType.SendEvent,\n payload: {\n stateMachineName,\n id,\n event,\n },\n };\n}\n"]}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=StateMachineSendEventActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineSendEventActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineSendEventActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineEvent {\n type: string;\n [key: string]: any;\n}\n\nexport interface StateMachineSendEventActionPayload {\n stateMachineName: string;\n id: string;\n event: StateMachineEvent;\n}\n\nexport interface StateMachineSendEventAction<T> extends Action<StateMachineSendEventActionPayload> {\n type: StateMachineActionType.SendEvent;\n payload: StateMachineSendEventActionPayload;\n}\n\nexport type StateMachineSendEventActionProcessor<T> = ActionProcessor<StateMachineSendEventAction<T>, T>;\nexport type StateMachineSendEventActionRequester<T> = ActionRequester<StateMachineSendEventAction<T>, T>;\n"]}
@@ -23,3 +23,4 @@ __exportStar(require("./StateMachineGetStateActionRequester"), exports);
23
23
  __exportStar(require("./StateMachineGetStateActionTypes"), exports);
24
24
  __exportStar(require("./StateMachineSendEventActionRequester"), exports);
25
25
  __exportStar(require("./StateMachineSendEventActionTypes"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sEAAoD;AACpD,kEAAgD;AAChD,mEAAiD;AACjD,+DAA6C;AAC7C,wEAAsD;AACtD,oEAAkD;AAClD,yEAAuD;AACvD,qEAAmD","sourcesContent":["export * from './StateMachineActionType';\nexport * from './StateMachineCreateActionRequester';\nexport * from './StateMachineCreateActionTypes';\nexport * from './StateMachineGetActionRequester';\nexport * from './StateMachineGetActionTypes';\nexport * from './StateMachineGetStateActionRequester';\nexport * from './StateMachineGetStateActionTypes';\nexport * from './StateMachineSendEventActionRequester';\nexport * from './StateMachineSendEventActionTypes';\n"]}
@@ -5,3 +5,4 @@ var QPQXStateConfigSettingType;
5
5
  (function (QPQXStateConfigSettingType) {
6
6
  QPQXStateConfigSettingType["StateMachine"] = "@quidproquo-xstate/config/StateMachine";
7
7
  })(QPQXStateConfigSettingType || (exports.QPQXStateConfigSettingType = QPQXStateConfigSettingType = {}));
8
+ //# sourceMappingURL=QPQConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":";;;AAAA,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,qFAAuD,CAAA;AACzD,CAAC,EAFW,0BAA0B,0CAA1B,0BAA0B,QAErC","sourcesContent":["export enum QPQXStateConfigSettingType {\n StateMachine = '@quidproquo-xstate/config/StateMachine',\n}\n"]}
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./QPQConfig"), exports);
18
18
  __exportStar(require("./qpqXStateConfigUtils"), exports);
19
19
  __exportStar(require("./settings"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,yDAAuC;AACvC,6CAA2B","sourcesContent":["export * from './QPQConfig';\nexport * from './qpqXStateConfigUtils';\nexport * from './settings';\n"]}
@@ -11,3 +11,4 @@ const getStateMachineByName = (qpqConfig, stateMachineName) => {
11
11
  return (0, exports.getAllStateMachines)(qpqConfig).find((sm) => sm.stateMachineName === stateMachineName);
12
12
  };
13
13
  exports.getStateMachineByName = getStateMachineByName;
14
+ //# sourceMappingURL=qpqXStateConfigUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qpqXStateConfigUtils.js","sourceRoot":"","sources":["../../../src/config/qpqXStateConfigUtils.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAG1D,2CAAyD;AAElD,MAAM,mBAAmB,GAAG,CAAC,SAAoB,EAAkC,EAAE;IAC1F,OAAO,8BAAY,CAAC,iBAAiB,CAA+B,SAAS,EAAE,sCAA0B,CAAC,YAAY,CAAC,CAAC;AAC1H,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEK,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,gBAAwB,EAA4C,EAAE;IAChI,OAAO,IAAA,2BAAmB,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC;AAC/F,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC","sourcesContent":["import { QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { StateMachineQPQConfigSetting } from './settings/stateMachine';\nimport { QPQXStateConfigSettingType } from './QPQConfig';\n\nexport const getAllStateMachines = (qpqConfig: QPQConfig): StateMachineQPQConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<StateMachineQPQConfigSetting>(qpqConfig, QPQXStateConfigSettingType.StateMachine);\n};\n\nexport const getStateMachineByName = (qpqConfig: QPQConfig, stateMachineName: string): StateMachineQPQConfigSetting | undefined => {\n return getAllStateMachines(qpqConfig).find((sm) => sm.stateMachineName === stateMachineName);\n};\n"]}
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./stateMachine"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B","sourcesContent":["export * from './stateMachine';\n"]}
@@ -22,3 +22,4 @@ const defineStateMachine = (stateMachineName, options) => {
22
22
  return [(0, quidproquo_core_1.defineKeyValueStore)(keyValueStoreName, 'id'), stateMachineConfig];
23
23
  };
24
24
  exports.defineStateMachine = defineStateMachine;
25
+ //# sourceMappingURL=stateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../../../src/config/settings/stateMachine.ts"],"names":[],"mappings":";;;AAAA,qDAAyI;AAIzI,4CAA0D;AAuBnD,MAAM,wBAAwB,GAAG,CAAC,gBAAwB,EAAU,EAAE,CAAC,UAAU,gBAAgB,EAAE,CAAC;AAA9F,QAAA,wBAAwB,4BAAsE;AAEpG,MAAM,kBAAkB,GAAG,CAAC,gBAAwB,EAAE,OAA8C,EAAsB,EAAE;;IACjI,MAAM,iBAAiB,GAAG,IAAA,gCAAwB,EAAC,gBAAgB,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAiC;QACvD,iBAAiB,EAAE,sCAA0B,CAAC,YAAY;QAC1D,SAAS,EAAE,gBAAgB;QAE3B,gBAAgB;QAChB,iBAAiB;QAEjB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE;QAC9B,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE;QAC5B,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,gBAAgB;QAElD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;IAEF,OAAO,CAAC,IAAA,qCAAmB,EAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC5E,CAAC,CAAC;AAlBW,QAAA,kBAAkB,sBAkB7B","sourcesContent":["import { CrossModuleOwner, defineKeyValueStore, QPQConfigAdvancedSettings, QPQConfigSetting, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport { EventObject, MachineConfig, MachineContext } from 'xstate';\n\nimport { QPQXStateConfigSettingType } from '../QPQConfig';\n\nexport interface StateMachineRuntimeMap {\n [name: string]: QpqFunctionRuntime;\n}\n\nexport interface QPQConfigAdvancedStateMachineSettings extends QPQConfigAdvancedSettings {\n config: MachineConfig<MachineContext, EventObject>;\n actions?: StateMachineRuntimeMap;\n guards?: StateMachineRuntimeMap;\n stateField?: string;\n owner?: CrossModuleOwner;\n}\n\nexport interface StateMachineQPQConfigSetting extends QPQConfigSetting {\n stateMachineName: string;\n keyValueStoreName: string;\n config: MachineConfig<MachineContext, EventObject>;\n actions: StateMachineRuntimeMap;\n guards: StateMachineRuntimeMap;\n stateField: string;\n}\n\nexport const getStateMachineStoreName = (stateMachineName: string): string => `qpq-sm-${stateMachineName}`;\n\nexport const defineStateMachine = (stateMachineName: string, options: QPQConfigAdvancedStateMachineSettings): QPQConfigSetting[] => {\n const keyValueStoreName = getStateMachineStoreName(stateMachineName);\n const stateMachineConfig: StateMachineQPQConfigSetting = {\n configSettingType: QPQXStateConfigSettingType.StateMachine,\n uniqueKey: stateMachineName,\n\n stateMachineName,\n keyValueStoreName,\n\n config: options.config,\n actions: options.actions ?? {},\n guards: options.guards ?? {},\n stateField: options.stateField ?? '__machineState',\n\n owner: options.owner,\n };\n\n return [defineKeyValueStore(keyValueStoreName, 'id'), stateMachineConfig];\n};\n"]}
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./actionProcessor"), exports);
18
18
  __exportStar(require("./actions"), exports);
19
19
  __exportStar(require("./config"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,4CAA0B;AAC1B,2CAAyB","sourcesContent":["export * from './actionProcessor';\nexport * from './actions';\nexport * from './config';\n"]}
@@ -51,3 +51,4 @@ const getProcessStateMachineCreate = (qpqConfig) => {
51
51
  export const getStateMachineCreateActionProcessor = async (qpqConfig) => ({
52
52
  [StateMachineActionType.Create]: getProcessStateMachineCreate(qpqConfig),
53
53
  });
54
+ //# sourceMappingURL=getStateMachineCreateActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineCreateActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineCreateActionProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreUpsert,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { createActor, createMachine } from 'xstate';\n\nimport { StateMachineActionType, StateMachineCreateActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineCreate = (qpqConfig: QPQConfig): StateMachineCreateActionProcessor<any> => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine Create'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n // XState: determine initial state and which entry actions fire\n const firedActions: string[] = [];\n const actionImpls: Record<string, () => void> = {};\n for (const actionName of Object.keys(smConfig.actions)) {\n actionImpls[actionName] = () => {\n firedActions.push(actionName);\n };\n }\n\n const machine = createMachine(smConfig.config as any, {\n actions: actionImpls,\n });\n\n const actor = createActor(machine);\n actor.start();\n const initialSnapshot = actor.getPersistedSnapshot();\n actor.stop();\n\n // Build entity with id and machine state\n const entity: Record<string, any> = { ...payload.item, id: payload.id };\n entity[smConfig.stateField] = initialSnapshot;\n\n // Persist to KVS\n const upsertResult = await resolveStory(function* () {\n yield* askKeyValueStoreUpsert(smConfig.keyValueStoreName, entity);\n }, []);\n if (upsertResult.error) {\n return actionResultError(upsertResult.error.errorType, upsertResult.error.errorText);\n }\n\n // Execute side-effect stories for any initial entry actions\n for (const actionName of firedActions) {\n const runtime = smConfig.actions[actionName];\n if (runtime) {\n const storyModule = await dynamicModuleLoader(runtime);\n const storyResult = await resolveStory(storyModule, [entity]);\n if (storyResult.error) {\n return actionResultError(storyResult.error.errorType, storyResult.error.errorText);\n }\n }\n }\n\n return actionResult(entity);\n };\n};\n\nexport const getStateMachineCreateActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.Create]: getProcessStateMachineCreate(qpqConfig),\n});\n"]}
@@ -24,3 +24,4 @@ const getProcessStateMachineGet = (qpqConfig) => {
24
24
  export const getStateMachineGetActionProcessor = async (qpqConfig) => ({
25
25
  [StateMachineActionType.Get]: getProcessStateMachineGet(qpqConfig),
26
26
  });
27
+ //# sourceMappingURL=getStateMachineGetActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineGetActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineGetActionProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,GAEd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,sBAAsB,EAAkC,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,yBAAyB,GAAG,CAAC,SAAoB,EAAuC,EAAE;IAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,EAAE;QAC9G,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,4BAA4B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,YAAY,GAAG,2BAA2B,CAC9C,SAAS,EACT,CAAC,kBAAkB,CAAC,EACpB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC9B,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAC5D,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,mBAAmB,EACnB,cAAc,CACf,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC;YAC5C,OAAO,KAAK,CAAC,CAAC,mBAAmB,CAAsB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,qBAAqB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAgC,KAAK,EAAE,SAAoB,EAAgC,EAAE,CAAC,CAAC;IAC3I,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC;CACnE,CAAC,CAAC","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreGet,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { StateMachineActionType, StateMachineGetActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineGet = (qpqConfig: QPQConfig): StateMachineGetActionProcessor<any> => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine Get'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n const getResult = await resolveStory(function* () {\n return yield* askKeyValueStoreGet<Record<string, any>>(smConfig.keyValueStoreName, payload.id);\n }, []);\n if (getResult.error) {\n return actionResultError(getResult.error.errorType, getResult.error.errorText);\n }\n\n const entity = getResult.result;\n if (!entity) {\n return actionResultError(ErrorTypeEnum.NotFound, `Entity not found: ${payload.id}`);\n }\n\n return actionResult(entity);\n };\n};\n\nexport const getStateMachineGetActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.Get]: getProcessStateMachineGet(qpqConfig),\n});\n"]}
@@ -39,3 +39,4 @@ const getProcessStateMachineGetState = (qpqConfig) => {
39
39
  export const getStateMachineGetStateActionProcessor = async (qpqConfig) => ({
40
40
  [StateMachineActionType.GetState]: getProcessStateMachineGetState(qpqConfig),
41
41
  });
42
+ //# sourceMappingURL=getStateMachineGetStateActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineGetStateActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineGetStateActionProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreGet,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { createActor, createMachine } from 'xstate';\n\nimport { StateMachineActionType, StateMachineGetStateActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineGetState = (qpqConfig: QPQConfig): StateMachineGetStateActionProcessor => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine GetState'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n // Load entity from KVS\n const getResult = await resolveStory(function* () {\n return yield* askKeyValueStoreGet<Record<string, any>>(smConfig.keyValueStoreName, payload.id);\n }, []);\n if (getResult.error) {\n return actionResultError(getResult.error.errorType, getResult.error.errorText);\n }\n\n const entity = getResult.result;\n if (!entity) {\n return actionResultError(ErrorTypeEnum.NotFound, `Entity not found: ${payload.id}`);\n }\n\n const persistedSnapshot = entity[smConfig.stateField];\n if (!persistedSnapshot) {\n return actionResultError(ErrorTypeEnum.NotFound, `No state machine state found on entity: ${payload.id}`);\n }\n\n // XState: rehydrate to read current state\n const machine = createMachine(smConfig.config as any);\n const actor = createActor(machine, { snapshot: persistedSnapshot });\n actor.start();\n\n const snapshot = actor.getSnapshot();\n actor.stop();\n\n return actionResult({\n value: typeof snapshot.value === 'string' ? snapshot.value : JSON.stringify(snapshot.value),\n done: snapshot.status === 'done',\n });\n };\n};\n\nexport const getStateMachineGetStateActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.GetState]: getProcessStateMachineGetState(qpqConfig),\n});\n"]}
@@ -87,3 +87,4 @@ const getProcessStateMachineSendEvent = (qpqConfig) => {
87
87
  export const getStateMachineSendEventActionProcessor = async (qpqConfig) => ({
88
88
  [StateMachineActionType.SendEvent]: getProcessStateMachineSendEvent(qpqConfig),
89
89
  });
90
+ //# sourceMappingURL=getStateMachineSendEventActionProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateMachineSendEventActionProcessor.js","sourceRoot":"","sources":["../../../src/actionProcessor/getStateMachineSendEventActionProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorList,\n ActionProcessorListResolver,\n actionResult,\n actionResultError,\n askKeyValueStoreGet,\n askKeyValueStoreUpsert,\n createImplementationRuntime,\n ErrorTypeEnum,\n QPQConfig,\n} from 'quidproquo-core';\n\nimport { createActor, createMachine } from 'xstate';\n\nimport { StateMachineActionType, StateMachineSendEventActionProcessor } from '../actions';\nimport { getStateMachineByName } from '../config';\n\nconst getProcessStateMachineSendEvent = (qpqConfig: QPQConfig): StateMachineSendEventActionProcessor<any> => {\n return async (payload, session, actionProcessors, logger, updateSession, dynamicModuleLoader, streamRegistry) => {\n const smConfig = getStateMachineByName(qpqConfig, payload.stateMachineName);\n if (!smConfig) {\n return actionResultError(ErrorTypeEnum.NotFound, `State machine not found: ${payload.stateMachineName}`);\n }\n\n const resolveStory = createImplementationRuntime(\n qpqConfig,\n ['StateMachine SendEvent'],\n () => new Date().toISOString(),\n () => `${Date.now()}-${Math.random().toString(36).slice(2)}`,\n session,\n actionProcessors,\n logger,\n dynamicModuleLoader,\n streamRegistry,\n );\n\n // Load entity from KVS\n let entity: Record<string, any> | undefined;\n const getResult = await resolveStory(function* () {\n return yield* askKeyValueStoreGet<Record<string, any>>(smConfig.keyValueStoreName, payload.id);\n }, []);\n if (getResult.error) {\n return actionResultError(getResult.error.errorType, getResult.error.errorText);\n }\n entity = getResult.result;\n\n if (!entity) {\n return actionResultError(ErrorTypeEnum.NotFound, `Entity not found: ${payload.id}`);\n }\n\n // Pre-evaluate guards via QPQ stories\n const guardResults: Record<string, boolean> = {};\n for (const [guardName, guardRuntime] of Object.entries(smConfig.guards)) {\n const guardModule = await dynamicModuleLoader(guardRuntime);\n const guardResult = await resolveStory(guardModule, [entity, payload.event]);\n if (guardResult.error) {\n return actionResultError(guardResult.error.errorType, guardResult.error.errorText);\n }\n guardResults[guardName] = guardResult.result;\n }\n\n const guardImpls: Record<string, () => boolean> = {};\n for (const [guardName, result] of Object.entries(guardResults)) {\n guardImpls[guardName] = () => result;\n }\n\n // Track which actions fire during the transition\n const firedActions: string[] = [];\n const actionImpls: Record<string, () => void> = {};\n for (const actionName of Object.keys(smConfig.actions)) {\n actionImpls[actionName] = () => {\n firedActions.push(actionName);\n };\n }\n\n // XState: build machine, rehydrate, send event\n const machine = createMachine(smConfig.config as any, {\n actions: actionImpls,\n guards: guardImpls,\n });\n\n const persistedSnapshot = entity[smConfig.stateField];\n const actor = createActor(machine, {\n snapshot: persistedSnapshot || undefined,\n });\n\n const previousState = actor.getSnapshot().value;\n\n actor.start();\n actor.send(payload.event);\n\n const newSnapshot = actor.getPersistedSnapshot();\n const currentState = actor.getSnapshot().value;\n const isDone = actor.getSnapshot().status === 'done';\n\n actor.stop();\n\n if (previousState === currentState && !isDone) {\n return actionResultError(\n ErrorTypeEnum.BadRequest,\n `Event '${payload.event.type}' is not valid for current state '${JSON.stringify(previousState)}'`,\n );\n }\n\n // Persist new snapshot\n entity[smConfig.stateField] = newSnapshot;\n const upsertResult = await resolveStory(function* () {\n yield* askKeyValueStoreUpsert(smConfig.keyValueStoreName, entity);\n }, []);\n if (upsertResult.error) {\n return actionResultError(upsertResult.error.errorType, upsertResult.error.errorText);\n }\n\n // Execute side-effect stories for fired actions\n for (const actionName of firedActions) {\n const runtime = smConfig.actions[actionName];\n if (runtime) {\n const storyModule = await dynamicModuleLoader(runtime);\n const storyResult = await resolveStory(storyModule, [entity, payload.event]);\n if (storyResult.error) {\n return actionResultError(storyResult.error.errorType, storyResult.error.errorText);\n }\n }\n }\n\n return actionResult(entity);\n };\n};\n\nexport const getStateMachineSendEventActionProcessor: ActionProcessorListResolver = async (qpqConfig: QPQConfig): Promise<ActionProcessorList> => ({\n [StateMachineActionType.SendEvent]: getProcessStateMachineSendEvent(qpqConfig),\n});\n"]}
@@ -8,3 +8,4 @@ export const getStateMachineActionProcessor = async (qpqConfig, dynamicModuleLoa
8
8
  ...(await getStateMachineGetStateActionProcessor(qpqConfig, dynamicModuleLoader)),
9
9
  ...(await getStateMachineSendEventActionProcessor(qpqConfig, dynamicModuleLoader)),
10
10
  });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actionProcessor/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAC;AAEpG,MAAM,CAAC,MAAM,8BAA8B,GAAgC,KAAK,EAC9E,SAAoB,EACpB,mBAAwC,EACV,EAAE,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,oCAAoC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC/E,GAAG,CAAC,MAAM,iCAAiC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC5E,GAAG,CAAC,MAAM,sCAAsC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACjF,GAAG,CAAC,MAAM,uCAAuC,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;CACnF,CAAC,CAAC","sourcesContent":["import { ActionProcessorList, ActionProcessorListResolver, DynamicModuleLoader, QPQConfig } from 'quidproquo-core';\n\nimport { getStateMachineCreateActionProcessor } from './getStateMachineCreateActionProcessor';\nimport { getStateMachineGetActionProcessor } from './getStateMachineGetActionProcessor';\nimport { getStateMachineGetStateActionProcessor } from './getStateMachineGetStateActionProcessor';\nimport { getStateMachineSendEventActionProcessor } from './getStateMachineSendEventActionProcessor';\n\nexport const getStateMachineActionProcessor: ActionProcessorListResolver = async (\n qpqConfig: QPQConfig,\n dynamicModuleLoader: DynamicModuleLoader,\n): Promise<ActionProcessorList> => ({\n ...(await getStateMachineCreateActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getStateMachineGetActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getStateMachineGetStateActionProcessor(qpqConfig, dynamicModuleLoader)),\n ...(await getStateMachineSendEventActionProcessor(qpqConfig, dynamicModuleLoader)),\n});\n"]}
@@ -5,3 +5,4 @@ export var StateMachineActionType;
5
5
  StateMachineActionType["GetState"] = "@quidproquo-core/StateMachine/GetState";
6
6
  StateMachineActionType["SendEvent"] = "@quidproquo-core/StateMachine/SendEvent";
7
7
  })(StateMachineActionType || (StateMachineActionType = {}));
8
+ //# sourceMappingURL=StateMachineActionType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineActionType.js","sourceRoot":"","sources":["../../../src/actions/StateMachineActionType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,yEAA+C,CAAA;IAC/C,mEAAyC,CAAA;IACzC,6EAAmD,CAAA;IACnD,+EAAqD,CAAA;AACvD,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC","sourcesContent":["export enum StateMachineActionType {\n Create = '@quidproquo-core/StateMachine/Create',\n Get = '@quidproquo-core/StateMachine/Get',\n GetState = '@quidproquo-core/StateMachine/GetState',\n SendEvent = '@quidproquo-core/StateMachine/SendEvent',\n}\n"]}
@@ -9,3 +9,4 @@ export function* askStateMachineCreate(stateMachineName, id, item) {
9
9
  },
10
10
  };
11
11
  }
12
+ //# sourceMappingURL=StateMachineCreateActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineCreateActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineCreateActionRequester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,SAAS,CAAC,CAAC,qBAAqB,CAAI,gBAAwB,EAAE,EAAU,EAAE,IAAO;IACrF,OAAO,MAAM;QACX,IAAI,EAAE,sBAAsB,CAAC,MAAM;QACnC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;YACF,IAAI;SACL;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineCreateActionRequester } from './StateMachineCreateActionTypes';\n\nexport function* askStateMachineCreate<T>(stateMachineName: string, id: string, item: T): StateMachineCreateActionRequester<T> {\n return yield {\n type: StateMachineActionType.Create,\n payload: {\n stateMachineName,\n id,\n item,\n },\n };\n}\n"]}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=StateMachineCreateActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineCreateActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineCreateActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineCreateActionPayload<T> {\n stateMachineName: string;\n id: string;\n item: T;\n}\n\nexport interface StateMachineCreateAction<T> extends Action<StateMachineCreateActionPayload<T>> {\n type: StateMachineActionType.Create;\n payload: StateMachineCreateActionPayload<T>;\n}\n\nexport type StateMachineCreateActionProcessor<T> = ActionProcessor<StateMachineCreateAction<T>, T>;\nexport type StateMachineCreateActionRequester<T> = ActionRequester<StateMachineCreateAction<T>, T>;\n"]}
@@ -8,3 +8,4 @@ export function* askStateMachineGet(stateMachineName, id) {
8
8
  },
9
9
  };
10
10
  }
11
+ //# sourceMappingURL=StateMachineGetActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetActionRequester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,SAAS,CAAC,CAAC,kBAAkB,CAAI,gBAAwB,EAAE,EAAU;IACzE,OAAO,MAAM;QACX,IAAI,EAAE,sBAAsB,CAAC,GAAG;QAChC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;SACH;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineGetActionRequester } from './StateMachineGetActionTypes';\n\nexport function* askStateMachineGet<T>(stateMachineName: string, id: string): StateMachineGetActionRequester<T> {\n return yield {\n type: StateMachineActionType.Get,\n payload: {\n stateMachineName,\n id,\n },\n };\n}\n"]}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=StateMachineGetActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineGetActionPayload {\n stateMachineName: string;\n id: string;\n}\n\nexport interface StateMachineGetAction<T> extends Action<StateMachineGetActionPayload> {\n type: StateMachineActionType.Get;\n payload: StateMachineGetActionPayload;\n}\n\nexport type StateMachineGetActionProcessor<T> = ActionProcessor<StateMachineGetAction<T>, T>;\nexport type StateMachineGetActionRequester<T> = ActionRequester<StateMachineGetAction<T>, T>;\n"]}
@@ -8,3 +8,4 @@ export function* askStateMachineGetState(stateMachineName, id) {
8
8
  },
9
9
  };
10
10
  }
11
+ //# sourceMappingURL=StateMachineGetStateActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetStateActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetStateActionRequester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,SAAS,CAAC,CAAC,uBAAuB,CAAC,gBAAwB,EAAE,EAAU;IAC3E,OAAO,MAAM;QACX,IAAI,EAAE,sBAAsB,CAAC,QAAQ;QACrC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;SACH;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineGetStateActionRequester } from './StateMachineGetStateActionTypes';\n\nexport function* askStateMachineGetState(stateMachineName: string, id: string): StateMachineGetStateActionRequester {\n return yield {\n type: StateMachineActionType.GetState,\n payload: {\n stateMachineName,\n id,\n },\n };\n}\n"]}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=StateMachineGetStateActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineGetStateActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineGetStateActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineGetStateActionPayload {\n stateMachineName: string;\n id: string;\n}\n\nexport interface StateMachineStateInfo {\n value: string;\n done: boolean;\n}\n\nexport interface StateMachineGetStateAction extends Action<StateMachineGetStateActionPayload> {\n type: StateMachineActionType.GetState;\n payload: StateMachineGetStateActionPayload;\n}\n\nexport type StateMachineGetStateActionProcessor = ActionProcessor<StateMachineGetStateAction, StateMachineStateInfo>;\nexport type StateMachineGetStateActionRequester = ActionRequester<StateMachineGetStateAction, StateMachineStateInfo>;\n"]}
@@ -9,3 +9,4 @@ export function* askStateMachineSendEvent(stateMachineName, id, event) {
9
9
  },
10
10
  };
11
11
  }
12
+ //# sourceMappingURL=StateMachineSendEventActionRequester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineSendEventActionRequester.js","sourceRoot":"","sources":["../../../src/actions/StateMachineSendEventActionRequester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,SAAS,CAAC,CAAC,wBAAwB,CACvC,gBAAwB,EACxB,EAAU,EACV,KAAwB;IAExB,OAAO,MAAM;QACX,IAAI,EAAE,sBAAsB,CAAC,SAAS;QACtC,OAAO,EAAE;YACP,gBAAgB;YAChB,EAAE;YACF,KAAK;SACN;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { StateMachineActionType } from './StateMachineActionType';\nimport { StateMachineEvent, StateMachineSendEventActionRequester } from './StateMachineSendEventActionTypes';\n\nexport function* askStateMachineSendEvent<T>(\n stateMachineName: string,\n id: string,\n event: StateMachineEvent,\n): StateMachineSendEventActionRequester<T> {\n return yield {\n type: StateMachineActionType.SendEvent,\n payload: {\n stateMachineName,\n id,\n event,\n },\n };\n}\n"]}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=StateMachineSendEventActionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineSendEventActionTypes.js","sourceRoot":"","sources":["../../../src/actions/StateMachineSendEventActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { StateMachineActionType } from './StateMachineActionType';\n\nexport interface StateMachineEvent {\n type: string;\n [key: string]: any;\n}\n\nexport interface StateMachineSendEventActionPayload {\n stateMachineName: string;\n id: string;\n event: StateMachineEvent;\n}\n\nexport interface StateMachineSendEventAction<T> extends Action<StateMachineSendEventActionPayload> {\n type: StateMachineActionType.SendEvent;\n payload: StateMachineSendEventActionPayload;\n}\n\nexport type StateMachineSendEventActionProcessor<T> = ActionProcessor<StateMachineSendEventAction<T>, T>;\nexport type StateMachineSendEventActionRequester<T> = ActionRequester<StateMachineSendEventAction<T>, T>;\n"]}
@@ -7,3 +7,4 @@ export * from './StateMachineGetStateActionRequester';
7
7
  export * from './StateMachineGetStateActionTypes';
8
8
  export * from './StateMachineSendEventActionRequester';
9
9
  export * from './StateMachineSendEventActionTypes';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC","sourcesContent":["export * from './StateMachineActionType';\nexport * from './StateMachineCreateActionRequester';\nexport * from './StateMachineCreateActionTypes';\nexport * from './StateMachineGetActionRequester';\nexport * from './StateMachineGetActionTypes';\nexport * from './StateMachineGetStateActionRequester';\nexport * from './StateMachineGetStateActionTypes';\nexport * from './StateMachineSendEventActionRequester';\nexport * from './StateMachineSendEventActionTypes';\n"]}
@@ -2,3 +2,4 @@ export var QPQXStateConfigSettingType;
2
2
  (function (QPQXStateConfigSettingType) {
3
3
  QPQXStateConfigSettingType["StateMachine"] = "@quidproquo-xstate/config/StateMachine";
4
4
  })(QPQXStateConfigSettingType || (QPQXStateConfigSettingType = {}));
5
+ //# sourceMappingURL=QPQConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,qFAAuD,CAAA;AACzD,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC","sourcesContent":["export enum QPQXStateConfigSettingType {\n StateMachine = '@quidproquo-xstate/config/StateMachine',\n}\n"]}
@@ -1,3 +1,4 @@
1
1
  export * from './QPQConfig';
2
2
  export * from './qpqXStateConfigUtils';
3
3
  export * from './settings';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC","sourcesContent":["export * from './QPQConfig';\nexport * from './qpqXStateConfigUtils';\nexport * from './settings';\n"]}
@@ -6,3 +6,4 @@ export const getAllStateMachines = (qpqConfig) => {
6
6
  export const getStateMachineByName = (qpqConfig, stateMachineName) => {
7
7
  return getAllStateMachines(qpqConfig).find((sm) => sm.stateMachineName === stateMachineName);
8
8
  };
9
+ //# sourceMappingURL=qpqXStateConfigUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qpqXStateConfigUtils.js","sourceRoot":"","sources":["../../../src/config/qpqXStateConfigUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAoB,EAAkC,EAAE;IAC1F,OAAO,YAAY,CAAC,iBAAiB,CAA+B,SAAS,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;AAC1H,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,gBAAwB,EAA4C,EAAE;IAChI,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC;AAC/F,CAAC,CAAC","sourcesContent":["import { QPQConfig, qpqCoreUtils } from 'quidproquo-core';\n\nimport { StateMachineQPQConfigSetting } from './settings/stateMachine';\nimport { QPQXStateConfigSettingType } from './QPQConfig';\n\nexport const getAllStateMachines = (qpqConfig: QPQConfig): StateMachineQPQConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<StateMachineQPQConfigSetting>(qpqConfig, QPQXStateConfigSettingType.StateMachine);\n};\n\nexport const getStateMachineByName = (qpqConfig: QPQConfig, stateMachineName: string): StateMachineQPQConfigSetting | undefined => {\n return getAllStateMachines(qpqConfig).find((sm) => sm.stateMachineName === stateMachineName);\n};\n"]}
@@ -1 +1,2 @@
1
1
  export * from './stateMachine';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './stateMachine';\n"]}
@@ -16,3 +16,4 @@ export const defineStateMachine = (stateMachineName, options) => {
16
16
  };
17
17
  return [defineKeyValueStore(keyValueStoreName, 'id'), stateMachineConfig];
18
18
  };
19
+ //# sourceMappingURL=stateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../../../src/config/settings/stateMachine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAmE,MAAM,iBAAiB,CAAC;AAIzI,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAuB1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,gBAAwB,EAAU,EAAE,CAAC,UAAU,gBAAgB,EAAE,CAAC;AAE3G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,gBAAwB,EAAE,OAA8C,EAAsB,EAAE;IACjI,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IACrE,MAAM,kBAAkB,GAAiC;QACvD,iBAAiB,EAAE,0BAA0B,CAAC,YAAY;QAC1D,SAAS,EAAE,gBAAgB;QAE3B,gBAAgB;QAChB,iBAAiB;QAEjB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,gBAAgB;QAElD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;IAEF,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC5E,CAAC,CAAC","sourcesContent":["import { CrossModuleOwner, defineKeyValueStore, QPQConfigAdvancedSettings, QPQConfigSetting, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport { EventObject, MachineConfig, MachineContext } from 'xstate';\n\nimport { QPQXStateConfigSettingType } from '../QPQConfig';\n\nexport interface StateMachineRuntimeMap {\n [name: string]: QpqFunctionRuntime;\n}\n\nexport interface QPQConfigAdvancedStateMachineSettings extends QPQConfigAdvancedSettings {\n config: MachineConfig<MachineContext, EventObject>;\n actions?: StateMachineRuntimeMap;\n guards?: StateMachineRuntimeMap;\n stateField?: string;\n owner?: CrossModuleOwner;\n}\n\nexport interface StateMachineQPQConfigSetting extends QPQConfigSetting {\n stateMachineName: string;\n keyValueStoreName: string;\n config: MachineConfig<MachineContext, EventObject>;\n actions: StateMachineRuntimeMap;\n guards: StateMachineRuntimeMap;\n stateField: string;\n}\n\nexport const getStateMachineStoreName = (stateMachineName: string): string => `qpq-sm-${stateMachineName}`;\n\nexport const defineStateMachine = (stateMachineName: string, options: QPQConfigAdvancedStateMachineSettings): QPQConfigSetting[] => {\n const keyValueStoreName = getStateMachineStoreName(stateMachineName);\n const stateMachineConfig: StateMachineQPQConfigSetting = {\n configSettingType: QPQXStateConfigSettingType.StateMachine,\n uniqueKey: stateMachineName,\n\n stateMachineName,\n keyValueStoreName,\n\n config: options.config,\n actions: options.actions ?? {},\n guards: options.guards ?? {},\n stateField: options.stateField ?? '__machineState',\n\n owner: options.owner,\n };\n\n return [defineKeyValueStore(keyValueStoreName, 'id'), stateMachineConfig];\n};\n"]}
package/lib/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './actionProcessor';
2
2
  export * from './actions';
3
3
  export * from './config';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC","sourcesContent":["export * from './actionProcessor';\nexport * from './actions';\nexport * from './config';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quidproquo-xstate",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "",
5
5
  "main": "./lib/commonjs/index.js",
6
6
  "module": "./lib/esm/index.js",
@@ -32,11 +32,11 @@
32
32
  },
33
33
  "homepage": "https://github.com/joe-coady/quidproquo#readme",
34
34
  "dependencies": {
35
- "quidproquo-core": "0.1.2",
35
+ "quidproquo-core": "0.1.4",
36
36
  "xstate": "^5.19.0"
37
37
  },
38
38
  "devDependencies": {
39
- "quidproquo-tsconfig": "0.1.2",
39
+ "quidproquo-tsconfig": "0.1.4",
40
40
  "typescript": "^5.8.2"
41
41
  }
42
42
  }