@mat3ra/wode 2026.5.23-0 → 2026.6.5-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.
Files changed (360) hide show
  1. package/.babelrc +1 -1
  2. package/dist/js/Subworkflow.d.ts +714 -0
  3. package/dist/js/Subworkflow.js +397 -0
  4. package/dist/js/Workflow.d.ts +82 -0
  5. package/dist/js/Workflow.js +286 -0
  6. package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
  7. package/dist/js/WorkflowDesignerMaterial.js +26 -0
  8. package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
  9. package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
  10. package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
  11. package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
  12. package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
  13. package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
  14. package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
  15. package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
  16. package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
  17. package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
  18. package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
  19. package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
  20. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
  21. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
  22. package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
  23. package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
  24. package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
  25. package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
  26. package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
  27. package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
  28. package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
  29. package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
  30. package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
  31. package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
  32. package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
  33. package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
  34. package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
  35. package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
  36. package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
  37. package/dist/js/context/providers/NEBFormDataManager.js +39 -0
  38. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
  39. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
  40. package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
  41. package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
  42. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
  43. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
  44. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
  45. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
  46. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
  47. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
  48. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
  49. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
  50. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
  51. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
  52. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
  53. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
  54. package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
  55. package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
  56. package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
  57. package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
  58. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
  59. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
  60. package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
  61. package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
  62. package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
  63. package/dist/js/context/providers/base/ContextProvider.js +87 -0
  64. package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
  65. package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
  66. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
  67. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
  68. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
  69. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
  70. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
  71. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
  72. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
  73. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
  74. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
  75. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
  76. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
  77. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
  78. package/dist/js/context/providers/index.d.ts +92 -0
  79. package/dist/js/context/providers/index.js +107 -0
  80. package/dist/js/context/providers/settings.d.ts +7 -0
  81. package/dist/js/context/providers/settings.js +11 -33
  82. package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
  83. package/dist/js/convergence/ConvergenceParameter.js +13 -0
  84. package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
  85. package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
  86. package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
  87. package/dist/js/convergence/UniformKGridConvergence.js +22 -0
  88. package/dist/js/convergence/factory.d.ts +8 -0
  89. package/dist/js/convergence/factory.js +18 -0
  90. package/dist/js/enums.d.ts +62 -0
  91. package/dist/js/enums.js +66 -61
  92. package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
  93. package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
  94. package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
  95. package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
  96. package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
  97. package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
  98. package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
  99. package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
  100. package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
  101. package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
  102. package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
  103. package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
  104. package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
  105. package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
  106. package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
  107. package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
  108. package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
  109. package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
  110. package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
  111. package/dist/js/generated/StatusSchemaMixin.js +21 -0
  112. package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
  113. package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
  114. package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
  115. package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
  116. package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
  117. package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
  118. package/dist/js/index.d.ts +13 -0
  119. package/dist/js/index.js +66 -176
  120. package/dist/js/units/AssertionUnit.d.ts +20 -0
  121. package/dist/js/units/AssertionUnit.js +33 -0
  122. package/dist/js/units/AssignmentUnit.d.ts +17 -0
  123. package/dist/js/units/AssignmentUnit.js +35 -0
  124. package/dist/js/units/BaseUnit.d.ts +39 -0
  125. package/dist/js/units/BaseUnit.js +70 -0
  126. package/dist/js/units/ConditionUnit.d.ts +17 -0
  127. package/dist/js/units/ConditionUnit.js +37 -0
  128. package/dist/js/units/ExecutionUnit.d.ts +115 -0
  129. package/dist/js/units/ExecutionUnit.js +181 -0
  130. package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
  131. package/dist/js/units/ExecutionUnitInput.js +47 -0
  132. package/dist/js/units/IOUnit.d.ts +16 -0
  133. package/dist/js/units/IOUnit.js +31 -0
  134. package/dist/js/units/MapUnit.d.ts +34 -0
  135. package/dist/js/units/MapUnit.js +46 -0
  136. package/dist/js/units/ReduceUnit.d.ts +16 -0
  137. package/dist/js/units/ReduceUnit.js +30 -0
  138. package/dist/js/units/SubworkflowUnit.d.ts +16 -0
  139. package/dist/js/units/SubworkflowUnit.js +28 -0
  140. package/dist/js/units/factory.d.ts +31 -0
  141. package/dist/js/units/factory.js +65 -47
  142. package/dist/js/units/index.d.ts +14 -0
  143. package/dist/js/units/index.js +25 -81
  144. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
  145. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
  146. package/dist/js/utils/baseUnits.d.ts +2 -0
  147. package/dist/js/utils/baseUnits.js +11 -0
  148. package/dist/js/utils/index.d.ts +3 -0
  149. package/dist/js/utils/index.js +39 -0
  150. package/dist/js/utils/subworkflow.d.ts +2 -0
  151. package/dist/js/utils/subworkflow.js +29 -0
  152. package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
  153. package/dist/js/utils/underscoreStringSlugify.js +32 -0
  154. package/dist/js/utils/units.d.ts +4 -0
  155. package/dist/js/utils/units.js +16 -0
  156. package/dist/js/utils/workflow.d.ts +9 -0
  157. package/dist/js/utils/workflow.js +67 -0
  158. package/dist/js/workflows/default.d.ts +3 -0
  159. package/dist/js/workflows/default.js +43 -39
  160. package/dist/js/workflows/workflow.d.ts +4404 -0
  161. package/dist/js/workflows/workflow.js +310 -306
  162. package/package.json +56 -44
  163. package/src/js/Subworkflow.ts +532 -0
  164. package/src/js/Workflow.ts +390 -0
  165. package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
  166. package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
  167. package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
  168. package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
  169. package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
  170. package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
  171. package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
  172. package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
  173. package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
  174. package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
  175. package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
  176. package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
  177. package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
  178. package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
  179. package/src/js/context/providers/NEBFormDataManager.ts +57 -0
  180. package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
  181. package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
  182. package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
  183. package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
  184. package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
  185. package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
  186. package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
  187. package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
  188. package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
  189. package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
  190. package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
  191. package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
  192. package/src/js/context/providers/base/ContextProvider.ts +150 -0
  193. package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
  194. package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
  195. package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
  196. package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
  197. package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
  198. package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
  199. package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
  200. package/src/js/context/providers/index.ts +155 -0
  201. package/src/js/context/providers/settings.ts +13 -0
  202. package/src/js/convergence/ConvergenceParameter.ts +37 -0
  203. package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
  204. package/src/js/convergence/UniformKGridConvergence.ts +26 -0
  205. package/src/js/convergence/factory.ts +18 -0
  206. package/src/js/{enums.js → enums.ts} +27 -22
  207. package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
  208. package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
  209. package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
  210. package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
  211. package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
  212. package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
  213. package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
  214. package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
  215. package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
  216. package/src/js/generated/StatusSchemaMixin.ts +28 -0
  217. package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
  218. package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
  219. package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
  220. package/src/js/index.ts +44 -0
  221. package/src/js/units/AssertionUnit.ts +49 -0
  222. package/src/js/units/AssignmentUnit.ts +49 -0
  223. package/src/js/units/BaseUnit.ts +117 -0
  224. package/src/js/units/ConditionUnit.ts +52 -0
  225. package/src/js/units/ExecutionUnit.ts +274 -0
  226. package/src/js/units/ExecutionUnitInput.ts +71 -0
  227. package/src/js/units/IOUnit.ts +43 -0
  228. package/src/js/units/MapUnit.ts +59 -0
  229. package/src/js/units/ReduceUnit.ts +46 -0
  230. package/src/js/units/SubworkflowUnit.ts +44 -0
  231. package/src/js/units/factory.ts +131 -0
  232. package/src/js/units/index.ts +27 -0
  233. package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
  234. package/src/js/utils/baseUnits.ts +11 -0
  235. package/src/js/utils/index.ts +3 -0
  236. package/src/js/utils/units.ts +23 -0
  237. package/src/js/utils/workflow.ts +69 -0
  238. package/src/js/workflows/{default.js → default.ts} +8 -1
  239. package/build_workflows.js +0 -65
  240. package/dist/js/context/context.js +0 -49
  241. package/dist/js/context/mixins/JobContextMixin.js +0 -39
  242. package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
  243. package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
  244. package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
  245. package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
  246. package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
  247. package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
  248. package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
  249. package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
  250. package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
  251. package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
  252. package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
  253. package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
  254. package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
  255. package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
  256. package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
  257. package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
  258. package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
  259. package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
  260. package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
  261. package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
  262. package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
  263. package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
  264. package/dist/js/context/providers.js +0 -199
  265. package/dist/js/patch.js +0 -19
  266. package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
  267. package/dist/js/subworkflows/convergence/parameter.js +0 -70
  268. package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
  269. package/dist/js/subworkflows/convergence.js +0 -189
  270. package/dist/js/subworkflows/create.js +0 -293
  271. package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
  272. package/dist/js/subworkflows/dynamic/index.js +0 -19
  273. package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
  274. package/dist/js/subworkflows/index.js +0 -19
  275. package/dist/js/units/assertion.js +0 -37
  276. package/dist/js/units/assignment.js +0 -42
  277. package/dist/js/units/base.js +0 -91
  278. package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
  279. package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
  280. package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
  281. package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
  282. package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
  283. package/dist/js/units/builders/index.js +0 -18
  284. package/dist/js/units/condition.js +0 -52
  285. package/dist/js/units/execution.js +0 -225
  286. package/dist/js/units/io.js +0 -148
  287. package/dist/js/units/map.js +0 -38
  288. package/dist/js/units/processing.js +0 -41
  289. package/dist/js/units/reduce.js +0 -24
  290. package/dist/js/units/subworkflow.js +0 -23
  291. package/dist/js/workflows/create.js +0 -318
  292. package/dist/js/workflows/index.js +0 -113
  293. package/dist/js/workflows/relaxation.js +0 -38
  294. package/src/js/context/context.js +0 -47
  295. package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
  296. package/src/js/context/mixins/JobContextMixin.js +0 -36
  297. package/src/js/context/mixins/MaterialContextMixin.js +0 -41
  298. package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
  299. package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
  300. package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
  301. package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
  302. package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
  303. package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
  304. package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
  305. package/src/js/context/providers/HubbardJContextProvider.js +0 -65
  306. package/src/js/context/providers/HubbardUContextProvider.js +0 -95
  307. package/src/js/context/providers/HubbardVContextProvider.js +0 -96
  308. package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
  309. package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
  310. package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
  311. package/src/js/context/providers/NEBFormDataProvider.js +0 -33
  312. package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
  313. package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
  314. package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
  315. package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
  316. package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
  317. package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
  318. package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
  319. package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
  320. package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
  321. package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
  322. package/src/js/context/providers/settings.js +0 -38
  323. package/src/js/context/providers.js +0 -140
  324. package/src/js/index.js +0 -57
  325. package/src/js/patch.js +0 -12
  326. package/src/js/subworkflows/convergence/enums.js +0 -12
  327. package/src/js/subworkflows/convergence/factory.js +0 -15
  328. package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
  329. package/src/js/subworkflows/convergence/parameter.js +0 -58
  330. package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
  331. package/src/js/subworkflows/convergence.js +0 -196
  332. package/src/js/subworkflows/create.js +0 -220
  333. package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
  334. package/src/js/subworkflows/dynamic/index.js +0 -8
  335. package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
  336. package/src/js/subworkflows/index.js +0 -2
  337. package/src/js/subworkflows/subworkflow.js +0 -345
  338. package/src/js/units/assertion.js +0 -29
  339. package/src/js/units/assignment.js +0 -34
  340. package/src/js/units/base.js +0 -97
  341. package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
  342. package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
  343. package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
  344. package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
  345. package/src/js/units/builders/UnitConfigBuilder.js +0 -92
  346. package/src/js/units/builders/index.js +0 -15
  347. package/src/js/units/condition.js +0 -47
  348. package/src/js/units/execution.js +0 -267
  349. package/src/js/units/factory.js +0 -53
  350. package/src/js/units/index.js +0 -25
  351. package/src/js/units/io.js +0 -163
  352. package/src/js/units/map.js +0 -33
  353. package/src/js/units/processing.js +0 -39
  354. package/src/js/units/reduce.js +0 -17
  355. package/src/js/units/subworkflow.js +0 -15
  356. package/src/js/utils.js +0 -73
  357. package/src/js/workflows/create.js +0 -227
  358. package/src/js/workflows/index.js +0 -98
  359. package/src/js/workflows/relaxation.js +0 -42
  360. 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;