Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ jobs:
- name: Build MathJax
run: |
./components/bin/version
pnpm -s link:src
pnpm -s build-all
pnpm --silent link:src
pnpm --silent build-all

- name: Publish to npmjs
run: pnpm publish --provenance --no-git-checks
20 changes: 10 additions & 10 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
- name: Checkout
uses: actions/checkout@v5

- uses: pnpm/action-setup@v5
- uses: pnpm/action-setup@v6
name: Install pnpm
with:
version: 10
version: 11
run_install: false

- name: Install Node.js
Expand All @@ -31,24 +31,24 @@ jobs:
- name: Install packages
run: |
pnpm -r i
pnpm -s link:src
pnpm --silent link:src

- name: Compile MathJax
run: |
pnpm -s mjs:compile
pnpm -s copy:assets mjs
pnpm --silent mjs:compile
pnpm --silent copy:assets mjs
components/bin/makeAll --mjs --terse --build --copy components/mjs
pnpm -s cjs:compile
pnpm -s cjs:components:src:build
pnpm -s copy:assets cjs
pnpm --silent cjs:compile
pnpm --silent cjs:components:src:build
pnpm --silent copy:assets cjs
components/bin/makeAll --cjs --terse --build --copy components/cjs
pnpm -s copy:pkg cjs
pnpm --silent copy:pkg cjs

- name: Build tests
run: pnpm tsc -p testsuite/tsconfig.json

- name: Run tests
run: pnpm -s test:gh
run: pnpm --silent test:gh

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v6
Expand Down
104 changes: 52 additions & 52 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,76 +76,76 @@
"format": "check() { prettier --check ${1:-\"ts/**/*.{ts,tsx}\"}; }; check",
"format:fix": "fix() { prettier --write ${1:-\"ts/**/*.{ts,tsx}\"}; }; fix",
"=============================================================================== clean": "",
"clean:dir": "clean() { pnpm -s log:single \"Cleaning $1 directory\"; pnpm rimraf $1; }; clean",
"clean:lib": "clean() { pnpm -s log:single \"Cleaning $1 component libs\"; pnpm rimraf -g components/$1'/**/lib'; }; clean",
"clean:mod": "clean() { pnpm -s log:comp \"Cleaning $1 module\"; pnpm -s clean:dir $1 && pnpm -s clean:lib $1; }; clean",
"clean:dir": "clean() { pnpm --silent log:single \"Cleaning $1 directory\"; pnpm rimraf $1; }; clean",
"clean:lib": "clean() { pnpm --silent log:single \"Cleaning $1 component libs\"; pnpm rimraf -g components/$1'/**/lib'; }; clean",
"clean:mod": "clean() { pnpm --silent log:comp \"Cleaning $1 module\"; pnpm --silent clean:dir $1 && pnpm --silent clean:lib $1; }; clean",
"=============================================================================== copy": "",
"copy:assets": "pnpm -s log:comp 'Copying assets'; copy() { for name in locales mj2 mml3 html; do pnpm -s copy:$name ${1:-mjs}; done; }; copy",
"copy:assets": "pnpm --silent log:comp 'Copying assets'; copy() { for name in locales mj2 mml3 html; do pnpm --silent copy:$name ${1:-mjs}; done; }; copy",
"copy:bundle": "copy() { components/bin/makeAll --copy --terse components/mjs/${1:-}; }; copy",
"copy:html": "copy() { pnpm -s log:single 'Copying sre auxiliary files'; pnpm copyfiles -u 1 'ts/a11y/sre/*.html' 'ts/a11y/sre/require.*' $1; }; copy",
"copy:locales": "copy() { for name in core tex mml menu util a11y adaptors; do pnpm -s copy:locales:$name ${1:-mjs}; done; }; copy ",
"copy:locales:a11y": "pnpm -s log:single 'Copying a11y locales'; copy() { pnpm copyfiles -u 1 'ts/a11y/*/__locales__/*.json' $1; }; copy",
"copy:locales:adaptors": "pnpm -s log:single 'Copying DOMAdaptor locales'; copy() { pnpm copyfiles -u 1 'ts/adaptors/*/__locales__/*.json' $1; }; copy",
"copy:locales:core": "pnpm -s log:single 'Copying core locales'; copy() { pnpm copyfiles -u 1 'ts/core/__locales__/*.json' $1; }; copy",
"copy:locales:menu": "pnpm -s log:single 'Copying menu locales'; copy() { pnpm copyfiles -u 1 'ts/ui/menu/__locales__/*.json' $1; }; copy",
"copy:locales:mml": "pnpm -s log:single 'Copying MathML locales'; copy() { pnpm copyfiles -u 1 'ts/input/mathml/__locales__/*.json' $1; }; copy",
"copy:locales:util": "pnpm -s log:single 'Copying utility locales'; copy() { pnpm copyfiles -u 1 'ts/util/*/__locales__/*.json' $1; }; copy",
"copy:locales:tex": "pnpm -s log:single 'Copying TeX locales'; copy() { pnpm copyfiles -u 1 'ts/input/tex/__locales__/*.json' $1 && pnpm copyfiles -u 3 'ts/input/tex/*/__locales__/*.json' $1/input/tex; }; copy",
"copy:mj2": "copy() { pnpm -s log:single 'Copying legacy code AsciiMath'; pnpm copyfiles -u 1 'ts/input/asciimath/legacy/**/*' $1; }; copy",
"copy:mml3": "copy() { pnpm -s log:single 'Copying MathML3 extension json'; pnpm copyfiles -u 1 ts/input/mathml/mml3/mml3.sef.json $1; }; copy",
"copy:pkg": "copy() { pnpm -s log:single \"Copying package.json to $1\"; pnpm copyfiles -u 2 components/bin/package.json $1; }; copy",
"copy:html": "copy() { pnpm --silent log:single 'Copying sre auxiliary files'; pnpm copyfiles -u 1 'ts/a11y/sre/*.html' 'ts/a11y/sre/require.*' $1; }; copy",
"copy:locales": "copy() { for name in core tex mml menu util a11y adaptors; do pnpm --silent copy:locales:$name ${1:-mjs}; done; }; copy ",
"copy:locales:a11y": "pnpm --silent log:single 'Copying a11y locales'; copy() { pnpm copyfiles -u 1 'ts/a11y/*/__locales__/*.json' $1; }; copy",
"copy:locales:adaptors": "pnpm --silent log:single 'Copying DOMAdaptor locales'; copy() { pnpm copyfiles -u 1 'ts/adaptors/*/__locales__/*.json' $1; }; copy",
"copy:locales:core": "pnpm --silent log:single 'Copying core locales'; copy() { pnpm copyfiles -u 1 'ts/core/__locales__/*.json' $1; }; copy",
"copy:locales:menu": "pnpm --silent log:single 'Copying menu locales'; copy() { pnpm copyfiles -u 1 'ts/ui/menu/__locales__/*.json' $1; }; copy",
"copy:locales:mml": "pnpm --silent log:single 'Copying MathML locales'; copy() { pnpm copyfiles -u 1 'ts/input/mathml/__locales__/*.json' $1; }; copy",
"copy:locales:util": "pnpm --silent log:single 'Copying utility locales'; copy() { pnpm copyfiles -u 1 'ts/util/*/__locales__/*.json' $1; }; copy",
"copy:locales:tex": "pnpm --silent log:single 'Copying TeX locales'; copy() { pnpm copyfiles -u 1 'ts/input/tex/__locales__/*.json' $1 && pnpm copyfiles -u 3 'ts/input/tex/*/__locales__/*.json' $1/input/tex; }; copy",
"copy:mj2": "copy() { pnpm --silent log:single 'Copying legacy code AsciiMath'; pnpm copyfiles -u 1 'ts/input/asciimath/legacy/**/*' $1; }; copy",
"copy:mml3": "copy() { pnpm --silent log:single 'Copying MathML3 extension json'; pnpm copyfiles -u 1 ts/input/mathml/mml3/mml3.sef.json $1; }; copy",
"copy:pkg": "copy() { pnpm --silent log:single \"Copying package.json to $1\"; pnpm copyfiles -u 2 components/bin/package.json $1; }; copy",
"=============================================================================== log": "",
"log:comp": "log() { echo \u001b[32m$1\u001b[0m; }; log",
"log:header": "log() { echo '\u001b[1m============='; echo $1; echo '=============\u001b[0m'; }; log",
"log:single": "log() { echo \u001b[94m--$1\u001b[0m; }; log",
"=============================================================================== cjs": "",
"cjs:build": "pnpm -s log:header 'Building cjs'; pnpm -s cjs:src:build && pnpm -s cjs:components:build",
"cjs:bundle:clean": "pnpm -s clean:dir bundle-cjs",
"cjs:bundle:finalize": "pnpm -s log:single 'Finalize cjs bundle'; echo '{\n \"type\": \"commonjs\"\n}' > bundle-cjs/package.json;",
"cjs:compile": "pnpm -s cjs:copy:components && pnpm -s cjs:copy:ts && pnpm -s cjs:compile:tsc",
"cjs:compile:tsc": "pnpm -s log:single 'Compiling cjs typescript files' && pnpm tsc --project tsconfig/worker-cjs.json && pnpm tsc --project tsconfig/cjs.json",
"cjs:components:build": "pnpm -s log:comp 'Building cjs components'; pnpm -s cjs:components:src:build && pnpm -s clean:dir bundle-cjs && pnpm -s cjs:components:make --build",
"cjs:components:clean": "pnpm -s log:single \"Cleaning cjs components\"; pnpm rimraf components/cjs",
"cjs:components:compile": "pnpm -s log:single 'Compiling component files'; pnpm tsc --project tsconfig/components.json",
"cjs:build": "pnpm --silent log:header 'Building cjs'; pnpm --silent cjs:src:build && pnpm --silent cjs:components:build",
"cjs:bundle:clean": "pnpm --silent clean:dir bundle-cjs",
"cjs:bundle:finalize": "pnpm --silent log:single 'Finalize cjs bundle'; echo '{\n \"type\": \"commonjs\"\n}' > bundle-cjs/package.json;",
"cjs:compile": "pnpm --silent cjs:copy:components && pnpm --silent cjs:copy:ts && pnpm --silent cjs:compile:tsc",
"cjs:compile:tsc": "pnpm --silent log:single 'Compiling cjs typescript files' && pnpm tsc --project tsconfig/worker-cjs.json && pnpm tsc --project tsconfig/cjs.json",
"cjs:components:build": "pnpm --silent log:comp 'Building cjs components'; pnpm --silent cjs:components:src:build && pnpm --silent clean:dir bundle-cjs && pnpm --silent cjs:components:make --build",
"cjs:components:clean": "pnpm --silent log:single \"Cleaning cjs components\"; pnpm rimraf components/cjs",
"cjs:components:compile": "pnpm --silent log:single 'Compiling component files'; pnpm tsc --project tsconfig/components.json",
"cjs:components:copy": "pnpm copyfiles -u 2 -e 'components/mjs/**/*.js' 'components/mjs/**/*' components/cjs",
"cjs:components:finalize": "pnpm -s log:comp 'Finalize cjs components'; pnpm -s cjs:components:copy && pnpm -s copy:pkg components/cjs && pnpm -s clean:lib cjs",
"cjs:components:make": "make() { pnpm -s log:single 'Making cjs components'; node components/bin/makeAll --cjs --terse --bundle-cjs $1 $2 $3 components/cjs; }; make",
"cjs:components:src:build": "pnpm -s log:comp 'Building cjs components sources'; pnpm -s cjs:components:clean && pnpm -s cjs:components:compile && pnpm -s cjs:components:finalize",
"cjs:src:build": "pnpm -s log:comp 'Building cjs sources'; pnpm -s link:src && pnpm -s clean:dir cjs && pnpm -s cjs:compile && pnpm -s copy:assets cjs && pnpm -s copy:pkg cjs",
"cjs:copy:components": "pnpm -s log:single 'Moving cjs files from components' && pnpm copyfiles -u 2 'components/mjs/**/*.cjs' 'components/mjs/**/*.d.cts' components/cjs",
"cjs:copy:ts": "pnpm -s log:single 'Moving cjs files from ts' && pnpm copyfiles -u 1 'ts/**/*.cjs' cjs",
"cjs:components:finalize": "pnpm --silent log:comp 'Finalize cjs components'; pnpm --silent cjs:components:copy && pnpm --silent copy:pkg components/cjs && pnpm --silent clean:lib cjs",
"cjs:components:make": "make() { pnpm --silent log:single 'Making cjs components'; node components/bin/makeAll --cjs --terse --bundle-cjs $1 $2 $3 components/cjs; }; make",
"cjs:components:src:build": "pnpm --silent log:comp 'Building cjs components sources'; pnpm --silent cjs:components:clean && pnpm --silent cjs:components:compile && pnpm --silent cjs:components:finalize",
"cjs:src:build": "pnpm --silent log:comp 'Building cjs sources'; pnpm --silent link:src && pnpm --silent clean:dir cjs && pnpm --silent cjs:compile && pnpm --silent copy:assets cjs && pnpm --silent copy:pkg cjs",
"cjs:copy:components": "pnpm --silent log:single 'Moving cjs files from components' && pnpm copyfiles -u 2 'components/mjs/**/*.cjs' 'components/mjs/**/*.d.cts' components/cjs",
"cjs:copy:ts": "pnpm --silent log:single 'Moving cjs files from ts' && pnpm copyfiles -u 1 'ts/**/*.cjs' cjs",
"=============================================================================== mjs": "",
"mjs:build": "pnpm -s log:header 'Building mjs'; pnpm -s mjs:src:build && pnpm -s mjs:components:build",
"mjs:bundle:finalize": "pnpm -s log:single 'Finalize mjs bundle'; echo '{\n \"type\": \"commonjs\"\n}' > bundle/package.json;",
"mjs:compile": "pnpm -s log:single 'Compiling mjs typescript files'; pnpm tsc --project tsconfig/mjs.json && pnpm tsc --project tsconfig/worker.json",
"mjs:components:build": "build() { pnpm -s log:comp 'Compiling mjs component files'; pnpm -s clean:lib mjs && pnpm -s clean:dir bundle && pnpm -s mjs:components:make $1 && pnpm -s mjs:bundle:finalize; }; build",
"mjs:components:make": "make() { pnpm -s log:single 'Making mjs components'; node components/bin/makeAll --mjs --terse --locale ${1:-en} components/mjs; }; make",
"mjs:src:build": "pnpm -s log:comp 'Building mjs sources'; pnpm -s link:src && pnpm -s clean:dir mjs && pnpm -s mjs:compile && pnpm -s copy:assets mjs",
"mjs:build": "pnpm --silent log:header 'Building mjs'; pnpm --silent mjs:src:build && pnpm --silent mjs:components:build",
"mjs:bundle:finalize": "pnpm --silent log:single 'Finalize mjs bundle'; echo '{\n \"type\": \"commonjs\"\n}' > bundle/package.json;",
"mjs:compile": "pnpm --silent log:single 'Compiling mjs typescript files'; pnpm tsc --project tsconfig/mjs.json && pnpm tsc --project tsconfig/worker.json",
"mjs:components:build": "build() { pnpm --silent log:comp 'Compiling mjs component files'; pnpm --silent clean:lib mjs && pnpm --silent clean:dir bundle && pnpm --silent mjs:components:make $1 && pnpm --silent mjs:bundle:finalize; }; build",
"mjs:components:make": "make() { pnpm --silent log:single 'Making mjs components'; node components/bin/makeAll --mjs --terse --locale ${1:-en} components/mjs; }; make",
"mjs:src:build": "pnpm --silent log:comp 'Building mjs sources'; pnpm --silent link:src && pnpm --silent clean:dir mjs && pnpm --silent mjs:compile && pnpm --silent copy:assets mjs",
"=============================================================================== mml3": "",
"mml3:make:xslt": "pnpm xslt3 -t -xsl:/tmp/mml3.xsl -export:ts/input/mathml/mml3/mml3.sef.json -nogo",
"mml3:post:xslt": "pnpm rimraf /tmp/mml3.xsl",
"mml3:pre:xslt": "grep '^\\s*\\(<\\|or\\|xmlns\\|excl\\|\">\\)' ts/input/mathml/mml3/mml3.ts > /tmp/mml3.xsl",
"mml3-xslt": "pnpm -s mml3:pre:xslt && pnpm -s mml3:make:xslt && pnpm -s mml3:post:xslt",
"mml3-xslt": "pnpm --silent mml3:pre:xslt && pnpm --silent mml3:make:xslt && pnpm --silent mml3:post:xslt",
"=============================================================================== misc": "",
"lab:sre": "pnpm -s log:single 'Making lab/sre'; node components/bin/makeAll --terse lab/build",
"link:src": "pnpm -s log:single 'Setting symbolic link'; node components/bin/link-full",
"lab:sre": "pnpm --silent log:single 'Making lab/sre'; node components/bin/makeAll --terse lab/build",
"link:src": "pnpm --silent log:single 'Setting symbolic link'; node components/bin/link-full",
"use-cjs": "echo '{\n \"extends\": \"./tsconfig/cjs.json\"\n}' > tsconfig.json",
"use-mjs": "echo '{\n \"extends\": \"./tsconfig/mjs.json\"\n}' > tsconfig.json",
"=============================================================================== aliases": "",
"test": "cd testsuite && pnpm -s test --verbose",
"test:gh": "cd testsuite && pnpm -s test --silent",
"clean": "pnpm -s clean:mod cjs && pnpm -s cjs:bundle:clean && pnpm -s clean:mod mjs && pnpm -s clean:dir bundle",
"compile-cjs": "pnpm -s cjs:compile",
"compile-mjs": "pnpm -s mjs:compile",
"build-cjs": "pnpm -s cjs:build",
"build-mjs": "pnpm -s mjs:build",
"make-cjs-components": "make() { pnpm -s cjs:components:make $1 $2 && pnpm -s cjs:bundle:finalize; }; make",
"make-mjs-components": "pnpm -s mjs:components:make",
"test": "cd testsuite && pnpm --silent test --verbose",
"test:gh": "cd testsuite && pnpm --silent test --silent",
"clean": "pnpm --silent clean:mod cjs && pnpm --silent cjs:bundle:clean && pnpm --silent clean:mod mjs && pnpm --silent clean:dir bundle",
"compile-cjs": "pnpm --silent cjs:compile",
"compile-mjs": "pnpm --silent mjs:compile",
"build-cjs": "pnpm --silent cjs:build",
"build-mjs": "pnpm --silent mjs:build",
"make-cjs-components": "make() { pnpm --silent cjs:components:make $1 $2 && pnpm --silent cjs:bundle:finalize; }; make",
"make-mjs-components": "pnpm --silent mjs:components:make",
"make-one": "make() { node components/bin/makeAll --no-subdirs $3 $4 $5 --${2:-mjs} components/${2:-mjs}/$1; }; make",
"make-components": "pnpm -s make-mjs-components",
"compile": "pnpm -s compile-mjs",
"build": "pnpm -s build-mjs",
"build-all": "build() { pnpm -s build-mjs $1; echo ; pnpm -s build-cjs $1; }; build"
"make-components": "pnpm --silent make-mjs-components",
"compile": "pnpm --silent compile-mjs",
"build": "pnpm --silent build-mjs",
"build-all": "build() { pnpm --silent build-mjs $1; echo ; pnpm --silent build-cjs $1; }; build"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
Expand Down