{"_id":"@crimson-education/sdk","_rev":"46-e2bf5325cca48d19170416dda59e7c39","name":"@crimson-education/sdk","dist-tags":{"feat":"0.3.23","debug":"0.3.37-regional-template","latest":"0.3.39"},"versions":{"0.2.0":{"name":"@crimson-education/sdk","version":"0.2.0","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.0","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"254d7e365e807e6bbb5acbeb6d32151c2937ff0b","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.0.tgz","fileCount":70,"integrity":"sha512-vpEQasPSSVK0EKg/e1y5hIcfC3BsJ56gQl6iOljlfaV79ZgWIiuhrw5Ser8+K0V/R65eRpsllAw3/IdUpMDtIQ==","signatures":[{"sig":"MEYCIQDKkYXjYsZrZIGVUTb0XUdFfcrLW9u9/Rfn7oqlwNKuGgIhAPsXPrgAi7GNOFDledp4ITmfn/TMXjzdDjKflM7cB4rd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201194},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"e857af1c4cb15df9a475ed83cbd1f3b74cca1a45","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","typescript":"^5.0.0","@types/node":"^24.10.1"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1767100307258_0.2783258082781821","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@crimson-education/sdk","version":"0.2.1","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.1","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"19f3700d69e2336ea1f26236e99a7f8a31aa41a7","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.1.tgz","fileCount":70,"integrity":"sha512-n7TWQFTo117RnJwnW1hBpRYiBjYMJ95DKl+qradcJxZ2n362Hv+/ZDqTGxdRW/JjGcC6eSMuiHbUaqkmrj5WxA==","signatures":[{"sig":"MEUCIQDDhaDWIMSz5SRiRIJmDaXfRSBzIS2u/5R3TW+Ayf2xnQIgE14cOhS0mvciq0DNyDqGMdU9ds4R6gAchIkItVEAevU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201380},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"be6f65db654e03b949828d61ca49994510823e71","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1767144448110_0.3837158651581911","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@crimson-education/sdk","version":"0.2.2","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.2","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"95c6c0de45c67f4327fe704fea87d75d62399628","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.2.tgz","fileCount":70,"integrity":"sha512-sMeR0i5+Jra8im7iL78/Ng1FWe6p7tKCIlFNCm6SQEMY5VyETGKnjVzq95B6XKxeU+T+mYitOmoiC84tKzAETw==","signatures":[{"sig":"MEUCIGK6ArsJyh+W9IFgNCm9i3rzsPT1XVV5TVsPlE2wmsmzAiEAls5JIwVu0makhtYGvdd5aW4XxKUkqhOlIspds0UDoZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211196},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"d70831b740a08f1a7295051968c021f6558a9e52","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.2_1767506836289_0.7886498218120168","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@crimson-education/sdk","version":"0.2.3","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.3","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"f88ef7dce64aa9db2f07bbd6218a3b34494300dc","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.3.tgz","fileCount":70,"integrity":"sha512-l8cjifpuYGjpyyvcpoLHOxWp2bT396tluuVaangfmVuiPG88F7Sr5xRKwx2jddZgdcaBwTNB3Oy4TP8zwha/4w==","signatures":[{"sig":"MEUCIQD3B5atraMweEMYl+109Id+81vWiTI48GihwaxBEomwFAIgXcTxbZC0DhPjgwVEFzYFPs18cj7l/bg1kL7+FOnXX00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211282},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"a1b2199a79a3d043c76c3add94b717db85104845","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.3_1767703662486_0.7893879148207992","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@crimson-education/sdk","version":"0.2.4","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.4","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"63dd4e67ee4281b245ef2f206a3076823623f793","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.4.tgz","fileCount":70,"integrity":"sha512-SeKJrCWfN0eklNff5rDQKV64DE1cMfIgHsWXOUe0K3Y4L48iBZ36EtfCmfcjX1uOEyHMMl62076KJhkAlctK5A==","signatures":[{"sig":"MEQCIEBATZjQkiaSBU7XhqnDk6JKNg/k7IqZGSMV5X9fxKl5AiBk9LzR18LNBh2zb+GFeVZkwOFLRR+5ICo2Xom39BMTEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216275},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"5994f4d53d28c530ccd1d683eb4fc253a24de00b","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.4_1767866106824_0.08684740969318216","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@crimson-education/sdk","version":"0.2.5","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.5","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"f8aa4efaafa539f0923cb525ee97eacadc8662f9","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.5.tgz","fileCount":70,"integrity":"sha512-zQPRIgD2mW/GBX9TCHvBnVZONW+xxzkyt107T1rjXCRHvEWE1WrQ8RIGOgxrStkYHwbm4h/hHLJh5NN1g60CXg==","signatures":[{"sig":"MEQCIHr5q3c4woiI8REQDqTUav/o91dJ78WMZd5pPn1Gp/LUAiBDqkmMGHiA99SUvPfmjiHVdW4qZAuY3n5NxGVWWJB9vA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235947},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"165edadb3dd1d8ac2b05666e66026e1d1e0e2e5f","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.5_1768370292136_0.3992723034624819","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@crimson-education/sdk","version":"0.2.6","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.2.6","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"8c4cd8d35cff8062aa73f8ef03eeee6ab0cfd4b7","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.2.6.tgz","fileCount":74,"integrity":"sha512-1xPFnQbqMmElankmfG4CVo0Vz42vtHgC5jnrAjU78Rb2aPwVkLHSSUWgv+DNEIMkX7bCZDKHz4fQkSDa1SHv2Q==","signatures":[{"sig":"MEQCIDETazbYaKimScSaGmIHq5M9UeU60tGUZo6RyBbLYT3LAiBegE0Uk87k9AsMO72UVUd2QhgBL6Pc6LHLselen1w6Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262276},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"1a7319297c3b3b99c19898cc5ae4fab4df32cbbd","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.6_1768566144899_0.17551129385340825","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@crimson-education/sdk","version":"0.3.0","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.0","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"2ac8cb5e3053ad15c8fc4d0ae109ad671b7b932f","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.0.tgz","fileCount":78,"integrity":"sha512-Ybp9cGXuYyx0Jjlz+4tAExvokkwMF2U2jnkoFIGJw9iZYTrvX39ghpKe7vcsbKD3vccgx0SLkq4XyOpEms36CQ==","signatures":[{"sig":"MEUCIQCvCdOsUpI5c1CZCQc6JCTCukkTPzPUelQ6OCCCWae5owIgVjQusOen6z8626K4/YUxJtJivOFa1sdCis2ZoGs2uJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275864},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"b1702bc8c82029ea7b48c13fbad9fb488d969f47","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1769153360347_0.43868730022962077","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@crimson-education/sdk","version":"0.3.1","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.1","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"5e15fa9471fef34c85780cccf94b1f7ee5377c7a","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.1.tgz","fileCount":78,"integrity":"sha512-H8PMV97oC43TRhjh0Zz6dCN9SoWzOigGkCbP9plcUUvXGGuWd5XyyMQxLbngK0wQ4PcnBwi5THcHd1dBLFmQYQ==","signatures":[{"sig":"MEYCIQC8AZToI+r+viiQtEAZNSf4V9BkYqn9uhDxShUZF0/+wAIhANkZMa6vL6aPqvBZJ0UBd2DYAbUxukmYTNa4Xd9UyhA2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282700},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"577ba435c9de2a72850891ebfef22cf676beb93e","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.1_1769506164870_0.5240406749248268","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@crimson-education/sdk","version":"0.3.2","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.2","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"dfc3236b1fe41e621fdd3d912df3917d2588e19b","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.2.tgz","fileCount":78,"integrity":"sha512-EK9+dDXf13EvJ5ztQyrrFCGLI3aD96HNywmLVePRMII5npd0CNFWKkeaxXBRgfp2SncNXrqjPqNUFIwrS7MkWA==","signatures":[{"sig":"MEYCIQDuZQfeYz/ovDPM41czzNK4nfDxkn+rnIHZ1pac3u5WxwIhAOUGDvhmEZFp2HYIXvENtUq9QIb31Vfw0jXc+RCEzMYz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285268},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"fa8e6079195e9879f45207d9feed3d39e3a5f742","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.2_1769514745741_0.472647868152138","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@crimson-education/sdk","version":"0.3.4","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.4","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"5efc83efa2a24985d4db3c0339678f24c2b5f310","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.4.tgz","fileCount":78,"integrity":"sha512-hfFh0dby1syO6+MiYQ21k9hDdLAMQWTTFvjaltt9BZyR2h+TpbYeP6ju/zb/w5nY/ZZBAH5yU0C4cv3T+lpzkA==","signatures":[{"sig":"MEUCIAjesqyvR6BpZNRArLhjXgZeT5Xne1SnT20VRPlI8EX5AiEAro4S8ZDHaQhRTQpAR/8o/QpFDCw/hZPZUXuBo0xMKN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291408},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"985ce7a061b09b09aeb41cf0d54e3c46f5d088d8","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.4_1770617384856_0.635407218068528","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@crimson-education/sdk","version":"0.3.5","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.5","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"a8d6b9ceb340611c7c1e04034879dfc881ad8b07","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.5.tgz","fileCount":78,"integrity":"sha512-+Xmj74v6GyogLK0hKyhG2XfBlvwY06cx4E7F/fmlIoL88hyUM+Zs8BT2lEpezKUizzjKbF03gijR5Gm0CAoQog==","signatures":[{"sig":"MEUCIQDHPl61QmtJPoZQ7MT5idYJVFJRdfxtj3iT5NTUnl6CFAIgfx/xg79o9ZPDMcU1+N+vyj4wyVnyRGxrVu2C0A/Fw3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294157},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"86f6d2378cbab19b3deee8d059e377042dc7fc5a","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.5_1770686318184_0.2820118963106433","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@crimson-education/sdk","version":"0.3.6","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.6","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"f514390535576401e1a6620896ae6fffbc40591d","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.6.tgz","fileCount":78,"integrity":"sha512-pi07aI04PViwsQdw7jqWZC+dSHw7ZX0kDCNMJh1VjMrG6nCg7ip7Emt3xZ/xsWGBIYUDKmTRGI+GOyIxQ9D/uw==","signatures":[{"sig":"MEUCIQC0GhsaMbVbbrVsyYC4XwsbB6V+WHmIZ5PKTfk8a42IswIgHExv+DbvuJ5oB8Vq/OqftbSp3gSrC+YdMYJqFffJzwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293924},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"19d65f3cfecee85d733554ec63cb3002bba1d1ca","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.6_1770773625649_0.6490772531275544","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@crimson-education/sdk","version":"0.3.7","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.7","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"8a7cdfbffe41fbdee029edf41acc74e5669e2fc9","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.7.tgz","fileCount":78,"integrity":"sha512-poaeQaYPHgIthvhYho7sx4IBbtLZgylTJ1oc5mwE+7eqcQ5ya8DAQaMFZk6tYt5bN5TBZiZ4Le6kooXEFb6B+g==","signatures":[{"sig":"MEUCIQDRcTz8wJ37w9ruoQy+VoIm9FzLTEyJfbhnAw+tdVAlXQIgavjLDo8v9q7FTCDmLsJ+7qKtx8rWmkTxVro+rzSNHvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294094},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"19320f11847284d1d7787e40a0b36412b6ea3d1c","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.7_1770802450380_0.39482923633782274","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@crimson-education/sdk","version":"0.3.8","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.8","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"b9fb96bb892f3388ac20d38555afe85f64c220c5","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.8.tgz","fileCount":78,"integrity":"sha512-hE/LUnbL8Fq9QqinBAynARvqukKCBKsl8HqAX0+pfDf4mw8K1eD+tka+6mUigQSls5aAK9+G8v4g2CND2rUsFA==","signatures":[{"sig":"MEYCIQDr+gUgl1XQh+990wIMpLt7IZ4Gdz+R7jYYPQPyw7QMCgIhALYpAWSNzlrgnUEoPdhnVfc/VWU+djGd/+D4rXvhznlg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297941},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"c415a93ec0bb93ec66d3aa71a8901cc55b293aef","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.8_1772075632410_0.015819392449553993","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@crimson-education/sdk","version":"0.3.9","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.9","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"772e571427460f9df6d7d7f89f9d3443915902d2","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.9.tgz","fileCount":78,"integrity":"sha512-6PFnGbYlgVm5ez0A50Grus/chZ0b5gOoQt7S2rbXxclU61+Wv+ChdNhaeSOGCZwJQNf6RwdUFseHfHDpdz6QHw==","signatures":[{"sig":"MEYCIQCt6F3OMMzLHJvBJTDEFfUOMX49KwFAT5ksFCl1VTtrzAIhAM3uiHFYa9LYckJKvoJuT7F/2AGfDdzK4S59AQxecKUk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298500},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"1dc2e3be7d3990874786d3b87d8eb82e302bd352","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.9_1772079412169_0.2308717653589698","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@crimson-education/sdk","version":"0.3.10","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.10","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"fd11a3961f186ac5d41f86469cdfa26822dc3501","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.10.tgz","fileCount":78,"integrity":"sha512-IQKvBEAz2m7IFohPtoHff6wJZnWURbT+Hg+F/OqDNwYfaC/A2kNTCTasZXIuTZxL0dqyi2oOiwXpzZjBvB/f3A==","signatures":[{"sig":"MEQCID+IWXE70zlOqv+yMpLuo69CELw6BgNZ6EoUT1Bds0qEAiAcVRzzAXE8Up/7rAZCWmr0GXQVFd81w1y+GKMEAiDX6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298531},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"10ea9139898bc9ea59a04a34f8f4610d7393ab96","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.10_1772081268816_0.651939805192846","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@crimson-education/sdk","version":"0.3.11","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.11","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"c1ebae985cbe1aab13c1c137d59b405f8e0083c7","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.11.tgz","fileCount":78,"integrity":"sha512-szW0/RFwtinu2nx6GQ4mvXsmFiXy+xIi7yYL7M//vbu231Hp425lr8E5MH6jwc/v1CI+1G5i6cyIZWCEeQaJsw==","signatures":[{"sig":"MEQCIEvf6AXkRB6Fi7IUGDDUwl/NiuSqEsild/3+nr/aGdSVAiAyRpdkNhpC3dGCwkYdE+CcUrJvf1OHx2AVz5iB5C7R0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298886},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"4d6bccce1f1351d7642e1d9462c24135b8c5bca2","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.11_1772161333004_0.5992792002323368","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@crimson-education/sdk","version":"0.3.12","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.12","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"bcc1aa7ebd059b89291da19a5436526c03028c99","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.12.tgz","fileCount":82,"integrity":"sha512-AHN2mslEN5OOfFOAzZUFwloKeeFzcU4sESA4L1mwhIsbUukeTmM5x7DCSuaGas6odWGFz0C6JQ+ou6cwlE/9VA==","signatures":[{"sig":"MEYCIQDv4XcFc2+uRKpSLmYuHePmDVDY58DF6ij4hwHLFQ41wwIhALk3M1CkIwbg1/55yZxRpSID3FRlAOzavPfPkaVhciH/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329028},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"98c44e294b97ecfb8de85eb97c29b4073fd99e56","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.12_1773725431723_0.18169152348187523","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@crimson-education/sdk","version":"0.3.13","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.13","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"568170534ca12bd66e3c538e404f7d939f810b2b","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.13.tgz","fileCount":82,"integrity":"sha512-h3dV0Km8LIIUGuf0FnYAZp059IVrwLI0dCis5UkjLmMbu0JRec2RNLyPTddeHHAITvLBSey1cKVuphTcm0A56A==","signatures":[{"sig":"MEQCIGpwIZpFsFWGzE5M3C8alhQ3Q1r7zF2n91UkCo1QQVFEAiB8HjZVpB1hIEpk5Lp7jiyCgM0VjmmxAYMgoPizGJIFZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331915},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"885f8ea07a4ae83368c09bf47a80db97631add2b","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.13_1773802111330_0.761168369501785","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"@crimson-education/sdk","version":"0.3.14","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.14","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"8460d17bf3366ad7b91147963eb92140b3ba088e","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.14.tgz","fileCount":82,"integrity":"sha512-VZMT1Hd2cXrtnJzasBAmC/wWxZsvl1BrLlPzXQLXOsh0DqX3ZCVCtZeNRGICwD5VpXfqViU7IQxiwSh1AHJSPw==","signatures":[{"sig":"MEUCIQDq06oW3IZ9ybjMEcpk0UbH3x0Op200KRbjv/AEmswdSwIgIFUhuUwkrBcx59+VdHewhLilXZvF+MnAAX+dnDHsfqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331910},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"7d457dc6c35b8dfbff767fcd627c2c9859ce824d","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.14_1773818042239_0.19601522272320282","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"@crimson-education/sdk","version":"0.3.15","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.15","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"997ab7109c834d51846f71eff9c437993e04c636","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.15.tgz","fileCount":82,"integrity":"sha512-IHGC5DZ9Zyng7H4B+j0zaVyZ6tHD++uQylgANeB2uTVBUciUEcgwzpw5EkMSvOrLIr+B4YHXfmxKRhucM+z+Uw==","signatures":[{"sig":"MEQCIApsGDX1hf9HBoIcvjQAfSTOGsL8grjlJeJBPhBATj3MAiA5xayhtvyUeQvBMXYJodiKK9qu42jZYddCynLm43XRtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332083},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"f7e58c26919d3e48d307c6d005b0f9f3184126ed","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.15_1773820488830_0.2588805713011497","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"@crimson-education/sdk","version":"0.3.16","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.16","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"b71522c1916c41b738ad184d84c6a9b527b31aba","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.16.tgz","fileCount":82,"integrity":"sha512-Yx74/1XaeUX0Ea5A5mv849qkQK+2Z0USsFFyQBQIbRm6gpT45VtfdJmpZVaUkUXeJ5MoEpko1X4wu3PO8XQpgQ==","signatures":[{"sig":"MEUCIEYEY/wC3WDs5NBFK+5GdhmH93ZjqnELFOspOSXcPs4kAiEArCWYEcyepYvr78H28garn0AUwaHhOUkdLvpS2c6EZVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335682},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"8b632f919ace714d02ee664648092444814f0c15","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.16_1773890479505_0.150316082686466","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"@crimson-education/sdk","version":"0.3.17","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.17","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"18605d2a9b8aa711eb4c2fbe8bb643358b62f8d3","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.17.tgz","fileCount":82,"integrity":"sha512-pvETv8VoBE7MN1uw/unBWL5J6yB0Ix5X4wqrzLNwq5ZFg9CjF7G7sBTthADoq4o+pDpUpGZ3S/LkbTmcTrCb8A==","signatures":[{"sig":"MEUCIC6Pjq7GwPirf7n7tRl1ZTF2x1NzsEeiTRKHAqs3yn3HAiEAsLmA921gUy9a1VuMUaAwIu007PseplWcmazQx59ByGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332627},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"8a7685b8ab8da73eb1dff0f757e16b6488bb1ece","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.17_1774351544957_0.6983491861781375","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"@crimson-education/sdk","version":"0.3.18","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.18","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"ffb3084eeb21fc9d0f176823ff3e213be01e44dc","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.18.tgz","fileCount":82,"integrity":"sha512-4NYW6xlBsYyJ+0XNF4aZ+zY0PEz8FEDkADfwJbd0xYgiiRqNp9aKSIQ0/DrmiVOjngkuUAgA3ES8eLJ+ObgnuQ==","signatures":[{"sig":"MEQCIFIBzNbqdeQUdGEed4MPUVla6YS7Jj+tftq30+ztYHYsAiBb1yXncHavCZ/N29aJRHoTmSsrt2kzYRucyGzOLKxz9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336226},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"7c172a06127ea5c68a24c9b0b5a26d9a45869555","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.18_1774351774596_0.13114062988194686","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"@crimson-education/sdk","version":"0.3.19","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.19","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"286e2d65f1d39b94a2ab54ec9a7245d8fb0030b5","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.19.tgz","fileCount":82,"integrity":"sha512-WOU8w7JrlF9q//VcjwdhSQgVoCBPl12Ul8jzepLbte4OR6aZVj4yVUJSdR9l1HdqBSjkI3T9eIOIB6aAawe5Qw==","signatures":[{"sig":"MEYCIQCBi9Zb/6XNbpyI14PVoER5Ntb5PgB/TEunwHAsPOGpJgIhAMWchLO6NU6HVR576rcPeT5Wq6zLGeuHwjtlNGnlc6Eu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332120},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"61c52882e1b943a5d72bb86114456ed016d42777","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.19_1774423188936_0.16865143516877246","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"@crimson-education/sdk","version":"0.3.20","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.20","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"73f489aa5e5f04c2b8bb6010e49f385c0ae968c5","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.20.tgz","fileCount":82,"integrity":"sha512-mdgRArsvXQrbPE9TdkarM+oSLs7fJNrfkGirgx35wmcFKMQMTyQJRvqnxiO/abdgyazBy/RcipmBrmAY6U0ldA==","signatures":[{"sig":"MEUCIEv/rJdvaa7Q2h7htkTfeDidE1blEzsZNRgzNJ5ySDOJAiEA5PrUFgfuWycGS2r0Lnvs4yvZ9zTC4AVuU8UqDw0KGWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332891},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"61c52882e1b943a5d72bb86114456ed016d42777","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.20_1774424324302_0.5539576480999169","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"@crimson-education/sdk","version":"0.3.21","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.21","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"c7dacc49124990b398c956561ab58ebc630d74e3","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.21.tgz","fileCount":82,"integrity":"sha512-MHh8HYHZDs/dyp3nX9X3TxmchueXS52WNK8dWdjM62G0FqNhaSdSAmCrUZ78UKAiiZzDeLHELTm+L/OAldZPxw==","signatures":[{"sig":"MEUCIQCOVSbYTb1GYw0ONw1SbI+KdZo/ucjcxxLbZVZnJ6xgdgIgPT5/fUtiFeXCBFS/3EXSx1cPYNGOj3pf8aEurkojo38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332610},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"bb54190853c92486ab7d79da0d34dba63684c23c","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.21_1774494992891_0.742554665830131","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"@crimson-education/sdk","version":"0.3.22","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.22","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"5da1bedc654f8d9e34931b85742f7d47cee46126","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.22.tgz","fileCount":82,"integrity":"sha512-d9XK3GeUvts+tdfYnWC3gERaa1Gt+SIQSgSL8aKCIPFlI6zMlyUz8IP+myCzISW8Dmo7ZGB7fmKfcLSTBy9+1g==","signatures":[{"sig":"MEYCIQCzOwffMrTbK+wD2FJmkLhVjscId0haXDY0t2NFCW8McAIhAOHYk83O8g5JI7mzQYSSsnq+hbhIZ29Pw/oOy3JwfNiE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336209},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"2e4acde0a825ee82441f86a77359f3a4f4ccf572","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.22_1774497244115_0.7197530373485259","host":"s3://npm-registry-packages-npm-production"}},"0.3.23":{"name":"@crimson-education/sdk","version":"0.3.23","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.23","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"0b8f10fde7e54db085875ce1de92d03535093364","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.23.tgz","fileCount":82,"integrity":"sha512-LSDmDjLxvbfrHXFh1AFYSXbg96pwsC4myAGhD6VMhIXdc81wYc+FzxvIDq3JUKzNPBR54SsjccnxlEd/gm9tuA==","signatures":[{"sig":"MEYCIQC+vAssE2D985Mra7xaZmzNy3+wCoCoY2TXHAxjQ1BkQgIhAPaLO8qetnsZ1XbZd51txAK6ZT9gHcYpR6JvWJ13F4rf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336401},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"1817977c4b1f9b3276a490271bd055a8a6b15d2e","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.23_1774601414146_0.00955049200783109","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"@crimson-education/sdk","version":"0.3.24","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.24","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"515147e85cdde1635e45946116a5389a1df2f906","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.24.tgz","fileCount":82,"integrity":"sha512-yBome4vGPC6S2GF1c/QArEoIyFZvEWVnIHyyg+65x1e/wRJpmqWrlznCtJOzK1XOu4PVGRFxzhmEsHwQqeSdFA==","signatures":[{"sig":"MEYCIQDYgiDIbi+Vo1a8FRVEiR4naHQTxvtju8NYA8NbkSnhGQIhAN3FNb+wz3wSPxQBY0aS9xkxzt4YNh7abmOaeAs47awH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336619},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"be3bec849963258319f999ec70c3a9b1b25d21d1","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.24_1774612846483_0.22821230126190817","host":"s3://npm-registry-packages-npm-production"}},"0.3.25":{"name":"@crimson-education/sdk","version":"0.3.25","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.25","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"3f09adaecdb90842380cd4314d900a8f5683b3ec","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.25.tgz","fileCount":82,"integrity":"sha512-lf+Z8sa1p6L00Ce8xWRuDZense6cy3t+vOs2zg1zx2rRyszxcOWAph4IOJfPcye4031Lx1PPo1KKxDIWjQA+mA==","signatures":[{"sig":"MEUCIQDxu1HcvStBFSxAK/g2GpEBld22XDxogb8j197/rxXjzAIga1JpAWQyG9S4al+MaEPaPJct149ytDL5ffmKQuZeHvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336660},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"1ce5d33f6acb442ec81a2031578e8eb0e2802c90","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.25_1774870628958_0.2767616982664862","host":"s3://npm-registry-packages-npm-production"}},"0.3.26":{"name":"@crimson-education/sdk","version":"0.3.26","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.26","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"d2b6abf687ab533dd37c015f260fab177c86ee46","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.26.tgz","fileCount":82,"integrity":"sha512-wxhUKjAFjtMfedDOPQ4Ue8HnjdSmPGxIR26V2ZJXw7Cx/FXAsGbF/VjGHivJACNiZesmgMbq0LMx96vRhOu7hw==","signatures":[{"sig":"MEYCIQCfSscmnCLFVtTQ6AG4nmjO0qRomh98uDI2qHZVa78YSAIhAMzrF8WYB3Zwph+e+NSXcDW2OADOUeOfuQ/qicDe59/K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336882},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"35aedd9f1aaaccddef56a7ecd152056ffb2819ad","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.26_1776410695504_0.22568046100249162","host":"s3://npm-registry-packages-npm-production"}},"0.3.27":{"name":"@crimson-education/sdk","version":"0.3.27","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.27","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"f2f5f33e2b41e93ae3217a8738160de3f3ca8943","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.27.tgz","fileCount":82,"integrity":"sha512-19jjZyLF5Vcs46Hfsa25OXrlrQ9e+A/CngKaeiINABKJrY9u77jVTbVYL8w2/m9fQN7AWkGsp0PemH4x03mUXg==","signatures":[{"sig":"MEQCIEXC/alLOjATHpunV/okVVw1qXMhu8QPZUcNrb0z529JAiAH8cKzlwiULEF4UR/8dCu1L9625hN8boOfiTOTG6BMrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342130},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"fd2bb075bc946b14c128fdcbfd4b1c0d787158d2","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.27_1778252619839_0.2206320730541762","host":"s3://npm-registry-packages-npm-production"}},"0.3.28":{"name":"@crimson-education/sdk","version":"0.3.28","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.28","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"f799e93747cfc3e84689d09fd4283d183a281072","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.28.tgz","fileCount":82,"integrity":"sha512-6J8SzIuUeqMucmsSw+mAiBEvaY10FqoQ8G52fD7ok5APUnquNBX66q/4O89Iwd5crS9gUAeiG7UpnLHq1K+Rew==","signatures":[{"sig":"MEUCIB5FLUbkTLyCJ1bJ8YAMKxnHq1tl9EU3damxpzzUK/DqAiEAmtMSmKPsw5nt+Q8qU6JWgmJuc7y32FVCuT6MQQNXbt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347717},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"f061e0ef23faf346035e46e39b7c23904355dfb1","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.28_1779440951328_0.8844676163736389","host":"s3://npm-registry-packages-npm-production"}},"0.3.29":{"name":"@crimson-education/sdk","version":"0.3.29","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.29","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"728f90c038b4471555c94a8db018940023685f7e","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.29.tgz","fileCount":82,"integrity":"sha512-BaTAbW2i5AS3h5yp6yF0ISvGZ2yOcbEw7petrU/BnORI4JE8DLlBu/gmFngjbQ3SlJsPGZPc3KRGHU4M75Lmag==","signatures":[{"sig":"MEYCIQDUI+2jRX43JPNv7hiDA5hTjnhvf0Q/ip4BtfY9odfFzQIhAIo3NX/WIJ9VIPVZC7uvDEeuvDowx7zSU5NvELD/labe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347744},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"d18567af26dc4b249510847374273f8fac2375e8","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.29_1779799808333_0.36406650022701226","host":"s3://npm-registry-packages-npm-production"}},"0.3.30":{"name":"@crimson-education/sdk","version":"0.3.30","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.30","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"06b4975eb68274cab47fd09cd46300f4270a51d5","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.30.tgz","fileCount":82,"integrity":"sha512-RJCyG4SCkCT0ygoSdLSy3GOhgJZAtMpqn8bfj42kNb42W1plFkLBdRjymsgtKQAPYoge84AdV4/VQGyb6WYGRA==","signatures":[{"sig":"MEUCICLe5ey8n88kYy4o9ZxfPB/JRll1wo1aHioEXxAYaQLDAiEA2utT/ksVlRXl4+iqq5R7uFj8R0WPRZlG7+AEyGvsB7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348974},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"8b0c113cfbdd4ad56319875d39491fe004a54f8c","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"11.6.0","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.30_1779962576867_0.7440534657450175","host":"s3://npm-registry-packages-npm-production"}},"0.3.31":{"name":"@crimson-education/sdk","version":"0.3.31","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.31","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"0e3c624b4b81d4feec8cc1ed8de3ced35e462e2b","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.31.tgz","fileCount":82,"integrity":"sha512-aPy49kZKGZxpAMPFF4cAPewWeGc+y9jHjAAM+i2/IYH6LdtyX/Jmxu2ezS/CpcCX70/GbsqiLV29V5n+qmBhxw==","signatures":[{"sig":"MEYCIQChNu4JRfJDSNgutMr2MFGQL4jRVfs4z7UxnZ7+PB2SpQIhALyFSHDsKJQ3IneygyZLdxr2d5emRFKHQIvDgHMg1Zaw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349061},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"46f66358f2e3d1a6784ab509882a2a61feed7c13","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.31_1780054118219_0.7540417859463513","host":"s3://npm-registry-packages-npm-production"}},"0.3.32":{"name":"@crimson-education/sdk","version":"0.3.32","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.32","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"3a1c184599e4c0753e0c55770ed9958830a7dd4e","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.32.tgz","fileCount":82,"integrity":"sha512-7/coLTadROnsPPnXdaF64JxQVCc6fWiHd11evZVlUMQL8pRfUQxBPzo2F1rehZ2oZ1UfZsT3lIZeAwvGiVVEow==","signatures":[{"sig":"MEUCIHdTkWxdZd1RyHreO72tTD7yAMt9fkmPW7TUdLvBXdjLAiEA8D8xSK3tsdZw94xstYqnMuEwyeUfyoqWEvdeHC3QKhY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349910},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"008124e363e14043605e5453c5ac8ec437dcb0f9","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.32_1780900302167_0.6800455166420609","host":"s3://npm-registry-packages-npm-production"}},"0.3.33":{"name":"@crimson-education/sdk","version":"0.3.33","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.33","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"0d9fa7e76d8f989468fd2e1a48e759858b6eda0c","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.33.tgz","fileCount":82,"integrity":"sha512-vBgeeIQxXA6KtDBilKC6ikqBd013vObpX8C2gtI8Uqs1MOf+/senfV+nsaxiBYqjnAMdROjJoG180zghZJ66kg==","signatures":[{"sig":"MEUCIEsSaAyC8qDvZykxAiPhkDDajHD0Wa8aam38KYB62P88AiEA0UBb4USVChPJh1nWdto07ia5WOc1QBNwLpy80NKiIQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355127},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"983d2869f779dff417f07f0299e4af4bfac29f45","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.33_1780989594842_0.1256696175511507","host":"s3://npm-registry-packages-npm-production"}},"0.3.34":{"name":"@crimson-education/sdk","version":"0.3.34","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.34","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"b5639aad2a250cd50217305304f82a50cbb1fc7c","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.34.tgz","fileCount":94,"integrity":"sha512-/1qMH1yfP/xzGsgMG6f3Rh7c9hk0ICfZ95/IwjRbhN+yFhEz8H6F+wz8LfbJXBYlqNq8SZS6AFe1/hsgRLsROA==","signatures":[{"sig":"MEYCIQDsxyYw8dKY40BSrhNH6I37qih1mY4iFTrvFSgZvcRwnQIhAPk49VRt4hXW/+U6nvi+XXUKoMsrX5hj+9LuiPzgklZs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375422},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"38facf87ac32b985f2320e63fcfbd43260de99d6","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build","smoke:tutoring":"tsx examples/tutoring-smoke/smoke.ts"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.2","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","dotenv":"^17.4.2","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.34_1781072086285_0.12963383854552446","host":"s3://npm-registry-packages-npm-production"}},"0.3.35":{"name":"@crimson-education/sdk","version":"0.3.35","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.35","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"dfbbe302e39a1b9392ebc61aeb16b41d1f3516e1","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.35.tgz","fileCount":94,"integrity":"sha512-TCxWmm93Ag5aHH+OT1hYEDmqhEB6eWV3J2IuEv6Ylstm69AXwN5jHJ5DuLNEL9dFyaoF++Nmvo6jEAciwrwEfQ==","signatures":[{"sig":"MEQCIGdtvs0fONuM1aUx13LXUq7FUp86+pmId7dWgaz/hQz9AiAuCPWThNbh+dY5w5r6ptwntI4IFlWb7GQFCi8hRXXpgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375822},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"ef9e4b590ca1085e32b01853c08f290d96ae8ef5","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build","smoke:tutoring":"tsx examples/tutoring-smoke/smoke.ts"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.8","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","dotenv":"^17.4.2","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.35_1781157257680_0.38829034198611545","host":"s3://npm-registry-packages-npm-production"}},"0.3.36":{"name":"@crimson-education/sdk","version":"0.3.36","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.36","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"22f776e393a53186e4857387b0749464aceb0e5e","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.36.tgz","fileCount":94,"integrity":"sha512-Bw6M9IcGvFdcUsAKTN+2sOXbOnnI4z4r89jmOsXdplO+HzcJYFOFD+EURWxpNd3/nFuao6eoneTZL2O4oqoqNA==","signatures":[{"sig":"MEQCIHVhxbmScEfez1T30nieL69NXRqgmcCYjsk5EnyY+g0XAiA9l3ZH2d/Y9KskDDhED9m61vITfy9DLVxWiC7QDEuDcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":384957},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"305b49b449d7222b077e416c4c469e6ea0e74583","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build","smoke:tutoring":"tsx examples/tutoring-smoke/smoke.ts"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","dotenv":"^17.4.2","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.36_1783822510622_0.1687330254066599","host":"s3://npm-registry-packages-npm-production"}},"0.3.37-regional-template":{"name":"@crimson-education/sdk","version":"0.3.37-regional-template","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.37-regional-template","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"333762136ffcaf12a0feb9b8c1f1f0d314d279e7","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.37-regional-template.tgz","fileCount":94,"integrity":"sha512-7Db7zhEYTnbihbO26tH3PVo0dNYk655Tp+DGCL0KvWKZ3cYyacH/64zdTCDyfjV+51dbNQHoe09nRh1/h6td6g==","signatures":[{"sig":"MEQCIG7SYzKHOw3Y2oXBbz9YtOCoAh4mQCk4vFn79Fry/0AvAiADucChJ8wp7xPlxCldVXHy4KwFBI/mskBYpJoGbEl0Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392188},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"48ca8bcf2053348e6ae8bc4232d9c55548b3f3bf","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build","smoke:tutoring":"tsx examples/tutoring-smoke/smoke.ts"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.22.4","chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","dotenv":"^17.4.2","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.37-regional-template_1784863207842_0.5009425185022749","host":"s3://npm-registry-packages-npm-production"}},"0.3.38":{"name":"@crimson-education/sdk","version":"0.3.38","keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","_id":"@crimson-education/sdk@0.3.38","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"homepage":"https://github.com/crimson-education/crimson-sdk#readme","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"dist":{"shasum":"c26328981a616201576b7d6fb8f55d28645b4bea","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.38.tgz","fileCount":94,"integrity":"sha512-zvkX9lqJfjWdhRmWuPny18dzaTKnpPbkENaGYfrcabI7gx0SmyAyKDsc0/4iLhw07CkvuuK8F72zQdqDpG6KmQ==","signatures":[{"sig":"MEYCIQD807+CD1uVpzCJ8DPNPGD5vEUXNRHWXql/AWtg6rSiMwIhAIdH0yjWYox0XzhlcBkWDbaOa+d3K8kWt+GFdD1qOOGl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392818},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"gitHead":"510db2f1322c163ef52a2c244317ba8548f59ee0","scripts":{"test":"npm run build && mocha tests/**/*.test.js","build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build","smoke:tutoring":"tsx examples/tutoring-smoke/smoke.ts"},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"repository":{"url":"git+https://github.com/crimson-education/crimson-sdk.git","type":"git"},"_npmVersion":"10.9.4","description":"Crimson SDK for accessing Crimson App APIs","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","chai":"^6.2.1","mocha":"^11.7.5","react":"^19.2.3","dotenv":"^17.4.2","typescript":"^5.0.0","@types/node":"^24.10.1","@types/react":"^19.2.7","@tanstack/react-query":"^5.90.15"},"peerDependencies":{"react":">=18.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.38_1785134429719_0.22040089621974057","host":"s3://npm-registry-packages-npm-production"}},"0.3.39":{"name":"@crimson-education/sdk","version":"0.3.39","description":"Crimson SDK for accessing Crimson App APIs","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","prepublishOnly":"npm run build","test":"npm run build && mocha tests/**/*.test.js","smoke:tutoring":"tsx examples/tutoring-smoke/smoke.ts"},"keywords":["crimson","sdk","oauth","api-client"],"author":{"name":"Crimson Education"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/crimson-education/crimson-sdk.git"},"homepage":"https://github.com/crimson-education/crimson-sdk#readme","peerDependencies":{"@tanstack/react-query":">=5.0.0","react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@tanstack/react-query":{"optional":true}},"devDependencies":{"@tanstack/react-query":"^5.90.15","@types/node":"^24.10.1","@types/react":"^19.2.7","chai":"^6.2.1","dotenv":"^17.4.2","mocha":"^11.7.5","react":"^19.2.3","tsx":"^4.22.4","typescript":"^5.0.0"},"_id":"@crimson-education/sdk@0.3.39","bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-/5p9xncxQEZb82gnokWmjKh67YgfM2IT5QxZqZ5IbolIBt9irdafHN2+5emKurlk4ML/xKOQN9wHjRpyp5c/BA==","shasum":"05786ba4e4763415910832adb3275565fd80bba4","tarball":"https://registry.npmjs.org/@crimson-education/sdk/-/sdk-0.3.39.tgz","fileCount":98,"unpackedSize":416274,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG8VgMxF2ZZkOi0RwJ0Pq7vqZq3FPh9GVW8msqSLIWVHAiBuvDc7VFRKh6ceIU8motGT6O5GSbvlBBa9ogyXBgL5OA=="}]},"_npmUser":{"name":"crimson-devs","email":"devs@crimsoneducation.org"},"directories":{},"maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.3.39_1785911383982_0.17863832891702014"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-30T13:11:47.136Z","modified":"2026-08-05T06:29:44.280Z","0.2.0":"2025-12-30T13:11:47.399Z","0.2.1":"2025-12-31T01:27:28.265Z","0.2.2":"2026-01-04T06:07:16.485Z","0.2.3":"2026-01-06T12:47:42.626Z","0.2.4":"2026-01-08T09:55:06.996Z","0.2.5":"2026-01-14T05:58:12.295Z","0.2.6":"2026-01-16T12:22:25.050Z","0.3.0":"2026-01-23T07:29:20.538Z","0.3.1":"2026-01-27T09:29:25.036Z","0.3.2":"2026-01-27T11:52:25.884Z","0.3.4":"2026-02-09T06:09:45.024Z","0.3.5":"2026-02-10T01:18:38.357Z","0.3.6":"2026-02-11T01:33:45.816Z","0.3.7":"2026-02-11T09:34:10.545Z","0.3.8":"2026-02-26T03:13:52.608Z","0.3.9":"2026-02-26T04:16:52.336Z","0.3.10":"2026-02-26T04:47:48.958Z","0.3.11":"2026-02-27T03:02:13.198Z","0.3.12":"2026-03-17T05:30:31.859Z","0.3.13":"2026-03-18T02:48:31.468Z","0.3.14":"2026-03-18T07:14:02.383Z","0.3.15":"2026-03-18T07:54:48.977Z","0.3.16":"2026-03-19T03:21:19.644Z","0.3.17":"2026-03-24T11:25:45.122Z","0.3.18":"2026-03-24T11:29:34.748Z","0.3.19":"2026-03-25T07:19:49.153Z","0.3.20":"2026-03-25T07:38:44.437Z","0.3.21":"2026-03-26T03:16:33.108Z","0.3.22":"2026-03-26T03:54:04.293Z","0.3.23":"2026-03-27T08:50:14.282Z","0.3.24":"2026-03-27T12:00:46.645Z","0.3.25":"2026-03-30T11:37:09.132Z","0.3.26":"2026-04-17T07:24:55.649Z","0.3.27":"2026-05-08T15:03:40.096Z","0.3.28":"2026-05-22T09:09:11.498Z","0.3.29":"2026-05-26T12:50:08.482Z","0.3.30":"2026-05-28T10:02:57.016Z","0.3.31":"2026-05-29T11:28:38.362Z","0.3.32":"2026-06-08T06:31:42.326Z","0.3.33":"2026-06-09T07:19:54.979Z","0.3.34":"2026-06-10T06:14:46.429Z","0.3.35":"2026-06-11T05:54:17.825Z","0.3.36":"2026-07-12T02:15:10.787Z","0.3.37-regional-template":"2026-07-24T03:20:08.010Z","0.3.38":"2026-07-27T06:40:29.881Z","0.3.39":"2026-08-05T06:29:44.123Z"},"bugs":{"url":"https://github.com/crimson-education/crimson-sdk/issues"},"author":{"name":"Crimson Education"},"license":"MIT","homepage":"https://github.com/crimson-education/crimson-sdk#readme","keywords":["crimson","sdk","oauth","api-client"],"repository":{"type":"git","url":"git+https://github.com/crimson-education/crimson-sdk.git"},"description":"Crimson SDK for accessing Crimson App APIs","maintainers":[{"name":"crimson-devs","email":"devs@crimsoneducation.org"},{"name":"crimson-ci","email":"info@crimsoneducation.org"}],"readme":"# @crimson-education/sdk 使用文档\n\n`@crimson-education/sdk` 是一个用于访问 Crimson App（Roadmap 相关）后端接口的 TypeScript SDK，包含三层能力：\n\n- **Core（框架无关）**：`CrimsonClient` + 各业务 API（missions / tasks / roadmap / users / mission library）\n- **iframe（跨域/嵌入场景）**：通过 `postMessage` 初始化鉴权信息，并提供可订阅的鉴权状态\n- **React（可选）**：基于 `@tanstack/react-query` 的 Provider 与 Hooks（通过 `@crimson-education/sdk/react` 引入）\n\n> 说明：SDK 默认依赖运行时 `fetch`。在 Node.js 环境建议使用 Node 18+（内置 `fetch`），或自行注入/polyfill。\n\n---\n\n## 安装与构建\n\n### 安装\n\n如果已发布到 npm：\n\n```bash\nnpm i @crimson-education/sdk\n```\n\n### 本地开发构建\n\n在 `crimson-sdk/` 目录下：\n\n```bash\nnpm i\nnpm run build\n```\n\n编译产物输出到 `crimson-sdk/dist/`（测试也使用该目录）。\n\n---\n\n## 快速开始（Core）\n\n```ts\nimport { createCrimsonClient } from \"@crimson-education/sdk\";\n\nconst client = createCrimsonClient({\n  apiUrl: \"https://api.example.com\",\n  getToken: async () => \"YOUR_TOKEN\",\n  // 推荐：设置客户端标识，用于 API 调用追踪\n  clientId: \"my-app\",\n  // 可选：默认 Bearer；如使用自定义鉴权头格式可覆盖\n  // authScheme: \"crimsonauthkey\",\n});\n\n// 读取 roadmap context\nconst ctx = await client.roadmap.context(\"student-uid\");\n\n// 拉取 missions（不传 start/limit 时返回按 category 分组的旧结构）\nconst categories = await client.missions.list(\"student-uid\");\n\n// 拉取 missions（强制分页结构）\nconst page = await client.missions.listPaginated(\"student-uid\", undefined, {\n  start: 0,\n  limit: 20,\n});\n```\n\n---\n\n## 认证方式详解\n\nSDK 通过统一的 `Authorization` 头访问后端，**支持三种认证配置（`getToken` / `serviceKey` / `oauth`，三选一）**。下表速览，再逐一详解。\n\n| 方式             | config 字段  | 发送的头                               | 适用场景                                                                 | 状态                                                    |\n| ---------------- | ------------ | -------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------- |\n| **Bearer Token** | `getToken`   | `Authorization: Bearer <token>`        | iframe 子应用（父应用注入 JWT）、已持有 Crimson 可接受 token 的前端/后端 | ✅ 可用                                                 |\n| **Service Key**  | `serviceKey` | `Authorization: crimsonauthkey <key>`  | 可信后端 server-to-server，无终端用户登录                                | ✅ 可用                                                 |\n| **OAuth 2.0**    | `oauth`      | `Authorization: Bearer <access_token>` | 第三方 OAuth SSO 登录                                                    | ⚠️ SDK 已实现，后端 `/oauth/*` 端点未上线，**暂不可用** |\n\n> 三者互斥：同一个 client 只能配其中一个；TypeScript 会在编译期阻止你同时传两个。\n\n---\n\n### 方式一：Bearer Token（`getToken`）✅\n\n最常用。你提供一个返回 token 字符串的函数，SDK 把它拼成 `Authorization: Bearer <token>` 发送。SDK 不关心 token 怎么来的 —— 只要后端认它即可（通常是 **Crimson Auth0 JWT**）。\n\n```ts\nimport { createCrimsonClient } from \"@crimson-education/sdk\";\n\nconst client = createCrimsonClient({\n  apiUrl: \"https://api.staging.app.crimsoneducation.io\",\n  getToken: () => localStorage.getItem(\"token\") ?? \"\", // 同步或异步均可\n  clientId: \"my-app\",\n});\n\nconst me = await client.indigo.getMe();\nconst missions = await client.missions.list(\"student-uid\");\n```\n\n要点：\n\n- `getToken` 可返回 `string` 或 `Promise<string>`；SDK 会自动去掉前缀 `\"Bearer \"` 再拼接。\n- 典型来源：① iframe 父应用通过 postMessage 注入的 JWT（见下方「iframe 层」/「React 层」）；② 你的应用通过 Crimson Auth Gateway 等途径换到的 Auth0 token。\n- 嵌入式（iframe）场景**无需手写 `getToken`**：用 React 层的 `<CrimsonProvider>`，它会自动从 xprops / localStorage 读取 token。\n\n---\n\n### 方式二：Service Key（`serviceKey`）✅ —— 服务端 server-to-server\n\n> ⚠️ **Service Key 是服务级（god-mode）凭证，几乎不受权限限制，只能在可信后端使用，严禁出现在浏览器/前端代码或源码仓库中。** key 必须匹配后端 `CRIMSON_APP_ACCESS_KEYS` 白名单中的某个值。\n\n适用于「没有 Crimson/Auth0 用户登录」的第三方后端。SDK 以 `Authorization: crimsonauthkey <key>` 发送；由于没有终端用户，**需用 `tenantDomain` 显式指定租户**（此模式下 SDK 跳过基于用户的租户解析）。\n\n```ts\nimport { createCrimsonClient } from \"@crimson-education/sdk\";\n\n// ⚠️ 仅在受信任的后端运行（Node）；key 来自密钥库，切勿下发前端\nconst client = createCrimsonClient({\n  apiUrl: process.env.CRIMSON_API_URL,\n  serviceKey: process.env.CRIMSON_SERVICE_KEY,\n  tenantDomain: \"app.crimsoneducation.org\", // 指定目标租户（服务模式建议必填）\n  clientId: \"your-backend\",\n});\n\n// 1) 应用级 / 目录类数据\nconst templates = await client.library.listTemplateMissions({ limit: 20 });\n\n// 2) 也能取指定用户的数据（目标 userId 作为参数传入）\nconst ctx = await client.roadmap.context(\"auth0-xxxx\");\nconst missions = await client.missions.list(\"auth0-xxxx\");\n```\n\n要点：\n\n- 默认鉴权 scheme 为 `crimsonauthkey`，可用 `authScheme` 覆盖。\n- **防呆**：浏览器环境下使用 `serviceKey` 会**直接抛错**；`serviceKey` 传空值（如环境变量未设置）也会抛错。\n- 未设置 `tenantDomain` 时，涉及租户的请求会落到默认 `crimsonapp` 租户（SDK 会告警）。\n- 权限：命中白名单后后端视为 `isServer`，**绕过 per-user RBAC**；数据范围由 `tenantDomain` + 你显式传入的 `userId` 决定。请按最小必要使用，并妥善保管 / 定期轮换 key。\n\n---\n\n### 方式三：OAuth 2.0（`oauth`）⚠️ 暂不可用\n\n> **当前后端尚未部署 `/oauth/authorize`、`/oauth/token` 等端点，此模式无法实际工作。** 以下为 SDK 侧已实现的用法，待后端上线后可用。\n\n用于第三方应用让用户「用 Crimson 账号登录」（Authorization Code + PKCE）。\n\n```ts\nconst client = createCrimsonClient({\n  apiUrl: \"https://api.example.com\",\n  clientId: \"my-app\",\n  oauth: {\n    clientId: \"oauth-client-id\",\n    redirectUri: \"https://my-app.com/callback\",\n    scope: [\"profile\"],\n  },\n});\n\nawait client.initialize(); // 加载已存 token\n\n// 1) 发起登录（跳转到授权页）\nawait client.authorize();\n\n// 2) 回调页处理（用 URL 上的 code/state 换 token）\nawait client.handleOAuthCallback({ code, state });\n\n// 3) 之后照常调用；SDK 自动带上 access_token 并按需刷新\nconst me = await client.indigo.getMe();\n\n// 状态 / 登出\nclient.isAuthenticated();\nawait client.logout();\n```\n\n---\n\n### 嵌入式 iframe 场景（基于方式一）\n\nnew-roadmap / indigo 等嵌入应用属于「方式一」的特例：父应用注入 token，子应用用 SDK 的 iframe 层 / React 层自动接管，无需手写 `getToken`。详见下方「iframe 层」与「React 层」。\n\n---\n\n## Core API 参考\n\n### 1) CrimsonClient\n\n入口：`createCrimsonClient(config)` / `new CrimsonClient(config)`\n\n配置类型：`CrimsonClientConfig`\n\n- `apiUrl: string`：后端 API 基地址（SDK 会自动去掉末尾 `/`）\n- `getToken: () => string | Promise<string>`：获取 token 的函数（与 `oauth`、`serviceKey` 三选一）\n- `serviceKey?: string`：服务端 server-to-server 密钥（与 `getToken`、`oauth` 三选一）。默认以 `crimsonauthkey` scheme 发送，详见「认证方式详解」。⚠️ 仅限可信后端\n- `oauth?: CrimsonOAuthConfig`：OAuth 2.0 配置（与 `getToken`、`serviceKey` 三选一）。⚠️ 后端 `/oauth/*` 端点未上线，暂不可用\n- `tenantDomain?: string`：显式 `x-tenant-domain`（服务模式必填，用于指定租户；提供后 SDK 跳过基于用户的租户解析）\n- `authScheme?: string`：鉴权 scheme（`getToken` 模式默认 `\"Bearer\"`，`serviceKey` 模式默认 `\"crimsonauthkey\"`）。SDK 会自动去掉 token 前缀 `\"Bearer \"`，再拼接成 `Authorization: \"<scheme> <token>\"`\n- `clientId?: string`：客户端应用标识，用于 API 调用追踪（如 `\"new-roadmap\"`、`\"capstone\"`）\n- `clientVersion?: string`：SDK 版本覆盖，默认使用 SDK 包版本\n\n响应约定（`CrimsonClient.fetch<T>`）：\n\n- 若响应 JSON 形如 `{ data: ... }` 且 **没有** `pagination` 字段：SDK 会自动 **解包**，直接返回 `data`\n- 若响应 JSON 形如 `{ data: ..., pagination: ... }`：SDK 返回整个对象（对应 `PaginatedResult<T>`）\n- 若响应为空（如 204）：返回 `undefined`\n- 若 HTTP 非 2xx：抛出 `Error(\"Crimson SDK Error: <status> ... - <body>\")`\n\n### 2) MissionsApi（`client.missions`）\n\n涉及接口：\n\n- `GET /roadmap/missions`\n- `POST /roadmap/missions`\n- `PUT /roadmap/missions/:linkId`\n- `DELETE /roadmap/missions/:linkId`\n- `POST /roadmap/missions/batch`\n- `POST /roadmap/missions/batch-delete`\n- `POST /roadmap/missions/batch-restore`\n\n主要方法：\n\n- `list(userId, filters?)`\n  - 不传 `start/limit`：返回 `MissionsCategory[]`（兼容旧后端）\n  - 传入 `start/limit`：返回 `PaginatedResult<Mission>`\n  - `filters`（`MissionFilters`）支持：`status[]`、`title`、`roadmapId`、`groupBy`、`dueDateStart`、`dueDateEnd`、`start`、`limit`\n- `listPaginated(userId, filters?, pagination?)`\n  - 始终返回 `PaginatedResult<Mission>`（并在后端仍返回旧结构时做转换）\n- `create(data: Partial<Mission>)`\n- `update(linkId: string, data: Partial<Mission>)`\n- `delete(linkId: string)`\n- `batchEdit(userId, roadmapId, missions: BatchMissionOperation[])`\n  - 单次请求内执行 add/update/delete（详见 `BatchMissionAdd/Update/Delete` 类型）\n- `batchDelete(linkIds: string[])`\n- `batchRestore(linkIds: string[])`\n\n### 3) TasksApi（`client.tasks`）\n\n涉及接口：\n\n- `GET /roadmap/action-items`\n- `GET /roadmap/action-items/creators`\n- `POST /roadmap/action-items`\n- `PUT /roadmap/action-items/:id`\n- `DELETE /roadmap/action-items/:id`\n- `POST /roadmap/action-items/:actionItemId/resources`\n- `POST /roadmap/upload`\n- `GET /roadmap/download`\n\n主要方法：\n\n- `list(params, filters?)`\n  - `params` 支持：`missionId` / `missionLinkIds` / `roadmapId` / `userId`\n  - `filters`（`TaskFilters`）支持：\n    - `status[]` - 按状态过滤（如 `['PLANNED', 'DONE']`）\n    - `description` - 按描述关键词过滤\n    - `creatorId` - 按创建者 ID 过滤\n    - `dueDateStart` - 按截止日期开始过滤（ISO 格式）\n    - `dueDateEnd` - 按截止日期结束过滤（ISO 格式）\n    - `orderBy` - 排序方式：`'priority'` | `'dueDate'` | `'missionTitle'` | `'createdAt'`\n    - `start` / `limit` - 分页参数\n  - 默认返回 `Task[]`\n  - 当 **同时提供** `roadmapId` 且提供 `start/limit` 时：返回 `PaginatedResult<Task>`\n- `listPaginated(roadmapId, userId, filters?, pagination?)`\n  - 始终返回 `PaginatedResult<Task>`（内部复用 `list`）\n- `getCreators(roadmapId)`\n  - 获取指定 roadmap 下所有任务的创建者列表\n- `getDownloadUrl(key)`\n  - 获取 S3 资源的预签名下载 URL\n- `create(data: Partial<Task>)`\n  - 支持两种模式：\n    - Mission 关联任务：提供 `roadmapMissionId`（或 `missionId`）\n    - 独立任务（Standalone）：只提供 `roadmapId`，不关联 mission\n- `createStandalone(roadmapId: string, data)`\n  - 创建独立任务的便捷方法\n- `update(id: string, data: Partial<Task>)`\n  - 支持更新 `resources` 字段（完整替换）\n- `delete(id: string)`\n- `addResources(actionItemId: string, resources: AddResourceInput | AddResourceInput[])`\n  - 向任务添加资源/附件\n- `updateResources(taskId: string, resources: UpdateTaskResourceInput[])`\n  - 更新任务资源（支持新增、修改、删除）\n  - 包含 `id` 的资源会被更新，不包含 `id` 的会新建，不在数组中的会被删除\n- `getUploadUrl(filename: string, contentType: string): Promise<UploadUrlResponse>`\n  - 获取 S3 预签名上传 URL\n  - 返回 `{ putUrl, url, key, bucket }`\n- `uploadFile(file: File | Blob, filename?: string): Promise<{ url, key }>`\n  - 上传文件到 S3 的便捷方法（内部调用 `getUploadUrl` + PUT 上传）\n\n关于 Task 结构的“归一化”：\n\nSDK 会将后端返回的 action item 做归一化，保证至少返回以下核心字段：\n\n- `id`\n- `name`（优先 `name`，否则使用 `description`）\n- `date`（优先 `date`，否则使用 `dueDate`）\n- `roadmapMissionId`（优先 `roadmapMissionId`，否则使用 `missionId/linkId`）\n- `userId`（优先 `userId`，否则使用 `creatorId`）\n- `isComplete`（优先使用后端的 `isComplete`，否则由 `status === DONE` 或 `finishedAt` 推导）\n\n因此你可能看不到后端返回的所有原始字段（它们被统一抽象到上述字段里）。\n\n### 4) RoadmapApi（`client.roadmap`）\n\n涉及接口：\n\n- `GET /roadmap/context?userId=...`\n- `POST /roadmap/context`\n\n主要方法：\n\n- `context(userId: string): Promise<RoadmapContext>`\n- `createContext(userId: string): Promise<RoadmapContext>`\n\n### 5) UsersApi（`client.users`）\n\n涉及接口：\n\n- `GET /roadmap/users?ids=...`\n\n主要方法：\n\n- `getByIds(userIds: string[]): Promise<User[]>`\n  - 根据用户 ID 列表获取用户信息\n  - 用于显示任务分配者（assignedBy）等场景\n  - 返回字段：`userId`, `firstName`, `lastName`, `email`, `profileImageId`\n- `getById(userId: string): Promise<User | undefined>`\n  - 获取单个用户信息的便捷方法\n\n### 6) MissionLibraryApi（`client.library`）\n\n涉及接口：\n\n- `GET /roadmap/library/missions`\n- `POST /roadmap/library/missions`\n- `PUT /roadmap/library/missions/:missionId`\n- `GET /roadmap/library/tasks`\n- `POST /roadmap/library/missions/copy`\n- `POST /roadmap/library/missions/assign-bulk`\n- `POST /roadmap/library/tasks/assign-bulk`\n- `POST /roadmap/library/tasks/create-from-predefined`\n- `GET /roadmap/missions/:id/detail`\n\n主要方法：\n\n- `listTemplateMissions(filters?: TemplateMissionFilters): Promise<PaginatedResult<TemplateMission>>`\n- `createTemplateMission(input: TemplateMissionCreateInput): Promise<TemplateMission>`\n- `updateTemplateMission(id: string, raw: TemplateMission, update: TemplateMissionUpdateInput): Promise<TemplateMission>`\n- `listTemplateTasks(filters?: TemplateTaskFilters): Promise<PaginatedResult<TemplateTask>>`\n- `copyTemplateMission(input: CopyTemplateMissionInput): Promise<TemplateMission[]>`\n- `assignBulkMission(input: AssignBulkMissionInput[]): Promise<{ code: number; msg?: string }>`\n- `assignBulkTask(input: AssignBulkTaskInput[]): Promise<{ code: number; msg?: string }>`\n- `createFromPredefinedTasks(input: { missionId: string; predefinedTaskIds: string[] }): Promise<TemplateTask[]>`\n- `getMissionById(missionId: string): Promise<MissionDetail | null>`\n  - 注意：当后端返回非 2xx（例如 404）时，SDK 会抛异常；建议使用 `try/catch` 处理。\n\n### 7) AccountApi（`client.account`）\n\n涉及接口：\n\n- `GET /api/v1/account/me/roles`\n- `GET /api/v1/account/me/students`\n- `GET /api/v1/account/me/profile`\n\n主要方法：\n\n- `getCurrentUserRoles(): Promise<CurrentUserRoles>`\n  - 获取当前用户的角色列表\n  - 返回 `{ userId, roles: [{ roleId, isPrimary }] }`\n- `getMyStudents(): Promise<StudentSummary[]>`\n  - 获取当前用户关联的学生列表（主要用于 Staff 用户）\n  - 返回学生基本信息：`userId`, `firstName`, `lastName`, `email`, `profileImageUrl`\n- `getMyProfile(): Promise<UserProfile>`\n  - 获取当前用户的完整 Profile 信息\n  - 返回字段：\n    - `userId`, `email`, `firstName`, `lastName`\n    - `nickname` - 首选名称\n    - `name` - 完整显示名\n    - `picture` - 头像 URL\n    - `status` - 用户状态\n    - `isMultiTenant` - 是否多租户用户\n    - `roles[]` - 角色数组（支持多角色），每个包含 `roleId`, `roleName`, `isPrimary`\n    - `tenant` - 租户信息 `{ id, name }`\n\n### 8) IndigoApi（`client.indigo`）\n\nIndigo 专用 API，提供用户身份识别和学生-Tutor 关系查询功能。\n\n涉及接口：\n\n- `GET /api/v1/indigo/me`\n- `GET /api/v1/indigo/student/tutors`\n- `GET /api/v1/indigo/tutor/students`\n\n> **注意**：所有 Indigo API 需要用户拥有 INDIGO 产品订阅才能访问。\n\n主要方法：\n\n- `getMe(): Promise<IndigoMe>`\n  - 获取当前用户的 Indigo 身份信息\n  - 返回字段：\n    - `userId`, `email`, `firstName`, `lastName`\n    - `role` - 用户角色：`\"student\"` 或 `\"tutor\"`\n    - `tenantId`, `tenantName` - 主租户信息\n    - `isMultiTenant` - 是否跨租户用户\n    - `relatedAccounts[]` - 关联账户列表（多租户场景）\n- `getStudentTutors(): Promise<IndigoTutor[]>`\n  - 获取当前学生的 Tutor 列表\n  - 支持跨租户聚合（多租户学生可看到所有租户的 Tutor）\n  - 返回字段：`userId`, `email`, `firstName`, `lastName`, `profileImageUrl`, `contractId`, `contractStatus`, `source`\n- `getTutorStudents(): Promise<IndigoStudent[]>`\n  - 获取当前 Tutor 的学生列表\n  - 支持跨租户聚合（多租户 Tutor 可看到所有租户的学生）\n  - 返回字段：`userId`, `email`, `firstName`, `lastName`, `profileImageUrl`, `contractId`, `contractStatus`, `source`\n\n示例：\n\n```ts\nconst client = createCrimsonClient({\n  apiUrl: \"https://api.crimson.io\",\n  clientId: \"indigo-website\",\n  getToken: () => localStorage.getItem(\"token\") || \"\",\n});\n\n// 获取用户身份\nconst me = await client.indigo.getMe();\nconsole.log(`Role: ${me.role}, Multi-tenant: ${me.isMultiTenant}`);\n\n// 学生获取 Tutor 列表\nif (me.role === \"student\") {\n  const tutors = await client.indigo.getStudentTutors();\n  tutors.forEach((t) =>\n    console.log(`${t.firstName} ${t.lastName} (${t.source})`),\n  );\n}\n\n// Tutor 获取学生列表（按来源分组）\nif (me.role === \"tutor\") {\n  const students = await client.indigo.getTutorStudents();\n  const bySource = students.reduce(\n    (acc, s) => {\n      (acc[s.source] ||= []).push(s);\n      return acc;\n    },\n    {} as Record<string, typeof students>,\n  );\n  console.log(`Crimson App: ${bySource.crimsonapp?.length || 0} students`);\n}\n```\n\n### 9) PackageItemsApi（`client.packageItems`）\n\n管理 package item（\"项目\"/学科线）。**仅 service key（服务端）调用**；SDK 会把你配置的 `tenantDomain` 作为 `x-tenant-domain` 头发送，请求按租户隔离——**`list()` 要求 client 配置里必须有 `tenantDomain`**（服务端对缺失该头的 list 请求直接 400）。写方法可选带 `actingUserId`（审计）。详见 [Package Items API 文档](./docs/content/api/package-items.mdx)。\n\n```ts\n// 列表：至少传 studentUserId / mentorUserId / subjectId 之一；分页，按调用方租户隔离\nconst { items, total, limit, offset } = await client.packageItems.list({\n  mentorUserId: 'auth0|tutor-1',\n  status: 'ACTIVE',\n  limit: 50,\n  offset: 0,\n});\n\nawait client.packageItems.get('12345'); // 取单条\nawait client.packageItems.update('12345', { subjectId: 'subj' }); // 改学科/导师/状态/起始/课时\nawait client.packageItems.pause('12345', { startDate, endDate, reason }); // 暂停\nawait client.packageItems.resume('12345'); // 恢复\nawait client.packageItems.create({ studentUserId, subjectId, status: 'ACTIVE', startDate, endDate }); // 新建\n```\n\n- `list(filters)` → `{ items, total, limit, offset }`；filters：`studentUserId? / mentorUserId? / subjectId?`（至少一个）、`status?`、`updatedSince?`（ISO，增量同步）、`limit?`（默认 50，上限 200）、`offset?`。\n- `update(id, data)` 的 `data`：`subjectId? / mentorUserId?（\"\"=取消分配）/ status?（INACTIVE=归档）/ startDate? / endDate? / initialHours? / remainingHours?`。\n- `create(data)` 必填：`studentUserId / subjectId / status / startDate / endDate`。\n\n### 10) TutorsApi（`client.tutors`）\n\n创建 tutor（mentor/expert）并配学科。详见 [Tutors API 文档](./docs/content/api/tutors.mdx)。\n\n```ts\nconst tutor = await client.tutors.create({ email, firstName, lastName }); // 建 TUTOR 用户\nawait client.tutors.assignSubjects(tutor.userId, {\n  subjects: [{ name: 'Mathematics', subjectId: 'subj' }],\n}); // 配学科 = 变 expert\n```\n\n### 11) BookingsApi（`client.bookings`）\n\n改约某节课的时间。详见 [Bookings API 文档](./docs/content/api/bookings.mdx)。\n\n```ts\nawait client.bookings.reschedule('555', {\n  name: 'Session',\n  start: '2026-07-01T09:00:00Z',\n  end: '2026-07-01T10:00:00Z',\n  calEventTypeId: 7,\n  calHostUserId: 3,\n});\n```\n\n---\n\n## iframe 层（嵌入/跨域场景）\n\n入口：`@crimson-education/sdk`（主入口会导出 iframe 层）\n\n典型用法：\n\n1. 在 iframe 内调用 `setupIframeListener()` 监听父页面 `postMessage` 注入 token\n2. 通过 `getAuthState()/subscribeToAuthState()` 或 React Hook `useAuthState()` 获取就绪状态\n\n主要 API：\n\n- `setupIframeListener(allowedOrigins?: string[]): CleanupFn`\n  - `allowedOrigins` 不传则使用默认白名单（也可通过 `NEXT_PUBLIC_ALLOWED_PARENTS` 覆盖）\n- `getToken()` / `getUserId()` / `getStudentId()`\n- `getAuthState(): AuthState` / `subscribeToAuthState(cb)`\n- `persistStandaloneAuth(payload: ZoidProps)`\n  - 用于“非 iframe”本地调试：写入 localStorage 并触发就绪事件\n\n常量：\n\n- `XPROPS_READY_EVENT`\n- `STORAGE_KEYS`\n- `VIRTUAL_MISSION_ID`\n\n父页面发送 INIT 消息的 payload 形状（示例）：\n\n```ts\nwindow.frames[0]?.postMessage(\n  {\n    type: \"INIT\",\n    payload: {\n      token,\n      userId,\n      studentId,\n      user: {\n        /* 可选 */\n      },\n    },\n  },\n  \"https://your-iframe-origin.example.com\",\n);\n```\n\n---\n\n## React 层（`@crimson-education/sdk/react`）\n\nReact 层通过 `peerDependencies` 声明依赖（不会强制安装）：\n\n- `react`（>=18）\n- `@tanstack/react-query`（>=5）\n\n### CrimsonProvider\n\n```tsx\nimport { CrimsonProvider } from \"@crimson-education/sdk/react\";\n\nexport function App() {\n  return (\n    <CrimsonProvider\n      apiUrl=\"https://api.example.com\"\n      clientId=\"my-app\" // 推荐：设置客户端标识\n    >\n      <YourRoutes />\n    </CrimsonProvider>\n  );\n}\n```\n\nProps：\n\n- `apiUrl: string`：后端 API 基地址\n- `clientId?: string`：客户端应用标识，用于 API 调用追踪\n- `allowedParentOrigins?: string[]`：允许的父页面 origin 白名单\n- `queryClient?: QueryClient`：可选的自定义 QueryClient 实例\n\n`CrimsonProvider` 会：\n\n- 创建并注入 `CrimsonClient`（包含 clientId 配置）\n- 自动从 iframe/xprops/localStorage 读取 token（使用 iframe 层的 `getToken()`）\n- 初始化 `@tanstack/react-query` 的 `QueryClientProvider`\n- 安装 `postMessage` 监听（`setupIframeListener`）\n\n### Hooks（常用）\n\n- `useAuthState()`：返回 `{ token, userId, studentId, ready, user? }`\n- `useMissions(userId, enabled)`：拉取用户 missions（扁平化 Mission[]）\n- `useMissionsInfinite(userId, filters?, options?)`：分页拉取 missions\n- `useTasks(missionId, enabled)`：拉取某 mission 的 tasks\n- `useTasksInfinite(roadmapId, userId, filters?, options?)`：分页拉取 tasks\n- `useRoadmapContext(userId, enabled)`：拉取 roadmap context\n- `useTaskCreators(roadmapId, enabled)`：获取任务创建者列表\n- CRUD mutation：\n  - `useCreateMission/useUpdateMission/useDeleteMission`\n  - `useCreateTask/useUpdateTask/useDeleteTask`\n  - `useCreateTemplateMission/useUpdateTemplateMission`\n  - `useGetDownloadUrl`：获取文件下载地址\n- 模板库相关：\n  - `useTemplateMissions/useTemplateMissionsInfinite`\n  - `useTemplateTasks/useTemplateTasksInfinite`\n  - `useTemplateMissionDetail(missionId)`\n- Indigo 身份相关：\n  - `useIndigoMe(enabled?)` - 获取当前用户的 Indigo 身份\n  - `useStudentTutors(enabled?)` - 获取学生的 Tutor 列表\n  - `useTutorStudents(enabled?)` - 获取 Tutor 的学生列表\n\n### Indigo Hooks 示例\n\n```tsx\nimport {\n  useIndigoMe,\n  useStudentTutors,\n  useTutorStudents,\n} from \"@crimson-education/sdk/react\";\n\nfunction IndigoProfile() {\n  const { data: me, isLoading: isMeLoading } = useIndigoMe();\n  // 仅当用户是 student 时才请求 tutors\n  const { data: tutors } = useStudentTutors(me?.role === \"student\");\n  // 仅当用户是 tutor 时才请求 students\n  const { data: students } = useTutorStudents(me?.role === \"tutor\");\n\n  if (isMeLoading) return <Spinner />;\n\n  return (\n    <div>\n      <h1>\n        {me?.firstName} {me?.lastName}\n      </h1>\n      <p>Role: {me?.role}</p>\n\n      {me?.role === \"student\" && tutors && (\n        <section>\n          <h2>My Tutors ({tutors.length})</h2>\n          <ul>\n            {tutors.map((t) => (\n              <li key={t.contractId}>\n                {t.firstName} {t.lastName}\n              </li>\n            ))}\n          </ul>\n        </section>\n      )}\n\n      {me?.role === \"tutor\" && students && (\n        <section>\n          <h2>My Students ({students.length})</h2>\n          <ul>\n            {students.map((s) => (\n              <li key={s.contractId}>\n                {s.firstName} {s.lastName} ({s.source})\n              </li>\n            ))}\n          </ul>\n        </section>\n      )}\n    </div>\n  );\n}\n```\n\n---\n\n## 常见问题\n\n### 1) 为什么拿到的返回值不是 `{ data: ... }`？\n\nSDK 会默认解包后端常见的 `{ data: ... }` 格式：大部分方法直接返回 `data` 本体。\n\n只有当响应同时带 `pagination`（即 `{ data, pagination }`）时，才会返回完整对象。\n\n### 2) Node 环境报 `fetch is not defined`？\n\n请使用 Node 18+，或为运行环境提供 `fetch` polyfill（例如 `undici`）。\n\n---\n\n## API 调用追踪\n\nSDK 支持向后端发送客户端标识信息，用于追踪 API 调用来源。\n\n### 发送的 Headers\n\n当配置了 `clientId` 时，SDK 会自动在每个请求中发送以下 headers：\n\n| Header              | 说明           | 示例值                    |\n| ------------------- | -------------- | ------------------------- |\n| `X-Client-ID`       | 客户端应用标识 | `new-roadmap`, `capstone` |\n| `X-Client-Version`  | SDK 版本       | `0.3.0`                   |\n| `X-Client-Platform` | 运行环境       | `browser`, `node`         |\n\n### 后端日志\n\n后端会记录包含以下字段的结构化日志：\n\n```json\n{\n  \"type\": \"api_request\",\n  \"request_id\": \"uuid\",\n  \"client_id\": \"new-roadmap\",\n  \"client_version\": \"0.3.0\",\n  \"client_platform\": \"browser\",\n  \"auth_mode\": \"bearer\",\n  \"user_id\": \"auth0-xxx\",\n  \"tenant\": \"crimsonapp\",\n  \"method\": \"GET\",\n  \"path\": \"/roadmap/missions\",\n  \"status\": 200,\n  \"duration_ms\": 123,\n  \"timestamp\": \"2024-01-01T00:00:00.000Z\"\n}\n```\n\n### 最佳实践\n\n1. **始终设置 `clientId`**：便于区分不同应用的 API 调用\n2. **使用有意义的标识**：如 `new-roadmap`、`capstone`、`admin-dashboard`\n3. **响应头追踪**：后端会返回 `X-Request-ID` header，可用于调试和问题排查\n","readmeFilename":"README.md"}