Repository navigation
[deps] update expression-engine dependencies while retaining Math.js … - #37
Merged
mwasiluk merged 1 commit intoNov 4, 2026
Merged
Conversation
…9.5.0 Locked versions within the existing ranges: @babel/runtime 7.29.10 (Math.js; regenerator-runtime 0.13.9 dropped), lodash 4.18.1 and loglevel 1.9.2 (sd-utils), Rollup 4.67.5 and other development packages. package.json is unchanged. Math.js 9.5.0 and its numeric dependencies (complex.js, decimal.js, fraction.js, typed-function) keep their locked versions. The Babel 6 plugins stay because the browserify.transform of sd-utils 0.1.15 names them. release-it 14.14.3 is the last 14.x release.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dependency update for the expression engine without changing Math.js or expression semantics. Base:
modernizeatd00e0e9(B merged).package.jsonis unchanged; onlypackage-lock.json,README.mdandCHANGELOG.mdchange.dist/is not rebuilt (release task).Math.js stays at exactly 9.5.0. Its dependencies that define expression results keep their locked versions.
Version changes (lockfile)
@babel/runtimeregenerator-runtime(under@babel/runtime)@babel/runtime7.15 dependency@babel/runtime/helpers/regenerator*@rollup/rollup-*binaries)@napi-rs/lzma-linux-x64-gnurelease-itRuntime tree after the change:
[email protected](@babel/[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected]),[email protected],[email protected]([email protected],[email protected]).Not updated, with reasons
dist/complex.jsusesconst,dist/complex.min.jsuseslet. 2.3.0 is still ES5.test:buildreports this asinfo full consumer bundle is not ES5 ... [email protected]. It did so before this change as well.transform-class-properties,transform-object-assign,transform-builtin-extend). They must stay installed.browserify.transformfield of sd-utils 0.1.15 names them, in both the published version and itsmodernizebranch2a3af7c. The build, the Jasmine specs and consumers compile sd-utils with that field.npm run buildin the standalone bundle withCannot find package 'babel-plugin-transform-class-properties', raised while compiling sd-utils.@babel/preset-env+assumptions.setPublicClassFields). Changing only this package's field gives consumers nothing while sd-utils still needs the plugins, so the field is unchanged here.globrange (^10 … ^13), so theglobadvisory stays either way. No reason for a major.@rollup/plugin-node-resolve16.0.3: already the latest. Their advisories (glob 7, crypto-browserify/elliptic; deepmerge) have no fixed release in range.Audit (
npm audit, registry state 2026-11-04)--omit=dev)@babel/runtimemoderate)All remaining findings are development tooling, none ends up in a bundle:
node_modules/release-it/node_modules;@rollup/plugin-node-resolve(deepmerge).Contracts kept
main,index.js,standalone.index.js,src/*),browserify.transform, bundle formats and globals.dist/files, README and CHANGELOG differ.vmcontext. The standalone bundles defineSilverDecisionsandregeneratorRuntimebefore and after. The module bundles definerequire.Bundled modules (from the source maps): the same set except
@babel/runtime.regenerator-runtime/runtime.jsis gone and 11 helpers are added (toPrimitive,toPropertyKey,regenerator*,OverloadYield).dist/sd-expression-engine.jsdist/sd-expression-engine.min.jsdist/standalone/sd-expression-engine.jsdist/standalone/sd-expression-engine.min.jsVerification
Environment: Linux, Node 22.22.0 / npm 10.9.4 and Node 24.22.2 / npm 11.19.1. Every run used an isolated copy.
Base
d00e0e9(Node 22):npm teston the committed 0.1.17dist/and the sources: all five contract targets passed; Jasmine 11 specs, 0 failures.npm run test:build: all build checks passed.This branch
20a1b49:npm run test:buildon Node 22 and on Node 24: all build checks passed. This covers:npm ci, build without warnings, ES5, source maps;npm packinstalled into an empty browserify 17 + babelify 10 consumer with--no-package-lock, with contract tests on its bundle and on the installed dist;npm test(committed dist + sources): passed.npm pack --dry-run: 44 files, 5.7 MB.Math.random);asNumbertrue and false, plusvalidate;random()was excluded: it is seeded by its own entropy and differs between two runs of the same bundle.Unreleased sd-utils / sd-random (
modernize2a3af7c/96af2c9, fresh builds in isolated copies):sd-utils-0.1.15.tgzsha256eaf0a24b…97c5,sd-random-0.1.4.tgzsha256956927ef…4815.node scripts/check-build.js --sd-utils=<tgz> --sd-random=<tgz>: all build checks passed.package.jsonand the lockfile are not changed.Consumers. Tarballs were installed with
npm install --no-saveinto copies;package.json/package-lock.jsonwere checked unchanged.5bcba47(0.6.1,npm ci);2f77351(its lockfile is out of sync withpackage.jsonupstream, so the copy was installed withnpm installearlier; Babel fix of C not applied).d00e0e9;20a1b49, sha25601f3bf10…ff80;dist/sd-expression-engine.jswithimportScripts)sd-expression-engine/src) + Karmademo/index.htmlwith its job worker, seeded RNG; 13 saved diagrams opened, recomputed, saved and reopened; an edited diagram with code, a code error and its fix; tornado, spider, sensitivity analysis and probabilistic sensitivity analysis with sd-random distributions)Not run:
windows-smokejob runs on this PR).Found while testing, not changed here
modernize; not a dependency issue, so not fixed here).@rollup/plugin-tersersetstoplevel: trueforformat: 'cjs'.dist/sd-expression-engine.min.jstherefore starts withvar e,r,t;require=(…), and therequirewrapper keeps its cache and factories in those globals.sd-utils.min.js+sd-random.min.js+ this.min.jsgiver is not a function..jsfiles are not affected, and the known consumers load the plain files.terser({toplevel: false})for the cjs outputs in all four repositories, with a test that loads the.min.jsmodule bundles together.src$1/copy); the code is equivalent.Gamma(alpha > 1)throwsu is not defined. It is fixed on sd-randommodernize(checked with the D module bundle).🤖 Generated with Claude Code