UNPKG

jssm

Version:

A Javascript finite state machine (FSM) with a terse DSL and a simple API. Most FSMs are one-liners. Fast, easy, powerful, well tested, typed with TypeScript, and visualizations. MIT License.

263 lines (262 loc) 11.4 kB
{ "name": "jssm", "version": "5.120.0", "engines": { "node": ">=10.0.0" }, "publishConfig": { "access": "public" }, "bin": { "fsl": "./dist/cli/fsl.cjs", "jssm": "./dist/cli/fsl.cjs", "fsl-render": "./dist/cli/fsl-render.cjs" }, "exports": { ".": { "require": { "types": "./jssm.es5.d.cts", "default": "./dist/jssm.es5.cjs" }, "import": { "types": "./jssm.es6.d.ts", "default": "./dist/jssm.es6.mjs" }, "default": { "types": "./jssm.es5.d.cts", "default": "./dist/jssm.es5.cjs" }, "browser": "./dist/jssm.es5.iife.js" }, "./viz": { "require": { "types": "./jssm_viz.es5.d.cts", "default": "./dist/jssm_viz.cjs" }, "import": { "types": "./jssm_viz.es6.d.ts", "default": "./dist/jssm_viz.mjs" }, "browser": "./dist/jssm_viz.iife.cjs" }, "./cli": { "require": { "types": "./jssm.cli.d.cts", "default": "./dist/cli/lib.cjs" }, "import": { "types": "./jssm.cli.d.ts", "default": "./dist/cli/lib.mjs" } }, "./wc/viz": { "import": "./dist/wc/viz.js", "default": "./dist/wc/viz.js" }, "./wc/viz/define": { "import": "./dist/wc/viz.define.js", "default": "./dist/wc/viz.define.js" }, "./cdn/viz": "./dist/cdn/viz.js", "./custom-elements.json": "./custom-elements.json" }, "autoupdate": { "source": "git", "target": "git://github.com/StoneCypher/jssm.git", "fileMap": [ { "basePath": "/dist", "files": [ "jssm.es5.cjs" ] } ] }, "type": "module", "sideEffects": [ "./dist/wc/*.define.js", "./dist/cdn/**" ], "files": [ "dist/jssm.es5.cjs", "dist/jssm.es5.iife.js", "dist/jssm.es6.mjs", "dist/jssm_viz.cjs", "dist/jssm_viz.iife.cjs", "dist/jssm_viz.mjs", "dist/wc/viz.js", "dist/wc/viz.define.js", "dist/cdn/viz.js", "dist/deno/jssm.js", "dist/deno/*.d.ts", "dist/deno/README.md", "jssm.es5.d.cts", "jssm.es6.d.ts", "jssm_viz.es5.d.cts", "jssm_viz.es6.d.ts", "MIGRATING-jssm-viz.md", "custom-elements.json" ], "description": "A Javascript finite state machine (FSM) with a terse DSL and a simple API. Most FSMs are one-liners. Fast, easy, powerful, well tested, typed with TypeScript, and visualizations. MIT License.", "main": "dist/jssm.es5.cjs", "module": "dist/jssm.es6.mjs", "browser": "dist/jssm.es5.iife.js", "types": "./jssm.es5.d.cts", "scripts": { "jest-unicode-action": "jest unicode-actions.uspec.ts -c jest-unicode.config.cjs --color --verbose", "jest-unicode-string": "jest unicode-strings.uspec.ts -c jest-unicode.config.cjs --color --verbose", "jest-unicode-atom": "jest unicode-atoms.uspec.ts -c jest-unicode.config.cjs --color --verbose", "jest-unicode-string-label": "jest unicode-atoms.uspec.ts -c jest-unicode.config.cjs --color --verbose", "jest-unicode-atom-label": "jest unicode-atoms.uspec.ts -c jest-unicode.config.cjs --color --verbose", "jest-unicode-full-slow": "npm run jest-unicode-atom && npm run jest-unicode-string && npm run jest-unicode-atom-label && npm run jest-unicode-string-label && jest-unicode-action", "jest-stoch": "jest -c jest-stoch.config.cjs --color --verbose", "jest-dragon": "jest -c jest-dragon.config.cjs --color --verbose", "jest-spec": "jest -c jest-spec.config.cjs --color --verbose", "jest-cli": "jest -c jest-cli.config.cjs --color --verbose", "jest-wc": "jest -c jest-wc.config.cjs --color --verbose", "make_cli": "rollup -c rollup.config.cli.cjs.js && rollup -c rollup.config.cli.esm.js && rollup -c rollup.config.cli.dts.js", "min_cli": "terser dist/cli/fsl.cjs -o dist/cli/fsl.cjs --comments=/^#!/ && terser dist/cli/fsl-render.cjs -o dist/cli/fsl-render.cjs --comments=/^#!/ && terser dist/cli/lib.cjs -o dist/cli/lib.cjs && terser dist/cli/lib.mjs -o dist/cli/lib.mjs", "jest": "npm run jest-stoch && npm run jest-spec && npm run jest-cli && npm run jest-wc", "test": "npm run make && npm run jest", "clean": "rm -rf dist && rm -rf docs && cd coverage && rm -rf cloc && cd .. && rm -f src/ts/fsl_parser.ts && rm -f src/ts/version.ts && rm -f *.d.ts && mkdir dist && cd dist && mkdir wc && mkdir cdn && cd .. && mkdir docs && cd coverage && mkdir cloc && cd .. && rm -f ./src/tools/jssm.es5.iife.nonmin.js", "peg": "rm -f src/ts/fsl_parser.js && pegjs src/ts/fsl_parser.peg && node src/buildjs/fixparser.cjs", "build:cem": "custom-elements-manifest analyze --config custom-elements-manifest.config.mjs", "make_cjs": "rollup -c rollup.config.es5.js", "make_es6": "rollup -c rollup.config.es6.js", "make_iife": "rollup -c rollup.config.iife.js", "make_deno": "rollup -c rollup.config.deno.js && cp dist/es6/*.d.ts dist/deno", "make_viz_cjs": "rollup -c rollup.config.viz.es5.js", "make_viz_es6": "rollup -c rollup.config.viz.es6.js", "make_wc_viz_es6": "rollup -c rollup.config.wc.viz.es6.js", "make_wc_viz_cdn": "rollup -c rollup.config.wc.viz.cdn.js", "make_viz_iife": "rollup -c rollup.config.viz.iife.js", "typescript": "tsc --build tsconfig.json", "makever": "node src/buildjs/makever.cjs", "make": "npm run clean && npm run makever && npm run peg && npm run build:cem && npm run typescript && npm run make_iife && npm run make_es6 && npm run make_deno && npm run make_cjs && npm run make_viz_iife && npm run make_viz_es6 && npm run make_viz_cjs && npm run make_wc_viz_es6 && npm run make_wc_viz_cdn && npm run make_cli && npm run minify && npm run min_iife && npm run min_es6 && npm run min_cjs && npm run min_deno && npm run min_viz_iife && npm run min_viz_es6 && npm run min_viz_cjs && npm run min_cli && rm ./dist/es6/*.nonmin.js", "eslint": "eslint --color src/ts/jssm.ts src/ts/jssm_types.ts src/ts/tests/*.ts", "audit": "text_audit -r -t major MAJOR wasteful WASTEFUL any mixed fixme FIXME checkme CHECKME testme TESTME stochable STOCHABLE todo TODO comeback COMEBACK whargarbl WHARGARBL -g ./src/ts/**/*.{js,ts}", "vet": "npm run eslint && npm run audit", "benny": "node ./src/buildjs/benchmark.cjs", "ci_profile": "node ./src/buildjs/ci_profile.cjs", "build": "npm run vet && npm run test && npm run site && npm run make_cookbook && npm run site_fsl_tools && npm run changelog && npm run docs && npm run cloc && npm run readme", "clean_bench": "npm run test && npm run benny", "qbuild": "npm run test", "ci_build": "npm run vet && npm run test", "minify": "mv dist/es6/fsl_parser.js dist/es6/fsl_parser.nonmin.js && terser dist/es6/fsl_parser.nonmin.js > dist/es6/fsl_parser.js", "min_iife": "mv dist/jssm.es5.iife.js dist/jssm.es5.iife.nonmin.js && terser dist/jssm.es5.iife.nonmin.js > dist/jssm.es5.iife.js && cp dist/jssm.es5.iife.nonmin.js ./src/tools/", "min_cjs": "mv dist/jssm.es5.cjs.js dist/jssm.es5.nonmin.cjs && terser dist/jssm.es5.nonmin.cjs > dist/jssm.es5.cjs", "min_es6": "mv dist/jssm.es6.js dist/jssm.es6.nonmin.cjs && terser dist/jssm.es6.nonmin.cjs > dist/jssm.es6.mjs", "min_deno": "terser dist/deno/jssm.deno-esm.nonmin.js > dist/deno/jssm.js", "min_viz_iife": "mv dist/jssm_viz.es5.iife.js dist/jssm_viz.es5.iife.nonmin.cjs && terser dist/jssm_viz.es5.iife.nonmin.cjs > dist/jssm_viz.iife.cjs", "min_viz_cjs": "mv dist/jssm_viz.es5.cjs.js dist/jssm_viz.es5.nonmin.cjs && terser dist/jssm_viz.es5.nonmin.cjs > dist/jssm_viz.cjs", "min_viz_es6": "mv dist/jssm_viz.es6.js dist/jssm_viz.es6.nonmin.cjs && terser dist/jssm_viz.es6.nonmin.cjs > dist/jssm_viz.mjs", "site": "cp src/site/* docs/ && cp -r src/assets docs/assets/ && cp -r src/demo docs/ && cp dist/jssm.es5.iife.js docs/demo", "make_cookbook": "node src/fsl.tools/site/scripts/build.cjs", "site_fsl_tools": "cd docs && mkdir fsl.tools && cd .. && cp -r src/fsl.tools/site/* docs/fsl.tools/ && rm -rf docs/fsl.tools/recipes docs/fsl.tools/scripts", "docs": "typedoc src/ts/jssm.ts src/ts/jssm_viz.ts src/ts/jssm_types.ts src/ts/jssm_constants.ts src/ts/jssm_error.ts src/ts/jssm_util.ts src/ts/version.ts --options typedoc-options.cjs", "cloc": "cloc --quiet ./src/** --exclude-list-file=./.clocignore --3 --json --out=./coverage/cloc/report_wt.json && cloc --quiet ./src/** --exclude-list-file=./.clocignore --exclude-dir=tests --3 --json --out=./coverage/cloc/report_nt.json && node ./src/buildjs/cloc_report.cjs", "readme": "rm -f ./README.md && node ./src/buildjs/make_readme.cjs && cp README.md dist/deno", "changelog": "rm -f CHANGELOG.md && rm -f ./src/doc_md/CHANGELOG.md && better_git_changelog -b && cp CHANGELOG.* ./src/doc_md/" }, "repository": { "type": "git", "url": "git+https://github.com/StoneCypher/jssm.git" }, "keywords": [ "finite", "state", "state machine", "state-machine", "machine", "finite-state-machine", "finite state machine", "fsm", "fsm-library", "js", "javascript", "javascript-library", "mit-license", "tested", "typed", "typed-js", "mealy", "moore", "mealy machine", "moore machine", "mealy-machine", "moore-machine", "graphviz", "viz.js", "fsl", "finite-state-language", "flowchart", "visualization", "TypeScript", "StoneCypher" ], "author": "John Haugeland <stonecypher@gmail.com>", "license": "MIT", "bugs": { "url": "https://github.com/StoneCypher/jssm/issues" }, "homepage": "https://stonecypher.github.io/jssm/", "devDependencies": { "@custom-elements-manifest/analyzer": "^0.10.4", "@knodes/typedoc-plugin-pages": "^0.22.5", "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-replace": "^6.0.1", "@rollup/plugin-typescript": "^12.3.0", "@swc/core": "^1.15.33", "@swc/jest": "^0.2.39", "@types/chalk": "^2.2.0", "@types/jest": "^29.5.12", "@types/jsdom": "^21.1.7", "@typescript-eslint/eslint-plugin": "^5.30.4", "@typescript-eslint/parser": "^5.30.4", "@viz-js/viz": "^3.26.0", "benny": "^3.7.1", "cloc": "^2.10.0", "eslint": "^7.32.0", "eslint-plugin-fp": "^2.3.0", "eslint-plugin-new-with-error": "^2.0.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-react": "^7.26.1", "eslint-plugin-unicorn": "^37.0.1", "fast-check": "^2.12.0", "glob": "^7.1.6", "jest": "^29.7.0", "jest-environment-jsdom": "^30.3.0", "jest-json-reporter2": "^1.1.0", "jsdom": "^24.1.0", "lit": "^3.2.1", "pegjs": "^0.10.0", "picocolors": "^1.0.0", "rollup": "^4.24.0", "rollup-plugin-dts": "^6.1.1", "semver": "^7.5.4", "terser": "^5.14.2", "text_audit": "^0.9.3", "tslib": "^2.8.1", "twitter-api-client": "^1.6.0", "typedoc": "^0.22.18", "typedoc-plugin-missing-exports": "^0.23.0", "typescript": "^4.7.4", "xml2js": "^0.6.2" }, "dependencies": { "better_git_changelog": "^1.6.1", "circular_buffer_js": "^1.10.0", "reduce-to-639-1": "^1.1.0" }, "peerDependencies": { "lit": ">=3" }, "peerDependenciesMeta": { "lit": { "optional": true } }, "optionalDependencies": { "@resvg/resvg-wasm": "^2.6.0", "@viz-js/viz": "^3.26.0" } }