@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.
Files changed (361) 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/utils.js +2 -7
  159. package/dist/js/workflows/default.d.ts +3 -0
  160. package/dist/js/workflows/default.js +43 -39
  161. package/dist/js/workflows/workflow.d.ts +4404 -0
  162. package/dist/js/workflows/workflow.js +310 -306
  163. package/package.json +56 -44
  164. package/src/js/Subworkflow.ts +532 -0
  165. package/src/js/Workflow.ts +390 -0
  166. package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
  167. package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
  168. package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
  169. package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
  170. package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
  171. package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
  172. package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
  173. package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
  174. package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
  175. package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
  176. package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
  177. package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
  178. package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
  179. package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
  180. package/src/js/context/providers/NEBFormDataManager.ts +57 -0
  181. package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
  182. package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
  183. package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
  184. package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
  185. package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
  186. package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
  187. package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
  188. package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
  189. package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
  190. package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
  191. package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
  192. package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
  193. package/src/js/context/providers/base/ContextProvider.ts +150 -0
  194. package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
  195. package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
  196. package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
  197. package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
  198. package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
  199. package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
  200. package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
  201. package/src/js/context/providers/index.ts +155 -0
  202. package/src/js/context/providers/settings.ts +13 -0
  203. package/src/js/convergence/ConvergenceParameter.ts +37 -0
  204. package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
  205. package/src/js/convergence/UniformKGridConvergence.ts +26 -0
  206. package/src/js/convergence/factory.ts +18 -0
  207. package/src/js/{enums.js → enums.ts} +27 -22
  208. package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
  209. package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
  210. package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
  211. package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
  212. package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
  213. package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
  214. package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
  215. package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
  216. package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
  217. package/src/js/generated/StatusSchemaMixin.ts +28 -0
  218. package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
  219. package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
  220. package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
  221. package/src/js/index.ts +44 -0
  222. package/src/js/units/AssertionUnit.ts +49 -0
  223. package/src/js/units/AssignmentUnit.ts +49 -0
  224. package/src/js/units/BaseUnit.ts +117 -0
  225. package/src/js/units/ConditionUnit.ts +52 -0
  226. package/src/js/units/ExecutionUnit.ts +274 -0
  227. package/src/js/units/ExecutionUnitInput.ts +71 -0
  228. package/src/js/units/IOUnit.ts +43 -0
  229. package/src/js/units/MapUnit.ts +59 -0
  230. package/src/js/units/ReduceUnit.ts +46 -0
  231. package/src/js/units/SubworkflowUnit.ts +44 -0
  232. package/src/js/units/factory.ts +131 -0
  233. package/src/js/units/index.ts +27 -0
  234. package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
  235. package/src/js/utils/baseUnits.ts +11 -0
  236. package/src/js/utils/index.ts +3 -0
  237. package/src/js/utils/units.ts +23 -0
  238. package/src/js/utils/workflow.ts +69 -0
  239. package/src/js/workflows/{default.js → default.ts} +8 -1
  240. package/build_workflows.js +0 -65
  241. package/dist/js/context/context.js +0 -49
  242. package/dist/js/context/mixins/JobContextMixin.js +0 -39
  243. package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
  244. package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
  245. package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
  246. package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
  247. package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
  248. package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
  249. package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
  250. package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
  251. package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
  252. package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
  253. package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
  254. package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
  255. package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
  256. package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
  257. package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
  258. package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
  259. package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
  260. package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
  261. package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
  262. package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
  263. package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
  264. package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
  265. package/dist/js/context/providers.js +0 -199
  266. package/dist/js/patch.js +0 -19
  267. package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
  268. package/dist/js/subworkflows/convergence/parameter.js +0 -70
  269. package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
  270. package/dist/js/subworkflows/convergence.js +0 -189
  271. package/dist/js/subworkflows/create.js +0 -293
  272. package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
  273. package/dist/js/subworkflows/dynamic/index.js +0 -19
  274. package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
  275. package/dist/js/subworkflows/index.js +0 -19
  276. package/dist/js/units/assertion.js +0 -37
  277. package/dist/js/units/assignment.js +0 -42
  278. package/dist/js/units/base.js +0 -91
  279. package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
  280. package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
  281. package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
  282. package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
  283. package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
  284. package/dist/js/units/builders/index.js +0 -18
  285. package/dist/js/units/condition.js +0 -52
  286. package/dist/js/units/execution.js +0 -225
  287. package/dist/js/units/io.js +0 -148
  288. package/dist/js/units/map.js +0 -38
  289. package/dist/js/units/processing.js +0 -41
  290. package/dist/js/units/reduce.js +0 -24
  291. package/dist/js/units/subworkflow.js +0 -23
  292. package/dist/js/workflows/create.js +0 -318
  293. package/dist/js/workflows/index.js +0 -113
  294. package/dist/js/workflows/relaxation.js +0 -38
  295. package/src/js/context/context.js +0 -47
  296. package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
  297. package/src/js/context/mixins/JobContextMixin.js +0 -36
  298. package/src/js/context/mixins/MaterialContextMixin.js +0 -41
  299. package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
  300. package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
  301. package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
  302. package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
  303. package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
  304. package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
  305. package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
  306. package/src/js/context/providers/HubbardJContextProvider.js +0 -65
  307. package/src/js/context/providers/HubbardUContextProvider.js +0 -95
  308. package/src/js/context/providers/HubbardVContextProvider.js +0 -96
  309. package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
  310. package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
  311. package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
  312. package/src/js/context/providers/NEBFormDataProvider.js +0 -33
  313. package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
  314. package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
  315. package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
  316. package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
  317. package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
  318. package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
  319. package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
  320. package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
  321. package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
  322. package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
  323. package/src/js/context/providers/settings.js +0 -38
  324. package/src/js/context/providers.js +0 -140
  325. package/src/js/index.js +0 -57
  326. package/src/js/patch.js +0 -12
  327. package/src/js/subworkflows/convergence/enums.js +0 -12
  328. package/src/js/subworkflows/convergence/factory.js +0 -15
  329. package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
  330. package/src/js/subworkflows/convergence/parameter.js +0 -58
  331. package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
  332. package/src/js/subworkflows/convergence.js +0 -196
  333. package/src/js/subworkflows/create.js +0 -220
  334. package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
  335. package/src/js/subworkflows/dynamic/index.js +0 -8
  336. package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
  337. package/src/js/subworkflows/index.js +0 -2
  338. package/src/js/subworkflows/subworkflow.js +0 -345
  339. package/src/js/units/assertion.js +0 -29
  340. package/src/js/units/assignment.js +0 -34
  341. package/src/js/units/base.js +0 -97
  342. package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
  343. package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
  344. package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
  345. package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
  346. package/src/js/units/builders/UnitConfigBuilder.js +0 -92
  347. package/src/js/units/builders/index.js +0 -15
  348. package/src/js/units/condition.js +0 -47
  349. package/src/js/units/execution.js +0 -267
  350. package/src/js/units/factory.js +0 -53
  351. package/src/js/units/index.js +0 -25
  352. package/src/js/units/io.js +0 -163
  353. package/src/js/units/map.js +0 -33
  354. package/src/js/units/processing.js +0 -39
  355. package/src/js/units/reduce.js +0 -17
  356. package/src/js/units/subworkflow.js +0 -15
  357. package/src/js/utils.js +0 -73
  358. package/src/js/workflows/create.js +0 -227
  359. package/src/js/workflows/index.js +0 -98
  360. package/src/js/workflows/relaxation.js +0 -42
  361. package/src/js/workflows/workflow.js +0 -388
@@ -0,0 +1,89 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type { InputContextItemSchema, VASPContextProviderSchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { Material } from "@mat3ra/made";
4
+ import type { JSONSchema7 } from "json-schema";
5
+
6
+ import materialContextMixin, {
7
+ type MaterialContextMixin,
8
+ type MaterialExternalContext,
9
+ } from "../../../mixins/MaterialContextMixin";
10
+ import materialsContextMixin, {
11
+ type MaterialsContextMixin,
12
+ type MaterialsExternalContext,
13
+ } from "../../../mixins/MaterialsContextMixin";
14
+ import type { UnitContext } from "../../base/ContextProvider";
15
+ import JSONSchemaDataProvider, {
16
+ type JinjaExternalContext,
17
+ } from "../../base/JSONSchemaDataProvider";
18
+
19
+ type Data = VASPContextProviderSchema;
20
+ type Schema = InputContextItemSchema & { data: Data };
21
+ type ExternalContext = JinjaExternalContext & MaterialExternalContext & MaterialsExternalContext;
22
+
23
+ interface VASPInputDataManager extends MaterialContextMixin, MaterialsContextMixin {}
24
+
25
+ const jsonSchemaId = "context-providers-directory/by-application/vasp-context-provider";
26
+
27
+ class VASPInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
28
+ readonly name = "input" as const;
29
+
30
+ readonly domain = "executable" as const;
31
+
32
+ readonly entityName = "unit" as const;
33
+
34
+ isEdited = false;
35
+
36
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
37
+ const contextItem = this.findContextItem<Schema>(unitContext, "input");
38
+
39
+ return new VASPInputDataManager(contextItem, externalContext);
40
+ }
41
+
42
+ readonly jsonSchema: JSONSchema7;
43
+
44
+ constructor(config: Partial<Schema>, externalContext: ExternalContext) {
45
+ super(config, externalContext);
46
+ this.initMaterialsContextMixin(externalContext);
47
+ this.initMaterialContextMixin(externalContext);
48
+
49
+ const jsonSchema = JSONSchemasInterface.getSchemaById(jsonSchemaId);
50
+
51
+ if (!jsonSchema) {
52
+ throw new Error("Failed to get JSON schema");
53
+ }
54
+
55
+ this.jsonSchema = jsonSchema;
56
+ }
57
+
58
+ // eslint-disable-next-line class-methods-use-this
59
+ private buildVASPContext(material: Material): Data {
60
+ return {
61
+ // TODO: figure out whether we need two separate POSCARS, maybe one is enough
62
+ POSCAR: material.getAsPOSCAR(true, true),
63
+ POSCAR_WITH_CONSTRAINTS: material.getAsPOSCAR(true),
64
+ contextProviderName: "vasp" as const,
65
+ };
66
+ }
67
+
68
+ private getDataPerMaterial() {
69
+ if (!this.materials || this.materials.length <= 1) return {};
70
+
71
+ return { perMaterial: this.materials.map((material) => this.buildVASPContext(material)) };
72
+ }
73
+
74
+ getDefaultData() {
75
+ // consider adjusting so that below values are read from PlanewaveDataManager
76
+ // ECUTWFC;
77
+ // ECUTRHO;
78
+
79
+ return {
80
+ ...this.buildVASPContext(this.material),
81
+ ...this.getDataPerMaterial(),
82
+ };
83
+ }
84
+ }
85
+
86
+ materialContextMixin(VASPInputDataManager.prototype);
87
+ materialsContextMixin(VASPInputDataManager.prototype);
88
+
89
+ export default VASPInputDataManager;
@@ -0,0 +1,92 @@
1
+ import JSONSchemasInterface from "@mat3ra/esse/dist/js/esse/JSONSchemasInterface";
2
+ import type {
3
+ InputContextItemSchema,
4
+ VASPNEBContextProviderSchema,
5
+ } from "@mat3ra/esse/dist/js/types";
6
+ import type { JSONSchema7 } from "json-schema";
7
+
8
+ import materialContextMixin, {
9
+ type MaterialContextMixin,
10
+ type MaterialExternalContext,
11
+ } from "../../../mixins/MaterialContextMixin";
12
+ import materialsContextMixin, {
13
+ type MaterialsContextMixin,
14
+ type MaterialsExternalContext,
15
+ } from "../../../mixins/MaterialsContextMixin";
16
+ import materialsSetContextMixin, {
17
+ type MaterialsSetContextMixin,
18
+ type MaterialsSetExternalContext,
19
+ } from "../../../mixins/MaterialsSetContextMixin";
20
+ import type { UnitContext } from "../../base/ContextProvider";
21
+ import JSONSchemaDataProvider, {
22
+ type JinjaExternalContext,
23
+ } from "../../base/JSONSchemaDataProvider";
24
+ import VASPInputDataManager from "./VASPInputDataManager";
25
+
26
+ type Data = VASPNEBContextProviderSchema;
27
+ type Schema = InputContextItemSchema & { data: Data };
28
+ type ExternalContext = JinjaExternalContext &
29
+ MaterialExternalContext &
30
+ MaterialsExternalContext &
31
+ MaterialsSetExternalContext;
32
+
33
+ interface VASPNEBInputDataManager
34
+ extends MaterialContextMixin,
35
+ MaterialsContextMixin,
36
+ MaterialsSetContextMixin {}
37
+
38
+ const jsonSchemaId = "context-providers-directory/by-application/vasp-neb-context-provider";
39
+
40
+ class VASPNEBInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
41
+ readonly name = "input" as const;
42
+
43
+ readonly domain = "executable" as const;
44
+
45
+ readonly entityName = "unit" as const;
46
+
47
+ isEdited = false;
48
+
49
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext) {
50
+ const contextItem = this.findContextItem<Schema>(unitContext, "input");
51
+
52
+ return new VASPNEBInputDataManager(contextItem, externalContext);
53
+ }
54
+
55
+ readonly jsonSchema: JSONSchema7;
56
+
57
+ constructor(config: Partial<Schema>, externalContext: ExternalContext) {
58
+ super(config, externalContext);
59
+ this.initMaterialContextMixin(externalContext);
60
+ this.initMaterialsContextMixin(externalContext);
61
+ this.initMaterialsSetContextMixin(externalContext);
62
+
63
+ const jsonSchema = JSONSchemasInterface.getSchemaById(jsonSchemaId);
64
+
65
+ if (!jsonSchema) {
66
+ throw new Error("Failed to get JSON schema");
67
+ }
68
+
69
+ this.jsonSchema = jsonSchema;
70
+ }
71
+
72
+ getDefaultData() {
73
+ const VASPContexts = this.sortMaterialsByIndexInSet(this.materials).map((material) => {
74
+ return new VASPInputDataManager({}, { ...this.externalContext, material }).getData();
75
+ });
76
+
77
+ return {
78
+ FIRST_IMAGE: VASPContexts[0].POSCAR_WITH_CONSTRAINTS,
79
+ LAST_IMAGE: VASPContexts[VASPContexts.length - 1].POSCAR_WITH_CONSTRAINTS,
80
+ INTERMEDIATE_IMAGES: VASPContexts.slice(1, VASPContexts.length - 1).map((data) => {
81
+ return data.POSCAR_WITH_CONSTRAINTS;
82
+ }),
83
+ contextProviderName: "vasp-neb" as const,
84
+ };
85
+ }
86
+ }
87
+
88
+ materialContextMixin(VASPNEBInputDataManager.prototype);
89
+ materialsContextMixin(VASPNEBInputDataManager.prototype);
90
+ materialsSetContextMixin(VASPNEBInputDataManager.prototype);
91
+
92
+ export default VASPNEBInputDataManager;
@@ -0,0 +1,155 @@
1
+ import type { AssignmentUnitSchema } from "@mat3ra/esse/dist/js/types";
2
+
3
+ import type { ApplicationExternalContext } from "../mixins/ApplicationContextMixin";
4
+ import type { MaterialExternalContext } from "../mixins/MaterialContextMixin";
5
+ import type { MaterialsExternalContext } from "../mixins/MaterialsContextMixin";
6
+ import type { MaterialsSetExternalContext } from "../mixins/MaterialsSetContextMixin";
7
+ import type { UnitContext } from "./base/ContextProvider";
8
+ import type { JinjaExternalContext } from "./base/JSONSchemaDataProvider";
9
+ import BoundaryConditionsFormDataManager from "./BoundaryConditionsFormDataManager";
10
+ import QENEBInputDataManager from "./by_application/espresso/QENEBInputDataManager";
11
+ import QEPWXInputDataManager, {
12
+ type JobExternalContext,
13
+ type MethodDataExternalContext,
14
+ type WorkflowExternalContext,
15
+ } from "./by_application/espresso/QEPWXInputDataManager";
16
+ import NWChemInputDataManager from "./by_application/nwchem/NWChemInputDataManager";
17
+ import VASPInputDataManager from "./by_application/vasp/VASPInputDataManager";
18
+ import VASPNEBInputDataManager from "./by_application/vasp/VASPNEBInputDataManager";
19
+ import CollinearMagnetizationDataManager from "./CollinearMagnetizationDataManager";
20
+ import HubbardContextManagerLegacy from "./Hubbard/HubbardContextManagerLegacy";
21
+ import HubbardJContextManager from "./Hubbard/HubbardJContextManager";
22
+ import HubbardUContextManager from "./Hubbard/HubbardUContextManager";
23
+ import HubbardVContextManager from "./Hubbard/HubbardVContextManager";
24
+ import IonDynamicsDataManager from "./IonDynamicsDataManager";
25
+ import MLSettingsDataManager from "./MLSettingsDataManager";
26
+ import MLTrainTestSplitDataManager from "./MLTrainTestSplitDataManager";
27
+ import NEBFormDataManager from "./NEBFormDataManager";
28
+ import NonCollinearMagnetizationDataManager from "./NonCollinearMagnetizationDataManager";
29
+ import PlanewaveCutoffDataManager from "./PlanewaveCutoffDataManager";
30
+ import IGridFormDataManager from "./PointsGrid/IGridFormDataManager";
31
+ import KGridFormDataManager from "./PointsGrid/KGridFormDataManager";
32
+ import QGridFormDataManager from "./PointsGrid/QGridFormDataManager";
33
+ import ExplicitKPath2PIBAFormDataManager from "./PointsPath/ExplicitKPath2PIBAFormDataManager";
34
+ import ExplicitKPathFormDataManager from "./PointsPath/ExplicitKPathFormDataManager";
35
+ import IPathFormDataManager from "./PointsPath/IPathFormDataManager";
36
+ import KPathFormDataManager from "./PointsPath/KPathFormDataManager";
37
+ import QPathFormDataManager from "./PointsPath/QPathFormDataManager";
38
+
39
+ /**
40
+ * Registry mapping provider names (as they appear in templates) to their classes.
41
+ * This is the single source of truth for provider mappings.
42
+ */
43
+ export const PROVIDER_REGISTRY = {
44
+ PlanewaveCutoffDataManager,
45
+ KGridFormDataManager,
46
+ QGridFormDataManager,
47
+ IGridFormDataManager,
48
+ QPathFormDataManager,
49
+ IPathFormDataManager,
50
+ KPathFormDataManager,
51
+ ExplicitKPathFormDataManager,
52
+ ExplicitKPath2PIBAFormDataManager,
53
+ HubbardJContextManager,
54
+ HubbardUContextManager,
55
+ HubbardVContextManager,
56
+ HubbardContextManagerLegacy,
57
+ NEBFormDataManager,
58
+ BoundaryConditionsFormDataManager,
59
+ MLSettingsDataManager,
60
+ MLTrainTestSplitDataManager,
61
+ IonDynamicsContextProvider: IonDynamicsDataManager, // Note: name mismatch preserved from original
62
+ CollinearMagnetizationDataManager,
63
+ NonCollinearMagnetizationDataManager,
64
+ QEPWXInputDataManager,
65
+ QENEBInputDataManager,
66
+ VASPInputDataManager,
67
+ VASPNEBInputDataManager,
68
+ NWChemInputDataManager,
69
+ } as const;
70
+
71
+ export type AssignmentContext = Record<
72
+ AssignmentUnitSchema["operand"],
73
+ AssignmentUnitSchema["value"]
74
+ >;
75
+
76
+ export type SubworkflowContext = {
77
+ subworkflowContext: AssignmentContext;
78
+ };
79
+
80
+ /**
81
+ * External context type used by ExecutionUnitInput when creating providers.
82
+ * This type is always expected to be present when providers are instantiated.
83
+ */
84
+ export type ExternalContext = ApplicationExternalContext &
85
+ WorkflowExternalContext &
86
+ JobExternalContext &
87
+ MaterialsExternalContext &
88
+ MethodDataExternalContext &
89
+ MaterialsSetExternalContext &
90
+ MaterialExternalContext &
91
+ JinjaExternalContext &
92
+ SubworkflowContext;
93
+
94
+ /**
95
+ * Type for provider names as they appear in templates.
96
+ */
97
+ export type ProviderName = keyof typeof PROVIDER_REGISTRY;
98
+
99
+ /**
100
+ * Union type of all context provider instances.
101
+ * Derived from the registry for type safety.
102
+ */
103
+ export type AnyContextProvider = InstanceType<(typeof PROVIDER_REGISTRY)[ProviderName]>;
104
+
105
+ /**
106
+ * Factory function to create a context provider instance from its name.
107
+ *
108
+ * @param name - The provider name as it appears in templates
109
+ * @param context - The unit context
110
+ * @param externalContext - The external context (must match the ExternalContext type defined in this file)
111
+ * @returns An instance of the requested context provider
112
+ * @throws Error if the provider name is unknown
113
+ */
114
+ export function createProvider(
115
+ name: ProviderName,
116
+ context: UnitContext,
117
+ externalContext: ExternalContext,
118
+ ): AnyContextProvider {
119
+ const ProviderClass = PROVIDER_REGISTRY[name];
120
+ if (!ProviderClass) {
121
+ throw new Error(`Unknown provider: ${name}`);
122
+ }
123
+ // The full ExternalContext is a superset of each provider's expected context type,
124
+ // so passing it to every provider's createFromUnitContext is type-safe (no assertion).
125
+ return ProviderClass.createFromUnitContext(context, externalContext);
126
+ }
127
+
128
+ // Re-export all provider classes for convenience
129
+ export {
130
+ BoundaryConditionsFormDataManager,
131
+ QENEBInputDataManager,
132
+ QEPWXInputDataManager,
133
+ NWChemInputDataManager,
134
+ VASPInputDataManager,
135
+ VASPNEBInputDataManager,
136
+ CollinearMagnetizationDataManager,
137
+ HubbardContextManagerLegacy,
138
+ HubbardJContextManager,
139
+ HubbardUContextManager,
140
+ HubbardVContextManager,
141
+ IonDynamicsDataManager,
142
+ MLSettingsDataManager,
143
+ MLTrainTestSplitDataManager,
144
+ NEBFormDataManager,
145
+ NonCollinearMagnetizationDataManager,
146
+ PlanewaveCutoffDataManager,
147
+ IGridFormDataManager,
148
+ KGridFormDataManager,
149
+ QGridFormDataManager,
150
+ ExplicitKPath2PIBAFormDataManager,
151
+ ExplicitKPathFormDataManager,
152
+ IPathFormDataManager,
153
+ KPathFormDataManager,
154
+ QPathFormDataManager,
155
+ };
@@ -0,0 +1,13 @@
1
+ class GlobalSettings {
2
+ "PointsGridFormDataProvider.defaultKPPRA" = 5;
3
+
4
+ get defaultKPPRA() {
5
+ return this["PointsGridFormDataProvider.defaultKPPRA"];
6
+ }
7
+
8
+ setDefaultKPPRA(kppra: number) {
9
+ this["PointsGridFormDataProvider.defaultKPPRA"] = kppra;
10
+ }
11
+ }
12
+
13
+ export const globalSettings = new GlobalSettings();
@@ -0,0 +1,37 @@
1
+ interface ConvergenceParameterProps {
2
+ initialValue: number | [number, number, number];
3
+ }
4
+
5
+ export type ConvergenceParameterConfig = ConvergenceParameterProps & {
6
+ increment?: string | number;
7
+ };
8
+
9
+ export type UnitContext = {
10
+ data: {
11
+ dimensions: [string, string, string];
12
+ shifts: [0, 0, 0];
13
+ };
14
+ isUsingJinjaVariables: true;
15
+ };
16
+
17
+ export default abstract class ConvergenceParameter {
18
+ abstract readonly name: "N_k" | "N_k_nonuniform";
19
+
20
+ abstract readonly finalValue: string;
21
+
22
+ abstract readonly increment: string;
23
+
24
+ abstract readonly unitContext: UnitContext;
25
+
26
+ readonly initialValue: string;
27
+
28
+ constructor({ initialValue }: ConvergenceParameterProps) {
29
+ this.initialValue =
30
+ typeof initialValue === "string" ? initialValue : JSON.stringify(initialValue);
31
+ }
32
+
33
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
34
+ useVariablesFromUnitContext(_flowchartId: string): { scope: string; name: string }[] {
35
+ return [];
36
+ }
37
+ }
@@ -0,0 +1,38 @@
1
+ import ConvergenceParameter, {
2
+ type ConvergenceParameterConfig,
3
+ type UnitContext,
4
+ } from "./ConvergenceParameter";
5
+
6
+ export default class NonUniformKGridConvergence extends ConvergenceParameter {
7
+ readonly increment: string;
8
+
9
+ readonly name = "N_k_nonuniform" as const;
10
+
11
+ readonly finalValue = "N_k_nonuniform" as const;
12
+
13
+ readonly unitContext: UnitContext = {
14
+ data: {
15
+ dimensions: [`{{${this.name}[0]}}`, `{{${this.name}[1]}}`, `{{${this.name}[2]}}`],
16
+ shifts: [0, 0, 0],
17
+ },
18
+ isUsingJinjaVariables: true,
19
+ };
20
+
21
+ constructor({ initialValue, increment }: ConvergenceParameterConfig) {
22
+ super({ initialValue });
23
+
24
+ this.increment = `[${this.initialValue}[i] + math.floor(iteration * ${
25
+ increment || ""
26
+ } * float(context['kgrid']['reciprocalVectorRatios'][i])) for i in range(3)]`;
27
+ }
28
+
29
+ // eslint-disable-next-line class-methods-use-this
30
+ useVariablesFromUnitContext(flowchartId: string) {
31
+ return [
32
+ {
33
+ scope: flowchartId,
34
+ name: "context",
35
+ },
36
+ ];
37
+ }
38
+ }
@@ -0,0 +1,26 @@
1
+ import ConvergenceParameter, {
2
+ type ConvergenceParameterConfig,
3
+ type UnitContext,
4
+ } from "./ConvergenceParameter";
5
+
6
+ export default class UniformKGridConvergence extends ConvergenceParameter {
7
+ readonly increment: string;
8
+
9
+ readonly name = "N_k" as const;
10
+
11
+ readonly finalValue = `${this.name} + 0` as const;
12
+
13
+ readonly unitContext: UnitContext = {
14
+ data: {
15
+ dimensions: [`{{${this.name}}}`, `{{${this.name}}}`, `{{${this.name}}}`],
16
+ shifts: [0, 0, 0],
17
+ },
18
+ isUsingJinjaVariables: true,
19
+ };
20
+
21
+ constructor({ initialValue, increment }: ConvergenceParameterConfig) {
22
+ super({ initialValue });
23
+
24
+ this.increment = `${this.name} + ${increment || ""}`;
25
+ }
26
+ }
@@ -0,0 +1,18 @@
1
+ import { type ConvergenceParameterConfig } from "./ConvergenceParameter";
2
+ import NonUniformKGridConvergence from "./NonUniformKGridConvergence";
3
+ import UniformKGridConvergence from "./UniformKGridConvergence";
4
+
5
+ type FactoryParams = ConvergenceParameterConfig & {
6
+ name: "N_k" | "N_k_nonuniform";
7
+ };
8
+
9
+ export function createConvergenceParameter({ name, ...params }: FactoryParams) {
10
+ switch (name) {
11
+ case "N_k":
12
+ return new UniformKGridConvergence(params);
13
+ case "N_k_nonuniform":
14
+ return new NonUniformKGridConvergence(params);
15
+ default:
16
+ throw new Error(`Invalid convergence parameter name: ${name}`);
17
+ }
18
+ }
@@ -1,10 +1,3 @@
1
- /**
2
- * THIS ENUMS ARE SHARED WITH TESTS.
3
- * DO NOT IMPORT ANYTHINGS IN THIS MODULE.
4
- */
5
-
6
- export const IO_ID_COLUMN = "exabyteId";
7
-
8
1
  export const UNIT_TYPES = {
9
2
  // not currently used
10
3
  convergence: "convergence",
@@ -16,28 +9,40 @@ export const UNIT_TYPES = {
16
9
  assignment: "assignment",
17
10
  condition: "condition",
18
11
  subworkflow: "subworkflow",
19
- processing: "processing",
20
12
  io: "io",
21
13
  assertion: "assertion",
22
- };
14
+ } as const;
15
+
16
+ export enum UnitType {
17
+ convergence = "convergence",
18
+ exit = "exit",
19
+ execution = "execution",
20
+ map = "map",
21
+ reduce = "reduce",
22
+ assignment = "assignment",
23
+ condition = "condition",
24
+ subworkflow = "subworkflow",
25
+ io = "io",
26
+ assertion = "assertion",
27
+ }
23
28
 
24
- export const UNIT_STATUSES = {
25
- idle: "idle",
26
- active: "active",
27
- finished: "finished",
28
- error: "error",
29
- warning: "warning",
30
- };
29
+ export enum UnitTag {
30
+ hasConvergenceParam = "hasConvergenceParam",
31
+ hasConvergenceResult = "hasConvergenceResult",
32
+ }
31
33
 
32
- export const UNIT_TAGS = {
33
- hasConvergenceParam: "hasConvergenceParam",
34
- hasConvergenceResult: "hasConvergenceResult",
35
- };
34
+ export enum UnitStatus {
35
+ idle = "idle",
36
+ active = "active",
37
+ finished = "finished",
38
+ error = "error",
39
+ warning = "warning",
40
+ }
36
41
 
37
42
  export const WORKFLOW_STATUSES = {
38
43
  "up-to-date": "up-to-date",
39
44
  outdated: "outdated",
40
- };
45
+ } as const;
41
46
 
42
47
  export const TAB_NAVIGATION_CONFIG = {
43
48
  overview: {
@@ -60,6 +65,6 @@ export const TAB_NAVIGATION_CONFIG = {
60
65
  className: "",
61
66
  href: "sw-compute",
62
67
  },
63
- };
68
+ } as const;
64
69
 
65
70
  export const UNIT_NAME_INVALID_CHARS = "/";
@@ -0,0 +1,34 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { AssertionUnitMixinSchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ export type AssertionUnitSchemaMixin = AssertionUnitMixinSchema;
5
+
6
+ export type AssertionUnitInMemoryEntity = InMemoryEntity & AssertionUnitSchemaMixin;
7
+
8
+ export function assertionUnitSchemaMixin<T extends InMemoryEntity>(
9
+ item: InMemoryEntity,
10
+ ): asserts item is T & AssertionUnitSchemaMixin {
11
+ // @ts-expect-error
12
+ const properties: InMemoryEntity & AssertionUnitSchemaMixin = {
13
+ get type() {
14
+ return this.prop<AssertionUnitMixinSchema["type"]>("type");
15
+ },
16
+ set type(value: AssertionUnitMixinSchema["type"]) {
17
+ this.setProp("type", value);
18
+ },
19
+ get statement() {
20
+ return this.requiredProp<AssertionUnitMixinSchema["statement"]>("statement");
21
+ },
22
+ set statement(value: AssertionUnitMixinSchema["statement"]) {
23
+ this.setProp("statement", value);
24
+ },
25
+ get errorMessage() {
26
+ return this.prop<AssertionUnitMixinSchema["errorMessage"]>("errorMessage");
27
+ },
28
+ set errorMessage(value: AssertionUnitMixinSchema["errorMessage"]) {
29
+ this.setProp("errorMessage", value);
30
+ },
31
+ };
32
+
33
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
34
+ }
@@ -0,0 +1,40 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { AssignmentUnitMixinSchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ export type AssignmentUnitSchemaMixin = AssignmentUnitMixinSchema;
5
+
6
+ export type AssignmentUnitInMemoryEntity = InMemoryEntity & AssignmentUnitSchemaMixin;
7
+
8
+ export function assignmentUnitSchemaMixin<T extends InMemoryEntity>(
9
+ item: InMemoryEntity,
10
+ ): asserts item is T & AssignmentUnitSchemaMixin {
11
+ // @ts-expect-error
12
+ const properties: InMemoryEntity & AssignmentUnitSchemaMixin = {
13
+ get type() {
14
+ return this.prop<AssignmentUnitMixinSchema["type"]>("type");
15
+ },
16
+ set type(value: AssignmentUnitMixinSchema["type"]) {
17
+ this.setProp("type", value);
18
+ },
19
+ get input() {
20
+ return this.prop<AssignmentUnitMixinSchema["input"]>("input");
21
+ },
22
+ set input(value: AssignmentUnitMixinSchema["input"]) {
23
+ this.setProp("input", value);
24
+ },
25
+ get operand() {
26
+ return this.requiredProp<AssignmentUnitMixinSchema["operand"]>("operand");
27
+ },
28
+ set operand(value: AssignmentUnitMixinSchema["operand"]) {
29
+ this.setProp("operand", value);
30
+ },
31
+ get value() {
32
+ return this.requiredProp<AssignmentUnitMixinSchema["value"]>("value");
33
+ },
34
+ set value(value: AssignmentUnitMixinSchema["value"]) {
35
+ this.setProp("value", value);
36
+ },
37
+ };
38
+
39
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
40
+ }