From c9519fbf942d737285e6027e8c8a5b33280ab9be Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:28:39 +0200 Subject: [PATCH 1/4] fix: bundle array deps * `is-any-array` and `ml-array-rescale` are bundled into `ml-matrix` build: build mjs with rollup Remove `build-esm-facade.mjs` --- package.json | 11 ++++------- rollup.config.mjs | 11 ++++++++++- tools/build-esm-facade.mjs | 20 -------------------- 3 files changed, 14 insertions(+), 28 deletions(-) delete mode 100644 tools/build-esm-facade.mjs diff --git a/package.json b/package.json index fab8887..2288925 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,10 @@ "src" ], "scripts": { - "build-esm-facade": "node tools/build-esm-facade.mjs", "compile": "rollup -c", "eslint": "eslint src testUtils.js", "eslint-fix": "npm run eslint -- --fix", - "prepack": "npm run compile && npm run build-esm-facade", + "prepack": "npm run compile", "prettier": "prettier --check src", "prettier-write": "prettier --write src", "test": "npm run test-only && npm run eslint && npm run prettier", @@ -63,24 +62,22 @@ "devDependencies": { "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^0.4.4", "@vitest/coverage-v8": "^3.2.4", "benchmark": "^2.1.4", "csv-parse": "^5.6.0", "eslint": "^9.29.0", "eslint-config-cheminfo": "^14.1.1", + "is-any-array": "^3.0.0", "jest-matcher-deep-close-to": "^3.0.2", "mathjs": "^14.5.2", + "ml-array-rescale": "^2.0.0", "ml-dataset-iris": "^1.2.1", "numeric": "^1.2.6", "prettier": "^3.5.3", "pretty-hrtime": "^1.0.3", "rollup": "^4.44.0", "vitest": "^3.2.4" - }, - "dependencies": { - "is-any-array": "^2.0.1", - "ml-array-rescale": "^1.3.7" } } diff --git a/rollup.config.mjs b/rollup.config.mjs index 3af9b2c..bc57252 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -10,7 +10,16 @@ export default [ format: 'cjs', exports: 'named', }, - external: ['is-any-array', 'ml-array-rescale'], + plugins: [resolve()], + }, + { + input: 'src/index.js', + output: { + file: 'matrix.mjs', + format: 'esm', + exports: 'named', + }, + plugins: [resolve()], }, { input: 'src/index.js', diff --git a/tools/build-esm-facade.mjs b/tools/build-esm-facade.mjs deleted file mode 100644 index 2b360bd..0000000 --- a/tools/build-esm-facade.mjs +++ /dev/null @@ -1,20 +0,0 @@ -import { writeFile } from 'node:fs/promises'; - -import matrixBuild from '../matrix.js'; - -const exportNames = Object.keys(matrixBuild); - -const exports = exportNames.map((name) => { - if (name === 'default') { - return `export default matrix.default.Matrix ? matrix.default.Matrix : matrix.Matrix;`; - } - return `export const ${name} = matrix.${name};`; -}); - -await writeFile( - new URL('../matrix.mjs', import.meta.url), - `import * as matrix from './matrix.js'; - -${exports.join('\n')} -`, -); From 0121adbb7a75fc6032dbc599d45a804cd355f89c Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:42:32 +0200 Subject: [PATCH 2/4] build: add sourcemaps --- .gitignore | 1 + package.json | 3 +++ rollup.config.mjs | 3 +++ 3 files changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index b955eed..64e8143 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea node_modules /matrix.*js +/matrix.*.map coverage/ diff --git a/package.json b/package.json index 2288925..d28ef83 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,11 @@ "files": [ "matrix.d.ts", "matrix.js", + "matrix.js.map", "matrix.mjs", + "matrix.mjs.map", "matrix.umd.js", + "matrix.umd.js.map", "src" ], "scripts": { diff --git a/rollup.config.mjs b/rollup.config.mjs index bc57252..950d1ad 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -9,6 +9,7 @@ export default [ file: 'matrix.js', format: 'cjs', exports: 'named', + sourcemap: true, }, plugins: [resolve()], }, @@ -18,6 +19,7 @@ export default [ file: 'matrix.mjs', format: 'esm', exports: 'named', + sourcemap: true, }, plugins: [resolve()], }, @@ -28,6 +30,7 @@ export default [ file: 'matrix.umd.js', format: 'umd', exports: 'named', + sourcemap: true, }, plugins: [resolve(), commonJS(), terser()], }, From e0cfc276194dd732897f084bcda79935ffc49ea9 Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:57:34 +0200 Subject: [PATCH 3/4] fix: restore previous esm build to avoid dual-package hazard --- package.json | 4 ++-- rollup.config.mjs | 10 ---------- tools/build-esm-facade.mjs | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 tools/build-esm-facade.mjs diff --git a/package.json b/package.json index d28ef83..e82da11 100644 --- a/package.json +++ b/package.json @@ -20,16 +20,16 @@ "matrix.js", "matrix.js.map", "matrix.mjs", - "matrix.mjs.map", "matrix.umd.js", "matrix.umd.js.map", "src" ], "scripts": { + "build-esm-facade": "node tools/build-esm-facade.mjs", "compile": "rollup -c", "eslint": "eslint src testUtils.js", "eslint-fix": "npm run eslint -- --fix", - "prepack": "npm run compile", + "prepack": "npm run compile && npm run build-esm-facade", "prettier": "prettier --check src", "prettier-write": "prettier --write src", "test": "npm run test-only && npm run eslint && npm run prettier", diff --git a/rollup.config.mjs b/rollup.config.mjs index 950d1ad..694a246 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -13,16 +13,6 @@ export default [ }, plugins: [resolve()], }, - { - input: 'src/index.js', - output: { - file: 'matrix.mjs', - format: 'esm', - exports: 'named', - sourcemap: true, - }, - plugins: [resolve()], - }, { input: 'src/index.js', output: { diff --git a/tools/build-esm-facade.mjs b/tools/build-esm-facade.mjs new file mode 100644 index 0000000..2b360bd --- /dev/null +++ b/tools/build-esm-facade.mjs @@ -0,0 +1,20 @@ +import { writeFile } from 'node:fs/promises'; + +import matrixBuild from '../matrix.js'; + +const exportNames = Object.keys(matrixBuild); + +const exports = exportNames.map((name) => { + if (name === 'default') { + return `export default matrix.default.Matrix ? matrix.default.Matrix : matrix.Matrix;`; + } + return `export const ${name} = matrix.${name};`; +}); + +await writeFile( + new URL('../matrix.mjs', import.meta.url), + `import * as matrix from './matrix.js'; + +${exports.join('\n')} +`, +); From dcfd6f715d5645d232533006c7848bc60c3c41e4 Mon Sep 17 00:00:00 2001 From: tpoisseau <22891227+tpoisseau@users.noreply.github.com> Date: Wed, 15 Apr 2026 10:06:31 +0200 Subject: [PATCH 4/4] fix: keep in deps --- package.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e82da11..cc8620b 100644 --- a/package.json +++ b/package.json @@ -72,15 +72,17 @@ "csv-parse": "^5.6.0", "eslint": "^9.29.0", "eslint-config-cheminfo": "^14.1.1", - "is-any-array": "^3.0.0", "jest-matcher-deep-close-to": "^3.0.2", "mathjs": "^14.5.2", - "ml-array-rescale": "^2.0.0", "ml-dataset-iris": "^1.2.1", "numeric": "^1.2.6", "prettier": "^3.5.3", "pretty-hrtime": "^1.0.3", "rollup": "^4.44.0", "vitest": "^3.2.4" + }, + "dependencies": { + "is-any-array": "^3.0.0", + "ml-array-rescale": "^2.0.0" } }