{"_id":"@telebort/question-banks","_rev":"26-4f9ac7573ccb37ed6388c7258a8e1c2e","name":"@telebort/question-banks","dist-tags":{"latest":"4.1.0"},"versions":{"1.0.0":{"name":"@telebort/question-banks","version":"1.0.0","keywords":["question-banks","exit-tickets","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@1.0.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"f5a1eb6b36a0c57912d9a2efa5f4ef121f853eb8","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-1.0.0.tgz","fileCount":38,"integrity":"sha512-LHtDgR5NFgN/nl2ZKv8jcmypS8XTPHeqg/nOgTorEbgHcgXvrF3waL8Dnm3YHTF2+DXpPIAE16/5Iz0Xunh+wA==","signatures":[{"sig":"MEYCIQDv6XZas1YR3VHcP0791JI0Tz6z6G2y1WkRcrH70sI+/AIhANSSb7ZuMFsnIRJOAUfnn7h8+F2ot5dNm6HG6hTIOa4o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649956},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"}},"gitHead":"ad5b752aa9ef43c3a859c6f0f6fa37645163d7e1","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_1.0.0_1766730634002_0.9528933811871112","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@telebort/question-banks","version":"1.1.0","keywords":["question-banks","exit-tickets","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@1.1.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"8afb309b55438d69e5d854ec132ac01fc323f01d","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-1.1.0.tgz","fileCount":38,"integrity":"sha512-BCuKe4HNTBVoX163xRyIf7I+PasK5TUte6tJSNl108WhtdGYelu7rjQE0fcC3cUkbR1rpsL09+rBDhbK4cGXKw==","signatures":[{"sig":"MEYCIQDiqyvESdQtwE5oWJzXcYpXMov6onGIkXUSQWyt/YI4CAIhAKAC9v1W60CCm33/25sNVfmKfEy6+VgVF2/6s8qXFBN/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649956},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"}},"gitHead":"c64f23ec08116631f7a473d0f67084ec9d1b3dc1","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_1.1.0_1766763594090_0.7997512681556183","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@telebort/question-banks","version":"1.2.0","keywords":["question-banks","exit-tickets","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@1.2.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"25efbd2e61fa212e5f41b9bc50069dee8144928c","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-1.2.0.tgz","fileCount":40,"integrity":"sha512-7rnLGHEGyFEcULeK9i++B+prWCEffpWGBVu/pJwqTDDomNNpi7OQ+aBuKXtPjGKEIzZ7lSbZ4obulPkXtIM9/w==","signatures":[{"sig":"MEUCIQDvoWrol0zWFS9CEng3Kw367yJwLbCUuEh+yWG0/qA1FQIgUka7E1/04jygZVE71xHshuxOP/IaQuTF/tX8JNbUpxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698683},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"}},"gitHead":"050bb1d25c6054306d5cb2bab3a59e6f6a87b7a0","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_1.2.0_1766843371924_0.16453641855258838","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@telebort/question-banks","version":"1.3.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@1.3.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"cef843ee9437a541ec5f58937f67a6ba9aeb307b","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-1.3.0.tgz","fileCount":40,"integrity":"sha512-ZPl1cHeozmyuuMCsB6VksOTcZepAWqhEGHlUNRuoYURkY9FTyO3OprcyyD+kWUx8DbdOJALO3ykBl++DFqJ6zw==","signatures":[{"sig":"MEUCIQCMTxDkO+2FS6ZjsPuZeblSeyUwEP20ab4+bRcYN4OM0QIgJhqfYcta3640mwvDdadqnJqrnIvj6kBCMaIkK2l7Wes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":924812},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"}},"gitHead":"defd16663798255cefb620796555d5dcc9b24857","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_1.3.0_1766917555709_0.4524619480615677","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@telebort/question-banks","version":"1.4.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@1.4.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"c827381bedc812bf40749c23cdc0e745716b1586","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-1.4.0.tgz","fileCount":46,"integrity":"sha512-tdKbCluS+Uj3TFc6rnxLm69T/lmV9qbsMTfIX0BHZ20ti7muIX8AiDwhZ1jrjTojn2KCSVAClEqSdptM2N3HKw==","signatures":[{"sig":"MEUCIHuyApKr/GIH2cJbiwEHEk9RxHhRWLsFPdxYnsFFQVKlAiEAon76oJ3rXXrndqHge1lyu2awZ++BPUzReGfYAbxHL48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1363283},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"f5b37f676df6f2bfb1e2b04d11b6af5fe1e4bb4e","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_1.4.0_1766971332678_0.042500109333932556","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@telebort/question-banks","version":"1.4.1","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@1.4.1","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"5ec73feb07ea06c6b596d409b328baee5dbdc84a","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-1.4.1.tgz","fileCount":46,"integrity":"sha512-/LsvEBqZVSe6xyNUzDjC7WgCWGKpb4dJs2vKyMqDKSTTxzT+nFKSkLzL5s5fT7hP2V4RwhWk012BsSW0zNjb7A==","signatures":[{"sig":"MEYCIQDB7oPSzw5mgxQqAmyGiT1n88f96eHGB600AKxPsyFVVAIhAIH86CL6rCj0HzCUYb5u5vjeYSUdlfmmxj9B3fzdUHUb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1364477},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"3d5c93f62c50d62aa3e506037c0a58b73f5e3f5d","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_1.4.1_1767154267450_0.013503678372597694","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@telebort/question-banks","version":"2.0.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.0.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"925c8f1c7f1762945dd1c87cbb11eebfd67c24bd","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.0.0.tgz","fileCount":46,"integrity":"sha512-8BK6IMbWPKdz1K1ehBFOkQFk0QBuvU5Wkjis3H2dtggzsu3SIOGvsVQRZ6+wQSADuPbo16W1LbmJcebewg9NQA==","signatures":[{"sig":"MEUCIQCvvG9E1b6Q414E+saS4jmoF3/3ogN0nn4UnqHjtN8qlgIgd49FxQDZ0T3fxzvVMobewJ6TCl7UdgH6WKXKfiExzuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1415143},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"c6ff455336a8bf6f07325d43a77a55957fb3875c","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.0.0_1767193194739_0.9124693685462804","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@telebort/question-banks","version":"2.1.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.1.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"67a49c3f00b4ae5d0fc5a785b001bb7f221f2f28","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.1.0.tgz","fileCount":54,"integrity":"sha512-f1fkbOfPzaS7MW/xqGPRtXAMpDweTd2le9GfeldscNWul4jHu4Ao3/eBF3kbBw7D+pDwSHqdDi6I4bL8KuvNJg==","signatures":[{"sig":"MEUCIBl/3s08ewC2guczUe09qacahJ0TrvgtU9BPfn5P5RUoAiEAvOTy04/RbEV0GWwQYKfjcsHM7P37XzaadnDgJh0NzS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1645107},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"95899a010faeaaccfeb0d51f2bf73523d56f72f6","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.1.0_1767232996204_0.7322358976787642","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@telebort/question-banks","version":"2.1.1","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.1.1","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"8810c204c443f39948dc246d11d73082d1c8a7b8","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.1.1.tgz","fileCount":54,"integrity":"sha512-djYHbhk/7QCKCQL/9CIoWquR85FV5Qh6US7iwqrDTnvlFQ5aaQVRtXD9/m/k14036MlTQFjmGmcjgYZlGeZUqw==","signatures":[{"sig":"MEQCIFNI0mH1pKnBQ2YmFqsG//WP98r3b0IX0XSs/0dYLo7+AiBqrswyNGfYDA7tjHa/jB0uGa5lxQcACzfhzsmKvqnx9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1645879},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"3f4aeee509e3b41ca79ae20c67ef4c6641d0d685","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.1.1_1767254019966_0.5356121070134032","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@telebort/question-banks","version":"2.1.2","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.1.2","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"527f67fb35a68995e686ce254903018a4180f0ee","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.1.2.tgz","fileCount":54,"integrity":"sha512-gje0HdwYMtyAcs/cm5xrISWpoK+VTaS/kkH62WIHVpcne6mEDI9POrj+ASsntq4GUl4yMrvj/GAKMhLAz1ZSkw==","signatures":[{"sig":"MEUCIQC3bUbE96KEVmCOUPe+1kGB/RN7m6rzgnFp6zP6ubVuiwIgZk307W/CzwJeVbfdp6EYVLBZKD/w0YfMq6Ubb+GFbLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1646030},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"fa90c9d84b995ebba538290c6bc0bbf6dec6ea6b","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.1.2_1767487794015_0.6656426088545799","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@telebort/question-banks","version":"2.2.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.2.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"9b50a3fdc64a0467a836ac97dcaf59d1ee5f0e1c","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.2.0.tgz","fileCount":54,"integrity":"sha512-Bj2355nf7YIjtvEAtoRbi6j6KabD8Nw9K9CRPt1noXVRvIXgRCTl2y/Dej/8ww8Ugm9yzqoGX9Jb8xd/HiGgrQ==","signatures":[{"sig":"MEUCIB6D6gjanP99wvZpQjHXr5Zx2xbQQkfjRdbNtnKtQOyFAiEA3HiGDh97MURW3RWT/033A+OnlV4/kX2EXALeXECqn+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10483505},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"a368674190431d9aa13995531aff03172ab580ea","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.2.0_1768722353319_0.6515404380407606","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@telebort/question-banks","version":"2.3.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.3.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"d98afc54a420ded7ac1a4fcbb5695d218521ea4f","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.3.0.tgz","fileCount":54,"integrity":"sha512-QICTz2+XNmUpsgz5IRgZMPI5ioMOwMv5Kb2PNRZjTzumoNVZG0Hdhs7kJJxrd30QM1C9uacHo43mcD9SK/sYUA==","signatures":[{"sig":"MEQCIAdIR9cGk0f6/dDeLLaS0bCTh7hZfD22m9AEH4NiKPF0AiAQuDlgXJQldOw7fn+lXqD41Z/EoWHbNgjiJCNmrDCsgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10530782},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"d598efa838705a04cd090526095f7851c15656aa","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.3.0_1770132554614_0.6301475400650531","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@telebort/question-banks","version":"2.4.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.4.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"b9c2761930ad9d0af3710012f687f6fbd82a83d0","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.4.0.tgz","fileCount":54,"integrity":"sha512-2P90I/8gc+8ks6Ind6RKqE8C5pFTUEnxZM3h7tizBz5Jy4QGX/Uk9jq405c3dxkhRE7Lsltj+vH2fc0lQEBfUA==","signatures":[{"sig":"MEUCICQzKoyL4wJY+89ZwZLJcRds9pgukXkqNbJkV4OMMc7FAiEA7L292DgMb/jA1mwJBLJT6OMn+4xglCzZdbsgHSJfmcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10651096},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"868e2ac06ecb8c180d88250054290f1ca299f3aa","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.4.0_1772110322624_0.7898017412738487","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@telebort/question-banks","version":"2.5.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.5.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"537d69c66ff15f07105398cfd197bbc398d3a5ed","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.5.0.tgz","fileCount":54,"integrity":"sha512-weitl17ORRV8AJ4h5WEXZzEHWXpUlTqyCpMKE/ySrurpuXEeniJBtVUvbO5R/DrPRVrpqwdGla3lVFRMDskuQg==","signatures":[{"sig":"MEQCIFgU8zc35dvGWYNK1qn//uxt1K7zK6BSMc1ec/0UHTbNAiBHZfrf2ThcX002NmX1qetPlMOnUue+PbXD6TnO70200w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10723888},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"71a909699d390d9bf5eee1a05cac0a9206d032fa","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.5.0_1772115247439_0.43284091995367024","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@telebort/question-banks","version":"2.6.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.6.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"80bd489053b2262257a963098ba6f5c5b8f82266","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.6.0.tgz","fileCount":54,"integrity":"sha512-bpsiX0Hvi/hV/cK8XBV44coRutaDilfvxbIbiRaHxU+X2YRSIzlLesvOnogJE49LHFu0kIQItOGhRj3AUIJj0Q==","signatures":[{"sig":"MEQCIHaqiYoHqLPPD7m2LvfiGCzjyRjuspYdy1AEK3G7TD7MAiAZZRT2vebEtpE+73VFHvZHGIgrq0Zx3ikOW0m3AS3FPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10785856},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"9f390497ea4f9276a612bf5f571087530ff58bd1","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.6.0_1777256155770_0.13150684462101814","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@telebort/question-banks","version":"2.7.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.7.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"a29d1a323db4a2e96e984f1a536aa305432de383","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.7.0.tgz","fileCount":54,"integrity":"sha512-3rK+lU6wS0w5K+N+kf9//b4xwU9b1huyN9FZCVmlcy5PzorTZEdsrEgv8th6IzlODO+9irB3B2NNA4wd2ca0Xg==","signatures":[{"sig":"MEQCIE9AgK7d+8DGOXYoSFSOxPmCuqZIUGqd+DA66cc+ibzXAiAn1EzL+aqZ7zKfbM3rFY2wJgJebCZqqFa0na5/nBk6ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10825379},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"a14335c4519b4b906de04fe78b4c2cdc6658141f","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.7.0_1778860582312_0.14865074821868407","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@telebort/question-banks","version":"2.8.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.8.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"b103f5acc586b31e6f6db122fff14fe5219129e5","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.8.0.tgz","fileCount":54,"integrity":"sha512-Vz/LBm1C6XLTKMCTxEpfV3Nc6dz+Az/KhVUe9aTuhxkAlufrC/d/TyyDhed7A0ZiL1hQ3n30/3vNE3vY6FBI2A==","signatures":[{"sig":"MEUCIQC68VX1tRrpNWA8Z74ZQ5TjdbHfyY4/aA29QIsnICYRIQIgZ7+sOmlrIG8xWg01eg2VqUGhyOH7+epLWnO0XNlhhJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10825423},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"98e71407fe386a3d7746547ac9196dba08b1415c","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.8.0_1778890523021_0.704620872108084","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@telebort/question-banks","version":"2.9.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.9.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"4230c6df1a61181d34c2d1e3a77101bb2a16d855","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.9.0.tgz","fileCount":54,"integrity":"sha512-b9tIZLZCT9L0ujNEzhtJgMIDH6k/1Rjo4Lo7PcBNtNX/IrgryTuMMNjR+1ZTxvhLf/Mr7iaqtETCbUjqZkRcPA==","signatures":[{"sig":"MEUCIEdLAaRRbUFs3nvBbbTg3UwL6Nor58PY8F2AQpbHyANpAiEAr/ncrdDPZpYDvZDfuGZ68bNenekoIJW6dWqBA1vaQ7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10845587},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"245d7348c36920fd6f04e2f0f8dd1f22554cb8de","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.9.0_1778902840500_0.4771234052504514","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@telebort/question-banks","version":"2.10.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.10.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"51be834f23127f509bd622bb6e1b820f5dc0ef5f","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.10.0.tgz","fileCount":54,"integrity":"sha512-oR8alJH8VtVjtlOSoBs2RR8Ik5ZTt4/UyHgFY4ozU/A85O7HdkkcxJzqzg2dAB6HShm4/U+zjU/eMpi/a/QpcQ==","signatures":[{"sig":"MEYCIQD9R+SmL63jeprtWNS5h6cKoDcHWyz3RzzBXiNC5hj7AAIhANBNqDRDhnSmR8vzAhqD1w2R1rBRdZQVwwopGiKdukNE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10845604},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"c699be34d062627f274bb192d09ceb9403a6605a","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.10.0_1778939962923_0.05213266826559093","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@telebort/question-banks","version":"2.11.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@2.11.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"d525a0d5ec1902c3f6dbc9403c1fb8dc5fb16c79","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-2.11.0.tgz","fileCount":54,"integrity":"sha512-AAymRlVW9bVshdcA505gUjNpuSzwg0RFqDDOiomkINKEK6Go8yhYfbgKsHciuLpFBIf3Q61coFdx6NZk9tpq4w==","signatures":[{"sig":"MEYCIQCYbvwijxa9jE541oReUIOnQA+wctTrUUYUH+QWYWlcPAIhALIyzw4ccFEEuKbk7nrA0ttkzzrxTwkuQkp0H0Hh/iby","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10845620},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"bfdc3aab814a315237bf3fc82d1c805d72c22ea9","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_2.11.0_1780013446071_0.07816212120457089","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@telebort/question-banks","version":"3.0.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@3.0.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"0fdaf8bba4776fc872312a10fcf4bb59a9d85c30","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-3.0.0.tgz","fileCount":68,"integrity":"sha512-WIh8L+mDe6qWzu+wf2YoCv7EkWUSWWNj8Oa+V3ACN1V6ifQi6GwFDr7IEhrIKvsdMvaTWu9hNHBwwieQuviyCA==","signatures":[{"sig":"MEYCIQCTxErOGNdnU6UoyDmEJkuo2M+Ti1yy4Qi+VbSFtYWGsgIhAMPXd3tj8gmycw3auBj+s00yaWnK6t0947O2Vb7+LQFH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3253561},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./rubric":{"types":"./dist/rubric/index.d.ts","import":"./dist/rubric/index.js","require":"./dist/rubric/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0","compromise":"^14.14.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_3.0.0_1783503996477_0.41741690014728805","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@telebort/question-banks","version":"3.1.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@3.1.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"bf2919d785ee17a736185194717a3835190a9172","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-3.1.0.tgz","fileCount":74,"integrity":"sha512-N/7hs0zUC8sWS0psu3Oda6uVdh3FjHzXp8exSuJOIIsARKKcIM/mc47y96NTPBQ0d3sJvEEBLIily1XYA7efgw==","signatures":[{"sig":"MEYCIQDWZeWEJVpYQj9a/JGj76sCX8vjpqIKXxHhxYnhVK7nWAIhALHofSWA39dselo7VZhIfRr0ow7vrsSabpaJ79850Dxb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3366372},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./rubric":{"types":"./dist/rubric/index.d.ts","import":"./dist/rubric/index.js","require":"./dist/rubric/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js","require":"./dist/knowledge/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"35ebc5b445e36a64a85ab3ec83fbc0b1188a9e96","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"10.8.2","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"20.19.0","dependencies":{"commander":"^12.0.0","compromise":"^14.14.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_3.1.0_1784253367447_0.7719547758356073","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@telebort/question-banks","version":"3.2.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@3.2.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"b79c556a845a0882385defe34b065c171f6b900f","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-3.2.0.tgz","fileCount":74,"integrity":"sha512-oC/Yu3XBojxPlxin6hE0HYkQFhjFbC3mwBEeoAPBLIQCnsRbfQv3r5L58XP3QsQimlyhhGWLR/rScFnT9X5Mmw==","signatures":[{"sig":"MEUCIDn+JQxqxqgGhLnaI+RuNxShTXZqpijmSE5U/2Vow/9IAiEAqTwngyaUpTBCwWlmzA2izlBlEfTSIk2POwc9n3HTQjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4684058},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./rubric":{"types":"./dist/rubric/index.d.ts","import":"./dist/rubric/index.js","require":"./dist/rubric/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js","require":"./dist/knowledge/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"44972f15cce88421184a9c34604996616d402b80","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"11.17.0","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"26.5.0","dependencies":{"commander":"^12.0.0","compromise":"^14.14.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_3.2.0_1785312244626_0.9229338794936786","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@telebort/question-banks","version":"3.3.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@3.3.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"8350a201fd45b5a1dcd15ab581e6fd7de94a17c9","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-3.3.0.tgz","fileCount":82,"integrity":"sha512-i+4YYeVrxOdIU+lPHny3X6NffpZ3fbKcCHe6AuUJh2iJHADqlSG9PoJPbkfAo9Hd8wkZB/KdfmDViiCCHCGiuw==","signatures":[{"sig":"MEUCIQCjOP5qNgzx48Wg03DOJ3gsJtNx2u+ro6ymSHT3DdrLoQIgBevpMYDxRMu2j/Mxj/zsZBMZOE/I79x2dbD4GAn+Bic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5278576},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./rubric":{"types":"./dist/rubric/index.d.ts","import":"./dist/rubric/index.js","require":"./dist/rubric/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js","require":"./dist/knowledge/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./enrollment-data":{"types":"./dist/enrollment-data/index.d.ts","import":"./dist/enrollment-data/index.js","require":"./dist/enrollment-data/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"89c8f7042454af55789be388bcb7402fe2762d89","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"11.17.0","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"26.5.0","dependencies":{"commander":"^12.0.0","compromise":"^14.14.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_3.3.0_1787898869778_0.845382499245374","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@telebort/question-banks","version":"4.0.0","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"author":{"name":"Telebort"},"license":"MIT","_id":"@telebort/question-banks@4.0.0","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"homepage":"https://github.com/telebort/question-banks#readme","bugs":{"url":"https://github.com/telebort/question-banks/issues"},"bin":{"question-banks":"bin/question-banks.js"},"dist":{"shasum":"9d5421632182aece8349be95f284a5686253bfd6","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-4.0.0.tgz","fileCount":82,"integrity":"sha512-h1HuJ9MyYd6MPQyPYZNYMSVtGyj5WvHfpNyWgsk4IFs6EPNImgkBM1dc9k4y0eDASsfrByV6Be7Tk/ze6uE0zw==","signatures":[{"sig":"MEYCIQD9jXg/qM0e7JQR5jTwYY3kTWTv0rcqutK8nXDsryE4iAIhALQtvn+mq0gRVuUdIq9+ecB3/S+oOhlKi1S1ugDq7oLs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBAaSfexAXLMu88sUe52j2MNgo5iZf5UJ+cZJMtoxwTiAiBsmZzdaZx5i8lRn9jPjdYNRlOOTjAb7OVBxbhWqyC7Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6114598},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./rubric":{"types":"./dist/rubric/index.d.ts","import":"./dist/rubric/index.js","require":"./dist/rubric/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js","require":"./dist/knowledge/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./enrollment-data":{"types":"./dist/enrollment-data/index.d.ts","import":"./dist/enrollment-data/index.js","require":"./dist/enrollment-data/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"85df1ffff32bb35b4bc872aa450f14c49b764d9d","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"11.17.0","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"_nodeVersion":"26.5.0","dependencies":{"commander":"^12.0.0","compromise":"^14.14.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"tmp":"tmp/question-banks_4.0.0_1790129892349_0.2068273637269138","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"_id":"@telebort/question-banks@4.1.0","bin":{"question-banks":"bin/question-banks.js"},"bugs":{"url":"https://github.com/telebort/question-banks/issues"},"dist":{"shasum":"e229e155f40e82138376ecd614ae192448573180","tarball":"https://registry.npmjs.org/@telebort/question-banks/-/question-banks-4.1.0.tgz","fileCount":82,"integrity":"sha512-eHn+Px7OEsoP61lm6VlMdU7VH+Fb2OELBmwkLOlTRPjAOPW4Aoj8n7RG36CX44Za/hFUX28sdGgTHR0Q7BwjGA==","signatures":[{"sig":"MEUCIQD5oKHeNl7tJFGniMXWRUJCm7js3NeSjNWWYzhWpFKDrAIgIyJzrXZLDzPvAWuaCI6S7ubf3fxkeYE9SuchzkoIW+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFE7zH47tjItT1FyC0sbe/4aPt6CDn7QlPAZuJ+LbNHsAiAcsw+UR0qpngc9eAb4QYiAvkcqVErojPu7kqRZmbsIPA=="}],"unpackedSize":6226826},"main":"./dist/index.js","name":"@telebort/question-banks","type":"module","types":"./dist/index.d.ts","author":{"name":"Telebort"},"module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./cat":{"types":"./dist/cat/index.d.ts","import":"./dist/cat/index.js","require":"./dist/cat/index.cjs"},"./rubric":{"types":"./dist/rubric/index.d.ts","import":"./dist/rubric/index.js","require":"./dist/rubric/index.cjs"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./premium":{"types":"./dist/premium/index.d.ts","import":"./dist/premium/index.js","require":"./dist/premium/index.cjs"},"./schemas":{"types":"./dist/schemas/index.d.ts","import":"./dist/schemas/index.js","require":"./dist/schemas/index.cjs"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js","require":"./dist/knowledge/index.cjs"},"./validation":{"types":"./dist/validation/index.d.ts","import":"./dist/validation/index.js","require":"./dist/validation/index.cjs"},"./enrollment-data":{"types":"./dist/enrollment-data/index.d.ts","import":"./dist/enrollment-data/index.js","require":"./dist/enrollment-data/index.cjs"},"./irt-calibration":{"types":"./dist/irt-calibration/index.d.ts","import":"./dist/irt-calibration/index.js","require":"./dist/irt-calibration/index.cjs"}},"gitHead":"b3aeaa0e1b94dfec7839a2267ed4fd2f4b2052cf","license":"MIT","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","coverage":"vitest run --coverage","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest --watch","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build"},"version":"4.1.0","_npmUser":{"name":"kcw89","email":"mytelebort@gmail.com"},"homepage":"https://github.com/telebort/question-banks#readme","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"_npmVersion":"11.17.0","description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","directories":{},"maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"_nodeVersion":"26.5.0","dependencies":{"commander":"^12.0.0","compromise":"^14.14.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.22.4","tsup":"^8.0.1","vitest":"^1.0.0","vitepress":"^1.5.0","typescript":"^5.3.0","@types/node":"^20.10.0","@vitest/coverage-v8":"^1.0.0"},"peerDependencies":{"zod":"^3.22.0"},"optionalDependencies":{"@rollup/rollup-darwin-arm64":"^4.54.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/question-banks_4.1.0_1790219473068_0.899270849886963"}}},"time":{"created":"2025-12-26T06:30:33.885Z","modified":"2026-09-24T03:11:13.371Z","1.0.0":"2025-12-26T06:30:34.195Z","1.1.0":"2025-12-26T15:39:54.288Z","1.2.0":"2025-12-27T13:49:32.202Z","1.3.0":"2025-12-28T10:25:55.869Z","1.4.0":"2025-12-29T01:22:12.928Z","1.4.1":"2025-12-31T04:11:07.693Z","2.0.0":"2025-12-31T14:59:54.925Z","2.1.0":"2026-01-01T02:03:16.426Z","2.1.1":"2026-01-01T07:53:40.212Z","2.1.2":"2026-01-04T00:49:54.225Z","2.2.0":"2026-01-18T07:45:53.585Z","2.3.0":"2026-02-03T15:29:14.881Z","2.4.0":"2026-02-26T12:52:02.924Z","2.5.0":"2026-02-26T14:14:07.719Z","2.6.0":"2026-04-27T02:15:56.008Z","2.7.0":"2026-05-15T15:56:22.560Z","2.8.0":"2026-05-16T00:15:23.352Z","2.9.0":"2026-05-16T03:40:40.765Z","2.10.0":"2026-05-16T13:59:23.182Z","2.11.0":"2026-05-29T00:10:46.298Z","3.0.0":"2026-07-08T09:46:36.658Z","3.1.0":"2026-07-17T01:56:07.623Z","3.2.0":"2026-07-29T08:04:04.812Z","3.3.0":"2026-08-28T06:34:29.988Z","4.0.0":"2026-09-23T02:18:12.470Z","4.1.0":"2026-09-24T03:11:13.221Z"},"bugs":{"url":"https://github.com/telebort/question-banks/issues"},"author":{"name":"Telebort"},"license":"MIT","homepage":"https://github.com/telebort/question-banks#readme","keywords":["question-banks","assessment","education","telebort","zod","validation","grading"],"repository":{"url":"git+https://github.com/telebort/question-banks.git","type":"git"},"description":"Question Banks SDK with three-tier access: Free (schemas), Standard (validation), Premium (full access + grading)","maintainers":[{"name":"kcw89","email":"mytelebort@gmail.com"}],"readme":"# @telebort/question-banks\n\nQuestion Banks SDK for Telebort educational assessments. Provides Zod schemas, TypeScript types, public-stem quiz generation, v2.0 Knowledge Graph access, CAT (Computerized Adaptive Testing) orchestration, server-side grading, and rubric contracts.\n\n**v3.0.0** - Server contract for the public stem/private key architecture: public stems ship without answers, private key shards stay server-only, `gradeResponse()` grades selected answers, `createServerCAT()` wraps CAT for practice APIs, and `./knowledge` and `./rubric` are first-class subpath exports.\n\n---\n\n## Installation\n\n```bash\n# SDK + CLI (recommended)\nnpm install @telebort/question-banks zod\n\n# CLI only (no install required)\nnpx @telebort/question-banks <command>\n```\n\n---\n\n## Quick Start (3 Scenarios)\n\n### Scenario A: Validate Course Files (CLI)\n\nQuickly validate JSON files against schemas:\n\n```bash\n# Validate all course files in a directory\nnpx @telebort/question-banks validate ./data/courses/ --verbose\n\n# Show question bank statistics\nnpx @telebort/question-banks stats --data-dir ./data/courses/\n\n# Run guessability analysis (anti-guessing QA)\nnpx @telebort/question-banks score ./data/courses/ai-1.json\n```\n\n### Scenario B: Build a Quiz App (SDK)\n\nUse the factory function to create a fully-featured SDK instance:\n\n```typescript\nimport { createQuestionBanksSDK } from '@telebort/question-banks'\n\nconst sdk = createQuestionBanksSDK({\n  dataSource: {\n    async loadCourses() {\n      const res = await fetch('https://cdn.telebort.com/exit-tickets/v2.0/courses/CS1.json')\n      return [await res.json()]\n    }\n  }\n})\n\n// Generate a quiz\nconst quiz = await sdk.quiz.generateQuiz({ questionCount: 5 })\n\n// Check an answer with feedback\nconst result = await sdk.validate.checkAnswer('cs-1-l1-q1', 'B', 'formative')\n// { isCorrect: true, feedback: {...}, misconceptionId: null }\n```\n\n### Scenario C: Validate Data Structures (Schemas Only)\n\nImport just the Zod schemas for lightweight validation:\n\n```typescript\nimport { QuestionSchema, CourseSchema } from '@telebort/question-banks/schemas'\n\nconst result = QuestionSchema.safeParse(myQuestion)\nif (!result.success) {\n  console.error('Validation failed:', result.error.issues)\n}\n\n// TypeScript type inference\nimport type { Question, Course } from '@telebort/question-banks'\n```\n\n---\n\n## Entry Points\n\n| Import Path | Purpose | Use Case |\n|-------------|---------|----------|\n| `@telebort/question-banks` | Full SDK factory | Quiz apps, data access |\n| `@telebort/question-banks/schemas` | Zod schemas only | Lightweight validation |\n| `@telebort/question-banks/validation` | ValidationClient | Answer checking |\n| `@telebort/question-banks/premium` | PremiumClient (JWT) | Full API access |\n| `@telebort/question-banks/irt-calibration` | IRT calibration tools | Psychometric analysis |\n| `@telebort/question-banks/cat` | CAT engine | Adaptive testing |\n| `@telebort/question-banks/knowledge` | Knowledge Graph factories | Topic and taxonomy queries |\n| `@telebort/question-banks/rubric` | Rubric schemas and helpers | Native curriculum rubric validation |\n| `@telebort/question-banks/server` | Server-only grading and CAT facade | Practice APIs over private key shards |\n\n---\n\n## v3 Stem/Key Architecture\n\nv3 makes the three-tier model real at the API boundary:\n\n- **Public stems** are safe to send to clients. They include the question prompt, options, and metadata needed to render an item, but no `correctAnswer`, no `correctAnswerText`, no option `isCorrect`, and no misconception feedback that reveals the key.\n- **Private key shards** are server-only. Each entry is keyed by `questionId` and has `{ correctAnswer, correctAnswerText, irt }`. The key entry is required for grading and for CAT ability updates because the IRT calibration lives with the private key.\n- **Server grading** uses `gradeResponse(keyShardEntry, response)` from `@telebort/question-banks/server`. It returns `{ correct, correctAnswer, matched }`; `matched` is the normalized selected token set that intersects the key. Only return `correct` or server-approved feedback to untrusted clients.\n- **Server CAT** uses `createServerCAT(config)` from `@telebort/question-banks/server`. Its `step({ stemItems, keyShard, theta, responses })` call joins stems to private IRT, replays graded or raw responses through the existing CAT engine/EAP estimator, evaluates stopping rules, and returns `{ nextItemId, theta, se, done, reason }`.\n- **Rubrics** use the `@telebort/question-banks/rubric` export. This is separate from answer-key grading and validates weighted or banded rubric payloads for native curriculum workflows.\n\nConsumers pinned to `^2.6` must migrate to `3.x` before using v3 stem/key data. Code that previously relied on client-visible `correctAnswer`, `correctAnswerText`, `option.isCorrect`, or client-side `sdk.validate.checkAnswer()` must move grading behind a server boundary and call `gradeResponse()` with the private key shard.\n\n```typescript\nimport { createServerCAT, gradeResponse } from '@telebort/question-banks/server'\n\nconst result = gradeResponse(keyShard[questionId], { selectedAnswer: 'B' })\n\nconst cat = createServerCAT({\n  keyShard,\n  stoppingRules: { maxItems: 20, minItems: 5, seThreshold: 0.5 },\n})\n\nconst next = cat.step({\n  stemItems,\n  theta: session.theta,\n  responses: [{ questionId, correct: result.correct }],\n})\n```\n\n---\n\n## ⚠️ Migration Notice\n\nIf you're using the deprecated CLI package:\n\n```bash\n# Uninstall old CLI package\nnpm uninstall @telebort/question-banks-cli\n\n# Use the canonical package (CLI included)\nnpx @telebort/question-banks validate ./data/\n```\n\n## What's New in v3.0.0\n\n- **Public stem/private key split**: Public stems are answer-free; correct answers, answer-revealing feedback, and IRT keys remain server-only.\n- **Server-side grading and CAT**: The `./server` export provides private-key grading and server-facing adaptive testing helpers.\n- **Rubric contracts**: The `./rubric` export provides the ratified rubric schemas and validation helpers.\n\nThe Knowledge Graph module is now also a first-class `./knowledge` subpath export.\n\n## Architecture\n\nThe SDK provides public-stem access to question bank data via CDN plus server-only grading/CAT contracts:\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    SDK Access Patterns                       │\n├─────────────────────────────────────────────────────────────┤\n│                                                              │\n│  v1.x Compatibility (Course-based)                          │\n│  └── sdk.data.getCourse('CS1')                              │\n│                                                              │\n│  v2.0 Knowledge Graph (Topic-based)                         │\n│  ├── sdk.knowledge.getByTopic('algorithms/sorting')         │\n│  └── sdk.taxonomy.getDomains()                              │\n│                                                              │\n│  Premium API (JWT-authenticated)                             │\n│  └── PremiumClient with offline fallback                    │\n│                                                              │\n└─────────────────────────────────────────────────────────────┘\n```\n\nPublic stem rendering can run client-side. Grading, correct-answer access, and CAT response updates must run server-side with private key shards.\n\n---\n\n## Quick Start (CDN Mode)\n\nFetch questions from CDN for automatic updates:\n\n```typescript\nimport { createQuestionBanksSDK } from '@telebort/question-banks'\n\nconst CDN_BASE = 'https://cdn.telebort.com/exit-tickets/v2.0/courses'\n\nconst sdk = createQuestionBanksSDK({\n  dataSource: {\n    async loadCourses() {\n      const codes = ['AI1', 'M1', 'W1', 'CS1']\n      const courses = await Promise.all(\n        codes.map(code => fetch(`${CDN_BASE}/${code}.json`).then(r => r.json()))\n      )\n      return courses\n    }\n  }\n})\n\n// Generate a quiz\nconst quiz = await sdk.quiz.generateQuiz({ questionCount: 5 })\n\n// Check an answer with feedback\nconst result = await sdk.validate.checkAnswer('ai-1-l1-q1', 'B', 'formative')\n// { isCorrect: true, feedback: {...}, misconceptionId: null }\n```\n\n---\n\n## v2.0 Knowledge Graph\n\nAccess questions by **topic** instead of course. Query across curricula with the 4-level taxonomy.\n\n> **Full Guide**: See [KNOWLEDGE-GRAPH.md](./KNOWLEDGE-GRAPH.md) for complete API reference and examples.\n\n### Taxonomy Structure\n\n```\nDomain (L1)          Strand (L2)          Topic (L3)\n    │                    │                    │\ncomputer-science ──→ algorithms ──────→ sorting\n                     data-structures ──→ arrays, trees, graphs\n\nweb-development ──→ javascript ───────→ arrow-functions, promises\n                     html-css ─────────→ flexbox, grid\n```\n\n**6 Domains**: computer-science, artificial-intelligence, web-development, mathematics, computational-thinking, mobile-development\n\n### Basic Usage\n\n```typescript\nimport { createKnowledgeModule, createTaxonomyModule } from '@telebort/question-banks'\n\nconst CDN_BASE = 'https://cdn.telebort.com'\n\n// Create modules\nconst knowledge = createKnowledgeModule({ cdnBase: CDN_BASE })\nconst taxonomy = createTaxonomyModule({ cdnBase: CDN_BASE })\n\n// Get questions by topic path\nconst sorting = await knowledge.getByTopic('computer-science/algorithms/sorting')\nconsole.log(`${sorting.length} sorting questions`)  // Returns TopicQuestionRef[]\n\n// Browse taxonomy\nconst domains = await taxonomy.getDomains()\nconst strands = await taxonomy.getStrands('computer-science')\n```\n\n### Advanced Search with Filters\n\n```typescript\n// Find medium-difficulty sorting questions from CS1\nconst results = await knowledge.search({\n  domain: 'computer-science',\n  strand: 'algorithms',\n  topic: 'sorting',\n  difficulty: 'medium',\n  courseCode: 'CS1',\n  limit: 10,\n  offset: 0\n})\n\n// Paginate through all web-dev questions\nlet page = await knowledge.search({ domain: 'web-development', limit: 50, offset: 0 })\n```\n\n### Error Handling with Debug Logging\n\n```typescript\nconst knowledge = createKnowledgeModule({\n  cdnBase: CDN_BASE,\n  cacheEnabled: true,           // Enable caching\n  debug: true,                  // Log to console\n  onError: (error, context) => {\n    console.error(`[${context}]`, error.message)\n    // Send to monitoring: Sentry.captureException(error)\n  }\n})\n```\n\n### v2.0 CDN Structure\n\n```\n/exit-tickets/v2.0/\n├── courses/{CODE}.json                      # Course-based (v1.x compatible)\n├── by-topic/{domain}/{strand}/{topic}.json  # Topic-based indexes\n├── taxonomy/topics.json                     # 4-level topic tree\n└── master/\n    ├── knowledge-bank-index.json            # Shard metadata (50KB)\n    └── shards/shard-{00001-00026}.json      # 10K questions each (~20MB)\n```\n\n**Total:** 1,449,830+ questions in 26 CDN shards for global delivery.\n\n---\n\n## CDN Endpoints\n\nBase URL: `https://cdn.telebort.com`\n\n| Endpoint | Size | Content |\n|----------|------|---------|\n| `/exit-tickets/v2.0/courses/{CODE}.json` | ~400KB | Single course |\n| `/exit-tickets/v2.0/taxonomy/topics.json` | ~49KB | 4-level taxonomy |\n| `/exit-tickets/v2.0/master/knowledge-bank-index.json` | ~7KB | Shard metadata |\n| `/exit-tickets/v2.0/master/shards/shard-{00001-00026}.json` | ~20MB | 10K questions each |\n\n**Available Courses:** AI1, AI2, AI25, AI3, M1, M2, M3, W1, W2, W3, W35, W4, F1, F2, JC, BBW, BBP, BBD, BBAI, CS1, CS2, CS3, CS4\n\n---\n\n## Static Mode (Bundled JSON)\n\nFor offline-first apps, bundle the JSON with your build:\n\n```typescript\nimport { createQuestionBanksSDK } from '@telebort/question-banks'\nimport coursesData from './data/courses.json'\n\nconst sdk = createQuestionBanksSDK({\n  dataSource: {\n    async loadCourses() {\n      return coursesData.courses\n    }\n  }\n})\n\n// All SDK features work offline\nconst courses = await sdk.data.getCourses()\nconst quiz = await sdk.quiz.generateQuiz({ questionCount: 5 })\nconst result = await sdk.validate.checkAnswer('ai-1-l1-q1', 'B', 'formative')\n```\n\n---\n\n## Premium Client (JWT-Authenticated)\n\nFor full API access with offline fallback (v1.3.0+):\n\n```typescript\nimport { PremiumClient } from '@telebort/question-banks/premium'\n\nconst client = new PremiumClient({\n  token: 'your-jwt-token',\n\n  // Offline support (v1.3.0)\n  offlineFallback: true,   // Use cache when network fails\n  cacheTTL: 300000,        // 5 minutes cache TTL\n\n  // Rate limiting (built-in: 10 req/s, burst 20)\n  timeout: 30000,          // Request timeout\n\n  // Debug logging\n  logger: (msg, level) => console.log(`[${level}] ${msg}`),\n})\n\n// Preload courses for offline use\nawait client.preloadForOffline(['cs-1', 'cs-2', 'ai-1'])\n\n// Fetch questions (uses cache if offline)\nconst { questions, total, hasMore } = await client.getQuestions({\n  courseId: 'cs-1',\n  difficulty: 'medium',\n  limit: 10,\n})\n\n// Grade an assessment\nconst result = await client.gradeAssessment({\n  assessmentId: 'uuid-here',\n  courseId: 'cs-1',\n  submittedAt: new Date().toISOString(),\n  responses: [\n    { questionId: 'q1', selectedAnswer: 'A' },\n    { questionId: 'q2', selectedAnswer: 'B' },\n  ]\n})\n\n// Cache management\nconst stats = client.getCacheStats()\nconsole.log(`Cached entries: ${stats.entries}`)\nclient.clearCache()\n```\n\n---\n\n## SDK API Reference\n\nThe SDK is organized into focused modules. Each module handles a specific domain:\n\n| Module | Purpose | Key Methods |\n|--------|---------|-------------|\n| `sdk.data` | Data access | `getCourses()`, `getCourse()`, `getQuestion()` |\n| `sdk.quiz` | Quiz generation | `generateQuiz()`, `getLessonQuiz()` |\n| `sdk.validate` | Answer checking | `checkAnswer()` |\n| `sdk.query` | Filtering | `filterQuestions()`, `getRandomQuestions()` |\n| `sdk.search` | Full-text search | `search()`, `searchByTags()` |\n| `sdk.analytics` | Statistics | `getStatistics()`, `getCourseStatistics()` |\n| `sdk.knowledge` | v2.0 Knowledge Graph | `getByTopic()`, `getByDomain()`, `search()` |\n| `sdk.taxonomy` | Topic taxonomy | `getDomains()`, `getTopics()` |\n\n### Common Workflows\n\n**Build a quiz from a specific course:**\n```typescript\nconst quiz = await sdk.quiz.generateQuiz({\n  courseId: 'cs-1',\n  questionCount: 10,\n  difficulty: 'medium'\n})\n```\n\n**Check an answer with feedback:**\n```typescript\nconst result = await sdk.validate.checkAnswer('cs-1-l1-q1', 'B', 'formative')\n// Returns: { isCorrect, feedback, misconceptionId }\n```\n\n**Search by topic (v2.0 Knowledge Graph):**\n```typescript\nconst questions = await sdk.knowledge.getByTopic('computer-science/algorithms/sorting')\n```\n\n**Get course statistics:**\n```typescript\nconst stats = await sdk.analytics.getCourseStatistics('ai-1')\n// Returns: { totalQuestions, byDifficulty, byType, ... }\n```\n\n---\n\n## SDK Interface (TypeScript)\n\n```typescript\ninterface QuestionBanksSDK {\n  // v1.x Course-based access\n  data: {\n    getCourses(): Promise<Course[]>\n    getCourse(courseId: string): Promise<Course | null>\n    getLesson(courseId: string, lessonNumber: number): Promise<Lesson | null>\n    getQuestion(questionId: string): Promise<Question | null>\n    getAllQuestions(): Promise<Question[]>\n  }\n\n  query: {\n    filterQuestions(filters: QuestionFilters): Promise<QueryResult<Question>>\n    getRandomQuestions(count: number, filters?: QuestionFilters): Promise<Question[]>\n  }\n\n  quiz: {\n    generateQuiz(criteria: QuizCriteria): Promise<{ questions: Question[]; metadata: object }>\n    getLessonQuiz(courseId: string, lessonNumber: number): Promise<Question[]>\n  }\n\n  search: {\n    search(options: SearchOptions): Promise<QueryResult<Question>>\n    searchByTags(tags: string[], matchAll?: boolean): Promise<Question[]>\n  }\n\n  analytics: {\n    getStatistics(): Promise<Statistics>\n    getCourseStatistics(courseId: string): Promise<Statistics>\n  }\n\n  validate: {\n    checkAnswer(questionId: string, answer: string, mode: 'formative' | 'summative'): Promise<AnswerResult>\n  }\n\n  // v2.0 Topic-based access (NEW)\n  knowledge: {\n    getByTopic(topicPath: string): Promise<TopicIndex>\n    getByDomain(domainId: string): Promise<Question[]>\n    search(filters: KnowledgeFilters): Promise<Question[]>\n  }\n\n  taxonomy: {\n    getDomains(): Promise<string[]>\n    getTopics(): Promise<TaxonomyTree>\n  }\n}\n```\n\n---\n\n## Zod Schemas (Free Validation)\n\nImport Zod schemas for offline validation:\n\n```typescript\nimport { QuestionSchema, CourseSchema } from '@telebort/question-banks/schemas'\nimport { z } from 'zod'\n\n// Validate a question\nconst result = QuestionSchema.safeParse(myQuestion)\nif (!result.success) {\n  console.error(result.error.issues)\n}\n\n// Type inference\ntype Question = z.infer<typeof QuestionSchema>\n```\n\n### Available Schemas\n\n```typescript\n// Question schemas\nQuestionSchema          // Full question with v1.1 enhancements\nOptionSchema            // Answer option with misconception tracking\nFeedbackSchema          // Structured feedback (short/detailed/socraticHint)\n\n// Course schemas\nCourseSchema            // Course with lessons and questions\nLessonSchema            // Lesson with questions\n\n// Assessment schemas\nAssessmentSubmissionSchema  // User assessment submission\nGradedAssessmentSchema      // Graded result with misconception analysis\n```\n\n---\n\n## CLI Reference\n\nThe CLI provides validation, statistics, and QA tools. Use via npx (no install) or globally:\n\n```bash\nnpx @telebort/question-banks <command> [options]\n```\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `validate <path>` | Validate JSON files against schemas |\n| `stats` | Show question bank statistics |\n| `quiz` | Generate sample quizzes |\n| `score` | Guessability analysis (anti-guessing QA) |\n\n### `validate` - Schema Validation\n\n```bash\n# Validate a single file\nnpx @telebort/question-banks validate ./data/courses/ai-1.json\n\n# Validate all files in a directory\nnpx @telebort/question-banks validate ./data/courses/\n\n# Verbose output with all errors\nnpx @telebort/question-banks validate ./data/courses/ --verbose\n```\n\n### `stats` - Question Bank Statistics\n\n```bash\n# Show aggregate statistics across all courses\nnpx @telebort/question-banks stats --data-dir ./data/courses/\n\n# Statistics for a specific course\nnpx @telebort/question-banks stats --course ai-1 --data-dir ./data/courses/\n```\n\n### `quiz` - Sample Quiz Generation\n\n```bash\n# Generate 5 random questions\nnpx @telebort/question-banks quiz --data-dir ./data/courses/\n\n# Generate 10 questions from a specific course\nnpx @telebort/question-banks quiz --course ai-1 --count 10 --data-dir ./data/courses/\n\n# Filter by difficulty and show correct answers\nnpx @telebort/question-banks quiz --difficulty hard --show-answers --data-dir ./data/courses/\n```\n\n### `score` - Guessability Analysis\n\nRun psychometric QA analysis to detect testwiseness vulnerabilities:\n\n```bash\n# Analyze a single course file\nnpx @telebort/question-banks score ./data/courses/ai-1.json\n\n# Analyze with detailed output\nnpx @telebort/question-banks score ./data/courses/ --verbose\n```\n\n**Output includes:**\n- Guessability score (0-100, lower is better)\n- Distractor quality metrics\n- Option length bias detection\n- Grammatical cue warnings\n\n---\n\n## Question Schema (v1.1)\n\nQuestions include v1.1 enhancements for misconception tracking:\n\n```typescript\ninterface Question {\n  questionId: string           // \"ai-1-l1-q1\"\n  globalId: string             // \"exit-ticket-0351\"\n  questionType: QuestionType   // vocabulary, code_understanding, etc.\n  questionArchetype?: string   // vocabulary, trace, bebras, blockmodel\n\n  prompt: string\n  hasCodeBlock: boolean\n  codeLanguage: string | null\n  codeContent: string | null\n\n  // v1.1: Misconception targeting\n  misconceptionTargets?: string[]\n\n  options: Option[]            // 4 options with misconception feedback\n  correctAnswer: 'A' | 'B' | 'C' | 'D'\n\n  metadata: {\n    difficulty: 'easy' | 'medium' | 'hard' | 'challenge'\n    bloomsTaxonomy: 'remember' | 'understand' | 'apply' | ...\n    tags: string[]\n  }\n}\n\ninterface Option {\n  key: 'A' | 'B' | 'C' | 'D'\n  text: string\n  isCorrect: boolean\n\n  // v1.1: Misconception feedback\n  misconceptionId?: string     // \"INPUT_PROMPT_VS_OUTPUT\"\n  feedback?: {\n    short: string              // \"Not quite! That's the prompt.\"\n    detailed: string           // Full explanation\n    socraticHint?: string      // \"Where does the program display its result?\"\n  }\n}\n```\n\n---\n\n## TypeScript Support\n\nAll types are inferred from Zod schemas:\n\n```typescript\nimport type {\n  Question,\n  Course,\n  AssessmentSubmission,\n  GradedAssessment\n} from '@telebort/question-banks'\n```\n\n---\n\n## License\n\nMIT\n\n---\n\n## Related Documentation\n\n- [ARCHITECTURE.md](./ARCHITECTURE.md) - Technical deep-dive (CAT, IRT, CDN)\n- [KNOWLEDGE-GRAPH.md](./KNOWLEDGE-GRAPH.md) - Topic-based query guide\n- [../ECOSYSTEM-OVERVIEW.md](../ECOSYSTEM-OVERVIEW.md) - High-level ecosystem overview\n\n---\n\n## Support\n\n- Issues: [GitHub Issues](https://github.com/telebort/question-banks/issues)\n","readmeFilename":"README.md"}