diff --git a/package-lock.json b/package-lock.json
index bbf32e8..294611a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1607,9 +1607,9 @@
             }
         },
         "@exabyte-io/application-flavors.js": {
-            "version": "2024.3.21-0",
-            "resolved": "https://registry.npmjs.org/@exabyte-io/application-flavors.js/-/application-flavors.js-2024.3.21-0.tgz",
-            "integrity": "sha512-U0C830YpX83UXVlgjt/iQdxBb8ffDj8Tr73tB0EkxGzz0dalwBOktkYbmL+AAiXG2MmKEHJ5VDsQf4RitJ5nLg==",
+            "version": "2024.3.26-0",
+            "resolved": "https://registry.npmjs.org/@exabyte-io/application-flavors.js/-/application-flavors.js-2024.3.26-0.tgz",
+            "integrity": "sha512-InoarO6VZZJZpPbQiPNdHr8Q5meryxQ36pMtajshevXM4mKYmBcxTD7YE+2zhipetB3ersUuKbE2Qd2rlvcMeg==",
             "dev": true,
             "requires": {
                 "@babel/cli": "7.16.0",
@@ -1684,54 +1684,6 @@
                 }
             }
         },
-        "@exabyte-io/code.js": {
-            "version": "2024.2.29-0",
-            "resolved": "https://registry.npmjs.org/@exabyte-io/code.js/-/code.js-2024.2.29-0.tgz",
-            "integrity": "sha512-pOqR/X3jWTbczUMNJdsG5AqAurI0zqJIni/SPJZI8hsXykmKBpQAYRGZT7XBsTdUf4x3YcwPkyrGla2Tt5Z62w==",
-            "dev": true,
-            "requires": {
-                "crypto-js": "^4.1.1",
-                "js-yaml": "^4.1.0",
-                "json-schema": "^0.4.0",
-                "lodash": "^4.17.*",
-                "mathjs": "^3.9.0",
-                "mixwith": "^0.1.1",
-                "nunjucks": "^3.2.4",
-                "react-jsonschema-form": "^1.8.1",
-                "semver": "^7.5.3",
-                "ts-node": "^10.9.1",
-                "typescript": "^4.5.5",
-                "underscore": "^1.13.3",
-                "underscore.string": "^3.3.4",
-                "uuid": "8.3.2"
-            },
-            "dependencies": {
-                "argparse": {
-                    "version": "2.0.1",
-                    "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-                    "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-                    "dev": true
-                },
-                "js-yaml": {
-                    "version": "4.1.0",
-                    "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
-                    "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-                    "dev": true,
-                    "requires": {
-                        "argparse": "^2.0.1"
-                    }
-                },
-                "semver": {
-                    "version": "7.6.0",
-                    "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-                    "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-                    "dev": true,
-                    "requires": {
-                        "lru-cache": "^6.0.0"
-                    }
-                }
-            }
-        },
         "@exabyte-io/eslint-config": {
             "version": "2022.11.17-0",
             "resolved": "https://registry.npmjs.org/@exabyte-io/eslint-config/-/eslint-config-2022.11.17-0.tgz",
@@ -1895,14 +1847,60 @@
             "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==",
             "dev": true
         },
+        "@mat3ra/code": {
+            "version": "2024.3.25-3",
+            "resolved": "https://registry.npmjs.org/@mat3ra/code/-/code-2024.3.25-3.tgz",
+            "integrity": "sha512-XlXfgUvCtgvHKQykjODZefLAguy2FYQGwDYddC+1eDOOR0XdIjlJ5QDfTuGBBdoa1rmQA0c3xK5uwkhV5jbLcg==",
+            "dev": true,
+            "requires": {
+                "crypto-js": "^4.1.1",
+                "js-yaml": "^4.1.0",
+                "json-schema": "^0.4.0",
+                "lodash": "^4.17.*",
+                "mathjs": "^3.9.0",
+                "mixwith": "^0.1.1",
+                "nunjucks": "^3.2.4",
+                "react-jsonschema-form": "^1.8.1",
+                "semver": "^7.5.3",
+                "underscore": "^1.13.3",
+                "underscore.string": "^3.3.4",
+                "uuid": "8.3.2"
+            },
+            "dependencies": {
+                "argparse": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+                    "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+                    "dev": true
+                },
+                "js-yaml": {
+                    "version": "4.1.0",
+                    "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+                    "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+                    "dev": true,
+                    "requires": {
+                        "argparse": "^2.0.1"
+                    }
+                },
+                "semver": {
+                    "version": "7.6.0",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+                    "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+                    "dev": true,
+                    "requires": {
+                        "lru-cache": "^6.0.0"
+                    }
+                }
+            }
+        },
         "@mat3ra/esse": {
-            "version": "2024.3.20-0",
-            "resolved": "https://registry.npmjs.org/@mat3ra/esse/-/esse-2024.3.20-0.tgz",
-            "integrity": "sha512-X+VXCpv8yCSUhYulfvxjWk675usIsVbmiX0tsCpTGxFugKr9PdGRr3Jw+riYy4u5AniVenFR8TVognGn9zIvww==",
+            "version": "2024.3.25-6",
+            "resolved": "https://registry.npmjs.org/@mat3ra/esse/-/esse-2024.3.25-6.tgz",
+            "integrity": "sha512-V9Xt2JI0sWJc3ZTeSu1neOWBMOKiZPUgioVLnpigv7uy44seC8fQbzMD0lqqm69GzPOi82XOvaM8wuLnE0mYxg==",
             "dev": true,
             "requires": {
                 "@babel/cli": "7.16.0",
-                "@babel/core": "7.16.0",
+                "@babel/core": "7.24.1",
                 "@babel/eslint-parser": "7.16.3",
                 "@babel/plugin-proposal-class-properties": "7.16.0",
                 "@babel/preset-env": "7.16.4",
@@ -1910,13 +1908,12 @@
                 "@babel/preset-typescript": "^7.22.5",
                 "@babel/register": "^7.16.0",
                 "@babel/runtime-corejs3": "7.16.8",
-                "@tsconfig/node14": "^14.1.0",
-                "@tsconfig/node20": "^20.1.2",
                 "@types/chai": "^4.3.11",
                 "@types/js-yaml": "^4.0.9",
                 "@types/json-schema-merge-allof": "^0.6.5",
                 "@types/mocha": "^10.0.6",
                 "ajv": "^8.12.0",
+                "ajv-formats": "^2.1.1",
                 "js-yaml": "^4.1.0",
                 "json-schema": "^0.4.0",
                 "json-schema-deref-sync": "0.14.0",
@@ -1925,12 +1922,243 @@
                 "lodash": "4.17.21"
             },
             "dependencies": {
-                "@tsconfig/node14": {
-                    "version": "14.1.0",
-                    "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz",
-                    "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==",
+                "@babel/code-frame": {
+                    "version": "7.24.2",
+                    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+                    "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/highlight": "^7.24.2",
+                        "picocolors": "^1.0.0"
+                    }
+                },
+                "@babel/compat-data": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz",
+                    "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==",
+                    "dev": true
+                },
+                "@babel/core": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.1.tgz",
+                    "integrity": "sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ==",
+                    "dev": true,
+                    "requires": {
+                        "@ampproject/remapping": "^2.2.0",
+                        "@babel/code-frame": "^7.24.1",
+                        "@babel/generator": "^7.24.1",
+                        "@babel/helper-compilation-targets": "^7.23.6",
+                        "@babel/helper-module-transforms": "^7.23.3",
+                        "@babel/helpers": "^7.24.1",
+                        "@babel/parser": "^7.24.1",
+                        "@babel/template": "^7.24.0",
+                        "@babel/traverse": "^7.24.1",
+                        "@babel/types": "^7.24.0",
+                        "convert-source-map": "^2.0.0",
+                        "debug": "^4.1.0",
+                        "gensync": "^1.0.0-beta.2",
+                        "json5": "^2.2.3",
+                        "semver": "^6.3.1"
+                    }
+                },
+                "@babel/generator": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz",
+                    "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.24.0",
+                        "@jridgewell/gen-mapping": "^0.3.5",
+                        "@jridgewell/trace-mapping": "^0.3.25",
+                        "jsesc": "^2.5.1"
+                    }
+                },
+                "@babel/helper-compilation-targets": {
+                    "version": "7.23.6",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+                    "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/compat-data": "^7.23.5",
+                        "@babel/helper-validator-option": "^7.23.5",
+                        "browserslist": "^4.22.2",
+                        "lru-cache": "^5.1.1",
+                        "semver": "^6.3.1"
+                    }
+                },
+                "@babel/helper-environment-visitor": {
+                    "version": "7.22.20",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+                    "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
                     "dev": true
                 },
+                "@babel/helper-function-name": {
+                    "version": "7.23.0",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+                    "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/template": "^7.22.15",
+                        "@babel/types": "^7.23.0"
+                    }
+                },
+                "@babel/helper-hoist-variables": {
+                    "version": "7.22.5",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+                    "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.22.5"
+                    }
+                },
+                "@babel/helper-module-imports": {
+                    "version": "7.24.3",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+                    "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.24.0"
+                    }
+                },
+                "@babel/helper-module-transforms": {
+                    "version": "7.23.3",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+                    "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/helper-environment-visitor": "^7.22.20",
+                        "@babel/helper-module-imports": "^7.22.15",
+                        "@babel/helper-simple-access": "^7.22.5",
+                        "@babel/helper-split-export-declaration": "^7.22.6",
+                        "@babel/helper-validator-identifier": "^7.22.20"
+                    }
+                },
+                "@babel/helper-simple-access": {
+                    "version": "7.22.5",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+                    "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.22.5"
+                    }
+                },
+                "@babel/helper-split-export-declaration": {
+                    "version": "7.22.6",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+                    "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.22.5"
+                    }
+                },
+                "@babel/helper-validator-identifier": {
+                    "version": "7.22.20",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+                    "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+                    "dev": true
+                },
+                "@babel/helper-validator-option": {
+                    "version": "7.23.5",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+                    "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+                    "dev": true
+                },
+                "@babel/helpers": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz",
+                    "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/template": "^7.24.0",
+                        "@babel/traverse": "^7.24.1",
+                        "@babel/types": "^7.24.0"
+                    }
+                },
+                "@babel/highlight": {
+                    "version": "7.24.2",
+                    "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+                    "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/helper-validator-identifier": "^7.22.20",
+                        "chalk": "^2.4.2",
+                        "js-tokens": "^4.0.0",
+                        "picocolors": "^1.0.0"
+                    }
+                },
+                "@babel/parser": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz",
+                    "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==",
+                    "dev": true
+                },
+                "@babel/template": {
+                    "version": "7.24.0",
+                    "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
+                    "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/code-frame": "^7.23.5",
+                        "@babel/parser": "^7.24.0",
+                        "@babel/types": "^7.24.0"
+                    }
+                },
+                "@babel/traverse": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz",
+                    "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/code-frame": "^7.24.1",
+                        "@babel/generator": "^7.24.1",
+                        "@babel/helper-environment-visitor": "^7.22.20",
+                        "@babel/helper-function-name": "^7.23.0",
+                        "@babel/helper-hoist-variables": "^7.22.5",
+                        "@babel/helper-split-export-declaration": "^7.22.6",
+                        "@babel/parser": "^7.24.1",
+                        "@babel/types": "^7.24.0",
+                        "debug": "^4.3.1",
+                        "globals": "^11.1.0"
+                    }
+                },
+                "@babel/types": {
+                    "version": "7.24.0",
+                    "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz",
+                    "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/helper-string-parser": "^7.23.4",
+                        "@babel/helper-validator-identifier": "^7.22.20",
+                        "to-fast-properties": "^2.0.0"
+                    }
+                },
+                "@jridgewell/gen-mapping": {
+                    "version": "0.3.5",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+                    "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+                    "dev": true,
+                    "requires": {
+                        "@jridgewell/set-array": "^1.2.1",
+                        "@jridgewell/sourcemap-codec": "^1.4.10",
+                        "@jridgewell/trace-mapping": "^0.3.24"
+                    }
+                },
+                "@jridgewell/set-array": {
+                    "version": "1.2.1",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+                    "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+                    "dev": true
+                },
+                "@jridgewell/trace-mapping": {
+                    "version": "0.3.25",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+                    "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+                    "dev": true,
+                    "requires": {
+                        "@jridgewell/resolve-uri": "^3.1.0",
+                        "@jridgewell/sourcemap-codec": "^1.4.14"
+                    }
+                },
                 "ajv": {
                     "version": "8.12.0",
                     "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
@@ -1949,6 +2177,36 @@
                     "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
                     "dev": true
                 },
+                "browserslist": {
+                    "version": "4.23.0",
+                    "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+                    "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+                    "dev": true,
+                    "requires": {
+                        "caniuse-lite": "^1.0.30001587",
+                        "electron-to-chromium": "^1.4.668",
+                        "node-releases": "^2.0.14",
+                        "update-browserslist-db": "^1.0.13"
+                    }
+                },
+                "caniuse-lite": {
+                    "version": "1.0.30001600",
+                    "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz",
+                    "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==",
+                    "dev": true
+                },
+                "convert-source-map": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+                    "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+                    "dev": true
+                },
+                "electron-to-chromium": {
+                    "version": "1.4.716",
+                    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.716.tgz",
+                    "integrity": "sha512-t/MXMzFKQC3UfMDpw7V5wdB/UAB8dWx4hEsy+fpPYJWW3gqh3u5T1uXp6vR+H6dGCPBxkRo+YBcapBLvbGQHRw==",
+                    "dev": true
+                },
                 "js-yaml": {
                     "version": "4.1.0",
                     "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -1963,13 +2221,56 @@
                     "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
                     "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
                     "dev": true
+                },
+                "json5": {
+                    "version": "2.2.3",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+                    "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+                    "dev": true
+                },
+                "lru-cache": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+                    "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+                    "dev": true,
+                    "requires": {
+                        "yallist": "^3.0.2"
+                    }
+                },
+                "node-releases": {
+                    "version": "2.0.14",
+                    "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+                    "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+                    "dev": true
+                },
+                "semver": {
+                    "version": "6.3.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+                    "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+                    "dev": true
+                },
+                "update-browserslist-db": {
+                    "version": "1.0.13",
+                    "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+                    "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+                    "dev": true,
+                    "requires": {
+                        "escalade": "^3.1.1",
+                        "picocolors": "^1.0.0"
+                    }
+                },
+                "yallist": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+                    "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+                    "dev": true
                 }
             }
         },
         "@mat3ra/made": {
-            "version": "2024.3.23-1",
-            "resolved": "https://registry.npmjs.org/@mat3ra/made/-/made-2024.3.23-1.tgz",
-            "integrity": "sha512-zRj+SoMzT9chbtfD5AJkxKWXKD8Wd7Bp0K5UV5QtzplS5VBKS1CFZTL3BuKfipR5CFwJ/sZd4tqm21UJeLKFww==",
+            "version": "2024.3.26-0",
+            "resolved": "https://registry.npmjs.org/@mat3ra/made/-/made-2024.3.26-0.tgz",
+            "integrity": "sha512-EAm1FFul4rHpkpnebEeXuuXsnK9vbtklcUrewRvum4/FupVqrQpibNliZNqYsUl97/7dEkmJYRG+F7isVSVx2g==",
             "dev": true,
             "requires": {
                 "@babel/core": "7.24.1",
@@ -1983,6 +2284,7 @@
                 "crypto-js": "4.2.0",
                 "lodash": "^4.17.*",
                 "mathjs": "12.4.1",
+                "ts-node": "^10.9.1",
                 "typescript": "^4.5.5",
                 "underscore": "^1.8.3",
                 "underscore.string": "^3.3.4"
@@ -2336,9 +2638,9 @@
                     "dev": true
                 },
                 "electron-to-chromium": {
-                    "version": "1.4.715",
-                    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz",
-                    "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==",
+                    "version": "1.4.716",
+                    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.716.tgz",
+                    "integrity": "sha512-t/MXMzFKQC3UfMDpw7V5wdB/UAB8dWx4hEsy+fpPYJWW3gqh3u5T1uXp6vR+H6dGCPBxkRo+YBcapBLvbGQHRw==",
                     "dev": true
                 },
                 "fraction.js": {
@@ -2434,9 +2736,9 @@
             "optional": true
         },
         "@tsconfig/node10": {
-            "version": "1.0.9",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
-            "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.10.tgz",
+            "integrity": "sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==",
             "dev": true
         },
         "@tsconfig/node12": {
@@ -2457,12 +2759,6 @@
             "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
             "dev": true
         },
-        "@tsconfig/node20": {
-            "version": "20.1.2",
-            "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz",
-            "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==",
-            "dev": true
-        },
         "@types/chai": {
             "version": "4.3.12",
             "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz",
@@ -2606,6 +2902,35 @@
                 "uri-js": "^4.2.2"
             }
         },
+        "ajv-formats": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+            "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+            "dev": true,
+            "requires": {
+                "ajv": "^8.0.0"
+            },
+            "dependencies": {
+                "ajv": {
+                    "version": "8.12.0",
+                    "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+                    "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+                    "dev": true,
+                    "requires": {
+                        "fast-deep-equal": "^3.1.1",
+                        "json-schema-traverse": "^1.0.0",
+                        "require-from-string": "^2.0.2",
+                        "uri-js": "^4.2.2"
+                    }
+                },
+                "json-schema-traverse": {
+                    "version": "1.0.0",
+                    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+                    "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+                    "dev": true
+                }
+            }
+        },
         "almost-equal": {
             "version": "0.0.0",
             "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-0.0.0.tgz",
diff --git a/package.json b/package.json
index e345754..2fd0d66 100644
--- a/package.json
+++ b/package.json
@@ -44,11 +44,11 @@
         "underscore.string": "^3.3.4"
     },
     "devDependencies": {
-        "@exabyte-io/code.js": "2024.2.29-0",
         "@exabyte-io/eslint-config": "^2022.11.17-0",
-        "@mat3ra/made": "2024.3.23-1",
-        "@exabyte-io/application-flavors.js": "2024.3.21-0",
-        "@mat3ra/esse": "2024.3.20-0",
+        "@exabyte-io/application-flavors.js": "2024.3.26-0",
+        "@mat3ra/code": "2024.3.25-3",
+        "@mat3ra/made": "2024.3.26-0",
+        "@mat3ra/esse": "2024.3.25-6",
         "chai": "^4.3.4",
         "eslint": "7.32.0",
         "eslint-config-airbnb": "19.0.2",
@@ -66,7 +66,8 @@
         "prettier": "^2.7.1"
     },
     "peerDependencies": {
-        "@exabyte-io/code.js": "*",
+        "@mat3ra/code": "*",
+        "@mat3ra/esse": "*",
         "@mat3ra/made": "*",
         "@exabyte-io/application-flavors.js": "*"
     },
diff --git a/src/application.js b/src/application.js
index 25e9db6..9e87ab4 100644
--- a/src/application.js
+++ b/src/application.js
@@ -1,5 +1,5 @@
 import { allApplications, getAppData, getAppTree } from "@exabyte-io/application-flavors.js";
-import { NamedDefaultableInMemoryEntity } from "@exabyte-io/code.js/dist/entity";
+import { NamedDefaultableInMemoryEntity } from "@mat3ra/code/dist/js/entity";
 import lodash from "lodash";
 
 import { Executable } from "./executable";
diff --git a/src/context/providers.js b/src/context/providers.js
index ed607e4..d6453cb 100644
--- a/src/context/providers.js
+++ b/src/context/providers.js
@@ -1,4 +1,4 @@
-import { ContextProvider } from "@exabyte-io/code.js/dist/context";
+import { ContextProvider } from "@mat3ra/code/dist/js/context";
 
 export class ExecutableContextProvider extends ContextProvider {
     constructor(config) {
diff --git a/src/context/providers/espresso/providers.js b/src/context/providers/espresso/providers.js
index 970f5d5..56000e2 100644
--- a/src/context/providers/espresso/providers.js
+++ b/src/context/providers/espresso/providers.js
@@ -1,4 +1,5 @@
 /* eslint-disable max-classes-per-file */
+import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
 import {
     JobContextMixin,
     MaterialContextMixin,
@@ -6,8 +7,7 @@ import {
     MaterialsSetContextMixin,
     MethodDataContextMixin,
     WorkflowContextMixin,
-} from "@exabyte-io/code.js/dist/context";
-import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
+} from "@mat3ra/code/dist/js/context";
 import { Made } from "@mat3ra/made";
 import lodash from "lodash";
 import { mix } from "mixwith";
diff --git a/src/context/providers/nwchem/providers.js b/src/context/providers/nwchem/providers.js
index d705959..ec43a5b 100644
--- a/src/context/providers/nwchem/providers.js
+++ b/src/context/providers/nwchem/providers.js
@@ -1,10 +1,10 @@
+import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
 import {
     JobContextMixin,
     MaterialContextMixin,
     MethodDataContextMixin,
     WorkflowContextMixin,
-} from "@exabyte-io/code.js/dist/context";
-import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
+} from "@mat3ra/code/dist/js/context";
 import { Made } from "@mat3ra/made";
 import lodash from "lodash";
 import { mix } from "mixwith";
diff --git a/src/context/providers/vasp/providers.js b/src/context/providers/vasp/providers.js
index a230576..43dfaf5 100644
--- a/src/context/providers/vasp/providers.js
+++ b/src/context/providers/vasp/providers.js
@@ -6,7 +6,7 @@ import {
     MaterialsSetContextMixin,
     MethodDataContextMixin,
     WorkflowContextMixin,
-} from "@exabyte-io/code.js/dist/context";
+} from "@mat3ra/code/dist/js/context";
 import { Made } from "@mat3ra/made";
 import { mix } from "mixwith";
 
diff --git a/src/context/registry.js b/src/context/registry.js
index 9cb010c..e21666a 100644
--- a/src/context/registry.js
+++ b/src/context/registry.js
@@ -1,4 +1,4 @@
-import { createAndPatchRegistry } from "@exabyte-io/code.js/dist/context";
+import { createAndPatchRegistry } from "@mat3ra/code/dist/js/context";
 
 import {
     NWChemTotalEnergyContextProvider,
diff --git a/src/executable.js b/src/executable.js
index 4aed08f..8388f7d 100644
--- a/src/executable.js
+++ b/src/executable.js
@@ -1,4 +1,4 @@
-import { NamedDefaultableInMemoryEntity, RuntimeItemsMixin } from "@exabyte-io/code.js/dist/entity";
+import { NamedDefaultableInMemoryEntity, RuntimeItemsMixin } from "@mat3ra/code/dist/js/entity";
 import { mix } from "mixwith";
 
 import { Flavor } from "./flavor";
diff --git a/src/flavor.js b/src/flavor.js
index 9e42126..6dd5f2a 100644
--- a/src/flavor.js
+++ b/src/flavor.js
@@ -1,4 +1,4 @@
-import { NamedDefaultableInMemoryEntity, RuntimeItemsMixin } from "@exabyte-io/code.js/dist/entity";
+import { NamedDefaultableInMemoryEntity, RuntimeItemsMixin } from "@mat3ra/code/dist/js/entity";
 import { mix } from "mixwith";
 
 import { Template } from "./template";
diff --git a/src/template.js b/src/template.js
index f93a713..35d82f0 100644
--- a/src/template.js
+++ b/src/template.js
@@ -1,6 +1,6 @@
 import { allTemplates } from "@exabyte-io/application-flavors.js";
-import { NamedInMemoryEntity } from "@exabyte-io/code.js/dist/entity";
-import { deepClone } from "@exabyte-io/code.js/dist/utils";
+import { NamedInMemoryEntity } from "@mat3ra/code/dist/js/entity";
+import { deepClone } from "@mat3ra/code/dist/js/utils";
 import jinja from "swig";
 import _ from "underscore";
 
diff --git a/src/tree.js b/src/tree.js
index a09bac8..0173c14 100644
--- a/src/tree.js
+++ b/src/tree.js
@@ -1,6 +1,6 @@
 /* eslint-disable new-cap */
 import { allApplications, getAppData, getAppTree } from "@exabyte-io/application-flavors.js";
-import { getOneMatchFromObject } from "@exabyte-io/code.js/dist/utils";
+import { getOneMatchFromObject } from "@mat3ra/code/dist/js/utils";
 
 /**
  * @summary Return all applications as both a nested object of Applications and an array of config objects
