diff --git a/package.json b/package.json index 5dc4f53f0..62d966c8b 100644 --- a/package.json +++ b/package.json @@ -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 --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", + "clean:dir": "clean() { node --run log:single -- \"Cleaning $1 directory\"; npx rimraf $1; }; clean", + "clean:lib": "clean() { node --run log:single -- \"Cleaning $1 component libs\"; npx rimraf -g components/$1'/**/lib'; }; clean", + "clean:mod": "clean() { node --run log:comp -- \"Cleaning $1 module\"; node --run clean:dir -- $1 && node --run clean:lib -- $1; }; clean", "=============================================================================== 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:assets": "node --run log:comp -- 'Copying assets'; copy() { for name in locales mj2 mml3 html; do node --run copy:$name -- ${1:-mjs}; done; }; copy", "copy:bundle": "copy() { components/bin/makeAll --copy --terse components/mjs/${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", + "copy:html": "copy() { node --run log:single -- 'Copying sre auxiliary files'; npx 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 node --run copy:locales:$name -- ${1:-mjs}; done; }; copy ", + "copy:locales:a11y": "node --run log:single -- 'Copying a11y locales'; copy() { npx copyfiles -u 1 'ts/a11y/*/__locales__/*.json' $1; }; copy", + "copy:locales:adaptors": "node --run log:single -- 'Copying DOMAdaptor locales'; copy() { npx copyfiles -u 1 'ts/adaptors/*/__locales__/*.json' $1; }; copy", + "copy:locales:core": "node --run log:single -- 'Copying core locales'; copy() { npx copyfiles -u 1 'ts/core/__locales__/*.json' $1; }; copy", + "copy:locales:menu": "node --run log:single -- 'Copying menu locales'; copy() { npx copyfiles -u 1 'ts/ui/menu/__locales__/*.json' $1; }; copy", + "copy:locales:mml": "node --run log:single -- 'Copying MathML locales'; copy() { npx copyfiles -u 1 'ts/input/mathml/__locales__/*.json' $1; }; copy", + "copy:locales:util": "node --run log:single -- 'Copying utility locales'; copy() { npx copyfiles -u 1 'ts/util/*/__locales__/*.json' $1; }; copy", + "copy:locales:tex": "node --run log:single -- 'Copying TeX locales'; copy() { npx copyfiles -u 1 'ts/input/tex/__locales__/*.json' $1 && npx copyfiles -u 3 'ts/input/tex/*/__locales__/*.json' $1/input/tex; }; copy", + "copy:mj2": "copy() { node --run log:single -- 'Copying legacy code AsciiMath'; npx copyfiles -u 1 'ts/input/asciimath/legacy/**/*' $1; }; copy", + "copy:mml3": "copy() { node --run log:single -- 'Copying MathML3 extension json'; npx copyfiles -u 1 ts/input/mathml/mml3/mml3.sef.json $1; }; copy", + "copy:pkg": "copy() { node --run log:single -- \"Copying package.json to $1\"; npx 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 --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 --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", + "cjs:build": "node --run log:header -- 'Building cjs'; node --run cjs:src:build && node --run cjs:components:build", + "cjs:bundle:clean": "node --run clean:dir -- bundle-cjs", + "cjs:bundle:finalize": "node --run log:single -- 'Finalize cjs bundle'; echo '{\n \"type\": \"commonjs\"\n}' > bundle-cjs/package.json;", + "cjs:compile": "node --run cjs:copy:components && node --run cjs:copy:ts && node --run cjs:compile:tsc", + "cjs:compile:tsc": "node --run log:single -- 'Compiling cjs typescript files' && npx tsc --project tsconfig/worker-cjs.json && npx tsc --project tsconfig/cjs.json", + "cjs:components:build": "node --run log:comp -- 'Building cjs components'; node --run cjs:components:src:build && node --run clean:dir -- bundle-cjs && node --run cjs:components:make -- --build", + "cjs:components:clean": "node --run log:single -- \"Cleaning cjs components\"; npx rimraf components/cjs", + "cjs:components:compile": "node --run log:single -- 'Compiling component files'; npx tsc --project tsconfig/components.json", + "cjs:components:copy": "npx copyfiles -u 2 -e 'components/mjs/**/*.js' 'components/mjs/**/*' components/cjs", + "cjs:components:finalize": "node --run log:comp -- 'Finalize cjs components'; node --run cjs:components:copy && node --run copy:pkg -- components/cjs && node --run clean:lib -- cjs", + "cjs:components:make": "make() { node --run log:single -- 'Making cjs components'; node components/bin/makeAll --cjs --terse --bundle-cjs $1 $2 $3 components/cjs; }; make", + "cjs:components:src:build": "node --run log:comp -- 'Building cjs components sources'; node --run cjs:components:clean && node --run cjs:components:compile && node --run cjs:components:finalize", + "cjs:src:build": "node --run log:comp -- 'Building cjs sources'; node --run link:src && node --run clean:dir -- cjs && node --run cjs:compile && node --run copy:assets -- cjs && node --run copy:pkg -- cjs", + "cjs:copy:components": "node --run log:single -- 'Moving cjs files from components' && npx copyfiles -u 2 'components/mjs/**/*.cjs' 'components/mjs/**/*.d.cts' components/cjs", + "cjs:copy:ts": "node --run log:single -- 'Moving cjs files from ts' && npx copyfiles -u 1 'ts/**/*.cjs' cjs", "=============================================================================== 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", + "mjs:build": "node --run log:header -- 'Building mjs'; node --run mjs:src:build && node --run mjs:components:build", + "mjs:bundle:finalize": "node --run log:single -- 'Finalize mjs bundle'; echo '{\n \"type\": \"commonjs\"\n}' > bundle/package.json;", + "mjs:compile": "node --run log:single -- 'Compiling mjs typescript files'; npx tsc --project tsconfig/mjs.json && npx tsc --project tsconfig/worker.json", + "mjs:components:build": "build() { node --run log:comp -- 'Compiling mjs component files'; node --run clean:lib -- mjs && node --run clean:dir -- bundle && node --run mjs:components:make -- $1 && node --run mjs:bundle:finalize; }; build", + "mjs:components:make": "make() { node --run log:single -- 'Making mjs components'; node components/bin/makeAll --mjs --terse --locale ${1:-en} components/mjs; }; make", + "mjs:src:build": "node --run log:comp -- 'Building mjs sources'; node --run link:src && node --run clean:dir -- mjs && node --run mjs:compile && node --run 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:make:xslt": "node --run xslt3 -- -t -xsl:/tmp/mml3.xsl -export:ts/input/mathml/mml3/mml3.sef.json -nogo", + "mml3:post:xslt": "npx rimraf /tmp/mml3.xsl", "mml3:pre:xslt": "grep '^\\s*\\(<\\|or\\|xmlns\\|excl\\|\">\\)' ts/input/mathml/mml3/mml3.ts > /tmp/mml3.xsl", - "mml3-xslt": "pnpm --silent mml3:pre:xslt && pnpm --silent mml3:make:xslt && pnpm --silent mml3:post:xslt", + "mml3-xslt": "node --run mml3:pre:xslt && node --run mml3:make:xslt && node --run mml3:post:xslt", "=============================================================================== misc": "", - "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", + "lab:sre": "node --run log:single -- 'Making lab/sre'; node components/bin/makeAll --terse lab/build", + "link:src": "node --run 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 --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", + "test": "cd testsuite && node --run test -- --verbose", + "test:gh": "cd testsuite && node --run test -- --silent", + "clean": "node --run clean:mod -- cjs && node --run cjs:bundle:clean && node --run clean:mod -- mjs && node --run clean:dir -- bundle", + "compile-cjs": "node --run cjs:compile", + "compile-mjs": "node --run mjs:compile", + "build-cjs": "node --run cjs:build", + "build-mjs": "node --run mjs:build", + "make-cjs-components": "make() { node --run cjs:components:make -- $1 $2 && node --run cjs:bundle:finalize; }; make", + "make-mjs-components": "node --run 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 --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" + "make-components": "node --run make-mjs-components", + "compile": "node --run compile-mjs", + "build": "node --run build-mjs", + "build-all": "build() { node --run build-mjs -- $1; echo ; node --run build-cjs -- $1; }; build" }, "devDependencies": { "@eslint/js": "^10.0.1",