diff --git a/app/scripts/nmr-cli/Dockerfile b/app/scripts/nmr-cli/Dockerfile index d267c31..fc31fb6 100644 --- a/app/scripts/nmr-cli/Dockerfile +++ b/app/scripts/nmr-cli/Dockerfile @@ -1,7 +1,7 @@ # build the image ` docker build --tag nmr-cli . ` # run the container ` docker run -it nmr-cli bash ` -FROM mcr.microsoft.com/playwright:v1.51.1-jammy +FROM mcr.microsoft.com/playwright:v1.53.0-jammy SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/app/scripts/nmr-cli/package-lock.json b/app/scripts/nmr-cli/package-lock.json index 8cfb058..91b878c 100644 --- a/app/scripts/nmr-cli/package-lock.json +++ b/app/scripts/nmr-cli/package-lock.json @@ -9,21 +9,21 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "axios": "^1.9.0", + "axios": "^1.10.0", "filelist-utils": "^1.11.3", - "nmr-load-save": "^3.3.0", - "nmr-processing": "^17.1.3", - "playwright": "^1.51.1", - "yargs": "^17.7.2" + "nmr-load-save": "^3.6.0", + "nmr-processing": "^19.0.0", + "playwright": "^1.53.0", + "yargs": "^18.0.0" }, "bin": { "nmr-cli": "build/index.js" }, "devDependencies": { - "@types/node": "^22.13.13", + "@types/node": "^24.0.3", "@types/yargs": "^17.0.33", "ts-node": "^10.9.2", - "typescript": "^5.8.2" + "typescript": "^5.8.3" } }, "node_modules/@cspotcode/source-map-support": { @@ -133,12 +133,12 @@ } }, "node_modules/@types/node": { - "version": "22.13.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz", - "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==", + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", "dev": true, "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~7.8.0" } }, "node_modules/@types/yargs": { @@ -181,22 +181,22 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -219,9 +219,9 @@ "integrity": "sha512-ktg7pvTF22Ox/HPJZjUrw3L0dH1nOZg+CjGR0r1iyZO2LDbQX5GgIxOWq4YthifBrcVxfFMkdKVhp5YJ43g0Vw==" }, "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", + "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -276,34 +276,18 @@ "integrity": "sha512-FRcpVkox+cRovffgqNdDFQ1eUav+i/Vq/CUd1hcfEl2bevntFlzznL+jE8g4twl6ElB7gZjCko6pYpXyMn+6dA==" }, "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "dependencies": { - "color-name": "~1.1.4" + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=20" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -345,16 +329,22 @@ "integrity": "sha512-ehXCHYXZhZzDZmVQE/P9wQ7XPOn1G3e+pVqcqXvYykBL8Lg7HFm2ewD3TZseOMWiM9bNU0u4UWSV/dAzf+unug==" }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/delayed-stream": { @@ -393,9 +383,9 @@ "integrity": "sha512-KYvDeLd4kPxs5rn/GLDQ2FLrncVVqvUfQKkhbYYaM+51zXjQwyOejP5TuAnAjdX6o+PjdMgcfhr3M7h5hQv4yA==" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==" }, "node_modules/ensure-string": { "version": "1.2.0", @@ -542,6 +532,17 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -673,14 +674,6 @@ "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==" }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -907,16 +900,15 @@ } }, "node_modules/ml-gsd": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/ml-gsd/-/ml-gsd-12.1.8.tgz", - "integrity": "sha512-vcy8e1xPJ9fe2GFKMMpttzQUDxgPdo6KLTPU55lfPedL0WH9WRuIxRLbUwLbhYmB2/ZwAhzIspXcxjPCwhtsgA==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ml-gsd/-/ml-gsd-13.0.1.tgz", + "integrity": "sha512-Du0759hFmjz/LXYnbQcnUs7kP/3iczrczwEAax5W9GTVay9YtR6tZ019PJJK4Fw2aZvysUt3MwrnFZUemsHKCQ==", "dependencies": { - "@lukeed/uuid": "^2.0.1", - "cheminfo-types": "^1.7.3", + "cheminfo-types": "^1.8.1", "ml-peak-shape-generator": "^4.1.4", "ml-savitzky-golay-generalized": "^4.2.0", - "ml-spectra-fitting": "^4.2.4", - "ml-spectra-processing": "^14.5.3" + "ml-spectra-fitting": "^5.0.1", + "ml-spectra-processing": "^14.12.0" } }, "node_modules/ml-hash-table": { @@ -940,12 +932,12 @@ } }, "node_modules/ml-levenberg-marquardt": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ml-levenberg-marquardt/-/ml-levenberg-marquardt-4.1.3.tgz", - "integrity": "sha512-CuR8mg1IIgb5IuDkdJBpnHmx+r6FpRDDPvYhAGq+4WVMLw/lu44P6PniyCrdvk1PNBmxVXN/LwBDMpQ/VaWhgA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ml-levenberg-marquardt/-/ml-levenberg-marquardt-5.0.0.tgz", + "integrity": "sha512-vCFoO2DyYKGZFp+KxofN2cAvSc/3gufJHj/oaDHA2nV+NZH509fD7m35zQR2ZXA8fepxpVrwgCAQ0aAIsV2WtA==", "dependencies": { - "is-any-array": "^2.0.0", - "ml-matrix": "^6.10.4" + "is-any-array": "^2.0.1", + "ml-matrix": "^6.12.1" } }, "node_modules/ml-matrix": { @@ -1001,12 +993,11 @@ } }, "node_modules/ml-regression-polynomial": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ml-regression-polynomial/-/ml-regression-polynomial-3.0.1.tgz", - "integrity": "sha512-dNds0VK4nrMyZvwovy9bYo2WaHPstEztPly4EWB8mj+vPcNxyq4a2UiTueR1jwkgLo6/QWDzA+HBsHP7S/0z3A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/ml-regression-polynomial/-/ml-regression-polynomial-3.0.2.tgz", + "integrity": "sha512-RkHQeviEi7q6d2npCeH9MiRTPsBBqqSeqiWV3yctTFXvYgavy5MkpnCqGElHDb62Y3cTXlNQpmD4T7LA7yfGvw==", "dependencies": { - "cheminfo-types": "^1.7.3", - "ml-matrix": "^6.11.0", + "ml-matrix": "^6.12.0", "ml-regression-base": "^4.0.0" } }, @@ -1038,15 +1029,15 @@ } }, "node_modules/ml-signal-processing": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ml-signal-processing/-/ml-signal-processing-1.2.0.tgz", - "integrity": "sha512-hLJLrEq7a8Jx+VlXr1zZ8ApUb8EFwPgRacvNQL7LF7BH24uReJbRJVH8tL29ZGrQV4kJ9dxdmiZk+lbnvuhR1g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-signal-processing/-/ml-signal-processing-2.0.0.tgz", + "integrity": "sha512-U7jY/QvTXKj2fDedOXNQf+hSXclQY+tVdVSsQzIQve6GL5a8W/kBHQ71dq80duNBB9bsv74Y4axOwD1AeMLyOA==", "dependencies": { "baselines": "^1.1.9", "cheminfo-types": "^1.8.1", - "ml-gsd": "^12.1.8", + "ml-gsd": "^13.0.1", "ml-savitzky-golay-generalized": "^4.2.0", - "ml-spectra-processing": "^14.6.2" + "ml-spectra-processing": "^14.12.0" } }, "node_modules/ml-simple-clustering": { @@ -1063,28 +1054,27 @@ } }, "node_modules/ml-spectra-fitting": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/ml-spectra-fitting/-/ml-spectra-fitting-4.2.4.tgz", - "integrity": "sha512-iq6yHKqovLeBA1+Lwzhjz3fqDz6j9vR+p5MgNUyO9yfRUOC6YrMfuesopZv7Gj/SuvGGjNWgR3z8XCjjPonedg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ml-spectra-fitting/-/ml-spectra-fitting-5.0.1.tgz", + "integrity": "sha512-uqSc01tED7PNYYEvtPCAp7QGybZVi1K0HgHlqu5cAxjbpfnDS+XcOc2rTPprf8GoZ9Y3xL/fxyY4Gc5+Dh7e4A==", "dependencies": { "cheminfo-types": "^1.7.2", - "ml-array-max": "^1.2.4", "ml-direct": "^1.0.0", - "ml-levenberg-marquardt": "^4.1.3", + "ml-levenberg-marquardt": "^5.0.0", "ml-peak-shape-generator": "^4.1.4", "ml-spectra-processing": "^14.2.0" } }, "node_modules/ml-spectra-processing": { - "version": "14.10.0", - "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.10.0.tgz", - "integrity": "sha512-4fyF6tojgVgh6m9nmFvaIlGhrvHq+swn64IxQ44F4k4o7Qkl8xKOJWfQ4EsfoX66GqZn2PFfcn1xUGRNwB8+3w==", + "version": "14.12.0", + "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.12.0.tgz", + "integrity": "sha512-RoJj2r4tGElyPDwBzmoCa+j3rLomBzz+JHGVPxf1tASAE82NkjgvuCFZFay+g0DXTkxDGYFxor+zayqA4nQrng==", "dependencies": { "binary-search": "^1.3.6", "cheminfo-types": "^1.8.1", "fft.js": "^4.0.4", "is-any-array": "^2.0.1", - "ml-matrix": "^6.12.0", + "ml-matrix": "^6.12.1", "ml-xsadd": "^3.0.1" } }, @@ -1125,9 +1115,10 @@ } }, "node_modules/nmr-load-save": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/nmr-load-save/-/nmr-load-save-3.3.0.tgz", - "integrity": "sha512-3sdS18ewAbIV6OaSDlVcq1jViKWHyHjfPm9+ofxFpAChDX+DKr05FEAHmqY21NlvsPDDplYfemTF6d3rnQ0+6A==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/nmr-load-save/-/nmr-load-save-3.6.0.tgz", + "integrity": "sha512-qwZ54C9CqzZrGfzU6VX9FiaEKGYiXkOg5u3MXQk+4VY7/xDFwilh2EE7A7gIabP1Z7VU3GeOwBSLwjrtBZz4sA==", + "deprecated": "See @zakodium/nmrium-core and @zakodium/nmrium-core-plugins", "dependencies": { "@lukeed/uuid": "^2.0.1", "@types/lodash.merge": "^4.6.9", @@ -1152,10 +1143,75 @@ "varian-converter": "^2.0.1" } }, - "node_modules/nmr-processing": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-17.1.3.tgz", - "integrity": "sha512-ymzYbLRhqLywDOOIglY9UuCiyVqwue2DKqjaROHq8x9mR4GY9Uv+BMj4jM5CC71A4tR0SjJnK3Ha+meYkT/MEw==", + "node_modules/nmr-load-save/node_modules/d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + }, + "node_modules/nmr-load-save/node_modules/d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "dependencies": { + "d3-color": "1 - 2" + } + }, + "node_modules/nmr-load-save/node_modules/get-value": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-4.0.1.tgz", + "integrity": "sha512-QTDzwunK3V+VlJJlL0BlCzebAaE8OSlUC+UVd80PiekTw1gpzQSb3cfEQB2LYFWr1lbWfbdqL4pjAoJDPCLxhQ==" + }, + "node_modules/nmr-load-save/node_modules/ml-gsd": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/ml-gsd/-/ml-gsd-12.1.8.tgz", + "integrity": "sha512-vcy8e1xPJ9fe2GFKMMpttzQUDxgPdo6KLTPU55lfPedL0WH9WRuIxRLbUwLbhYmB2/ZwAhzIspXcxjPCwhtsgA==", + "dependencies": { + "@lukeed/uuid": "^2.0.1", + "cheminfo-types": "^1.7.3", + "ml-peak-shape-generator": "^4.1.4", + "ml-savitzky-golay-generalized": "^4.2.0", + "ml-spectra-fitting": "^4.2.4", + "ml-spectra-processing": "^14.5.3" + } + }, + "node_modules/nmr-load-save/node_modules/ml-levenberg-marquardt": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ml-levenberg-marquardt/-/ml-levenberg-marquardt-4.1.3.tgz", + "integrity": "sha512-CuR8mg1IIgb5IuDkdJBpnHmx+r6FpRDDPvYhAGq+4WVMLw/lu44P6PniyCrdvk1PNBmxVXN/LwBDMpQ/VaWhgA==", + "dependencies": { + "is-any-array": "^2.0.0", + "ml-matrix": "^6.10.4" + } + }, + "node_modules/nmr-load-save/node_modules/ml-signal-processing": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ml-signal-processing/-/ml-signal-processing-1.2.0.tgz", + "integrity": "sha512-hLJLrEq7a8Jx+VlXr1zZ8ApUb8EFwPgRacvNQL7LF7BH24uReJbRJVH8tL29ZGrQV4kJ9dxdmiZk+lbnvuhR1g==", + "dependencies": { + "baselines": "^1.1.9", + "cheminfo-types": "^1.8.1", + "ml-gsd": "^12.1.8", + "ml-savitzky-golay-generalized": "^4.2.0", + "ml-spectra-processing": "^14.6.2" + } + }, + "node_modules/nmr-load-save/node_modules/ml-spectra-fitting": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/ml-spectra-fitting/-/ml-spectra-fitting-4.2.4.tgz", + "integrity": "sha512-iq6yHKqovLeBA1+Lwzhjz3fqDz6j9vR+p5MgNUyO9yfRUOC6YrMfuesopZv7Gj/SuvGGjNWgR3z8XCjjPonedg==", + "dependencies": { + "cheminfo-types": "^1.7.2", + "ml-array-max": "^1.2.4", + "ml-direct": "^1.0.0", + "ml-levenberg-marquardt": "^4.1.3", + "ml-peak-shape-generator": "^4.1.4", + "ml-spectra-processing": "^14.2.0" + } + }, + "node_modules/nmr-load-save/node_modules/nmr-processing": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-17.3.1.tgz", + "integrity": "sha512-W2BDtxiPOTidZJfvKWfK/7S5vcP847Hj54oemhnXxY8kzETg9M9b1ndnqULGNECeeapEdSvwOAKlKEph8hjrcg==", "dependencies": { "@lukeed/uuid": "^2.0.1", "@types/d3-color": "^3.1.3", @@ -1184,13 +1240,102 @@ "ml-signal-processing": "^1.2.0", "ml-simple-clustering": "^0.1.0", "ml-sparse-matrix": "^2.1.0", - "ml-spectra-processing": "^14.10.0", + "ml-spectra-processing": "^14.11.0", "ml-tree-set": "^0.1.1", "multiplet-analysis": "^2.1.5", "nmr-correlation": "^2.3.5", "numeral": "^2.0.6", - "openchemlib-utils": "^6.6.0", - "spectrum-generator": "^8.0.12" + "openchemlib-utils": "^6.7.0", + "spectrum-generator": "^8.1.0" + } + }, + "node_modules/nmr-load-save/node_modules/nmr-processing/node_modules/openchemlib-utils": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/openchemlib-utils/-/openchemlib-utils-6.7.0.tgz", + "integrity": "sha512-NxSNqnntIVBdBDKG0eAiqUsVE5N6xOeoif0EIktMRTjWtakRxFq5VR1CniBnwPA6J8MYY8D7wolRYWn/3Cu3+Q==", + "dependencies": { + "@lukeed/uuid": "^2.0.1", + "atom-sorter": "^2.2.0", + "ensure-string": "^1.2.0", + "get-value": "^4.0.1", + "ml-floyd-warshall": "^3.0.1", + "ml-matrix": "^6.12.1", + "papaparse": "^5.5.2", + "sdf-parser": "^7.0.4" + }, + "peerDependencies": { + "openchemlib": ">=8.18.1" + } + }, + "node_modules/nmr-processing": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-19.0.0.tgz", + "integrity": "sha512-Yjq1LKPx0iVODqo/hNpsNqIGFUI3dJK50ZIKSd3iuXgKuX9Eh0NxHvvfnO4YcRHplojnvK/5F0IldfY5+LLGfA==", + "dependencies": { + "binary-search": "^1.3.6", + "d3-color": "3.1.0", + "d3-interpolate": "^3.0.1", + "gyromagnetic-ratio": "^2.0.0", + "is-any-array": "^2.0.1", + "linear-sum-assignment": "^1.0.7", + "ml-airpls": "^2.0.0", + "ml-convolution": "^2.0.0", + "ml-direct": "^1.0.0", + "ml-gsd": "^13.0.1", + "ml-hclust": "^3.1.0", + "ml-levenberg-marquardt": "^5.0.0", + "ml-matrix": "^6.12.1", + "ml-matrix-convolution": "^1.0.0", + "ml-matrix-peaks-finder": "^1.0.0", + "ml-peak-shape-generator": "^4.1.4", + "ml-regression-base": "^4.0.0", + "ml-regression-exponential": "^3.0.2", + "ml-regression-polynomial": "^3.0.2", + "ml-regression-simple-linear": "^3.0.1", + "ml-savitzky-golay-generalized": "^4.2.0", + "ml-signal-processing": "^2.0.0", + "ml-simple-clustering": "^0.1.0", + "ml-sparse-matrix": "^2.1.0", + "ml-spectra-processing": "^14.12.0", + "ml-tree-set": "^0.1.1", + "multiplet-analysis": "^2.1.5", + "nmr-correlation": "^2.3.5", + "numeral": "^2.0.6", + "openchemlib-utils": "^8.1.1", + "spectrum-generator": "^8.1.0" + } + }, + "node_modules/nmr-processing/node_modules/get-value": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-4.0.1.tgz", + "integrity": "sha512-QTDzwunK3V+VlJJlL0BlCzebAaE8OSlUC+UVd80PiekTw1gpzQSb3cfEQB2LYFWr1lbWfbdqL4pjAoJDPCLxhQ==" + }, + "node_modules/nmr-processing/node_modules/gyromagnetic-ratio": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gyromagnetic-ratio/-/gyromagnetic-ratio-2.0.0.tgz", + "integrity": "sha512-LrpOHxgnxo0+yqtmA+1FUyl9RkvhTCiIiIPGzo8Yn6TXz6OiY5CJ5k5IqThF61qnkbC+fe6q3kF67OI6d0HyjQ==" + }, + "node_modules/nmr-processing/node_modules/openchemlib": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/openchemlib/-/openchemlib-9.2.0.tgz", + "integrity": "sha512-MM5GcbYNBzWpsVDYJP4TNMftvA/+sYigLihKl/T3Qn2tZZFNXEPbiUbfBM39HQalpEpb5oFWhbjW+T4TydFbhg==", + "peer": true + }, + "node_modules/nmr-processing/node_modules/openchemlib-utils": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/openchemlib-utils/-/openchemlib-utils-8.1.2.tgz", + "integrity": "sha512-j/kEkI0D0JfiRCUXCPt+Vn1ZY9gzC2K05+sXoF++xH8lymIuBECQOOdU4yxZ/7yfXTyGxYfKzMXUJLHCKZrjzQ==", + "dependencies": { + "atom-sorter": "^2.2.0", + "ensure-string": "^1.2.0", + "get-value": "^4.0.1", + "ml-floyd-warshall": "^3.0.1", + "ml-matrix": "^6.12.1", + "papaparse": "^5.5.3", + "sdf-parser": "^7.0.4" + }, + "peerDependencies": { + "openchemlib": ">=9.0.0" } }, "node_modules/nmredata": { @@ -1261,16 +1406,16 @@ "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" }, "node_modules/papaparse": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.2.tgz", - "integrity": "sha512-PZXg8UuAc4PcVwLosEEDYjPyfWnTEhOrUfdv+3Bx+NuAb+5NhDmXzg5fHWmdCh1mP5p7JAZfFr3IMQfcntNAdA==" + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==" }, "node_modules/playwright": { - "version": "1.51.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.1.tgz", - "integrity": "sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.53.0.tgz", + "integrity": "sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==", "dependencies": { - "playwright-core": "1.51.1" + "playwright-core": "1.53.0" }, "bin": { "playwright": "cli.js" @@ -1283,9 +1428,9 @@ } }, "node_modules/playwright-core": { - "version": "1.51.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.1.tgz", - "integrity": "sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.53.0.tgz", + "integrity": "sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==", "bin": { "playwright-core": "cli.js" }, @@ -1317,14 +1462,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1345,12 +1482,12 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "node_modules/spectrum-generator": { - "version": "8.0.12", - "resolved": "https://registry.npmjs.org/spectrum-generator/-/spectrum-generator-8.0.12.tgz", - "integrity": "sha512-7CG714g2yANDIqfFu8gj1EZk0qxqjL7L9IQtLMYR5ZybkG+O3TnQkMtXKu3tcm6B4oo2qBTNLgSUOh0NTXHYSw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/spectrum-generator/-/spectrum-generator-8.1.0.tgz", + "integrity": "sha512-OJxJ7fGR+cJ9AyQegeaKaZtjGh+lxk/9A6UFBoeodduI82VIKpm0bjjSd2Q6t5BIFLsYicbMztY1hcx+55Oe2w==", "dependencies": { "ml-peak-shape-generator": "^4.1.4", - "ml-spectra-processing": "^14.8.0" + "ml-spectra-processing": "^14.10.0" } }, "node_modules/string_decoder": { @@ -1362,27 +1499,33 @@ } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/ts-node": { @@ -1429,9 +1572,9 @@ } }, "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -1447,9 +1590,9 @@ "integrity": "sha512-dFSOFBKV6uwaloBCCUhxlD3Pr/P1a/tJdcmPrTXCHlEFD3faj0mztjcGn6VBAhQ0/Bdy8K3VWrrqwbt/ffsYsg==" }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", "dev": true }, "node_modules/util-deprecate": { @@ -1474,16 +1617,16 @@ } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -1498,28 +1641,27 @@ } }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", "dependencies": { - "cliui": "^8.0.1", + "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", + "string-width": "^7.2.0", "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "yargs-parser": "^22.0.0" }, "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yn": { diff --git a/app/scripts/nmr-cli/package.json b/app/scripts/nmr-cli/package.json index 20f1010..71d0510 100644 --- a/app/scripts/nmr-cli/package.json +++ b/app/scripts/nmr-cli/package.json @@ -15,17 +15,17 @@ "nmr-cli": "./build/index.js" }, "dependencies": { - "axios": "^1.9.0", + "axios": "^1.10.0", "filelist-utils": "^1.11.3", - "nmr-load-save": "^3.3.0", - "nmr-processing": "^17.1.3", - "playwright": "^1.51.1", - "yargs": "^17.7.2" + "nmr-load-save": "^3.6.0", + "nmr-processing": "^19.0.0", + "playwright": "^1.53.0", + "yargs": "^18.0.0" }, "devDependencies": { - "@types/node": "^22.13.13", + "@types/node": "^24.0.3", "@types/yargs": "^17.0.33", "ts-node": "^10.9.2", - "typescript": "^5.8.2" + "typescript": "^5.8.3" } } diff --git a/app/scripts/nmr-cli/src/index.ts b/app/scripts/nmr-cli/src/index.ts index 3d20466..4d85eda 100755 --- a/app/scripts/nmr-cli/src/index.ts +++ b/app/scripts/nmr-cli/src/index.ts @@ -3,6 +3,7 @@ import yargs, { type Argv, type CommandModule, type Options } from 'yargs' import { loadSpectrumFromURL, loadSpectrumFromFilePath } from './prase-spectra' import { generateSpectrumFromPublicationString } from './publication-string' import { parsePredictionCommand } from './prediction/parsePredictionCommand' +import { hideBin } from 'yargs/helpers'; const usageMessage = ` Usage: nmr-cli [options] @@ -118,11 +119,11 @@ const parsePublicationCommand: CommandModule = { }, } -yargs +yargs(hideBin(process.argv)) .usage(usageMessage) .command(parseFileCommand) .command(parsePublicationCommand) .command(parsePredictionCommand) .showHelpOnFail(true) .help() - .parse() + .parse() \ No newline at end of file diff --git a/app/scripts/nmr-cli/src/publication-string.ts b/app/scripts/nmr-cli/src/publication-string.ts index 3bd994a..4251843 100644 --- a/app/scripts/nmr-cli/src/publication-string.ts +++ b/app/scripts/nmr-cli/src/publication-string.ts @@ -1,4 +1,4 @@ -import { resurrect, rangesToXY, type NMRRange } from 'nmr-processing'; +import { resurrect, rangesToXY, type NMRRangeWithIntegration } from 'nmr-processing'; import { v4 } from '@lukeed/uuid'; import { CURRENT_EXPORT_VERSION } from 'nmr-load-save'; import { castToArray } from './utilities/castToArray' @@ -9,7 +9,7 @@ interface Info { } function generateSpectrumFromRanges( - ranges: NMRRange[], + ranges: NMRRangeWithIntegration[], info: Info, ) { const { nucleus, solvent, name = null } = info;