{"_id":"@mathscan/math-exercise-engine","_rev":"42-15d1ebfd73fed5402047908df646e949","name":"@mathscan/math-exercise-engine","dist-tags":{"latest":"1.2.5"},"versions":{"1.0.0":{"name":"@mathscan/math-exercise-engine","version":"1.0.0","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.0","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"46cd1895f3bc8ce00c7fb75115027b20cdec7f6b","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.0.tgz","fileCount":8,"integrity":"sha512-ZNouUp5bKU95ml1NOBPmY7qA1j3cb0FKq3mcq1V5Ch0DLT3m9X3cgxp7qC8NPMJc6sZOv2uYOWujIP4QqJCakg==","signatures":[{"sig":"MEYCIQD8+G5XCLuj2Hj/HY1yFLsAfvbnUDo8MbN55DX4pqCVzAIhAMzKXHyBKOkL4DZk6TJLVFdjMQu85+cZ2aYaWa5fRMsg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6250182},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"2e481f3238d3da36bdc4ebeef22493df1f75971c","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","react":"^18.2.0","eslint":"^8.56.0","vitest":"^1.2.0","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^18.2.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.0_1768578264036_0.12076765252144561","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@mathscan/math-exercise-engine","version":"1.0.1","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.1","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"dd3224cb435435a4e33ad52d8c974c308b6d6845","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.1.tgz","fileCount":8,"integrity":"sha512-bdJNtBwgibp1PsNJOxkt0iMkgzv2ZaITBzv2mAM+0DRH8nxbjemy524GuqBf8zY9CK+eNnmxYU3vZ822C0BYSA==","signatures":[{"sig":"MEYCIQD1TryJpWeYb16h82JywBlLPcs2wzdO2ncC8SVJoxPSEAIhAM28F3dnniecYSF7HwxCE9YugRlVZrmJlS2UvfJ2jxSK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6254355},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"c40bc353e4c65b6265e076c24fa8a9b34e4d34a4","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","react":"^18.2.0","eslint":"^8.56.0","vitest":"^1.2.0","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^18.2.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.1_1768580514075_0.3391216756713058","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@mathscan/math-exercise-engine","version":"1.0.2","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.2","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"c88a1290823b8ed1fab696e2f05b26892e9a6434","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.2.tgz","fileCount":8,"integrity":"sha512-KSME/gOcpcwDL0Rzfi7lmmdsLov9slr9QEzkI01NQwzl1Qi8HNjYWVXuNa5vl64qZ5bTVl4qv/ZBAcnZEUCUiw==","signatures":[{"sig":"MEUCIDCQBOj3m04dr5Jn03wVfo/VOAmnVWd79wFVvM9/YNIEAiEAkl/PBX7fU1Q55hXwrbiasgwPNHlfTDHeANyQnLGfBX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6252869},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"5a4085ab777a4e9a775fd6b4aca151384fe437b4","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^18.2.0","@vitest/coverage-v8":"^4.0.17","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.2_1769009267112_0.4212617697188308","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@mathscan/math-exercise-engine","version":"1.0.3","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.3","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"a0fbf55820060f6df6925ca4a0b5c3061760cb18","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.3.tgz","fileCount":8,"integrity":"sha512-gLAT+PhkqV8uHqgpemQ5OvQNXfAUjgQSpDf2R2GIjinhJyOXH1V5pCQNfGHRrDw0PX5/3Z3XBcuJTrq8++EjlA==","signatures":[{"sig":"MEQCIF3B4Vblse/uyjdkOY+5JE1t0BpgLgejKNBw9toMI4KDAiA3X20L7wzVJdL/u22+n+kSlaxmYVQea7mTN+iwzdPMgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6344433},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"31e5e133fd900ed12fba63697c3aad49b67a8bdf","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^18.2.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^18.2.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^18.2.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.3_1770644613779_0.09619686069350508","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@mathscan/math-exercise-engine","version":"1.0.4","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.4","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"91fcfe78326c55cb59644d79abc36ade0dc74fb2","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.4.tgz","fileCount":8,"integrity":"sha512-es7JaFWTVgNyfOg2r2kiC9iH7So/aRetoc4GWgrp8yFs+vE/xQGBOrwvwNlkaIGskQPdwro2vwV9bM7dDkTIQA==","signatures":[{"sig":"MEQCIGIBrwC9DGsDHI5UcimhS7Us2b371cxHmaR4t3EdrewYAiAhH/GlRqmBMHFQE3fA5vf4nZAMvxCVA3TUWP3b+tmnDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14109247},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"ee9416dfdbf86bb86fbaff6bfad289b7d15836aa","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.4_1770818487152_0.9081914552181884","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@mathscan/math-exercise-engine","version":"1.0.5","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.5","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"9d9fff2ea29ee5c77085fad3d05d027845020f7e","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.5.tgz","fileCount":8,"integrity":"sha512-5p5teaBZvWKqAwf0I/sTn7U4XVvKTkM8s3mru7fGLhhQb1irq1RUCyCGPgi50PPZA/6D6s5d8Z5wbYWmVEpk5A==","signatures":[{"sig":"MEQCIAGbB7vW5aoK7bDL00V8IQswJJpp2jwjo8gJOaeKzbwiAiBFUiN1myH4T5H6M+venxwPZLw9Lp0Bf29ZbaazEiaEzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14152676},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"be592b35c537ceba3b0c81147708f5929d1106da","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.5_1771236853536_0.3131224244981796","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@mathscan/math-exercise-engine","version":"1.0.6","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.6","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"1b56772dd5dd311f8f172fe403b00a44eec81a16","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.6.tgz","fileCount":8,"integrity":"sha512-4gRG6JRyvRY5htgyjhW9h9aYmOzvAuMDVcg78LtjM0MuUTMGBFqDrZbPlGXGPPLOm+Jz9LGRjmsM7CN97f3rcQ==","signatures":[{"sig":"MEQCIEDRIfIWQuVXf1i3lfuGCK5giP3oV+W8GxFGuXoDyI/pAiA4uuFWwsbQ23Tz/kRNxGHKltT7xw8MFS3rRVE6GsaWLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14153108},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"4310d42a4f6432e97158403050b3a68be4add510","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.6_1771255564661_0.28051421597040727","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@mathscan/math-exercise-engine","version":"1.0.7","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.7","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"460a8858fa88811ab614a298cab52cdfc5056142","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.7.tgz","fileCount":8,"integrity":"sha512-dC1C9DVGyD58bEbXAiuyu/MM9hjh3QDcmQUySle2ytpBKzGfdHmlPk93TI+/JdYqfL3n1pCb+Ij5hvmU02WAdA==","signatures":[{"sig":"MEUCIE6sQWbWi5Fgr2SG5q8iwmFpThWeUUPYxmcCG1UZIqA/AiEAol1bsyNq+GXHspEeZ612MNQuRhy9+OwwpYH+NV80XgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14289939},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"025332f39c0a975bd15e8e0fff546a8e0e0c0918","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.7_1771516666917_0.8960760053415933","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@mathscan/math-exercise-engine","version":"1.0.8","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.8","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"c73574afa3d334108ac2d4f6ff28c0c75a68188f","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.8.tgz","fileCount":8,"integrity":"sha512-1O0skBKHGr1WdFvTNBnzSaT8XvSjJyymfXK21ff4OyTa+gpMFuPy+wKpSlxObN4ByubjD3KCa6KwSlBZO3E0YQ==","signatures":[{"sig":"MEYCIQCioDwKEOqrQiUyfoTpQn9FDZPc8HaUCsLWkDUlserjUAIhANQiczGu2+4Q3PrB1HMK9mEJjjS+6PmWlgwUCSm2pTOE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6560591},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"681c9849eb90053da01ba5c27f4252bb7004415a","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.8_1771948514882_0.5284289522848842","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@mathscan/math-exercise-engine","version":"1.0.9","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.9","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"fcc32ed5b732a47e30c88808decf6cacc5d1c711","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.9.tgz","fileCount":8,"integrity":"sha512-1bLxwVdeRLHWFFUzp/Wfv5Edn24Mq0fJWHhe1F3yN4UIh7RSkQbXyNztP3kV2GjqXY4OrlXEOBVmTGAbje0/cQ==","signatures":[{"sig":"MEUCICCvltTj10GLsRuwr6Ku3ZRFYQwXoiY6B341JVNwXBJKAiEA/L/b7j81Plv5aF3fCXkBD+t5umvSkVgW7y42NDM1y2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6736949},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"a99c3befbaffd36084434d619c34fd1a2a302fcf","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.9_1774314152024_0.5966359127727032","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@mathscan/math-exercise-engine","version":"1.0.10","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.10","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"017b290ea45b69cf78420c424a9c08804f2fefdd","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.10.tgz","fileCount":8,"integrity":"sha512-N+OErdNgdI4d1RYBarsXEwGSy9dgZOf8343d0U9w5Y0CRHwkWGO8+f05R7Ha2PbN+c90fAGeK6hac9r30cOA+Q==","signatures":[{"sig":"MEQCIE8OGoHBy2BvRISE6MP3rKV9N6qX3pYpMXTG1Pv1CqcYAiA8htK2nL6OtcK/EQ9Sj7NUo3Uyc5e++HKXY1d42pnrag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6739788},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"e940b2048bf4c074ed9ad987c158e387ca5d774e","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.10_1774369898043_0.03948474114673606","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@mathscan/math-exercise-engine","version":"1.0.11","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.11","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"886ba6ddac51addcf31c5cc95ac16e67c6f4692f","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.11.tgz","fileCount":8,"integrity":"sha512-C7BMjRb4cqap/MhlrBVZMuyX+FcwsPcNteJkfiQARHmuX5HIzZ1tRxEXbktI6BUj/ad4w7GAZMgMxO7xDAP3Hw==","signatures":[{"sig":"MEQCIEBEs0KBHgYMqP6bj030CEfd91bKtsIIra5UHX7wiQu7AiAXa6TbweujsFDme4fAXShRoPbgJrR4KeINtO5s01etxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6740776},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"3e0fef4f4a05daea5538e9b04064f66a895eb322","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.11_1775131372779_0.3786039932343852","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@mathscan/math-exercise-engine","version":"1.0.12","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.12","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"b9d9bda5f7032e99fe913b3bbd7ee9e14d5623c1","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.12.tgz","fileCount":8,"integrity":"sha512-f8tHSOi1FwLMU2K2rTxGg6T/er1qc6X9b+tPMtYFejTK98mpcO0GQygUY3wfhG2Kd8XVO2lhoJD3Os1JfjGBTA==","signatures":[{"sig":"MEQCIAcij8rKWkBilyCZuqEmHEYrGWOLaEYJgldmeFleFdDOAiAFwcwPVzo046tfW/Vj5OsIiOvjPKkSbznqQ4qTDONsqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6920288},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"898ba517e5a476ffa375bc714085e10988941807","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.12_1776178007688_0.3183612049779392","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@mathscan/math-exercise-engine","version":"1.0.13","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.13","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"d6c96909f47d99eaaf4a69e69becbfa1b9482048","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.13.tgz","fileCount":8,"integrity":"sha512-WoZo79Q3BT9pXT0Xe4T1Zx3P8JPNGQX4kvT0mD6TC/jVowYOFjboRVy3HuedII3u8QBIeqsGJL/QTIFef+MB6Q==","signatures":[{"sig":"MEUCIEAWyKY32sB3gDu70EvO7DZ+2Yc6zL8JTQqKCXFLeoq0AiEA8hDawW+x0kDiLXkBfEDcTt6o7/2QInYaGoPuDMGEHGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7014238},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"9dab8311bd96dfc8a383f97891100314d9335c76","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.13_1776725516374_0.3662640219537827","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@mathscan/math-exercise-engine","version":"1.0.14","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.14","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"a53bd4d81afdba9123830dc57c925532d1e4eb08","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.14.tgz","fileCount":8,"integrity":"sha512-yS6GqRQNEM3DM9qg6otLdaFQWD8bhV3TX/KpftYcV3bacWiwuHBi6V5XujROEi3THrKZX435YNCzUwWIHRJsLQ==","signatures":[{"sig":"MEUCIEdkiJntC3FN8RoVCPYfaXd/ffroI21Lv3pXkzA4M9BRAiEAsSF21Xr4K3l2iENuoLecn3gg7cXOHX8nR+lbZafGAVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9052528},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"207fecb05565468817a93f3eeedc981e42527661","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.14_1776872512551_0.8445911561247199","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@mathscan/math-exercise-engine","version":"1.0.15","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.15","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"6be092a3fd2fbb97d7255f2d8d1f25bb32ff123b","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.15.tgz","fileCount":8,"integrity":"sha512-/OohQUlVsn9cEHY9/cHri3zK0mmqV5+YX3zH4d0KU3KD14zb78SLBra4RPgzVH7djRU5khbwb9NdYWWFCMRzSA==","signatures":[{"sig":"MEUCIAhpz8oRToiWUUI+oY/Cy7/64vsgIuVr8T+vRj9ow4lJAiEA4YYzvGGnOETIBW0ojtxJhTiuvQZtHqGCY2Hlx9rLNJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9135471},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"36a14d82c7e04898f5ff9c0fbb3ae413f1432c66","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.15_1777290698105_0.8058597306369593","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@mathscan/math-exercise-engine","version":"1.0.16","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.16","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"34ca642e3f41bccd5898f944dbc5f0d404079ebb","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.16.tgz","fileCount":8,"integrity":"sha512-eRwyzpIo1ArsB40NrUWmVrgbQAasikSmJkeQjDH2XwejEWhpzmcxLdcEzok1hpHd55JiFvyCPP3Bv2K0pPqVfw==","signatures":[{"sig":"MEQCIDrQq2lUaMeCg5VgKv3g1Dvp4fbDnPkdzuS9CJ/UY4XNAiAaR2uOdu2fzWzSJH14kHGYWQkGT24ozA13de/2pFujlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9459380},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"18e9730d8c98b57e2842efcb2fb78802c9020bbb","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.16_1777648129008_0.5204990786753785","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@mathscan/math-exercise-engine","version":"1.0.17","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.0.17","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"e066b09c915b8e9c01df307ca6638bc65528fe18","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.0.17.tgz","fileCount":8,"integrity":"sha512-2IAft01WHkK9JCfmlq9xw+akgpk1jLzeOB2axmyHnV/Zf/E9OuHm7B59tshPDiKk0gepTLnEcHvWKmDh8pmHLg==","signatures":[{"sig":"MEQCIAMdBM4CfsB7HEGC/50kH3WwarH81GdG3563mxM/dqH4AiAc1XxkxQfVUQxFTSMan/YbVH2Gp+cuil4i2lQ7MExhjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9488795},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"34b42f1940c57af3be6052ee3f1174178f0c95ab","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.0.17_1778072649896_0.24039881626117077","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@mathscan/math-exercise-engine","version":"1.1.0","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.0","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"0e4749f3bc6c66f12d5c6338b4692158147acf1e","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.0.tgz","fileCount":8,"integrity":"sha512-xe/Ie9u51NnXom9u5l4ZNoP6P5iknL4D+BRms+yCJyFVLAj3dPNYcRnlDiPLL3kwkcgky4w5vz3043AE4cPM5g==","signatures":[{"sig":"MEYCIQDhcvwbHQ6pjx2uffmjojq05s11V9ruXUoTecbLeaAkZQIhALcf+xgolqZlXUe2RxmA6gLvtscaX3vRkuJVvtwh9rMt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9488726},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"2864d91e6883697e5e2c4f5b3bb93bff3322b106","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.0_1778105096723_0.9261781657391288","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@mathscan/math-exercise-engine","version":"1.1.1","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.1","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"e98dd3f8f4060dd89df40c534b62e57f78a475b1","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.1.tgz","fileCount":8,"integrity":"sha512-wP93pdTFqS3OWf8ejPBRtjZjJi1SSE9r/oArKAX+NP9OYiHbXwdv4mpXdr9Xuy7+Glocw2XYvTEySclHDkOLJw==","signatures":[{"sig":"MEUCIA5fqIJbx3tqALZS6VaYeA/+/OIRkGXxI+J08vF++mBhAiEAikrQ6iybhurKnvTejHHvmZz1oTfQwkVotN14ODJMoas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9488481},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"16806017de89dd5344edfdcd77c8c3eba5b42744","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.1_1778515256876_0.24199969425369838","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@mathscan/math-exercise-engine","version":"1.1.2","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.2","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"3da35aa0308067fdf4001c3d1d1f102199f173e5","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.2.tgz","fileCount":8,"integrity":"sha512-rH2ufMtNsk5BaTmEfwwbkqbYWNAjc8c542TJfHgNa2mnEVn3ICwCdpvGrcJ8Oq7jVAbm6HHCJiKVR1WppXLpgg==","signatures":[{"sig":"MEUCIHgRZ7K1eKz3bhONt2LeiRVKPPrUUIgI+NaUE1Uhb3tUAiEAvoTQK7DpcGRegy1tlYT9YV4bA/dV9cj93I08yjJEbkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9836548},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"ba2454ef1e5d3e8d06c6acf33eeda9ea920e5fa3","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.2_1778601364742_0.8927739511034081","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@mathscan/math-exercise-engine","version":"1.1.3","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.3","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"c047581910ee7ea962154faf57e161ffc5636f30","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.3.tgz","fileCount":8,"integrity":"sha512-Jg9bjlYW6KUlgBXboq7ACT6VIQeMvOBjV3sQ/rEZd7Kmx2APlvwoJyt5uKPkTiqflXvQNW53AcGFC6D+d/abKw==","signatures":[{"sig":"MEQCID1xsnL8/FLPDCyUwt0GV2tSdVbyG+XcQjZ64ayCriwlAiBu3bqg/9OukZ5YvjedKvkClOWxrj/dkNlWe6lkCA2oQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10179589},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"40eee534f550219ddb262f01becc6c1d2b845436","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.3_1779189648600_0.7396604263486801","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@mathscan/math-exercise-engine","version":"1.1.4","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.4","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"2bc048f905f7c9112391303265ead4d0b5191eca","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.4.tgz","fileCount":8,"integrity":"sha512-UpMxn6G42JBQ9VEgWoQdxWyha6FTSp1vihCEZ0e8hWY3IPkeT4iH/QC7IiRDsyOYDVnkDqsvftPHubBCDc9Mpw==","signatures":[{"sig":"MEUCIQCwJToVfe9TGQx/yH3Ye4Um+yr/8JMbAyUWXtcSpi/xvAIgE8VPG92v45aeUMW+PF96cv0lfX78FIgyONPJ2++4K7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10179589},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"5340027cd3a2f40dc2ec45b917257ef80b31330c","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.4_1779190008649_0.6171779892672862","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@mathscan/math-exercise-engine","version":"1.1.5","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.5","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"109e9e36143dafdf709a4766faf9dc511352ad95","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.5.tgz","fileCount":8,"integrity":"sha512-Mur9PLyKHLJzn74XCHHKBSXVOVQilBXQa5/KkMX1+dybPn522rS2VF8jBhp57AaNf4j5D9vL2Sd13lRBvz/iLQ==","signatures":[{"sig":"MEUCIQCYYv8nMhureAIJKbs29WFk7SeAsv41sL+cC70Qca6O+wIgSxB4AUO4wEIyCww1+m4EGrD9+un7bcJVeYSy3Nmsewo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10348305},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"c0ef1291db3f2ce2c9c7d90f0acf8863fcbbe18f","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.4.2","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.5_1779576544864_0.8547099148041737","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@mathscan/math-exercise-engine","version":"1.1.6","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.6","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"c97eacef028535eac5cf3c6cfe21fa1100f6af99","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.6.tgz","fileCount":8,"integrity":"sha512-A8T+n3yEdO/pOyYmi+E8Xtl2jxDowhDRpo8yUrUh8MV70G87leWOAOGVNC+TU0LdG4QJic1skxBBAm+tF2DD9Q==","signatures":[{"sig":"MEQCIGqZKIHin8lK0pixbb0YFaCmtive+4n8hv5F4wRn0wZEAiBqheSoToe5c2MY4DAQZ2ZTfqx/XeHYtdWr2LSWx8HexQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10348944},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"e8cace2a89d0e79fdfba749190e7a7b6b04bc9d4","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.6_1780325163132_0.31375879221708947","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@mathscan/math-exercise-engine","version":"1.1.7","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.7","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"8724b44244fe208edabd089940a586c8ede01459","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.7.tgz","fileCount":8,"integrity":"sha512-3aNFFkm9vvwAdHP0NLTcf+1c0k2YOt46OO6mNvYexnZYunmx/WN2UQqTEXmW5yMblHfgPBeJcFvBgRe1sQfDBg==","signatures":[{"sig":"MEUCIAy6xptkMSsq3+tIGonkfEY7t5O1uMcslfA97aS3phr7AiEA9DtgdN7klw0CuDMKbr3m6h9VTaG05ZgrQ0xKjJoxsEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13963304},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"33873117202528e5abc98637461ebb03a043bca0","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.7_1780927243504_0.07176753472664688","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@mathscan/math-exercise-engine","version":"1.1.8","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.8","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"762b5504cb234f659f29e7161eb6f401fcc642df","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.8.tgz","fileCount":8,"integrity":"sha512-GPxBrUcbeZ8ZUMGFDAmV5zscJFSIbCq5GDFdJdIbVZnr1uKmJN45VFqsTLwQjPvE8qfy3WYFw3C/dPc7zPDFOw==","signatures":[{"sig":"MEUCIQDNj9BtRiEhXGA689iL3lh8H/LiJ30CTfFCCGILWG1UdQIgctyyrMrDVdlZU1w2e4F575YrxBe+Q8W6Kin7nwSOxa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13970123},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"5c0890c3f8153abd1741e53e193d45b2fe24c798","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.8_1780929462212_0.6261300406948782","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@mathscan/math-exercise-engine","version":"1.1.9","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.9","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"df2223dbeae85a1b39f22715166bb4647b854e7e","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.9.tgz","fileCount":8,"integrity":"sha512-hbU18IOFQY3yfKOEpLAZcTUQ4zm0c2Fd3f7wpb0kgW3P1JBmnXVbcngDYsGt50ty2nh1XAyrwtsNgo/In5Gg9g==","signatures":[{"sig":"MEYCIQCwv31R/wGj5ZNEkG3a73P8u2/AllxPEN98m6W2eyFXrwIhAOQFhGB8ekMoL0ROyPGylDZJaX+zdfZM4samm6kNaQ2J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14280761},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"a1aade72244ccb6d0904b1a1a6baf46098c22337","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.9_1781516778692_0.950171743833151","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@mathscan/math-exercise-engine","version":"1.1.10","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.10","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"161ebcebf91b6a50f4ddc01a9d9d15bf3ac71b06","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.10.tgz","fileCount":8,"integrity":"sha512-y3L5pgMujGeHy0517xKY5Z5/o4RE0VrnuOLjQOPvrlA1qbihLtBWN5R3BDAq+KsmiJNVdIKXurKsQSOryzc9Lg==","signatures":[{"sig":"MEUCICmGcbjP1VueHmbU2dAifCZMLuSgdjcQxS4ygeUTj7UeAiEAzFYXRUNPurKVcOhElfO+jxMls2cnpoi9TEIS1P6Y7Zw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14287065},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"f4bfa06ac1fb2f9e3f992fcdfe2185a0b3bfdfc2","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.10_1782915075105_0.639997235275096","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@mathscan/math-exercise-engine","version":"1.1.11","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.11","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"2110ec6e5a093a4e2c4ec21b3ea452bd8fcc07e3","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.11.tgz","fileCount":8,"integrity":"sha512-nkHMmUmUZ61Rq9NtINdNVku/2464te4OW/hCsDYNKtLj31T7Agq13CSlplHgbGKzH+Sz66XYRJJrgfdXTmhD2g==","signatures":[{"sig":"MEQCIDpylXPjQFrpy9fYh4tDbOjeYPJVhpS0IQmKR2hRUj3GAiBly+8A41xsJCQFAVOLfGtIRqy0kiKJAZJzIr7JbAmU4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14288519},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"96104279aa1df64c664873a2ca2834b862225939","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.11_1782925867738_0.9730223845386474","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@mathscan/math-exercise-engine","version":"1.1.12","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.12","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"cd1a930c28d953caddeb3fc6d1d7cbbbe22ef21c","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.12.tgz","fileCount":8,"integrity":"sha512-bb+1JStUEGnPZAzlSvn0UsraO3rOOR4kEbNrF01U/caoAM1EI6kuuDRVHJujbjcQNrZYeao2kSEwiX4G24YSjQ==","signatures":[{"sig":"MEYCIQDZHFuZdT/Wwnu546mzDlkBV0Hv64e2uno1TGJIIktSNAIhALEVTOjnY9l/ID/YctoN08iYXxI02K9kD8Rn1EZn2W/e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14315226},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"67d680d4fc73b73140daa54706af5839530a0dc7","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.12_1783418321760_0.4820715979437966","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@mathscan/math-exercise-engine","version":"1.1.13","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.13","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"6c68e89c9403294500c04ff5ff72a51bc08093a3","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.13.tgz","fileCount":8,"integrity":"sha512-GM02rq0dGu5oORazDtBbo7kN0JfG0UmkE/mFuCHhsRGW8qhyy3NLcFEbm9nmU9iObUb0GMEAIyrIt+ehBCSuSg==","signatures":[{"sig":"MEYCIQDI8NaYEGsBs7sXOs9HqFLbjI3CUFAP1GT9Wbmf4qEt4AIhAKfzA7P4KxodmlrtasFWAmTxtOMjgscgMk/H5pQ3IFzq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15693214},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"14f88a8f14cbc5f51cc5c3fefaa2d3c9186a8d5e","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.13_1783816138009_0.1683700707023037","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@mathscan/math-exercise-engine","version":"1.1.14","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.14","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"53e094f2e822af5d22b4d2e0093019c7555df5e3","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.14.tgz","fileCount":8,"integrity":"sha512-Ea35LxaCqFut9vv/80X4Mb3aULA5pN89g2+FmTQ2bFQL9Bh5GSgGnWf/HtLubVFqQanwQWE/LS1WZj4iuz8R/A==","signatures":[{"sig":"MEUCIQCe2QWfpfv7IdTU9XhX6VycdvZsI+/cBYyMOSvRdj5nzAIgexVVmgPRWSEXCEU//EFdHpSxfiXMMlwtuTXMaEsUPxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15697099},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"4b523df7f17fc0547679ae7b3540b9dc7f498d1c","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.14_1784026172266_0.14579446516747585","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"@mathscan/math-exercise-engine","version":"1.1.15","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.15","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"23e7522535c7a83657a7e626a43771d781aee0bf","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.15.tgz","fileCount":8,"integrity":"sha512-3R4fWS9/rVX+fjHA6bJno743xPcaqvELhtjPJnJe7fdv/3QBrjRDP17zoIyvsk+G6mVSDjToQgb7f5XwCZHeSw==","signatures":[{"sig":"MEQCIAh3KoiXaUw2n0czGTVFJ12pQgcM1tarJ5WNEQWKA6BJAiA+9etmWOvjQEuGf7X4S94PixA10cv7g5xWgITd7GVcBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15708822},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"c096b201beef171403e0148b9c9ebdec4612a1b4","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.15_1784107865298_0.3088185565076518","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@mathscan/math-exercise-engine","version":"1.1.16","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.16","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"da4af0e591facbfa870969060a70d30f9fb57136","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.16.tgz","fileCount":8,"integrity":"sha512-6zdqee4VgCfX3BlLsFpzYVgfIS/HMDmkzwlGwoUHuDzcaLA1Pbg5zh68WZBzNj98IvPyYrdHx9QujDI2sma7ZQ==","signatures":[{"sig":"MEUCIQDtKOuHocW6ztQCpk6dBJaY8igMca+FWBAGEjUbFQ9KQAIgbqkLr/GIEXcrTFI4TeSc26APw5Jk/n3NFFrafK8w+c4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15770155},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"2b015e4ee96973f08ed55b4150b6c2b2c1b05538","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.16_1785927132063_0.33065487653812276","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@mathscan/math-exercise-engine","version":"1.1.17","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.1.17","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"4913bef7d0c046b46f575dde7eabc1b556ae1b34","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.1.17.tgz","fileCount":8,"integrity":"sha512-+SXiBJ5rSPPTc95m5hEMEFLR/6RRB3o8UXwhdiKEQkTxQn5liNAjbfQ23aK7e14Mj1k0W1ou2LerNVLYhSoGtw==","signatures":[{"sig":"MEQCIDbgI+aoU8HDQkqQMp9cyZGAVlvAjpv876Jg4SUlOSdQAiBlT/zgaQO4/POQAGfR2zzs1mksyoeCR9LCX0nI1Qocxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15893535},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"ef5727f24629e6fe9ae18bc676517a05227001f3","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.1.17_1786454467781_0.9656166311966878","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@mathscan/math-exercise-engine","version":"1.2.0","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.2.0","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"18e6b8ce9d43d33b234d5d4181e483a4c49a07f9","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.2.0.tgz","fileCount":8,"integrity":"sha512-8Hk3eJ3fvv6wgMK5VqXZGdPikeYEk9xNIBXygqMuTfUNMj4ZJPgs8aREWYf+4HroTJNvEQjv8I6RHhMPhJ8o3Q==","signatures":[{"sig":"MEUCIQDalGtTlhlEavR7Upw8k2p4yFuznvlGn+3Nx6I3hFve9QIgTZkK13mi8SRsD/HK+Clmrq0XxlzDnEpmJjb9/arg1UI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15923980},"main":"dist/index.js","_from":"file:mathscan-math-exercise-engine-1.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_resolved":"/tmp/2f975dd2c39a07d002131433f3bef072/mathscan-math-exercise-engine-1.2.0.tgz","_integrity":"sha512-8Hk3eJ3fvv6wgMK5VqXZGdPikeYEk9xNIBXygqMuTfUNMj4ZJPgs8aREWYf+4HroTJNvEQjv8I6RHhMPhJ8o3Q==","_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.2.0_1786627299248_0.99809944503999","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@mathscan/math-exercise-engine","version":"1.2.1","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.2.1","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"be75591060b13d120e71fc00ae5ec73a7f9941df","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.2.1.tgz","fileCount":8,"integrity":"sha512-1suCHikONHMGBv1PPx5pxpaclvrnioAJGzMJScrhwoywM4LQNp835y8ZwqMkpnTG/e83auwk4zDIMIhTdKlUbA==","signatures":[{"sig":"MEQCICW4yJt1yG8cBF8iAXP+cmTOppldZivjKqO674kKpmK1AiAe8GXaMp+o7lxK9BZ3m3/E1h8q6pRfYD8ECX4gifuQjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15924806},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"a725dcd94fee324170e006814cc4c7b865c51e16","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.2.1_1786704749178_0.7536702799995199","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@mathscan/math-exercise-engine","version":"1.2.2","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.2.2","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"8c1927022b471438ccf06c4f06e2e63ffb25ba1d","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.2.2.tgz","fileCount":8,"integrity":"sha512-IEy82Kc5EEdX0NssWJjosfiR5lLSz9drE/zSCdW7AKMpLiaIMXIcVtU2PZB9V7HZ1kZnm5B9k3Hue1Setw9KSA==","signatures":[{"sig":"MEQCIEzOO11uRVKV/wWnuYqa03GQt3TQ+ksRl+ngCeuDh/MgAiBHY5DsQEHiGs9dpf4y5duui3qmQ+zSSm6HKpJIqMJjlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15926802},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"8af8924f206399cac694332575b1fcd02f3b9d96","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.2.2_1786962706764_0.5328199920370644","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@mathscan/math-exercise-engine","version":"1.2.3","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.2.3","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"1e8aa6996fee81ef364273a26cecdf3b55e6c4a7","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.2.3.tgz","fileCount":8,"integrity":"sha512-AYba/eTMk6OSI8UAnqmAR3TRaPYYWA5xT0wkKKn56oxGsJb0wTLxoXwxDQggRcr858s32DRHgJxQhTW45ZcLVQ==","signatures":[{"sig":"MEUCIQDzdJS/iu/6VOLseTYUK/lmWIwoU1zhp4FZ0AnakvRwdAIgCvUgaGQO0OeC+chKW9iPFlZmAv5nysKt8Ovmfo76A8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16891593},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"bdceb996b8326f5a25ed5ea8590bfa1914548911","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.2.3_1787133779393_0.393815997841638","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@mathscan/math-exercise-engine","version":"1.2.4","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"author":{"name":"mathscan"},"license":"mathscan-license","_id":"@mathscan/math-exercise-engine@1.2.4","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"dist":{"shasum":"e6f98215b563f20dcd29dc37f7978962664592f6","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.2.4.tgz","fileCount":8,"integrity":"sha512-q3HE6TJVQa1bmI1cXF0HADuzoBKhVb5XyTtfNiLC5qlnLMpIyieSA9o6frtUBH8TXa11YYAzfGZktjOaCVCDYg==","signatures":[{"sig":"MEYCIQDf44617PPBJzvwJxwmEFwys1gvyjH4i2i1Wk8wU/MweQIhAIWHjwFuYRCiJ9ifPYvQqS9vjZlquaaI/TE+iJl6j04Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16900347},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"d3fd21d070db3143466b9dca35f629a44b93809f","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/math-exercise-engine_1.2.4_1788772549449_0.10606466679442605","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"_id":"@mathscan/math-exercise-engine@1.2.5","dist":{"shasum":"c3e6b1cef11e1aca9f2cfd63c492502f289f0b30","tarball":"https://registry.npmjs.org/@mathscan/math-exercise-engine/-/math-exercise-engine-1.2.5.tgz","fileCount":8,"integrity":"sha512-QyxuBvPe/KBfkIGQpAGc84Q2yhuFPzaj2MeY4wSmFk+jN9Og7PQlmZ4rLILcyaL8p01KDHM56oaw8FbklK0oCQ==","signatures":[{"sig":"MEUCIQDIDaRsA04rI7aFSzP5ANPUt0VGkbG+Ajz+VIiNfiadcAIgNuRtQ9/pbLbufyuz7zUR/G+Z5jMZh1YoLM1ZRJXDvLw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAvF+NmMwUuCZZP6DOfY4f2xUA8uRD2OQ8T+1iOIP+7eAiEAjUxzi63kBPMdfF+Z3csWR+x4ZencgM8eN8Ve/OtuZTA="}],"unpackedSize":16911199},"main":"dist/index.js","name":"@mathscan/math-exercise-engine","types":"dist/index.d.ts","author":{"name":"mathscan"},"module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./style.css":"./dist/style.css"},"gitHead":"26fc53431c1864c0736737cc3e82bc9620809ded","license":"mathscan-license","scripts":{"dev":"vite build --watch","demo":"node examples/demo.mjs","lint":"echo 'ESLint disabled for now'","test":"vitest","build":"vite build","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","demo:ts":"tsx --conditions=import examples/demo.ts","lint:fix":"echo 'ESLint disabled for now'","test:run":"vitest run","typecheck":"tsc --noEmit","demo:build":"pnpm run build && node examples/demo.mjs","playground":"vite --open /playground/grid-symmetry-builder/","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"*.{json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm run build"},"version":"1.2.5","_npmUser":{"name":"adilbim","email":"abshow15@gmail.com"},"keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"_npmVersion":"11.7.0","description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","directories":{},"maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.4","lodash":"^4.17.21","mathjs":"^12.4.0","chevrotain":"^11.0.3","@dnd-kit/core":"^6.3.1","@dnd-kit/utilities":"^3.2.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.0","devDependencies":{"tsx":"^4.7.0","vite":"^5.0.11","jsdom":"^28.0.0","react":"^19.0.0","eslint":"^8.56.0","vitest":"^4.0.17","ts-node":"^10.9.2","prettier":"^3.2.4","react-dom":"^19.0.0","typescript":"^5.3.3","@types/node":"^20.11.0","@types/react":"^19.0.0","@types/lodash":"^4.17.24","vite-plugin-dts":"^3.7.0","@types/react-dom":"^19.0.0","@vitest/coverage-v8":"^4.0.17","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","@typescript-eslint/parser":"^6.19.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/math-exercise-engine_1.2.5_1790728871466_0.38699383594533443"}}},"time":{"created":"2026-01-16T15:44:23.934Z","modified":"2026-09-30T00:41:12.255Z","1.0.0":"2026-01-16T15:44:24.358Z","1.0.1":"2026-01-16T16:21:54.395Z","1.0.2":"2026-01-21T15:27:47.449Z","1.0.3":"2026-02-09T13:43:34.079Z","1.0.4":"2026-02-11T14:01:27.487Z","1.0.5":"2026-02-16T10:14:13.867Z","1.0.6":"2026-02-16T15:26:05.016Z","1.0.7":"2026-02-19T15:57:47.239Z","1.0.8":"2026-02-24T15:55:15.184Z","1.0.9":"2026-03-24T01:02:32.336Z","1.0.10":"2026-03-24T16:31:38.375Z","1.0.11":"2026-04-02T12:02:53.081Z","1.0.12":"2026-04-14T14:46:48.022Z","1.0.13":"2026-04-20T22:51:56.626Z","1.0.14":"2026-04-22T15:41:52.853Z","1.0.15":"2026-04-27T11:51:38.376Z","1.0.16":"2026-05-01T15:08:49.306Z","1.0.17":"2026-05-06T13:04:10.203Z","1.1.0":"2026-05-06T22:04:57.071Z","1.1.1":"2026-05-11T16:00:57.153Z","1.1.2":"2026-05-12T15:56:05.047Z","1.1.3":"2026-05-19T11:20:48.956Z","1.1.4":"2026-05-19T11:26:48.943Z","1.1.5":"2026-05-23T22:49:05.135Z","1.1.6":"2026-06-01T14:46:03.443Z","1.1.7":"2026-06-08T14:00:43.721Z","1.1.8":"2026-06-08T14:37:42.548Z","1.1.9":"2026-06-15T09:46:18.931Z","1.1.10":"2026-07-01T14:11:15.408Z","1.1.11":"2026-07-01T17:11:07.975Z","1.1.12":"2026-07-07T09:58:41.989Z","1.1.13":"2026-07-12T00:28:58.325Z","1.1.14":"2026-07-14T10:49:32.501Z","1.1.15":"2026-07-15T09:31:05.550Z","1.1.16":"2026-08-05T10:52:12.329Z","1.1.17":"2026-08-11T13:21:08.075Z","1.2.0":"2026-08-13T13:21:39.578Z","1.2.1":"2026-08-14T10:52:29.471Z","1.2.2":"2026-08-17T10:31:46.996Z","1.2.3":"2026-08-19T10:02:59.706Z","1.2.4":"2026-09-07T09:15:49.737Z","1.2.5":"2026-09-30T00:41:11.625Z"},"author":{"name":"mathscan"},"license":"mathscan-license","keywords":["math","exercise","dsl","parser","chevrotain","ast","education","edtech"],"description":"A DSL parser and validator for math exercises - transforms text-based exercise definitions into structured AST and JSON","maintainers":[{"name":"adilbim","email":"abshow15@gmail.com"},{"name":"mathscan_admin","email":"mathscan.net@gmail.com"}],"readme":"# Math Exercise Engine\n\nA TypeScript DSL parser for mathematical exercises. Parse exercise definitions into structured AST and JSON for use in educational apps.\n\n## ✨ Features\n\n- **Text-first DSL** — Write exercises in readable text format\n- **Chevrotain parser** — Robust tokenization and parsing\n- **AST-based** — Clean separation between parsing and rendering\n- **Dual validation** — Simple (predetermined answers) and expression-based\n- **TypeScript-first** — Full type definitions included\n- **React renderer** — Production-ready components included\n- **Ref-based API** — Full programmatic control (submit, reset, focus, get values)\n\n## 📦 Installation\n\n```bash\nnpm install @mathscan/math-exercise-engine\n# or\npnpm add @mathscan/math-exercise-engine\n# or\nyarn add @mathscan/math-exercise-engine\n```\n\n## 🚀 Quick Start\n\n```typescript\nimport { compile, validate, ExerciseRenderer } from '@mathscan/math-exercise-engine';\n\n// Compile a DSL exercise to JSON\nconst json = compile(`\n  QUESTION_TEXT[\"What is 25 + 5?\"]\n  25 + NUMERIC_INPUT[name=\"x\", digits=2, answer=\"5\"] = 30\n  WIDGET_ANSWER[type=simple]\n`);\n\n// Render in React\nimport '@mathscan/math-exercise-engine/style.css'; // Opt-in: import minimal default styles\n\n// Option 1: Use built-in submit button\n<ExerciseRenderer\n  json={json}\n  onSubmit={(values) => {\n    const result = validate(json, values);\n    console.log(result.isCorrect);\n  }}\n  showSubmitButton={true}\n/>\n\n// Option 2: Control submit with ref (recommended for custom styling)\nconst exerciseRef = useRef<ExerciseRendererRef>(null);\n\n<ExerciseRenderer\n  ref={exerciseRef}\n  json={json}\n  onSubmit={(values) => {\n    const result = validate(json, values);\n    console.log(result.isCorrect);\n  }}\n/>\n\n// Custom buttons (fully controlled by your app)\n<div>\n  <button\n    className=\"my-custom-submit-btn\"\n    onClick={() => {\n      const result = exerciseRef.current?.submit();\n      console.log('Validation result:', result);\n      if (result?.isCorrect) {\n        alert('Correct! 🎉');\n      } else {\n        alert('Try again! ❌');\n      }\n    }}\n  >\n    Check My Answer\n  </button>\n  <button onClick={() => exerciseRef.current?.reset()}>\n    Reset Exercise\n  </button>\n  <button onClick={() => exerciseRef.current?.focusFirstInput()}>\n    Focus First Input\n  </button>\n</div>\n```\n\n## 🎛️ Ref API - Programmatic Control\n\nWhen using `ref` for custom button styling, you get full programmatic control:\n\n```typescript\nimport type { ExerciseRendererRef } from '@mathscan/math-exercise-engine';\n\nconst exerciseRef = useRef<ExerciseRendererRef>(null);\n\n// Available methods:\nconst result = exerciseRef.current?.submit();    // Returns ValidationResult — LOCKS the exercise\nexerciseRef.current?.getValues();        // Get current input values\nexerciseRef.current?.getCompletion();    // How many answerable inputs are filled\nexerciseRef.current?.revealAnswers();    // Fill in the correct answers — also LOCKS\nexerciseRef.current?.reset();            // Clear all inputs and unlock\nexerciseRef.current?.focusFirstInput();  // Focus first editable input field\n```\n\n### Method Details\n\n- **`submit()`**: Performs validation, returns `ValidationResult`, triggers `onSubmit`, and **locks the exercise** (see below). Calling it again while locked is a no-op that replays the same `ValidationResult` — no sound, no `onSubmit`\n- **`getValues()`**: Returns `Record<string, UserAnswerValue>` of all current input values\n- **`getCompletion()`**: Returns `{ total, filled, missing, filledIds, isComplete, isAnyFilled }` — use it to decide when to enable your submit button\n- **`revealAnswers()`**: Fills every widget with its correct answer and **locks the exercise**. No-op for display-only exercises\n- **`reset()`**: Clears all input fields and **unlocks** the exercise\n- **`focusFirstInput()`**: Focuses the first editable input of *this* renderer. Skips read-only/disabled fields, so it does nothing while the exercise is locked\n\n## 🔒 Locking After a Check\n\nOnce the answer is checked, the exercise becomes read-only until it is reset. This is the default and cannot be turned off.\n\n**What locks it:** `submit()`, the built-in `showSubmitButton` button, and `revealAnswers()`.\n**What unlocks it:** `reset()` — nothing else.\n\nWhile locked, every widget refuses input: text inputs go `readOnly`, option/card widgets get `aria-disabled`, keypad and counter buttons get `disabled`, the built-in Check Answer button is `disabled`, drag-and-drop is disabled, and clock hands / number-line cursors stop responding. The root element gets a `.locked` class so you can style the state:\n\n```css\n.math-exercise-renderer.locked { /* your read-only styling */ }\n```\n\nFloating geometry tools (ruler, protractor, set square) stay draggable — they are instruments, not answers.\n\nIf your app shows an exercise in review mode (correction, teacher preview) and wants it read-only from the start, wrap it in your own provider:\n\n```tsx\nimport { ExerciseLockProvider } from '@mathscan/math-exercise-engine';\n\n<ExerciseLockProvider locked>\n  <ExerciseRenderer json={json} />\n</ExerciseLockProvider>\n```\n\nThe renderer ORs your value with its own state, so an outer lock is never overridden by an un-submitted exercise. Custom widgets of your own can read the same state with the `useExerciseLocked()` hook.\n\n## 📝 DSL Syntax\n\n### Input Widgets\n\nThe DSL supports both legacy short names and modern readable aliases:\n\n#### Numeric Input Widget\n\n```\nW_N_I[name=a, digits=2]\n// or use the readable alias\nNUMERIC_INPUT[name=a, digits=2]\n```\n\nCreates an input field for numbers with up to 2 digits.\n\n#### String Input Widget\n\n```\nW_S_I[name=x, length=5]\n// or use the readable alias\nSTRING_INPUT[name=x, length=5]\n```\n\nCreates an input field for text with up to 5 characters.\n\n### Text Highlighter\n\n```\nTEXT_HIGHLIGHTER[value=\"123456\", start=2, end=3]\nHIGHLIGHT_TEXT[value=\"123456\", start=2, end=3]  // Alias\n```\n\nDisplays text with specific characters highlighted (useful for highlighting digits in numbers).\nBoth `TEXT_HIGHLIGHTER` and `HIGHLIGHT_TEXT` are supported (aliases).\n\n### Validators\n\n**Simple mode** — each widget has a predetermined answer:\n\n```\nWIDGET_ANSWER[type=simple]\n```\n\n**Expression mode** — validate using a math expression:\n\n```\nWIDGET_ANSWER[type=expression, expr=\"(a * b) + (c * d) == 1200\"]\n```\n\n## 📚 Examples\n\n### Example 1: Math Expression (using readable aliases)\n\n```\n(NUMERIC_INPUT[name=a, digits=2] × NUMERIC_INPUT[name=b, digits=2]) + (NUMERIC_INPUT[name=c, digits=2] × NUMERIC_INPUT[name=d, digits=2]) = 1200\nWIDGET_ANSWER[type=expression, expr=\"(a * b) + (c * d) == 1200\"]\n```\n\n### Example 2: Simple Addition\n\n```\nNUMERIC_INPUT[name=x, digits=2] + NUMERIC_INPUT[name=y, digits=2] = 100\nWIDGET_ANSWER[type=expression, expr=\"x + y == 100\"]\n```\n\n### Example 3: Text Highlighter\n\n```\nQUESTION_TEXT[\"What digit is highlighted?\"]\nThe number TEXT_HIGHLIGHTER[value=\"123456\", start=2, end=3] has a highlighted digit\nSTRING_INPUT[name=answer, length=1, answer=\"3\"]\nWIDGET_ANSWER[type=simple]\n```\n\n## 🔧 API Reference\n\n### Parsing\n\n```typescript\nimport { compile, tokenize, parse, toAST, toJSON } from '@mathscan/math-exercise-engine';\n\n// Full pipeline (recommended)\nconst json = compile(dslText);\n\n// Step by step\nconst tokens = tokenize(dslText);\nconst cst = parse(tokens);\nconst ast = toAST(cst);\nconst json = toJSON(ast);\n\n// With both AST and JSON\nconst { ast, json } = compileWithAST(dslText);\n```\n\n### Validation\n\n```typescript\nimport { validate, validateSimple, validateExpression } from '@mathscan/math-exercise-engine';\n\n// Auto-detect validation type\nconst result = validate(exerciseJSON, userInputs);\n\n// Manual validation\nconst simpleResult = validateSimple(exerciseJSON, userInputs);\nconst exprResult = validateExpression(exerciseJSON, userInputs);\n```\n\n### Types\n\n```typescript\nimport type {\n  ExerciseJSON,\n  ExerciseNode,\n  ValidationResult,\n  WidgetJSON,\n  ExerciseRendererRef\n} from '@mathscan/math-exercise-engine';\n\n// ExerciseRendererRef interface:\ninterface ExerciseRendererRef {\n  submit: () => ValidationResult;        // Validate, return result, lock the exercise\n  getValues: () => Record<string, UserAnswerValue>; // Get current values\n  getCompletion: () => InputCompletion;  // Fill status of the answerable inputs\n  revealAnswers: () => void;             // Fill in correct answers, lock the exercise\n  reset: () => void;                     // Clear all inputs and unlock\n  focusFirstInput: () => void;           // Focus first editable input\n}\n```\n\n## 📊 JSON Output Format\n\nAll layout items include unique `id` fields for React/JSX rendering:\n\n```json\n{\n  \"version\": \"2.0\",\n  \"layout\": [\n    { \"id\": \"text_1\", \"type\": \"text\", \"value\": \"25\" },\n    { \"id\": \"operator_2\", \"type\": \"operator\", \"operator\": \"+\" },\n    { \"id\": \"widget-ref_3\", \"type\": \"widget-ref\", \"widgetId\": \"x\" },\n    { \"id\": \"operator_4\", \"type\": \"operator\", \"operator\": \"=\" },\n    { \"id\": \"text_5\", \"type\": \"text\", \"value\": \"30\" }\n  ],\n  \"widgets\": {\n    \"x\": {\n      \"type\": \"numeric-input\",\n      \"id\": \"x\",\n      \"config\": {\n        \"name\": \"x\",\n        \"digits\": 2\n      }\n    }\n  },\n  \"validation\": {\n    \"mode\": \"simple\",\n    \"answers\": {\n      \"x\": \"5\"\n    }\n  }\n}\n```\n\n## ✅ Testing\n\n```bash\npnpm test:run\n```\n\n## 📄 License\n\nmathscan\n\n## 👥 Authors\n\nmathscan\n\n---\n","readmeFilename":"README.md"}