@mat3ra/wode 2026.4.9-0 → 2026.5.29-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +1 -1
- package/dist/js/Subworkflow.d.ts +714 -0
- package/dist/js/Subworkflow.js +397 -0
- package/dist/js/Workflow.d.ts +82 -0
- package/dist/js/Workflow.js +286 -0
- package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
- package/dist/js/WorkflowDesignerMaterial.js +26 -0
- package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
- package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
- package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
- package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
- package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
- package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
- package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
- package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
- package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
- package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
- package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
- package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
- package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
- package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
- package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
- package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
- package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
- package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
- package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
- package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
- package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
- package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
- package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
- package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
- package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
- package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
- package/dist/js/context/providers/NEBFormDataManager.js +39 -0
- package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
- package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
- package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
- package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
- package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
- package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
- package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
- package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
- package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
- package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
- package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
- package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
- package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
- package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
- package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
- package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
- package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
- package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
- package/dist/js/context/providers/base/ContextProvider.js +87 -0
- package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
- package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
- package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
- package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
- package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
- package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
- package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
- package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
- package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
- package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
- package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
- package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
- package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
- package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
- package/dist/js/context/providers/index.d.ts +92 -0
- package/dist/js/context/providers/index.js +107 -0
- package/dist/js/context/providers/settings.d.ts +7 -0
- package/dist/js/context/providers/settings.js +11 -33
- package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
- package/dist/js/convergence/ConvergenceParameter.js +13 -0
- package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
- package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
- package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
- package/dist/js/convergence/UniformKGridConvergence.js +22 -0
- package/dist/js/convergence/factory.d.ts +8 -0
- package/dist/js/convergence/factory.js +18 -0
- package/dist/js/enums.d.ts +62 -0
- package/dist/js/enums.js +66 -61
- package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
- package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
- package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
- package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
- package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
- package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
- package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
- package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
- package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
- package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
- package/dist/js/generated/StatusSchemaMixin.js +21 -0
- package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
- package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
- package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
- package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
- package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
- package/dist/js/index.d.ts +13 -0
- package/dist/js/index.js +66 -176
- package/dist/js/units/AssertionUnit.d.ts +20 -0
- package/dist/js/units/AssertionUnit.js +33 -0
- package/dist/js/units/AssignmentUnit.d.ts +17 -0
- package/dist/js/units/AssignmentUnit.js +35 -0
- package/dist/js/units/BaseUnit.d.ts +39 -0
- package/dist/js/units/BaseUnit.js +70 -0
- package/dist/js/units/ConditionUnit.d.ts +17 -0
- package/dist/js/units/ConditionUnit.js +37 -0
- package/dist/js/units/ExecutionUnit.d.ts +115 -0
- package/dist/js/units/ExecutionUnit.js +181 -0
- package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
- package/dist/js/units/ExecutionUnitInput.js +47 -0
- package/dist/js/units/IOUnit.d.ts +16 -0
- package/dist/js/units/IOUnit.js +31 -0
- package/dist/js/units/MapUnit.d.ts +34 -0
- package/dist/js/units/MapUnit.js +46 -0
- package/dist/js/units/ReduceUnit.d.ts +16 -0
- package/dist/js/units/ReduceUnit.js +30 -0
- package/dist/js/units/SubworkflowUnit.d.ts +16 -0
- package/dist/js/units/SubworkflowUnit.js +28 -0
- package/dist/js/units/factory.d.ts +31 -0
- package/dist/js/units/factory.js +65 -47
- package/dist/js/units/index.d.ts +14 -0
- package/dist/js/units/index.js +25 -81
- package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
- package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
- package/dist/js/utils/baseUnits.d.ts +2 -0
- package/dist/js/utils/baseUnits.js +11 -0
- package/dist/js/utils/index.d.ts +3 -0
- package/dist/js/utils/index.js +39 -0
- package/dist/js/utils/subworkflow.d.ts +2 -0
- package/dist/js/utils/subworkflow.js +29 -0
- package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
- package/dist/js/utils/underscoreStringSlugify.js +32 -0
- package/dist/js/utils/units.d.ts +4 -0
- package/dist/js/utils/units.js +16 -0
- package/dist/js/utils/workflow.d.ts +9 -0
- package/dist/js/utils/workflow.js +67 -0
- package/dist/js/utils.js +2 -7
- package/dist/js/workflows/default.d.ts +3 -0
- package/dist/js/workflows/default.js +43 -39
- package/dist/js/workflows/workflow.d.ts +4404 -0
- package/dist/js/workflows/workflow.js +310 -306
- package/package.json +56 -44
- package/src/js/Subworkflow.ts +532 -0
- package/src/js/Workflow.ts +390 -0
- package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
- package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
- package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
- package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
- package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
- package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
- package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
- package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
- package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
- package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
- package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
- package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
- package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
- package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
- package/src/js/context/providers/NEBFormDataManager.ts +57 -0
- package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
- package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
- package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
- package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
- package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
- package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
- package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
- package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
- package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
- package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
- package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
- package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
- package/src/js/context/providers/base/ContextProvider.ts +150 -0
- package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
- package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
- package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
- package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
- package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
- package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
- package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
- package/src/js/context/providers/index.ts +155 -0
- package/src/js/context/providers/settings.ts +13 -0
- package/src/js/convergence/ConvergenceParameter.ts +37 -0
- package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
- package/src/js/convergence/UniformKGridConvergence.ts +26 -0
- package/src/js/convergence/factory.ts +18 -0
- package/src/js/{enums.js → enums.ts} +27 -22
- package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
- package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
- package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
- package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
- package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
- package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
- package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
- package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
- package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
- package/src/js/generated/StatusSchemaMixin.ts +28 -0
- package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
- package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
- package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
- package/src/js/index.ts +44 -0
- package/src/js/units/AssertionUnit.ts +49 -0
- package/src/js/units/AssignmentUnit.ts +49 -0
- package/src/js/units/BaseUnit.ts +117 -0
- package/src/js/units/ConditionUnit.ts +52 -0
- package/src/js/units/ExecutionUnit.ts +274 -0
- package/src/js/units/ExecutionUnitInput.ts +71 -0
- package/src/js/units/IOUnit.ts +43 -0
- package/src/js/units/MapUnit.ts +59 -0
- package/src/js/units/ReduceUnit.ts +46 -0
- package/src/js/units/SubworkflowUnit.ts +44 -0
- package/src/js/units/factory.ts +131 -0
- package/src/js/units/index.ts +27 -0
- package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
- package/src/js/utils/baseUnits.ts +11 -0
- package/src/js/utils/index.ts +3 -0
- package/src/js/utils/units.ts +23 -0
- package/src/js/utils/workflow.ts +69 -0
- package/src/js/workflows/{default.js → default.ts} +8 -1
- package/build_workflows.js +0 -65
- package/dist/js/context/context.js +0 -49
- package/dist/js/context/mixins/JobContextMixin.js +0 -39
- package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
- package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
- package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
- package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
- package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
- package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
- package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
- package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
- package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
- package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
- package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
- package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
- package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
- package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
- package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
- package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
- package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
- package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
- package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
- package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
- package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
- package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
- package/dist/js/context/providers.js +0 -199
- package/dist/js/patch.js +0 -19
- package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
- package/dist/js/subworkflows/convergence/parameter.js +0 -70
- package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
- package/dist/js/subworkflows/convergence.js +0 -189
- package/dist/js/subworkflows/create.js +0 -293
- package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
- package/dist/js/subworkflows/dynamic/index.js +0 -19
- package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
- package/dist/js/subworkflows/index.js +0 -19
- package/dist/js/units/assertion.js +0 -37
- package/dist/js/units/assignment.js +0 -42
- package/dist/js/units/base.js +0 -91
- package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
- package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
- package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
- package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
- package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
- package/dist/js/units/builders/index.js +0 -18
- package/dist/js/units/condition.js +0 -52
- package/dist/js/units/execution.js +0 -225
- package/dist/js/units/io.js +0 -148
- package/dist/js/units/map.js +0 -38
- package/dist/js/units/processing.js +0 -41
- package/dist/js/units/reduce.js +0 -24
- package/dist/js/units/subworkflow.js +0 -23
- package/dist/js/workflows/create.js +0 -318
- package/dist/js/workflows/index.js +0 -113
- package/dist/js/workflows/relaxation.js +0 -38
- package/src/js/context/context.js +0 -47
- package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
- package/src/js/context/mixins/JobContextMixin.js +0 -36
- package/src/js/context/mixins/MaterialContextMixin.js +0 -41
- package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
- package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
- package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
- package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
- package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
- package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
- package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
- package/src/js/context/providers/HubbardJContextProvider.js +0 -65
- package/src/js/context/providers/HubbardUContextProvider.js +0 -95
- package/src/js/context/providers/HubbardVContextProvider.js +0 -96
- package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
- package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
- package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
- package/src/js/context/providers/NEBFormDataProvider.js +0 -33
- package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
- package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
- package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
- package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
- package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
- package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
- package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
- package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
- package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
- package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
- package/src/js/context/providers/settings.js +0 -38
- package/src/js/context/providers.js +0 -140
- package/src/js/index.js +0 -57
- package/src/js/patch.js +0 -12
- package/src/js/subworkflows/convergence/enums.js +0 -12
- package/src/js/subworkflows/convergence/factory.js +0 -15
- package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
- package/src/js/subworkflows/convergence/parameter.js +0 -58
- package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
- package/src/js/subworkflows/convergence.js +0 -196
- package/src/js/subworkflows/create.js +0 -220
- package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
- package/src/js/subworkflows/dynamic/index.js +0 -8
- package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
- package/src/js/subworkflows/index.js +0 -2
- package/src/js/subworkflows/subworkflow.js +0 -345
- package/src/js/units/assertion.js +0 -29
- package/src/js/units/assignment.js +0 -34
- package/src/js/units/base.js +0 -97
- package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
- package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
- package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
- package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
- package/src/js/units/builders/UnitConfigBuilder.js +0 -92
- package/src/js/units/builders/index.js +0 -15
- package/src/js/units/condition.js +0 -47
- package/src/js/units/execution.js +0 -267
- package/src/js/units/factory.js +0 -53
- package/src/js/units/index.js +0 -25
- package/src/js/units/io.js +0 -163
- package/src/js/units/map.js +0 -33
- package/src/js/units/processing.js +0 -39
- package/src/js/units/reduce.js +0 -17
- package/src/js/units/subworkflow.js +0 -15
- package/src/js/utils.js +0 -73
- package/src/js/workflows/create.js +0 -227
- package/src/js/workflows/index.js +0 -98
- package/src/js/workflows/relaxation.js +0 -42
- package/src/js/workflows/workflow.js +0 -388
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
|
|
2
|
+
import { type Defaultable } from "@mat3ra/code/dist/js/entity/mixins/DefaultableMixin";
|
|
3
|
+
import { HashedEntity } from "@mat3ra/code/dist/js/entity/mixins/HashedEntityMixin";
|
|
4
|
+
import { type NamedEntity } from "@mat3ra/code/dist/js/entity/mixins/NamedEntityMixin";
|
|
5
|
+
import { type RuntimeItems } from "@mat3ra/code/dist/js/entity/mixins/RuntimeItemsMixin";
|
|
6
|
+
import { Taggable } from "@mat3ra/code/dist/js/entity/mixins/TaggableMixin";
|
|
7
|
+
import type { NameResultSchema } from "@mat3ra/code/dist/js/utils/object";
|
|
8
|
+
import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
|
|
9
|
+
import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
|
|
10
|
+
import type { StatusSchema, WorkflowBaseUnitSchema } from "@mat3ra/esse/dist/js/types";
|
|
11
|
+
import { type BaseUnitSchemaMixin } from "../generated/BaseUnitSchemaMixin";
|
|
12
|
+
import { type StatusSchemaMixin } from "../generated/StatusSchemaMixin";
|
|
13
|
+
import { type RuntimeItemsUILogic } from "./mixins/RuntimeItemsUILogicMixin";
|
|
14
|
+
type Schema = WorkflowBaseUnitSchema;
|
|
15
|
+
type Base = typeof InMemoryEntity & Constructor<NamedEntity> & Constructor<Defaultable> & Constructor<Taggable> & Constructor<HashedEntity> & Constructor<RuntimeItems> & Constructor<RuntimeItemsUILogic> & Constructor<BaseUnitSchemaMixin> & Constructor<StatusSchemaMixin>;
|
|
16
|
+
declare const BaseUnit_base: Base;
|
|
17
|
+
declare class BaseUnit<S extends Schema = Schema> extends BaseUnit_base implements Schema {
|
|
18
|
+
toJSON: () => Schema & AnyObject;
|
|
19
|
+
_json: Schema & AnyObject;
|
|
20
|
+
defaultResults: NameResultSchema[];
|
|
21
|
+
defaultMonitors: NameResultSchema[];
|
|
22
|
+
defaultPostProcessors: NameResultSchema[];
|
|
23
|
+
defaultPreProcessors: NameResultSchema[];
|
|
24
|
+
repetition: number;
|
|
25
|
+
/**
|
|
26
|
+
* @param config — `flowchartId` is optional; when absent, a new UUID is generated.
|
|
27
|
+
*/
|
|
28
|
+
constructor(config: Partial<S> & Pick<S, "name">);
|
|
29
|
+
get lastStatusUpdate(): {
|
|
30
|
+
trackedAt: number;
|
|
31
|
+
status: string;
|
|
32
|
+
repetition?: number;
|
|
33
|
+
};
|
|
34
|
+
getHashObject(): object;
|
|
35
|
+
isInStatus(status: StatusSchema["status"]): boolean;
|
|
36
|
+
clone(extraContext: object): this;
|
|
37
|
+
setRepetition(repetition: number): void;
|
|
38
|
+
}
|
|
39
|
+
export default BaseUnit;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const entity_1 = require("@mat3ra/code/dist/js/entity");
|
|
4
|
+
const DefaultableMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/DefaultableMixin");
|
|
5
|
+
const HashedEntityMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/HashedEntityMixin");
|
|
6
|
+
const NamedEntityMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/NamedEntityMixin");
|
|
7
|
+
const RuntimeItemsMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/RuntimeItemsMixin");
|
|
8
|
+
const TaggableMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/TaggableMixin");
|
|
9
|
+
const utils_1 = require("@mat3ra/utils");
|
|
10
|
+
const enums_1 = require("../enums");
|
|
11
|
+
const BaseUnitSchemaMixin_1 = require("../generated/BaseUnitSchemaMixin");
|
|
12
|
+
const StatusSchemaMixin_1 = require("../generated/StatusSchemaMixin");
|
|
13
|
+
const RuntimeItemsUILogicMixin_1 = require("./mixins/RuntimeItemsUILogicMixin");
|
|
14
|
+
class BaseUnit extends entity_1.InMemoryEntity {
|
|
15
|
+
/**
|
|
16
|
+
* @param config — `flowchartId` is optional; when absent, a new UUID is generated.
|
|
17
|
+
*/
|
|
18
|
+
constructor(config) {
|
|
19
|
+
var _a;
|
|
20
|
+
super({
|
|
21
|
+
results: [],
|
|
22
|
+
monitors: [],
|
|
23
|
+
preProcessors: [],
|
|
24
|
+
postProcessors: [],
|
|
25
|
+
...config,
|
|
26
|
+
status: config.status || enums_1.UnitStatus.idle,
|
|
27
|
+
statusTrack: config.statusTrack || [],
|
|
28
|
+
flowchartId: (_a = config.flowchartId) !== null && _a !== void 0 ? _a : utils_1.Utils.uuid.getUUID(),
|
|
29
|
+
tags: config.tags || [],
|
|
30
|
+
});
|
|
31
|
+
this.defaultResults = [];
|
|
32
|
+
this.defaultMonitors = [];
|
|
33
|
+
this.defaultPostProcessors = [];
|
|
34
|
+
this.defaultPreProcessors = [];
|
|
35
|
+
this.repetition = 0;
|
|
36
|
+
this._initRuntimeItems(config);
|
|
37
|
+
}
|
|
38
|
+
get lastStatusUpdate() {
|
|
39
|
+
const statusTrack = (this.statusTrack || []).filter((s) => {
|
|
40
|
+
return (s.repetition || 0) === this.repetition;
|
|
41
|
+
});
|
|
42
|
+
const sortedStatusTrack = statusTrack.sort((a, b) => a.trackedAt - b.trackedAt); // lodash.sortBy(statusTrack, (x) => x.trackedAt);
|
|
43
|
+
return sortedStatusTrack[sortedStatusTrack.length - 1];
|
|
44
|
+
}
|
|
45
|
+
getHashObject() {
|
|
46
|
+
return { ...this.hashObjectFromRuntimeItems, type: this.type };
|
|
47
|
+
}
|
|
48
|
+
isInStatus(status) {
|
|
49
|
+
return this.status === status;
|
|
50
|
+
}
|
|
51
|
+
clone(extraContext) {
|
|
52
|
+
const flowchartIDOverrideConfigAsExtraContext = {
|
|
53
|
+
flowchartId: utils_1.Utils.uuid.getUUID(),
|
|
54
|
+
...extraContext,
|
|
55
|
+
};
|
|
56
|
+
return super.clone(flowchartIDOverrideConfigAsExtraContext);
|
|
57
|
+
}
|
|
58
|
+
setRepetition(repetition) {
|
|
59
|
+
this.repetition = repetition;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
(0, TaggableMixin_1.taggableMixin)(BaseUnit.prototype);
|
|
63
|
+
(0, HashedEntityMixin_1.hashedEntityMixin)(BaseUnit.prototype);
|
|
64
|
+
(0, RuntimeItemsMixin_1.runtimeItemsMixin)(BaseUnit.prototype);
|
|
65
|
+
(0, RuntimeItemsUILogicMixin_1.runtimeItemsUILogicMixin)(BaseUnit.prototype);
|
|
66
|
+
(0, BaseUnitSchemaMixin_1.baseUnitSchemaMixin)(BaseUnit.prototype);
|
|
67
|
+
(0, StatusSchemaMixin_1.statusSchemaMixin)(BaseUnit.prototype);
|
|
68
|
+
(0, NamedEntityMixin_1.namedEntityMixin)(BaseUnit.prototype);
|
|
69
|
+
(0, DefaultableMixin_1.defaultableEntityMixin)(BaseUnit);
|
|
70
|
+
exports.default = BaseUnit;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
|
|
2
|
+
import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
|
|
3
|
+
import type { ConditionUnitSchema } from "@mat3ra/esse/dist/js/types";
|
|
4
|
+
import { type ConditionUnitSchemaMixin } from "../generated/ConditionUnitSchemaMixin";
|
|
5
|
+
import BaseUnit from "./BaseUnit";
|
|
6
|
+
type Schema = ConditionUnitSchema;
|
|
7
|
+
type Base = typeof BaseUnit<Schema> & Constructor<ConditionUnitSchemaMixin>;
|
|
8
|
+
export type ConditionUnitConfig = Partial<Schema>;
|
|
9
|
+
declare const ConditionUnit_base: Base;
|
|
10
|
+
declare class ConditionUnit extends ConditionUnit_base implements Schema {
|
|
11
|
+
toJSON: () => Schema & AnyObject;
|
|
12
|
+
_json: Schema & AnyObject;
|
|
13
|
+
static get jsonSchema(): import("json-schema").JSONSchema7 | undefined;
|
|
14
|
+
constructor(config: ConditionUnitConfig);
|
|
15
|
+
getHashObject(): object;
|
|
16
|
+
}
|
|
17
|
+
export default ConditionUnit;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
|
|
7
|
+
const enums_1 = require("../enums");
|
|
8
|
+
const ConditionUnitSchemaMixin_1 = require("../generated/ConditionUnitSchemaMixin");
|
|
9
|
+
const BaseUnit_1 = __importDefault(require("./BaseUnit"));
|
|
10
|
+
class ConditionUnit extends BaseUnit_1.default {
|
|
11
|
+
static get jsonSchema() {
|
|
12
|
+
return JSONSchemasInterface_1.default.getSchemaById("workflow/unit/condition");
|
|
13
|
+
}
|
|
14
|
+
constructor(config) {
|
|
15
|
+
var _a;
|
|
16
|
+
const schema = {
|
|
17
|
+
input: [],
|
|
18
|
+
results: [],
|
|
19
|
+
preProcessors: [],
|
|
20
|
+
postProcessors: [],
|
|
21
|
+
monitors: [],
|
|
22
|
+
then: "",
|
|
23
|
+
else: "",
|
|
24
|
+
statement: "true",
|
|
25
|
+
maxOccurrences: 100,
|
|
26
|
+
...config,
|
|
27
|
+
name: (_a = config.name) !== null && _a !== void 0 ? _a : enums_1.UnitType.condition,
|
|
28
|
+
type: enums_1.UnitType.condition,
|
|
29
|
+
};
|
|
30
|
+
super(schema);
|
|
31
|
+
}
|
|
32
|
+
getHashObject() {
|
|
33
|
+
return { statement: this.statement, maxOccurrences: this.maxOccurrences };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
(0, ConditionUnitSchemaMixin_1.conditionUnitSchemaMixin)(ConditionUnit.prototype);
|
|
37
|
+
exports.default = ConditionUnit;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
|
|
2
|
+
import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
|
|
3
|
+
import type { ExecutionUnitSchema } from "@mat3ra/esse/dist/js/types";
|
|
4
|
+
import { type AnyContextProvider, type ExternalContext } from "../context/providers";
|
|
5
|
+
import type ConvergenceParameter from "../convergence/ConvergenceParameter";
|
|
6
|
+
import { type ExecutionUnitSchemaMixin } from "../generated/ExecutionUnitSchemaMixin";
|
|
7
|
+
import BaseUnit from "./BaseUnit";
|
|
8
|
+
import ExecutionUnitInput from "./ExecutionUnitInput";
|
|
9
|
+
type Schema = ExecutionUnitSchema;
|
|
10
|
+
type Base = typeof BaseUnit & Constructor<ExecutionUnitSchemaMixin>;
|
|
11
|
+
export type ExecutionUnitConfig = Omit<Partial<Schema>, "application"> & SetApplicationProps;
|
|
12
|
+
type SetApplicationProps = Pick<Schema, "application"> & Pick<Partial<Schema>, "executable" | "flavor"> & SetExecutableProps;
|
|
13
|
+
type SetExecutableProps = {
|
|
14
|
+
executableName?: string;
|
|
15
|
+
flavorName?: string;
|
|
16
|
+
};
|
|
17
|
+
declare const ExecutionUnit_base: Base;
|
|
18
|
+
declare class ExecutionUnit extends ExecutionUnit_base implements Schema {
|
|
19
|
+
inputInstances: ExecutionUnitInput[];
|
|
20
|
+
renderingContext: Partial<ExternalContext>;
|
|
21
|
+
contextProvidersInstances: AnyContextProvider[];
|
|
22
|
+
toJSON: () => Schema & AnyObject;
|
|
23
|
+
_json: Schema & AnyObject;
|
|
24
|
+
static get jsonSchema(): import("json-schema").JSONSchema7 | undefined;
|
|
25
|
+
constructor(config: ExecutionUnitConfig);
|
|
26
|
+
setApplication({ application, executable, flavor, executableName, flavorName, }: SetApplicationProps): void;
|
|
27
|
+
setExecutable({ executableName, flavorName }: SetExecutableProps): void;
|
|
28
|
+
setFlavor(flavorName?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Persisted `input[].template` must match the current application/executable (and optional
|
|
31
|
+
* applicationVersion). Otherwise the stored template is stale, and we take the default from
|
|
32
|
+
* ApplicationRegistry.
|
|
33
|
+
*/
|
|
34
|
+
private isPersistedInputItemCompatible;
|
|
35
|
+
/**
|
|
36
|
+
* Build `inputInstances` from the current flavor’s defaults (`ApplicationRegistry#getInput(application, flavor)`),
|
|
37
|
+
* merged with persisted `this.input` from saved workflow JSON. For each input slot from the registry we
|
|
38
|
+
* prefer a compatible persisted row matched by `template.name`, else by index; incompatible or missing
|
|
39
|
+
* rows use the registry template. `render()` then serializes from these instances into `this.input`, so UI
|
|
40
|
+
* and saved JSON stay aligned when Subworkflow re-serializes units after render.
|
|
41
|
+
*/
|
|
42
|
+
setDefaultInput(): void;
|
|
43
|
+
render(externalContext: ExternalContext, convergence?: ConvergenceParameter): void;
|
|
44
|
+
private getContextProvidersInstances;
|
|
45
|
+
savePersistentContext(): void;
|
|
46
|
+
saveRenderingContext(externalContext: ExternalContext): void;
|
|
47
|
+
saveContext(externalContext: ExternalContext): void;
|
|
48
|
+
getHashObject(): {
|
|
49
|
+
application: {
|
|
50
|
+
_id?: string;
|
|
51
|
+
slug?: string;
|
|
52
|
+
systemName?: string;
|
|
53
|
+
schemaVersion?: string;
|
|
54
|
+
name: string;
|
|
55
|
+
isDefault?: boolean;
|
|
56
|
+
shortName: string;
|
|
57
|
+
summary: string;
|
|
58
|
+
version: string;
|
|
59
|
+
build: string;
|
|
60
|
+
isDefaultVersion?: boolean;
|
|
61
|
+
hasAdvancedComputeOptions?: boolean;
|
|
62
|
+
isLicensed?: boolean;
|
|
63
|
+
isUsingMaterial?: boolean;
|
|
64
|
+
runConfig?: {
|
|
65
|
+
commandTemplate: string;
|
|
66
|
+
outFileName: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
executable: {
|
|
70
|
+
_id?: string;
|
|
71
|
+
slug?: string;
|
|
72
|
+
systemName?: string;
|
|
73
|
+
schemaVersion?: string;
|
|
74
|
+
name: string;
|
|
75
|
+
isDefault?: boolean;
|
|
76
|
+
applicationName: string;
|
|
77
|
+
applicationVersion: string;
|
|
78
|
+
hasAdvancedComputeOptions?: boolean;
|
|
79
|
+
};
|
|
80
|
+
flavor: {
|
|
81
|
+
_id?: string;
|
|
82
|
+
slug?: string;
|
|
83
|
+
systemName?: string;
|
|
84
|
+
schemaVersion?: string;
|
|
85
|
+
name: string;
|
|
86
|
+
isDefault?: boolean;
|
|
87
|
+
preProcessors: {
|
|
88
|
+
name: string;
|
|
89
|
+
[k: string]: unknown;
|
|
90
|
+
}[];
|
|
91
|
+
postProcessors: {
|
|
92
|
+
name: string;
|
|
93
|
+
[k: string]: unknown;
|
|
94
|
+
}[];
|
|
95
|
+
monitors: {
|
|
96
|
+
name: string;
|
|
97
|
+
[k: string]: unknown;
|
|
98
|
+
}[];
|
|
99
|
+
results: {
|
|
100
|
+
name: string;
|
|
101
|
+
[k: string]: unknown;
|
|
102
|
+
}[];
|
|
103
|
+
executableName: string;
|
|
104
|
+
applicationName: string;
|
|
105
|
+
applicationVersion: string;
|
|
106
|
+
input: {
|
|
107
|
+
templateId?: string;
|
|
108
|
+
templateName?: string;
|
|
109
|
+
name: string;
|
|
110
|
+
}[];
|
|
111
|
+
};
|
|
112
|
+
input: string;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export default ExecutionUnit;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
|
|
7
|
+
const standata_1 = require("@mat3ra/standata");
|
|
8
|
+
const utils_1 = require("@mat3ra/utils");
|
|
9
|
+
const providers_1 = require("../context/providers");
|
|
10
|
+
const enums_1 = require("../enums");
|
|
11
|
+
const ExecutionUnitSchemaMixin_1 = require("../generated/ExecutionUnitSchemaMixin");
|
|
12
|
+
const BaseUnit_1 = __importDefault(require("./BaseUnit"));
|
|
13
|
+
const ExecutionUnitInput_1 = __importDefault(require("./ExecutionUnitInput"));
|
|
14
|
+
class ExecutionUnit extends BaseUnit_1.default {
|
|
15
|
+
static get jsonSchema() {
|
|
16
|
+
return JSONSchemasInterface_1.default.getSchemaById("workflow/unit/execution");
|
|
17
|
+
}
|
|
18
|
+
constructor(config) {
|
|
19
|
+
const schema = {
|
|
20
|
+
name: enums_1.UnitType.execution,
|
|
21
|
+
type: enums_1.UnitType.execution,
|
|
22
|
+
input: [],
|
|
23
|
+
results: [],
|
|
24
|
+
preProcessors: [],
|
|
25
|
+
postProcessors: [],
|
|
26
|
+
monitors: [],
|
|
27
|
+
context: [],
|
|
28
|
+
...config,
|
|
29
|
+
};
|
|
30
|
+
super(schema);
|
|
31
|
+
this.inputInstances = [];
|
|
32
|
+
this.renderingContext = {};
|
|
33
|
+
this.contextProvidersInstances = [];
|
|
34
|
+
this.setApplication(config);
|
|
35
|
+
this.name = this.name || this.flavor.name || "";
|
|
36
|
+
}
|
|
37
|
+
setApplication({ application, executable, flavor, executableName, flavorName, }) {
|
|
38
|
+
var _a, _b;
|
|
39
|
+
const currentExecutable = this.prop("executable");
|
|
40
|
+
const currentFlavor = this.prop("flavor");
|
|
41
|
+
this.setProp("application", application);
|
|
42
|
+
this.setExecutable({
|
|
43
|
+
executableName: (_a = executableName !== null && executableName !== void 0 ? executableName : executable === null || executable === void 0 ? void 0 : executable.name) !== null && _a !== void 0 ? _a : currentExecutable === null || currentExecutable === void 0 ? void 0 : currentExecutable.name,
|
|
44
|
+
flavorName: (_b = flavorName !== null && flavorName !== void 0 ? flavorName : flavor === null || flavor === void 0 ? void 0 : flavor.name) !== null && _b !== void 0 ? _b : currentFlavor === null || currentFlavor === void 0 ? void 0 : currentFlavor.name,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
setExecutable({ executableName, flavorName }) {
|
|
48
|
+
const executable = new standata_1.ApplicationRegistry()
|
|
49
|
+
.getExecutablesByApplication(this.application)
|
|
50
|
+
.find((executable) => {
|
|
51
|
+
return executableName ? executable.name === executableName : executable.isDefault;
|
|
52
|
+
});
|
|
53
|
+
if (!executable) {
|
|
54
|
+
throw new Error(`Executable ${executableName} not found`);
|
|
55
|
+
}
|
|
56
|
+
this.setProp("executable", executable);
|
|
57
|
+
this.setFlavor(flavorName);
|
|
58
|
+
}
|
|
59
|
+
setFlavor(flavorName) {
|
|
60
|
+
const flavor = new standata_1.ApplicationRegistry()
|
|
61
|
+
.getFlavorsByApplicationExecutable(this.application, this.executable)
|
|
62
|
+
.find((flavor) => (flavorName ? flavor.name === flavorName : flavor.isDefault));
|
|
63
|
+
if (!flavor) {
|
|
64
|
+
throw new Error(`Flavor ${flavorName} not found`);
|
|
65
|
+
}
|
|
66
|
+
this.defaultResults = flavor.results;
|
|
67
|
+
this.defaultMonitors = flavor.monitors;
|
|
68
|
+
this.defaultPreProcessors = flavor.preProcessors;
|
|
69
|
+
this.defaultPostProcessors = flavor.postProcessors;
|
|
70
|
+
// flavor is missing on the first run, so do not use getter this.flavor with requiredProperty
|
|
71
|
+
const previousFlavor = this.prop("flavor");
|
|
72
|
+
if ((previousFlavor === null || previousFlavor === void 0 ? void 0 : previousFlavor.name) !== flavor.name) {
|
|
73
|
+
this.results = flavor.results;
|
|
74
|
+
this.monitors = flavor.monitors;
|
|
75
|
+
this.preProcessors = flavor.preProcessors;
|
|
76
|
+
this.postProcessors = flavor.postProcessors;
|
|
77
|
+
}
|
|
78
|
+
this.setProp("flavor", flavor);
|
|
79
|
+
this.setDefaultInput();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Persisted `input[].template` must match the current application/executable (and optional
|
|
83
|
+
* applicationVersion). Otherwise the stored template is stale, and we take the default from
|
|
84
|
+
* ApplicationRegistry.
|
|
85
|
+
*/
|
|
86
|
+
isPersistedInputItemCompatible(item) {
|
|
87
|
+
var _a;
|
|
88
|
+
const { template } = item;
|
|
89
|
+
if (template.applicationName !== this.application.name ||
|
|
90
|
+
template.executableName !== this.executable.name) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
if (!(0, standata_1.applicationVersionSatisfiesSupportedRange)(this.application.version, (_a = template.applicationVersion) !== null && _a !== void 0 ? _a : "")) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Build `inputInstances` from the current flavor’s defaults (`ApplicationRegistry#getInput(application, flavor)`),
|
|
100
|
+
* merged with persisted `this.input` from saved workflow JSON. For each input slot from the registry we
|
|
101
|
+
* prefer a compatible persisted row matched by `template.name`, else by index; incompatible or missing
|
|
102
|
+
* rows use the registry template. `render()` then serializes from these instances into `this.input`, so UI
|
|
103
|
+
* and saved JSON stay aligned when Subworkflow re-serializes units after render.
|
|
104
|
+
*/
|
|
105
|
+
setDefaultInput() {
|
|
106
|
+
const driverTemplates = new standata_1.ApplicationRegistry().getInput(this.application, this.flavor);
|
|
107
|
+
const persisted = Array.isArray(this.input) ? this.input : [];
|
|
108
|
+
this.inputInstances = driverTemplates.map((driverTemplate, index) => {
|
|
109
|
+
var _a;
|
|
110
|
+
const persistedItem = (_a = persisted.find((item) => { var _a; return ((_a = item === null || item === void 0 ? void 0 : item.template) === null || _a === void 0 ? void 0 : _a.name) === driverTemplate.name; })) !== null && _a !== void 0 ? _a : persisted[index];
|
|
111
|
+
if (persistedItem && this.isPersistedInputItemCompatible(persistedItem)) {
|
|
112
|
+
return new ExecutionUnitInput_1.default(persistedItem);
|
|
113
|
+
}
|
|
114
|
+
return ExecutionUnitInput_1.default.createFromTemplate(driverTemplate);
|
|
115
|
+
});
|
|
116
|
+
this.input = this.inputInstances.map((input) => input.toJSON());
|
|
117
|
+
}
|
|
118
|
+
render(externalContext, convergence) {
|
|
119
|
+
this.contextProvidersInstances = this.getContextProvidersInstances(externalContext, convergence);
|
|
120
|
+
this.saveContext(externalContext);
|
|
121
|
+
}
|
|
122
|
+
getContextProvidersInstances(externalContext, convergence) {
|
|
123
|
+
const uniqueContextProviderNames = [
|
|
124
|
+
...new Set(this.input
|
|
125
|
+
.map((input) => {
|
|
126
|
+
return input.template.contextProviders.map((provider) => {
|
|
127
|
+
return provider.name;
|
|
128
|
+
});
|
|
129
|
+
})
|
|
130
|
+
.flat()),
|
|
131
|
+
];
|
|
132
|
+
// TODO: kgrid should be abstracted and selected by user
|
|
133
|
+
const parameterToContextProviderMap = {
|
|
134
|
+
N_k: "kgrid",
|
|
135
|
+
N_k_nonuniform: "kgrid",
|
|
136
|
+
};
|
|
137
|
+
return uniqueContextProviderNames
|
|
138
|
+
.map((name) => {
|
|
139
|
+
return (0, providers_1.createProvider)(name, this.context, externalContext);
|
|
140
|
+
})
|
|
141
|
+
.map((provider) => {
|
|
142
|
+
if (convergence &&
|
|
143
|
+
provider.name === parameterToContextProviderMap[convergence.name]) {
|
|
144
|
+
provider.applyConvergenceParameter(convergence);
|
|
145
|
+
}
|
|
146
|
+
return provider;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
savePersistentContext() {
|
|
150
|
+
const persistentItems = this.contextProvidersInstances.map((p) => p.getContextItemData());
|
|
151
|
+
this.context = persistentItems.filter((c) => c.isEdited);
|
|
152
|
+
}
|
|
153
|
+
saveRenderingContext(externalContext) {
|
|
154
|
+
const renderingItems = this.contextProvidersInstances.map((p) => p.getContextItemDataForRendering());
|
|
155
|
+
this.renderingContext = {
|
|
156
|
+
...Object.fromEntries(renderingItems.map((context) => [context.name, context.data])),
|
|
157
|
+
...externalContext,
|
|
158
|
+
};
|
|
159
|
+
this.input = this.inputInstances.map((input) => {
|
|
160
|
+
return input.render(this.renderingContext).toJSON();
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
saveContext(externalContext) {
|
|
164
|
+
this.savePersistentContext();
|
|
165
|
+
this.saveRenderingContext(externalContext);
|
|
166
|
+
}
|
|
167
|
+
getHashObject() {
|
|
168
|
+
const { input, flavor, application, executable } = this.toJSON();
|
|
169
|
+
return {
|
|
170
|
+
...super.getHashObject(),
|
|
171
|
+
application,
|
|
172
|
+
executable,
|
|
173
|
+
flavor,
|
|
174
|
+
input: utils_1.Utils.hash.calculateHashFromObject(input.map(({ template }) => {
|
|
175
|
+
return utils_1.Utils.str.removeEmptyLinesFromString(utils_1.Utils.str.removeCommentsFromSourceCode(template.content));
|
|
176
|
+
})),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
(0, ExecutionUnitSchemaMixin_1.executionUnitSchemaMixin)(ExecutionUnit.prototype);
|
|
181
|
+
exports.default = ExecutionUnit;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Template } from "@mat3ra/ade";
|
|
2
|
+
import { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
|
|
3
|
+
import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
|
|
4
|
+
import type { TemplateSchema } from "@mat3ra/esse/dist/js/types";
|
|
5
|
+
import { type ExecutionUnitInputSchemaMixin } from "../generated/ExecutionUnitInputSchemaMixin";
|
|
6
|
+
type Schema = ExecutionUnitInputSchemaMixin;
|
|
7
|
+
type JSON = Schema & AnyObject;
|
|
8
|
+
type ConstructorConfig = Schema | (Omit<Schema, "template"> & {
|
|
9
|
+
template: Template;
|
|
10
|
+
});
|
|
11
|
+
interface ExecutionUnitInput extends ExecutionUnitInputSchemaMixin {
|
|
12
|
+
}
|
|
13
|
+
declare class ExecutionUnitInput extends InMemoryEntity implements Schema {
|
|
14
|
+
_json: JSON;
|
|
15
|
+
toJSON: () => JSON;
|
|
16
|
+
toJSONQuick: () => JSON;
|
|
17
|
+
static get jsonSchema(): import("json-schema").JSONSchema7 | undefined;
|
|
18
|
+
static createFromTemplate(template: Template | TemplateSchema): ExecutionUnitInput;
|
|
19
|
+
constructor(config: ConstructorConfig);
|
|
20
|
+
render(renderingContext: Record<string, unknown>): this;
|
|
21
|
+
}
|
|
22
|
+
export default ExecutionUnitInput;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ade_1 = require("@mat3ra/ade");
|
|
7
|
+
const entity_1 = require("@mat3ra/code/dist/js/entity");
|
|
8
|
+
const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
|
|
9
|
+
const standata_1 = require("@mat3ra/standata");
|
|
10
|
+
const nunjucks_1 = __importDefault(require("nunjucks"));
|
|
11
|
+
const ExecutionUnitInputSchemaMixin_1 = require("../generated/ExecutionUnitInputSchemaMixin");
|
|
12
|
+
const env = (0, standata_1.setupNunjucksEnvironment)(new nunjucks_1.default.Environment());
|
|
13
|
+
class ExecutionUnitInput extends entity_1.InMemoryEntity {
|
|
14
|
+
static get jsonSchema() {
|
|
15
|
+
return JSONSchemasInterface_1.default.getSchemaById("workflow/unit/input/-inputItem");
|
|
16
|
+
}
|
|
17
|
+
static createFromTemplate(template) {
|
|
18
|
+
return new ExecutionUnitInput({
|
|
19
|
+
template,
|
|
20
|
+
rendered: template.content,
|
|
21
|
+
isManuallyChanged: false,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
constructor(config) {
|
|
25
|
+
const { template } = config;
|
|
26
|
+
const templateInstance = template instanceof ade_1.Template ? template : new ade_1.Template(template);
|
|
27
|
+
super({ ...config, template: templateInstance.toJSON() });
|
|
28
|
+
}
|
|
29
|
+
render(renderingContext) {
|
|
30
|
+
if (this.isManuallyChanged) {
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const rendered = nunjucks_1.default.compile(this.template.content, env).render(renderingContext);
|
|
35
|
+
this.rendered = rendered || this.template.content;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error("Error rendering template", this.template.content);
|
|
40
|
+
console.error("Rendering context: ", JSON.stringify(renderingContext));
|
|
41
|
+
console.error("Error", error);
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
(0, ExecutionUnitInputSchemaMixin_1.executionUnitInputSchemaMixin)(ExecutionUnitInput.prototype);
|
|
47
|
+
exports.default = ExecutionUnitInput;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
|
|
2
|
+
import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
|
|
3
|
+
import type { DataIOUnitSchema } from "@mat3ra/esse/dist/js/types";
|
|
4
|
+
import { type IOUnitSchemaMixin } from "../generated/IOUnitSchemaMixin";
|
|
5
|
+
import BaseUnit from "./BaseUnit";
|
|
6
|
+
type Schema = DataIOUnitSchema;
|
|
7
|
+
type Base = typeof BaseUnit<Schema> & Constructor<IOUnitSchemaMixin>;
|
|
8
|
+
export type IOUnitConfig = Partial<Schema>;
|
|
9
|
+
declare const IOUnit_base: Base;
|
|
10
|
+
declare class IOUnit extends IOUnit_base implements Schema {
|
|
11
|
+
toJSON: () => Schema & AnyObject;
|
|
12
|
+
_json: Schema & AnyObject;
|
|
13
|
+
static get jsonSchema(): import("json-schema").JSONSchema7 | undefined;
|
|
14
|
+
constructor(config: IOUnitConfig);
|
|
15
|
+
}
|
|
16
|
+
export default IOUnit;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
|
|
7
|
+
const enums_1 = require("../enums");
|
|
8
|
+
const IOUnitSchemaMixin_1 = require("../generated/IOUnitSchemaMixin");
|
|
9
|
+
const BaseUnit_1 = __importDefault(require("./BaseUnit"));
|
|
10
|
+
class IOUnit extends BaseUnit_1.default {
|
|
11
|
+
static get jsonSchema() {
|
|
12
|
+
return JSONSchemasInterface_1.default.getSchemaById("workflow/unit/io");
|
|
13
|
+
}
|
|
14
|
+
constructor(config) {
|
|
15
|
+
const schema = {
|
|
16
|
+
name: enums_1.UnitType.io,
|
|
17
|
+
subtype: "input",
|
|
18
|
+
source: "api",
|
|
19
|
+
input: [],
|
|
20
|
+
results: [],
|
|
21
|
+
preProcessors: [],
|
|
22
|
+
postProcessors: [],
|
|
23
|
+
monitors: [],
|
|
24
|
+
...config,
|
|
25
|
+
type: enums_1.UnitType.io,
|
|
26
|
+
};
|
|
27
|
+
super(schema);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
(0, IOUnitSchemaMixin_1.iOUnitSchemaMixin)(IOUnit.prototype);
|
|
31
|
+
exports.default = IOUnit;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
|
|
2
|
+
import type { AnyObject } from "@mat3ra/esse/dist/js/esse/types";
|
|
3
|
+
import type { MapUnitSchema } from "@mat3ra/esse/dist/js/types";
|
|
4
|
+
import { UnitType } from "../enums";
|
|
5
|
+
import { type MapUnitSchemaMixin } from "../generated/MapUnitSchemaMixin";
|
|
6
|
+
import BaseUnit from "./BaseUnit";
|
|
7
|
+
type Schema = MapUnitSchema;
|
|
8
|
+
export declare const defaultMapConfig: {
|
|
9
|
+
name: UnitType;
|
|
10
|
+
type: UnitType;
|
|
11
|
+
workflowId: string;
|
|
12
|
+
input: {
|
|
13
|
+
target: string;
|
|
14
|
+
scope: string;
|
|
15
|
+
name: string;
|
|
16
|
+
values: never[];
|
|
17
|
+
useValues: boolean;
|
|
18
|
+
};
|
|
19
|
+
results: never[];
|
|
20
|
+
monitors: never[];
|
|
21
|
+
preProcessors: never[];
|
|
22
|
+
postProcessors: never[];
|
|
23
|
+
};
|
|
24
|
+
type Base = typeof BaseUnit<Schema> & Constructor<MapUnitSchemaMixin>;
|
|
25
|
+
export type MapUnitConfig = Partial<Omit<Schema, "type">>;
|
|
26
|
+
declare const MapUnit_base: Base;
|
|
27
|
+
declare class MapUnit extends MapUnit_base implements Schema {
|
|
28
|
+
toJSON: () => Schema & AnyObject;
|
|
29
|
+
_json: Schema & AnyObject;
|
|
30
|
+
static get jsonSchema(): import("json-schema").JSONSchema7 | undefined;
|
|
31
|
+
constructor(config: MapUnitConfig);
|
|
32
|
+
setWorkflowId(id: string): void;
|
|
33
|
+
}
|
|
34
|
+
export default MapUnit;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defaultMapConfig = void 0;
|
|
7
|
+
const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
|
|
8
|
+
const enums_1 = require("../enums");
|
|
9
|
+
const MapUnitSchemaMixin_1 = require("../generated/MapUnitSchemaMixin");
|
|
10
|
+
const BaseUnit_1 = __importDefault(require("./BaseUnit"));
|
|
11
|
+
exports.defaultMapConfig = {
|
|
12
|
+
name: enums_1.UnitType.map,
|
|
13
|
+
type: enums_1.UnitType.map,
|
|
14
|
+
workflowId: "",
|
|
15
|
+
input: {
|
|
16
|
+
target: "MAP_DATA",
|
|
17
|
+
scope: "global",
|
|
18
|
+
name: "",
|
|
19
|
+
values: [],
|
|
20
|
+
useValues: false,
|
|
21
|
+
},
|
|
22
|
+
results: [],
|
|
23
|
+
monitors: [],
|
|
24
|
+
preProcessors: [],
|
|
25
|
+
postProcessors: [],
|
|
26
|
+
};
|
|
27
|
+
class MapUnit extends BaseUnit_1.default {
|
|
28
|
+
static get jsonSchema() {
|
|
29
|
+
return JSONSchemasInterface_1.default.getSchemaById("workflow/unit/flowchart");
|
|
30
|
+
}
|
|
31
|
+
constructor(config) {
|
|
32
|
+
var _a;
|
|
33
|
+
const schema = {
|
|
34
|
+
...exports.defaultMapConfig,
|
|
35
|
+
...config,
|
|
36
|
+
flowchartId: (_a = config.flowchartId) !== null && _a !== void 0 ? _a : "",
|
|
37
|
+
type: enums_1.UnitType.map,
|
|
38
|
+
};
|
|
39
|
+
super(schema);
|
|
40
|
+
}
|
|
41
|
+
setWorkflowId(id) {
|
|
42
|
+
this.setProp("workflowId", id);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
(0, MapUnitSchemaMixin_1.mapUnitSchemaMixin)(MapUnit.prototype);
|
|
46
|
+
exports.default = MapUnit;
|