{"_id":"@i4e/invest4edu-access-core","_rev":"59-8dc234de29119fd74a7867625f1a2112","name":"@i4e/invest4edu-access-core","dist-tags":{"latest":"0.43.4"},"versions":{"0.1.0":{"name":"@i4e/invest4edu-access-core","version":"0.1.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.1.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"1c86da436e7f69635bbfec03de385037ea99d1e8","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.1.0.tgz","fileCount":5,"integrity":"sha512-GepfXynnZS0zDPR++JEuvkAnPTaUD9rNQYZifDEIO3QnF5vLTpZp0SCigoPRXjE22cPzsvq9DW82olNzYLk/Zw==","signatures":[{"sig":"MEYCIQCygv2Om78p/WtMyr8STDXlnJO3DSqrRM0wsf+4gCadQAIhAMSk5CqTwn10Zijn9V+8yXmnoM9zr8DT/FSv6r+Vw5YW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6281},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js"},"private":false,"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared tenant-isolation / access-control primitives (Track 3 D1 keystone) for NeoFindesk backends.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.1.0_1784351817723_0.004811538566793283","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@i4e/invest4edu-access-core","version":"0.2.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.2.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"c5971c7592227d756d3b39191bf489921aa0e7fc","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.2.0.tgz","fileCount":6,"integrity":"sha512-NJAGO9QOSrS1qBQbOJac31qqq2/HdXtJe9HJC1rOkD41Si67qYsvWf5OSARSz3o/2fBuGUg0XBhKoUeTnIkkDw==","signatures":[{"sig":"MEQCIFSaqlRjHpmteugisebzzMgEs4rFKNaxHcKTyBbgspZ2AiB1FqWg8x96KRC1+ARn0+tDVVIsKA3G7uc1poFzfRvhKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9666},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"728a2b74df4beebd180fb27fb067d4027631bbda","private":false,"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared tenant-isolation / access-control primitives (Track 3 D1 keystone + role capabilities) for NeoFindesk backends.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.2.0_1784352879302_0.1880731579472701","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@i4e/invest4edu-access-core","version":"0.3.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.3.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"465d24f58b39193c54c3441a9922ccd8aa4f4f38","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.3.0.tgz","fileCount":7,"integrity":"sha512-R7ItshrrmO9yZH6fI7qo5SRc1EJc2pymufVoGcOggLFQ3D08EdpRJ9QdPtnJS6QYFXEWr1Apb4vkcJmHE8gNWQ==","signatures":[{"sig":"MEUCIE1GVIpeOLhidQ5w12Lm/zXlW+QGuIyaDGyXH0aSPXf6AiEA3khZHIoFB0hwODwsmK1FuyTfpy/tYjKlo9X0q7SkZAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11247},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"cf878586427abe460f4ed2462ed150b71161183f","private":false,"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared tenant-isolation / access-control primitives (Track 3 D1 keystone + role capabilities + reportee tree) for NeoFindesk backends.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.3.0_1784353960939_0.826042378873928","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@i4e/invest4edu-access-core","version":"0.4.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.4.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"a04220a8b41a5e5802d8a8af09a2fe457d9546bb","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.4.0.tgz","fileCount":8,"integrity":"sha512-wCtehQqrC6qxfmDamM15vJKB6te1iSTMYklnMYLNMgDlnjeW2/QFkdUebhPnOGHTtT+1mDXw4q7KzZgkEOAeBg==","signatures":[{"sig":"MEUCIAFk44JP5ySBJCWVSi5DogE4g44Wlbu8S1xI6uB4GD6xAiEA/Kq2eUnfIU/UPy31s2SJHa2wSB7amfph9tP48tN79ro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14182},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./access-config":"./src/access-config.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"d17b2abc0c382db3232366f68c78c677b689dd56","private":false,"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives (Track 3: tenant keystone, role capabilities, reportee tree, feature flags) for NeoFindesk backends.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.4.0_1784354721669_0.3234837177331744","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@i4e/invest4edu-access-core","version":"0.4.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.4.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"6fcfff55be69b2021eb8afaffed84983a18ce16e","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.4.1.tgz","fileCount":8,"integrity":"sha512-YPi4myOVYOMGgtA0bK2BfnZjg2HdWF6Zppt+R6FaSi6wn2vqPsDZD4CjXyuGDVrKkgw1QOYxeTF3jjhwLNRVwg==","signatures":[{"sig":"MEUCIQCehkw8UqptkSoojVfF/j9WropWcaNlDJMa0D9ILKtOkgIgcijaJUpIU3Sxy1shyIky6KkmIzWwS7+KK3xEUP8zo38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14459},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./access-config":"./src/access-config.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"fe4f90a0ca6cba0489165a854375f5a7e38850e1","private":false,"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives (Track 3: tenant keystone, role capabilities, reportee tree, feature flags) for NeoFindesk backends.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.4.1_1784375815695_0.40221134503955125","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@i4e/invest4edu-access-core","version":"0.4.2","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.4.2","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"6d7924e316a92217d91cdfd755673e7e014b4132","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.4.2.tgz","fileCount":8,"integrity":"sha512-XVEAMh6XuH0+tEQy/hOTYxDUbPIdY0rVWjdpVpx+Q3/DnUR3RuK/lzMLg+o+bgyN8UEV0oxedCfggured/ODDQ==","signatures":[{"sig":"MEUCIQCQviwSxLR3kBjJCN2fP2Rf1PLAleBnwdo5pZsAKG/tzQIgfWhD2dqQkMIZaZJm0CRc/LjYd5ykXbd87vFsZlD8/8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15230},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./access-config":"./src/access-config.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"6f5fad6b1be55b6cb8be1c49902205884a801938","private":false,"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives (Track 3: tenant keystone, role capabilities, reportee tree, feature flags) for NeoFindesk backends.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.4.2_1784375972622_0.5109503849028951","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@i4e/invest4edu-access-core","version":"0.5.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.5.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"eb764bf0213d8cb96f19ffa25c7913f8a11313e4","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.5.0.tgz","fileCount":11,"integrity":"sha512-1sUvCTVYV8vFK4OkNDBwpxFs1zqYUfmp9/e8l6PRlqclOGbc7fH3tms6P/vx7NoR+RWsiAsIBc8NQTexsxeQFw==","signatures":[{"sig":"MEUCIBBXvzZO2vAajHKED0azN8kXqMduL6rFi+V9pQsosUBfAiEA2AareKapN4bilMD/xFedHn/eqvs7OInj8zOpf+Icox4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38365},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"7e368c721e0698283cd5b2958728e5283af75865","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.5.0_1785311088838_0.459394015030276","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@i4e/invest4edu-access-core","version":"0.6.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.6.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"44b12ee863bb2002f71db7a6bf1bb7c5ca8d9aa5","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.6.0.tgz","fileCount":11,"integrity":"sha512-i8VJU3fm4jFEQzvRcr18l7mf/cj7KiSbynKTvu/0d+QDZPlUAYko5lGwgkeKKhhuxi+9iZg4xyvbOlXBDGVOnQ==","signatures":[{"sig":"MEQCIHmdOxihcUIZCUq6Ou9gclymAo5uuLS23HpEpjKG/IeMAiBhZrlA9TmsV1Wp0NbEgeEn915LIMUWIgSM/NPprS2GbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38695},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"9194eca1a050bdb1e0005959df70caa3d919d6c7","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.6.0_1785323675814_0.9387115948605571","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@i4e/invest4edu-access-core","version":"0.6.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.6.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"99335b190a53a6d53e9e1bc2fad4f818abfafbe7","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.6.1.tgz","fileCount":11,"integrity":"sha512-8Yy9EY4f02TKz+BDNC8WmDf8OHNQYEj0/qprf4Jx0pAo3dm4WweLKYNnH0P4JGh6BFjRVeTDTghFyt4RVELNGw==","signatures":[{"sig":"MEUCIBPzPA0bmN/u7GFgiU28Y5QZr8gOMSouc8fpk4Km3P1OAiEA2XSAm78H1eSBoIBm2xtJSRtOvYdOfNzTTjgTE2LBe3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39350},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js"},"gitHead":"98fff3604f247d4e3a82b0dc29a04d9aaf6e4b7d","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.6.1_1785328452367_0.215255584127499","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@i4e/invest4edu-access-core","version":"0.7.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.7.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"b98aa5643015d7332f6262efdbd8abfd02a4d75a","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.7.0.tgz","fileCount":13,"integrity":"sha512-oKZSv3J7ESS5cWm+QIac9AOu8/Vke8wNrFnN3lAfrh+YDs4RoOahbM+NMX7srxYCcm1HJChAO5UPUdj4t1VBXQ==","signatures":[{"sig":"MEYCIQDw5uMeriQBXayBCIwGkxVFxB7mFQHNKl3izBT8tRNkfAIhAM67pGWSPIx6T2050GcSmioN1OoN4LwASkQk1C6piwIn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54305},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js"},"gitHead":"44cb576ada020a5071c3f15a792773aa4d08b970","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.7.0_1785408853904_0.8243639393641158","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@i4e/invest4edu-access-core","version":"0.8.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.8.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"152b1bc19759f51571f6d3865a0a08d717198b71","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.8.0.tgz","fileCount":14,"integrity":"sha512-8hQ4lq+Qu1qJyN91/nwEcdfBRTdvwSVud8MwZq0LDhAGBUtpLjTMSkhjw6wJajjAafF7OzVUYO3UcuNVwTRU+w==","signatures":[{"sig":"MEUCIBxf5/tr8p1Dus6G2RrKg1uD1Kj1KOeWQR9EUVRiyPOTAiEAkZncX5YtH4uePEQ6YgtUlG3vGvrzqAVBj9kP7f2raEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66984},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js"},"gitHead":"cf24ff32dca965894b34a1b7b1046a51f45536a8","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.8.0_1785430989790_0.8843571097164928","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@i4e/invest4edu-access-core","version":"0.9.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.9.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"1b21d49f1068f9ca82db74fd9fee8577f4a4fb5a","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.9.0.tgz","fileCount":14,"integrity":"sha512-i164NRQJGHeok53KtqvB35GLWsx//6LRmTUb1f3P0EDAAsAp0HJgOTf9GfBxd+/aY08npFNOoMh8M/qvyi5icA==","signatures":[{"sig":"MEUCIQCKJIgguIkKiVoh4vQkfKEGedM1obXPUD5OS/DIB54tjgIgbo4TGE0VB5DV59/ctMy1X4MzMOtPAzWxTjxRz9rFJb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68894},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js"},"gitHead":"261424444e33d4548e838e2ef17e348b3aca29f1","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.9.0_1785591172682_0.9327285124886511","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@i4e/invest4edu-access-core","version":"0.10.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.10.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"16343769f13afe19d528bb741ecda0a7f61f07fa","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.10.0.tgz","fileCount":15,"integrity":"sha512-lMCHnsiHitJ556QJm5TRlx6A1JPAhZV3GI/0a0+WDQ8LQse7q0KEL0TpuC2j+SchYONjd/Z533o/1ybsRaxkkA==","signatures":[{"sig":"MEUCIDGkD/qxqNubjgiAF9G/kLY25qv9Idm/6KRuc3rsDyHKAiEAlMabT4h/xz8WOSLMH2FCgmczK0Gq2LBr9KP5be3a6bA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75967},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js"},"gitHead":"1fb44f960984473a396a02dfefdb59cba6867d15","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.10.0_1785671344069_0.7591222572521683","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@i4e/invest4edu-access-core","version":"0.11.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.11.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"3a5c230ce7851d0756b20207be20f053819f51e2","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.11.0.tgz","fileCount":15,"integrity":"sha512-dlkjsuKem84bQwg92n0tHV88v5UuuFIJJsc9MTHWGFbmX1Ff7++5KeRc8B5jEpQ8tmjavHhYFknZhspOMmnb4Q==","signatures":[{"sig":"MEQCIBjDpPN+TompJt+H3P7ROTWz7G+JYxqXkugUAcRrfTXIAiAm2/F+OQbA5luMlOvSHiEmCnMI+5Rg/zBjzsuxDohY1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81458},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js"},"gitHead":"ae1c47f67513995bb4f64d2ca454f37e482bb743","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.11.0_1785678715497_0.2535412149457381","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@i4e/invest4edu-access-core","version":"0.12.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.12.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"8c668de168149907a10c92e5fee98f44e81d7266","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.12.0.tgz","fileCount":16,"integrity":"sha512-IxLsghjrLwAiNk79mC9uD3LNCjyExrm6tbqSyVU7/NS6E1M+0R9eNCl1zHTi4vwNYnMv8q7Hd2Mv0OUSbyn2TA==","signatures":[{"sig":"MEYCIQD3Ig1UhzOLXdRHsYi2DWYVCV91WokFK6PyMfbIPhjx5wIhAOqAYUfdplSpopeqo/jTkhGrmgM4jZ83E0zGwrPE9XBj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84540},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"63d2c87d39e9b0c23ed25d3296bd620f02233116","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.12.0_1785759852005_0.9351225975325466","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@i4e/invest4edu-access-core","version":"0.13.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.13.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"873b83721b33b874a1d36787501811c3d45d256f","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.13.0.tgz","fileCount":17,"integrity":"sha512-ld8pHWq7vV2OqYuomw+ehcAQtXAjBeO3dcFQwHXTxLvZjGVL2EtjrDx+FsMwwbTAG/ZKCgJeGfyl+KQ2Ojg1uw==","signatures":[{"sig":"MEUCIFkUxN+E6uwv+Jcyaj77t234JHMrxEC4VFa7ereaaToOAiEAq+2zvHrbNFatatohkIjZxyxGTAaqnoWUjv8T8vA5RQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94922},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"a8f86cc3ab15fafe66916af9ae6375c08368f5c0","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.13.0_1785821529665_0.7988430393826833","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@i4e/invest4edu-access-core","version":"0.14.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.14.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"2f6c98382851b5b5b43a1274acf24722edd1ee47","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.14.0.tgz","fileCount":17,"integrity":"sha512-1GdLb1CCK41VI6ULSLNMl2wa9pPQYDQ7PtFkZfhdjVUVqaZE083SQ2gqQNN0wTpzbofKbb3ghsflCOX4yJ3Jyw==","signatures":[{"sig":"MEUCIQCO8WRr877NauujRxHHiFZyh/NNGCIqkovW2exnQfEbXAIgWTUh++4OynfjDj8XoQ4rGbrpavemMM8lIt2aVUZ0mgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99299},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"3d8cdc4b13ecfdfd1488be76848c6ad5d0eef8e8","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.14.0_1785822626954_0.029160953072844498","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@i4e/invest4edu-access-core","version":"0.15.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.15.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"2fd674023fc9bee37b9974749fd7f6206e8dac0d","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.15.0.tgz","fileCount":17,"integrity":"sha512-+tAUlG5uOT1XK2Nb+h3xAGsEq/Of1BMOwaS16GlOEJLLYlktVIiqG7P34Xjtz6oiiDyENbTv5BheIDYZHo7EoQ==","signatures":[{"sig":"MEUCIQD8FWizM/MCBi1n1ZWu3CwlA1KUnGboNNcutMdP1plDgAIgcCU+SU6/i+nqLZWD89jAAlMlEtkmPXb58vin3cQoWS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100833},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"c076a965cbe25965c9b83926fcf19fa1efd2ebb1","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.15.0_1785823102915_0.744105191987473","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@i4e/invest4edu-access-core","version":"0.15.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.15.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"2cff1ff18478c1e67ee573caa2354d4e7ccc6d52","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.15.1.tgz","fileCount":17,"integrity":"sha512-Uk2nHn6ioXh061oz+LPSLLLEAHKWEdAQuQcfpIC6BDlIfyyBGhQGyGuRAxIEbcRCSPIl04n12ca4W4s8xyQTww==","signatures":[{"sig":"MEUCIQChfBZ3e17A0gT6Qd7dEnz0qpWwfVAoJvIMaKu3gxKeQwIgS+sqMsgHKhCGTh5kEcBUraxHT0XItUd4jBiiXGNpF3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101134},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"535ce09551176ec4f3132b7747a6fc3cb42d13e3","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.15.1_1785823314074_0.9099871939947031","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@i4e/invest4edu-access-core","version":"0.16.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.16.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"38f8f6a4075fa8c823d621f97726004f01768351","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.16.0.tgz","fileCount":18,"integrity":"sha512-gGDfZyD98mF4s9h4qBitqtjp0PeH55Np3rhB+o5/5IhK6xFOHm8etAIZ4LVaaEoYMOlTcAUYxeDHREQtVvhe+g==","signatures":[{"sig":"MEYCIQDaQZS0TcAdp/JfUOVApWC/yavN5H5arPoKwY6lfV3F5gIhAJGd33MSyPgaYKn/v4bDZNnEn8G1p1Ci1rB/rnVQjG7x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104052},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"1eb1de79ecee7756f187ba021ae253475c8367a0","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.16.0_1785825165693_0.01524351091532572","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@i4e/invest4edu-access-core","version":"0.17.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.17.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"86bc849cc11e9410d71895db43ffb03c4af1c7d2","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.17.0.tgz","fileCount":18,"integrity":"sha512-bI1zU+UlvR+KolaRYiqDKlg/w2EmH0DX0s/nJg1Lgzkbw2utfM2iOIH5ZUEfj0v2VuwrIKYGHcgb4q3o6vMmJA==","signatures":[{"sig":"MEYCIQDAm7aTPvJLX59KwdnOi4/owIPVuVI8xdlB7CB699kGwAIhAKWQgByeovb3dn9/uwU+rcPEXAfoMVSZ+lRFRCUvcim7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108329},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"c9e1ce3eb88eecd121d9ea12e1d37dde9eab6029","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.17.0_1785841923986_0.7562322931815679","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@i4e/invest4edu-access-core","version":"0.17.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.17.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"4d25fc6581cb958f405411ab3b1ebc08b576b445","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.17.1.tgz","fileCount":18,"integrity":"sha512-Zf1DwtysWhdQgj5ZmcCBgvhQ453FIZGBlTV/N9IhbCNGB1YVHwWJ8MWwZX9hxz4SWd/QY+FsqQ9bJaZWfdrymw==","signatures":[{"sig":"MEUCIDu3beYkI17eAjOh9w2qV/Ea/uhUoORhkxy6D1XnKsuYAiEA1rzga7mo9kATWLj6f7HhbkqR0YNC5JaHx/bqR2YXSG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109044},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"0a1ea33d8f96275310c1f28933465a8fa7daeaad","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.17.1_1785925851947_0.9079389147778867","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"@i4e/invest4edu-access-core","version":"0.17.2","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.17.2","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"2d4f93192d9fb0269b776869742a5adc261bcf24","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.17.2.tgz","fileCount":18,"integrity":"sha512-cuWzsp9QJOeCztD31N6odO1c5xRXM5iTokcxnqYxQhBQyrgmh/ecq3qKCb5Ok3I+7dJNrauIpUpLY8chp3SrEQ==","signatures":[{"sig":"MEYCIQCOqdo0BcPmvH5etXURqqaGLdiDVvH/2yFHcGidVMcxVAIhANm5hu+PW9Vkqb+sieMxoprbLSWzqDa24CgWhlSH+wU7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109679},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"df47541f9acf0bd4d0e684a9a87a89651063e852","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.17.2_1785926035889_0.30039999695064057","host":"s3://npm-registry-packages-npm-production"}},"0.17.3":{"name":"@i4e/invest4edu-access-core","version":"0.17.3","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.17.3","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"f0a774b088e21857a09c616dfc44446ad162210d","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.17.3.tgz","fileCount":18,"integrity":"sha512-r4Ru+bWGxvcouKsJFVQBFL3EXbvVHfKZA0TamxSGi7Sg/n1A7BZNcZ7i7aD6BS3UCYkUcPKZvYcQWUSKMK6X/g==","signatures":[{"sig":"MEYCIQCMnHTHDUsqZqr3XD+13Ofl7ZEwLtl7qCDSRhLLdS/KaAIhAJEwvS1RbuaLtY8JSaRehWxR0B186jQq8LnyZUGcjY9S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109889},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"a4ecb8c59b0fef5a6bb64438b3236b216c4e27cb","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.17.3_1785929262140_0.3380126473853573","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@i4e/invest4edu-access-core","version":"0.19.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.19.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"fda941557f698384911d5f9ebc71c3e2ffc3d40e","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.19.0.tgz","fileCount":19,"integrity":"sha512-mgi1ei4jF0VUTRKwI/jL1ayGp6rqClSu2uXg9UoxM4uWRWKN66ntYVBwJ8YcorFtbtgTyWB7uT9WEtj4EgWa4g==","signatures":[{"sig":"MEYCIQDP7hK6KTcmNPm4OjzJyGzXrPUoVRakCVIDPmGsHEiraAIhAKdtlnlO4bfigvwQHc0Hk8IxNYEM4qvlfkMBGIjhV4Re","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117048},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"0f8e30836c525164604d1f25c350ea6fcbb5f896","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.19.0_1786006151684_0.9121341302719477","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@i4e/invest4edu-access-core","version":"0.20.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.20.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"2257786a0cf6032370065b495ce3eb2135277486","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.20.0.tgz","fileCount":19,"integrity":"sha512-kdkriPzF8d0sOOBav0gHbssym3qxwnIgHRbFKg+sW/DkfvdH4aPv+DVat4j71y2aQLAs4PT7orp1mM05ByOSOA==","signatures":[{"sig":"MEUCIQCeKVU+aDWh/mok1h47n4LRjeXJJiWkD2pHs+/VfqKKVAIgANegMnmlJtDxqcrNIpdZIvnkjcz/psdl+x/M0tYV92g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125484},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"754512259e757ec2b92f6a2fa7ca73b2fc4acb8c","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.20.0_1786163872572_0.4287183205962588","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@i4e/invest4edu-access-core","version":"0.21.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.21.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"af53cac2b26198ce0acb07e80359462c847426f3","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.21.0.tgz","fileCount":20,"integrity":"sha512-OSx3fr9NAWOBIbNyK6E9nQozqYNkxSWdd/DAI3WilLrwalc/tTblvA2PMhELXELULOhRrkQny2SPevKy1tiINw==","signatures":[{"sig":"MEUCIAK9w/IEPvGlQgQPtvWGshPE27Hojpv7Tswwz3uSRHavAiEAmv/C2akxYwgB76wDMFymaOiexFOo3k7GzNcUiSsL8OM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131686},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"754512259e757ec2b92f6a2fa7ca73b2fc4acb8c","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.21.0_1786165055916_0.01364820306471981","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@i4e/invest4edu-access-core","version":"0.22.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.22.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"b6891f722d6f507589a2c52b98dbec5418b5f4d5","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.22.0.tgz","fileCount":20,"integrity":"sha512-blyY+oQp3pbLYqSd6o2N7nbr1b7zKyMKKc83sBfm9HcCxsHX64o5KRIAO7CXLCPNTjaF60EV0JgTMoNUZH7Cag==","signatures":[{"sig":"MEYCIQCaQ/iOZgtFNJD73BZFi1UGmuxv8lDhVbGpao/Gu/goKAIhAPzxLQsypklhBLq1cO8ANPC77lfhcp5w/ShIhxPpXRw2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132847},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"60c3e1ceff6a3b5349e5aa86a6e4f4739f429261","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.22.0_1786166174371_0.24149810055595866","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@i4e/invest4edu-access-core","version":"0.23.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.23.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"bf9fe22149ad9745b86f7b063be7e6eafddfb6d0","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.23.0.tgz","fileCount":20,"integrity":"sha512-tlN8R4y3Wy0WQ6FZOcF7w9u0+ewDZzv/RCfddeAQtZg1q+2gc2OVnq/kN46lD4hxyMhrITVn1+k6PMercJtXsg==","signatures":[{"sig":"MEYCIQCBcsmtLAhJ6GiA4wzSvskTzTwDeG0vSNahJ/wn7ZtnbwIhAMsAyt2gNnAVTtu2X86X8q/SPAg6bOhA2x//3TYVPIJU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133176},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"3d854995c546c69d8311dc63ba3fe14979788b88","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.23.0_1786251294970_0.6157838778207487","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@i4e/invest4edu-access-core","version":"0.24.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.24.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"75b748f2373483c60a5b4ee5df759962ecb1670b","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.24.0.tgz","fileCount":20,"integrity":"sha512-mtIOzoRVU/qMqQTin7ij7QmSqP96sxERBCHtuUdQQp/QHZ02CPxfdzh102yR0up8OPYqSDH/3To8ewT1301cMA==","signatures":[{"sig":"MEQCIA/8wbFho3eQ1hNDauVA3fa8jMP5Fwu2RXtCSyHxruCgAiBOzYdnDW176eyHkQ6M2flWgYsA68dU+QibBOpKfO2iGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134711},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"753b3413a828040980ff30fc463536a8b6a21e83","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.24.0_1786256912484_0.23547526120372986","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@i4e/invest4edu-access-core","version":"0.25.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.25.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"4ac7d46247de1537efe5f7290a24a89017bb6005","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.25.0.tgz","fileCount":20,"integrity":"sha512-yeIz/nIsIsuBiuLFqrmlk9I+n7Hhshx++fvdV4ex+4KYnQiOTic0/WD/pbzwX3LmfUkKvkLKty6d/8KeriMX+A==","signatures":[{"sig":"MEQCIGtQFwvg5bJWI+NvpaLKQhVs3o34PLv069Qh0E8/w2ZWAiBHINGgtdw+n90PQBxc4eQOBkkRjeki01WzYjvpG4MmbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136188},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"dee6e76a9742c028d3c6fd011ce6f959222b8f63","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.25.0_1786275703223_0.5600441717710178","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@i4e/invest4edu-access-core","version":"0.26.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.26.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"9c05ccf105c48d4a995e75efa10d3af5ec6c5dda","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.26.0.tgz","fileCount":20,"integrity":"sha512-aabIwNJGIMmxccv7A6TPjFKhyKIbF6lEW9Jyc9T5EjQlkDTDg+aHYhPmGVdZxZs/aCOqtFOt9J9PHX9hODqoOQ==","signatures":[{"sig":"MEUCIAVzn3Tdq6MnZa2WWkRdkc8VYtbUtPVPA3FD2YVuXb/dAiEAv4CEShmBSKpdN3+GrIFfTJWQLfWOKFJQ7vaEPccLbNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138274},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"aafe2ef0c5e59a17d994adf88fa37d9e32d12e2f","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.26.0_1786433336979_0.28973809581589216","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"@i4e/invest4edu-access-core","version":"0.26.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.26.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"002976aacc92c2032471e30b675b0305446d38a4","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.26.1.tgz","fileCount":20,"integrity":"sha512-rr6hrpv7UtlVwdhZwrBmuKinlP34y19g4kMjsToauYnuVUFIGJ2sQ1IlPdeVR6qwMXd19UrWsce8ysBtA47bBA==","signatures":[{"sig":"MEUCIQDbr4w/vZz+86EaOuFDGbcLdAW1EaKihU4T9PXnAvgmFwIgJyqpvvWwSCidzzG6/8Of37FBoxFESSFCdukcqNBmvaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138672},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"88f9ea363901844bf7b902f6cac1e026430c128e","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.26.1_1786433988582_0.25182308579536805","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@i4e/invest4edu-access-core","version":"0.27.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.27.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"4a9318ae0e6944caf747c9d0c9573afacdf60524","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.27.0.tgz","fileCount":20,"integrity":"sha512-XzdSGQCPeluNp6rHeNAlK2Lf9O4NRsaUmvPCyB2MFC9FDF51t5O1kKfoLaEy2sAbdvHj63zj9RskkcVNNR7zTg==","signatures":[{"sig":"MEUCIQD3209Fv0EHgKGryVmBxZClrgXTX0PRDPDxLIF8PZJ1twIgLgyK+tc9MJUrcfZQGwAbbZ+jhdqmPrTsfGmskKClofs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139110},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"cc095561de346b9f88858d10f38bd5bc0e5821f3","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.27.0_1786510895775_0.3124124544737148","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@i4e/invest4edu-access-core","version":"0.28.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.28.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"228cda22d27ab3e563c446261a770f9efb151b6a","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.28.0.tgz","fileCount":20,"integrity":"sha512-/Mi2WDanS2aVFNEhQ3lrK19KTPPP4X4NbqunT/BIScQJkiL/qxk/GsbfXejr6SWRdwMpd32uuh4xbw2t4AICTQ==","signatures":[{"sig":"MEUCIQDjuaMyE2r/v2pepT2w4tK/YiSBVeI7dh3HgeDyD15PeAIgQYm4O4URubsip2db3ms2Oa/3/GWX2Ux9AqczpT5VgIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139505},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"bdee010744fe6ebaf1ebc8937635d361f945687b","private":false,"scripts":{"test":"node --test test/"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.28.0_1786513458931_0.6340500859466764","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@i4e/invest4edu-access-core","version":"0.29.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.29.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"63d6cb82f2a73a6d1d134c2365ada246d0099a75","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.29.0.tgz","fileCount":20,"integrity":"sha512-27S6KPW4TpLIe/Y+X2I1g6z3KVneRVOnhfApsignMp/ZaOciO6+bej8nDXdqerqzoC/hOBbeZeolT4EtC9qpeA==","signatures":[{"sig":"MEUCIHw5zyLjI+V7iVZ/KDaHqlXwvAbgZEafYfEaX6HQ0idkAiEAhLVJKbGsY59/85qAET5bo/z7SorF6jc80rpNhJQ9xzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146125},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"fa436ae43bf9456d0103b1d4c0d07beaf20c490d","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.29.0_1786536602648_0.28302429893788306","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@i4e/invest4edu-access-core","version":"0.30.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.30.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"4676d16a038e5d8d4e4fe3e780991597f2500cae","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.30.0.tgz","fileCount":20,"integrity":"sha512-F4fobOYLxddCHnEzmr5t/pn6WV69hubGzDjm2eW9oEdiN7UxzOOING1cp0bw3GDGimPyD1psj+Kt0uWDiR5Oug==","signatures":[{"sig":"MEUCIQCiIxcqMZutIzTGFxKknn+3uizk9c+4EKztoQxyUnd2LAIgAjVUFFxu+RoxhbeYpRNzUaz4EzM4ddGUZfCpGTVwC1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147252},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"d9ff31e181cffd63a6b976c4bf970d7bbcd58288","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.30.0_1786983928662_0.39166253490577896","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@i4e/invest4edu-access-core","version":"0.31.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.31.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"edf3d6f91557700daab9104cccdf7f571c861091","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.31.0.tgz","fileCount":20,"integrity":"sha512-ABZpkrUc2ikEb/mmhZkrQxD2Co88Er6ZGVhDENdr7AJVJ8b17bA/JiED2jHYLayj2ozenJFK4rFrsct0VOM1ng==","signatures":[{"sig":"MEQCIDkUhNVVDHx9UmRyJ4JDUX1Yug71gN+eXI2lx4467dl4AiAk+WdskXQ+ttgFK/Qk1OCd0SKHH3gHFjA4YbFm/TyqUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148550},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"5ca2832e41069b8391b79a7187c29da793561552","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.31.0_1787035591038_0.9485677682630695","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@i4e/invest4edu-access-core","version":"0.32.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.32.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"f6aa22a4c7320945e33746d7663259ed2abacd3c","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.32.0.tgz","fileCount":23,"integrity":"sha512-Mz+1qdlH5bx7yc+kJkD4tMS4qWSi9S93oTWmC0BSQckv5cJ6PxImkeq0GyB0wCl4aGka6bK4NP8F9c2vGXII2g==","signatures":[{"sig":"MEUCIGHlzojvEC3rSWcZu9i0hNmOLaqo51AvB3pd1+ycz5UCAiEAi2GgpZ9EV7jOE51oK1wu1RSykSSbYm4WIbehLJ/+Fak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174138},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"51746dbaa392fabba378216a4fcf896eefb9bcf4","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"11.6.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.32.0_1787828799131_0.7687757109594213","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@i4e/invest4edu-access-core","version":"0.33.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.33.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"873833c9493551ee7281f7da51dee91ffc32f359","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.33.0.tgz","fileCount":24,"integrity":"sha512-XL4GHddbBRMoaP5MAwJW89Ue+fd3Io9JGa/Ce9JXnkdZVv/Y7FWcTK8YPXyc5Kj2KQULO87753723kH2r7Bzwg==","signatures":[{"sig":"MEYCIQCR2ork82BMSOtb5MlkqteJizuhHYIENjpOWuxYSs0R3AIhALM7vb0gCIb30RUt3ohelNkXccJOTYBiylnT8ZO3hBge","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173103},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"5c416f29fcec30c653eeeb2974e1171802b31f09","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.9.8","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.33.0_1788373463355_0.7964862232568881","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@i4e/invest4edu-access-core","version":"0.34.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.34.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"88b62c0a03286ea5068f8c8d4c43ed507ff5a540","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.34.0.tgz","fileCount":25,"integrity":"sha512-TSE3qejG2BkLxjzTpULJWauMGWa+6YHPHsrKRjGeeXCu0O0Zn0WlCuktPFPFHfee3ugX2W4ZEhlBYrJWR3M6DQ==","signatures":[{"sig":"MEUCIARWdZ6/+WpDHRWbJsJzzcpSqj3lhYX/4fsocPi0gHsmAiEAuW/pHeD/zrDSy1WfTw1rzASg3yeHxgX/UPab8YJriGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183755},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"eb863778c29d19b79d9eb410b092a513604455eb","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.34.0_1789016588050_0.6598579531160524","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@i4e/invest4edu-access-core","version":"0.35.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.35.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"d668184ad51dfd7d7af77c6461d649320f4e65f4","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.35.0.tgz","fileCount":25,"integrity":"sha512-z212oWWNmtdqRKs6m8ksAkhDFwIghOEQtbbkDqwzhbuNXoT4So/oHAyVdNJ/Cso64MIeniMsGDJm60KFIirpbg==","signatures":[{"sig":"MEUCIQDsUHUAjv6SRpmNcItvVi2z7WbB+cJxFsBM0H2L24QdrAIgJAgLeZA4mpAmb4Q+A6TTCDh9HuQpWB2tLuCi4cxpSSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184528},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"84fcc05782ed40742e571b97ad94ae2e5d25d035","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.35.0_1789221202645_0.3462414043659443","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@i4e/invest4edu-access-core","version":"0.36.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.36.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"5e4e40c71471cfb045b2f0bf02bb2dda594d50d3","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.36.0.tgz","fileCount":25,"integrity":"sha512-3HWsFC/3GdqyrGcHyZJV+ByjMrr+2OcjgHhbm+88UjxXIejWGCLStvrsXv5TYXngTzxrKCOOfAbRyCtNmhZsDA==","signatures":[{"sig":"MEYCIQCVqaDn7GFXcu/DkrI15xuTKm2n/w5oA3hY2kJ+f1iPagIhAIqRlEEcCx6vZFk9UmLooEcsO3QmYJhedes5Zq2Hn2X+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCUEaqled/cH9nvymAk6d+3B+FIUVg2pu0e/6/aevF/FAIhAJBr8a00szLt4/gTVsNcOLFeHf++9C69aNhnAq5GmUI6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186182},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"gitHead":"ea3ffa7dd6ab82772876903e11ae45f2486149d2","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.36.0_1789989195818_0.8987414084009553","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@i4e/invest4edu-access-core","version":"0.37.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.37.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"68a9493f17661f7086b94d6631adfae4e9a30eff","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.37.0.tgz","fileCount":26,"integrity":"sha512-Jm5at7a4A5ujy/VuZXWY5PdFm4nONMHMm1pwJDYCEKUOaWi4vPDexhI0fqRvvfZ8gfuxlMns61/ydU1rpYlx8w==","signatures":[{"sig":"MEYCIQCxaKmULh4sukU2KG1cMQzqsnBTUW5jZpqwHGMP704sdwIhAIgABOakousiQevxNBBZGIV6QYBQUynoJmLBCaz/xMbf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDq+kIfYY0iAfXWpWO/kY6hlKA1gWjVizX0gCIuC6C8TgIhAJ+FcyaDqmAhY2t8i0TKNwcW8gqRzH0KqHqJHNdlRXjZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189597},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.9.8","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.37.0_1790526926055_0.04601909894966272","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@i4e/invest4edu-access-core","version":"0.38.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.38.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"4aff15831ee070ae4535019807e9c5dba0006830","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.38.0.tgz","fileCount":39,"integrity":"sha512-zTPqQ18r5pchtzYL7ECf6GtRn3cDXvYjFM8sVzBUAr5MXOzoPcWTXhz8oQiYAX4vY8C6bnp2lHjLLUcqLCaxDA==","signatures":[{"sig":"MEUCIHG8xmPRk2SdaKeARabEvmLPzZCEakyaSeWm3K6Rdg9uAiEA8X9tloMLCjN8Bz/HebrPT+p4k97fwJHaF2sSPQygs98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDzpYkZnk2Hw4U77/GDDJ/rPPBFPy4B7kJ+wkddEa8a0AiEA5aLXoUb3xmFqNyALHknsuJyAQ6MowgsCoB9P7PPwpUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283545},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.38.0_1790685703701_0.30474433813748525","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"@i4e/invest4edu-access-core","version":"0.39.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.39.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"54393c31109a20954340ce5e75a0fdb4400937bb","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.39.0.tgz","fileCount":39,"integrity":"sha512-zll4H8D5YX92j3TeKnUkRw1VsAd7ovXZ7+9WHGAtdtyCYrkFsHGbaEHOZfys2FGlnBPSZuT78QoCRKavi7tT/Q==","signatures":[{"sig":"MEUCIQD2T1K9I4VfotHTIqI4qlJHgMNyPrJfwMvgbDjbd3aGegIgE9OWeXF2tJHECt8N6msrGWBevx3eZ6NeePI1rB6u7Cw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDluePO5gYh1RTWFUnfqtGmE1H+pyLKdiA7awv3wfGdiAiEAzq1eAETnspUazsfY9DdfwPim2LKpZwiy9pA3JZuxBIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283904},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.39.0_1790740849015_0.015687660806479542","host":"s3://npm-registry-packages-npm-production"}},"0.40.1":{"name":"@i4e/invest4edu-access-core","version":"0.40.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.40.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"fe11bf9d8628af9d47ceec54554eac0f674c8e7d","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.40.1.tgz","fileCount":40,"integrity":"sha512-xkoHuCRMgMMIyLiGzKOehudCLhipzwA/vvOt/tDXkas98uEjvJU63qtZgPGxtSfr3meiat+PJk8MEZTU4x4KpQ==","signatures":[{"sig":"MEUCIQCn3PUhLQ+VJahYXN94YuPKFCkwatujeCdmkTOdcqQBzQIgYQzLGPvpc8DoCEaMBIRrh3smp85w0hoNR6Ninxw4eLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFKg/SHDC6dQrTOylvJF5bXnjuv0KGPx1Y1WAgerwk0nAiEAs05T3Z8qcKFsS+wnd6pgqyHCgFxxkBrAQnq09RDJ7sM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287128},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"deprecated":"Broken build (settings syntax error) — use 0.40.2","_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.40.1_1790742243229_0.2715182648719938","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@i4e/invest4edu-access-core","version":"0.40.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.40.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"ee58fab443cec2a6b743c366487cc3d652f90006","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.40.0.tgz","fileCount":40,"integrity":"sha512-bhkw2Tl79RJGPxTLS/+iMUHtyoqIrr2z8E3qWTgAMTs8NLaIZOXTwIadY3JYJSfFm6AmAFZlAMUBCrSBrpMuhg==","signatures":[{"sig":"MEQCIGxf7kwVCTuJdoXNDBuVcqEKEzB1ELtiJmRpr+hug1Y/AiAX1iu52cDRd0dnmuxxjvgMR1gFH4DJ29qgN1gozB+RrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHXQaniZY8arHwO3s1V5yU8c0XEN2Y1CokDWDsZQqXIWAiBJbOr6ochOxzCu9XXBMv4qVYBERVYdUGNYYL3HfLkuWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286962},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.40.0_1790742249591_0.7853666324923647","host":"s3://npm-registry-packages-npm-production"}},"0.40.2":{"name":"@i4e/invest4edu-access-core","version":"0.40.2","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.40.2","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"c4198153446ecee901be1c1618dd7b788dd12909","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.40.2.tgz","fileCount":40,"integrity":"sha512-5VQmzBtLrrisUKARcBqfg4FPRgT6bWWIcpYZD7/e7OVKAqLp/U8+UqVvIRvMTQGT6HhtPG18bJg9Ssizt1wzcA==","signatures":[{"sig":"MEUCIQC3lrOj0wAMqYcf9Sxy45X4q5BRTS1dgEfkmhoRud7KQQIgbyE5vaodYnvsGqeQsm9ew0beQPIptbspivFSV9IZl+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+PAo2/JGAJd56aHxqio5wwNMCtNi/az1S4NrywmmtgAIhAOqt22atASVLAp9iyfswYkoiZTI3Cp7Qi6ervGlmw4b+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287127},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.40.2_1790742269868_0.15845553407328006","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"@i4e/invest4edu-access-core","version":"0.41.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.41.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"72668fb0d88b8c3d0d8aa6fd2e507d47a01ccd15","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.41.0.tgz","fileCount":40,"integrity":"sha512-KV+EXGZVJ46uR9mNwuBrNtbhIT3EsxDI40mMAFREFpCI+Vf7SHkRbGmXZfdaXtUj7OHqKGGYbl2kU9UIbvXw/A==","signatures":[{"sig":"MEQCIG/GA3yPXwk/BqwqQDXi1G91OULx2n03/MVqjfKR7nJ5AiBtSXSMpVNfLH65N0BD+sQWDBauOcW7UjgscZCA3aMTOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAKu5nmYpd6WLxq2PbFIdJoFKFYBK3fvndee9EVkZqfdAiEA+EwF/t9BY+ojbiUSrWZKTl1wLBWmsQPSnu882S8DDD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291094},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.41.0_1790742626433_0.2817013933265369","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@i4e/invest4edu-access-core","version":"0.42.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.42.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"7b68d19a490e3ee189208b590e96dbd436f25ab0","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.42.0.tgz","fileCount":40,"integrity":"sha512-UxrZKWdMSiws1O2QGJm0knGPPu7MYWgiGVX/CFL/rhK09DHsTeMTrCLHOeRrK8F//HXvGjqgmja2L1xQ3ks0pw==","signatures":[{"sig":"MEQCIBBQxi5IP00vek5sx9/7oFr2r/dKfy1k6pIEBMEPYNWBAiBe7uAcXs8OJdXsWgOER2nUGBQhlEC9bi/tYyJn1XuSuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIATfBSBLF10f3WvmuCNAbTVftOGTbjHCbmCsver7HIMpAiBtHe2tZBMPjfAPDnyY6tC7BjfrpnQAHtEzjjWni5w6MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293126},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.42.0_1790744849033_0.9942797073992999","host":"s3://npm-registry-packages-npm-production"}},"0.42.1":{"name":"@i4e/invest4edu-access-core","version":"0.42.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.42.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"2f40cdb6792bc20fb6354462c06a751cf51b31b1","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.42.1.tgz","fileCount":40,"integrity":"sha512-BCmLNfym7ZNn2fh4oa94TjdIAUqz9b7RGpNA3CA5+Hc5aXZh1017eShfrX8ksXcGfn/2oY7lM5u0BxJ6JAkVDg==","signatures":[{"sig":"MEUCIBjQc435mN++vpzO23tkYOt2M9Skc9dNYLymhaU30q2OAiEA8scUKuIVQWVrobrWKiTVBlcjA45dDU6LakN0VG0DtbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHUF3xVciQxx9B+nwxcbpVjuQNcQ7aIvkn1mF4bjZZrIAiAX0HMdfULP5WfRYYhd7r3PfqsMO3rVUrPn8SE1tNeikw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293413},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.42.1_1790830161143_0.278750497304439","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"@i4e/invest4edu-access-core","version":"0.43.0","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.43.0","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"a3659bb9865f6d03328833543202aad0d3ac76ea","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.43.0.tgz","fileCount":40,"integrity":"sha512-A/Mirm45iMsqrhNm1o92YUdZN9v9EE+tH3ES8LTLEob9JULoZee7plOX09UHftU0F9aQ7kl//p+Uaf7LC49fbQ==","signatures":[{"sig":"MEYCIQCYLxVvBPAZ0OrSfQGJdk3cohIs/oNf+c51/Jr66T3sOgIhAImR+eJRsHhdoAgc+HucwX1z1gz18zoKwYJIb/GLhSvS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGA/jNwW+vTwYlzuAvu+50tm3hOb3VgQx1D2Pr+QIVFoAiEAmHRj15d8p1JjUqcguPkVcxInSDK6d7I72mxiVLcMx8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295031},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.43.0_1790834996780_0.034665790881379666","host":"s3://npm-registry-packages-npm-production"}},"0.43.1":{"name":"@i4e/invest4edu-access-core","version":"0.43.1","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.43.1","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"be119591c676b728a00ff1e1c22d80e11d04c6e7","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.43.1.tgz","fileCount":40,"integrity":"sha512-zFpDSgKwoOmifrs9DqVejrDhL5bBYz7chn4W4rkUOCapuNZeyJWjSCnN65wvs9BQOxIMFn1ynBbh275rLaknZg==","signatures":[{"sig":"MEYCIQCj1DNuc8iAm9queJQKrMPd9jaaIKjJPmooIk2qWjAA3AIhAOGMKFVASy5dP8jWKhEooSzaEyRsPdFeqCaZXnihSyb3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAfcpd3+cw9FjGlHbt/46XE3JFY7/I6PFLhAZWgW87JcAiBNKT06j92SRtCcR7FgaEVBrQcEu2jZsb/AXqxvOfThvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295862},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.43.1_1790835675909_0.38791500949472124","host":"s3://npm-registry-packages-npm-production"}},"0.43.2":{"name":"@i4e/invest4edu-access-core","version":"0.43.2","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.43.2","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"76539c9811f3933991fa6f19956b48b3b7d4b7cd","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.43.2.tgz","fileCount":40,"integrity":"sha512-6kpnUvXPnq1gf2UjsOuYYK+DTBcUDgIKLNJbR//kx+t5eO8g3qIZOVqh3faTaIIbQ1HkvlF5Q53v169EdQKKIQ==","signatures":[{"sig":"MEYCIQCtiAZaHXmztUDIjwnHSaIUk/EsO40xlvLyI2zyryhWKwIhAOPNnwfrgcVYsp4l0MkyG0rvOA6gYw1Njtn4gkNh6+Rb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHB5BPc/Trev/uxAlS4Hm6HrZD+EMnhhZOcFjj5wqMxZAiEAsRwLTJ6aQv6iDudurwhDoRNTgFY7K1fqDEh2piMNRnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299062},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.43.2_1790838207730_0.14677241565417742","host":"s3://npm-registry-packages-npm-production"}},"0.43.3":{"name":"@i4e/invest4edu-access-core","version":"0.43.3","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"license":"UNLICENSED","_id":"@i4e/invest4edu-access-core@0.43.3","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"dist":{"shasum":"aed35eda27f0dd407bacc8aafd94a7d57d9d0119","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.43.3.tgz","fileCount":40,"integrity":"sha512-O39wLTXDiTx6BtrOOMjz/V+ZF5JFxSPKYgmBMduWxsvKt2sXFHsjc73V9zILPlRmKa1LcsE/cNTUFk1I+gkdzA==","signatures":[{"sig":"MEUCIQC3WojlEpF2Ws15B7xzEmEZxnQFomU6w3L736vsj42pYwIgTlxeMmgOJ9WiGAB4MzcEjKzqx7AzJyH5XAccEavq9Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGrUE3Jjq6T5Bo/QsMuOPzXfXDga72Nr5w85ZuSgoP0YAiEA1FdEufsjkdK7WQCYXYYraOw0lPkvfee5woxkrIwUPNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299272},"type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/invest4edu-access-core_0.43.3_1790839780211_0.2825762580681108","host":"s3://npm-registry-packages-npm-production"}},"0.43.4":{"_id":"@i4e/invest4edu-access-core@0.43.4","dist":{"shasum":"ea13ccc5d9d4d8346ec68d2002a1f61445d6f12c","tarball":"https://registry.npmjs.org/@i4e/invest4edu-access-core/-/invest4edu-access-core-0.43.4.tgz","fileCount":40,"integrity":"sha512-h091qUDZkifasnuvxkdZQu4++N7bOj3KpEy/WN534r9TzFs7Qk4hVwGmVED3N0rTgDh1nzvUgd3vtwp1QGHXHA==","signatures":[{"sig":"MEUCIEuQf1DtvHf8XCCEL3A4YQSb6cdmPpPQJCP6TMH86ZjXAiEAkZKCy5iZIJ0d6Kx5ojx4K3dUXSC9+NWLyy2oLiUmzb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH16PGkTGrR32c1ieFgA9CtCc282Vnox4LqR8v1F01R6AiEAwYnSzUkVHuIomQ90hgEaRQ+rdJTK07iMaiBEl2uloOA="}],"unpackedSize":300465},"name":"@i4e/invest4edu-access-core","type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./credits":"./src/credits.js","./proration":"./src/proration.js","./entitlement":"./src/entitlement.js","./grid-schema":"./src/grid-schema.js","./portal-roles":"./src/portal-roles.js","./route-screen":"./src/route-screen.js","./visible-when":"./src/visible-when.js","./access-config":"./src/access-config.js","./access-schema":"./src/access-schema.js","./entity-status":"./src/entity-status.js","./reportee-tree":"./src/reportee-tree.js","./tenant-plugin":"./src/tenant-plugin.js","./client-profile":"./src/client-profile/index.js","./route-features":"./src/route-features.js","./tenant-context":"./src/tenant-context.js","./access-resolver":"./src/access-resolver.js","./report-audience":"./src/report-audience.js","./user-entity-link":"./src/user-entity-link.js","./entitlement-store":"./src/entitlement-store.js","./role-capabilities":"./src/role-capabilities.js","./entitlement-schema":"./src/entitlement-schema.js","./mobile-app-identity":"./src/mobile-app-identity.js","./subscription-lifecycle":"./src/subscription-lifecycle.js"},"license":"UNLICENSED","private":false,"scripts":{"test":"node --test test/*.test.mjs test/*.test.js","prepublishOnly":"npm test"},"version":"0.43.4","_npmUser":{"name":"itsupporti4e","email":"itsupport@invest4edu.com"},"keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"_npmVersion":"10.8.2","description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","directories":{},"maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"sideEffects":false,"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"peerDependencies":{"mongoose":">=6"},"peerDependenciesMeta":{"mongoose":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/invest4edu-access-core_0.43.4_1790850696644_0.3974257683377045"}}},"time":{"created":"2026-07-18T05:16:57.668Z","modified":"2026-10-01T10:31:37.098Z","0.1.0":"2026-07-18T05:16:57.871Z","0.2.0":"2026-07-18T05:34:39.453Z","0.3.0":"2026-07-18T05:52:41.090Z","0.4.0":"2026-07-18T06:05:21.838Z","0.4.1":"2026-07-18T11:56:55.856Z","0.4.2":"2026-07-18T11:59:32.807Z","0.5.0":"2026-07-29T07:44:48.972Z","0.6.0":"2026-07-29T11:14:35.991Z","0.6.1":"2026-07-29T12:34:12.516Z","0.7.0":"2026-07-30T10:54:14.051Z","0.8.0":"2026-07-30T17:03:09.952Z","0.9.0":"2026-08-01T13:32:52.844Z","0.10.0":"2026-08-02T11:49:04.213Z","0.11.0":"2026-08-02T13:51:55.651Z","0.12.0":"2026-08-03T12:24:12.157Z","0.13.0":"2026-08-04T05:32:09.816Z","0.14.0":"2026-08-04T05:50:27.090Z","0.15.0":"2026-08-04T05:58:23.053Z","0.15.1":"2026-08-04T06:01:54.238Z","0.16.0":"2026-08-04T06:32:45.834Z","0.17.0":"2026-08-04T11:12:04.148Z","0.17.1":"2026-08-05T10:30:52.096Z","0.17.2":"2026-08-05T10:33:56.052Z","0.17.3":"2026-08-05T11:27:42.281Z","0.19.0":"2026-08-06T08:49:11.823Z","0.20.0":"2026-08-08T04:37:52.806Z","0.21.0":"2026-08-08T04:57:36.068Z","0.22.0":"2026-08-08T05:16:14.529Z","0.23.0":"2026-08-09T04:54:55.116Z","0.24.0":"2026-08-09T06:28:32.636Z","0.25.0":"2026-08-09T11:41:43.389Z","0.26.0":"2026-08-11T07:28:57.139Z","0.26.1":"2026-08-11T07:39:48.739Z","0.27.0":"2026-08-12T05:01:35.907Z","0.28.0":"2026-08-12T05:44:19.090Z","0.29.0":"2026-08-12T12:10:02.788Z","0.30.0":"2026-08-17T16:25:28.853Z","0.31.0":"2026-08-18T06:46:31.188Z","0.32.0":"2026-08-27T11:06:39.294Z","0.33.0":"2026-09-02T18:24:23.507Z","0.34.0":"2026-09-10T05:03:08.176Z","0.35.0":"2026-09-12T13:53:22.792Z","0.36.0":"2026-09-21T11:13:15.908Z","0.37.0":"2026-09-27T16:35:26.145Z","0.38.0":"2026-09-29T12:41:43.806Z","0.39.0":"2026-09-30T04:00:49.099Z","0.40.1":"2026-09-30T04:24:03.351Z","0.40.0":"2026-09-30T04:24:09.724Z","0.40.2":"2026-09-30T04:24:29.956Z","0.41.0":"2026-09-30T04:30:26.530Z","0.42.0":"2026-09-30T05:07:29.140Z","0.42.1":"2026-10-01T04:49:21.242Z","0.43.0":"2026-10-01T06:09:56.884Z","0.43.1":"2026-10-01T06:21:15.994Z","0.43.2":"2026-10-01T07:03:27.846Z","0.43.3":"2026-10-01T07:29:40.353Z","0.43.4":"2026-10-01T10:31:36.730Z"},"license":"UNLICENSED","keywords":["nfd","access-control","tenant-isolation","mongoose","async-local-storage"],"description":"Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, mobile app identity, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).","maintainers":[{"name":"itsupporti4e","email":"itsupport@invest4edu.com"}],"readme":"# @i4e/invest4edu-access-core\n\nShared tenant-isolation / access-control primitives for the NeoFindesk backends\n(nfd-api-node v1 + nfd-api-node-v2). The **D1 keystone** of the access-management epic:\ncentral, unforgettable `account_id` scoping.\n\nBoth backends are ESM, so this package ships plain ESM source — no build step.\n\n## 0.32.0 — BREAKING, and it fails silently\n\n`resolveReporteeUserIds` **no longer reads `employees.reporting_manager` as a user id.** It\nreads it only as the manager's employee `_id`, which is the shape BRI-973 migrates the field\nto. This is a breaking change on a 0.x minor, so read the two notes below before upgrading a\nconsumer.\n\n**1. Against un-migrated data it returns zero reportees, not an error.** The dual-shape\nwidening that carried the rollout is gone. A manager whose rows have not been migrated\nresolves to a self-only scope, and because this function feeds record visibility in\nnfd-api-node and the lead access scope in nfd-api-node-v2, that reads as *\"this manager has\nno reportees\"* — nothing thrown, nothing logged, just a smaller answer.\n\nSo the deploy order is **migrate → verify → bump**, not the other way round. Run\nnfd-api-node's `migrations/verify-reporting-manager-to-employee-id.js` and get a clean\nverdict before the first instance carrying 0.32.0 serves traffic. In a rolling deploy that\nwindow is real, so the migration must be complete rather than merely started.\n\nUnder npm's 0.x caret rules `^0.31.0` will not resolve to 0.32.0, so no consumer is dragged\nacross by an install — the ordering risk is entirely a human one.\n\n**2. Callers must pass the FULL employee list.** An `_id` reference only resolves if the row\ncarrying it is present, so a pre-filtered list (`{ status: 1 }`, an account scope, anything)\ndrops link rows — and what you lose is not the filtered person but everyone beneath them.\nFilter the result instead. `resolveReporteeUserIds` warns once when handed a list in which no\nrow carries an `_id` at all, which is the one case where the answer is confidently wrong\nrather than merely narrow.\n\n0.32.0 also moves the entity/role vocabulary — `ENTITY`, `ENTITY_STATUS`,\n`isEntityLoginAllowed`, `conflictingEntityFor`, `ROLE_TYPE_PRIORITY`,\n`CLIENT_APP_ROLE_NAMES` — into this package. It was previously written out three times\n(nfd-api-node, nfd-api-node-v2, nfdui-nextjs) and held together by parity tests.\n\n## Install\n\n```\nnpm install @i4e/invest4edu-access-core\n```\n\n## Usage\n\n**1. Carry identity per request** (in the auth middleware, JWT path only):\n\n```js\nimport als from \"@i4e/invest4edu-access-core/tenant-context\";\n// after verifying the JWT:\nreturn als.run({ account_id, userId, roles }, () => next());\n```\n\n**2. Enforce on tenant-scoped models:**\n\n```js\nimport { tenantPlugin } from \"@i4e/invest4edu-access-core\";\nschema.plugin(tenantPlugin);          // before mongoose.model(...)\n```\n\nThe plugin injects `account_id` from the request's ALS store into the **filter** of every\noperation that selects existing documents:\n\n| | ops | switch |\n|---|---|---|\n| reads | `find` `findOne` `countDocuments` `distinct` | `TENANT_ENFORCEMENT` / `accessconfig.tenantEnforcement` |\n| writes | `updateOne` `updateMany` `replaceOne` `deleteOne` `deleteMany` `findOneAndUpdate` `findOneAndReplace` `findOneAndDelete` | `TENANT_ENFORCEMENT_WRITES` / `accessconfig.tenantEnforcementWrites` |\n\nEach switch is an independent ladder — `off` → `warn` → `enforce` — and **both default to `off`**,\nso installing the plugin is a literal no-op until you arm it. Reads and writes are separate\nbecause the blast radius is not comparable: a read that gains a filter returns less data, while a\nwrite that gains a filter silently modifies **nothing** and still reports success. Arming reads\nmust never arm writes by surprise.\n\n| mode | identity present | identity absent |\n|---|---|---|\n| `off` (default) | no-op | no-op |\n| `warn` | reads: inject `account_id` · writes: **unchanged** | log `[tenant] identity-less …`, do **not** scope |\n| `enforce` | inject `account_id` | **throw** (fail-closed) |\n\n`warn` deliberately leaves writes alone. `warn` means \"tell me what `enforce` would do\", and for a\ndestructive operation that promise is only kept by changing nothing — injecting a filter under a\nmode named `warn` would turn live `UPDATE`s into silent no-ops, the exact failure burn-in exists to\ncatch. What you need before promoting is which writes run identity-less, and that is logged.\n\nPrecedence per ladder: env var (if valid) → DB value → `off`. An unrecognised value is reported\nonce and ignored rather than treated as `off`, so a typo cannot silently disarm enforcement.\n\n**3. Bypass for legitimately cross-tenant operations** (caches, migrations, scripts):\n\n```js\nimport { runAsSystem } from \"@i4e/invest4edu-access-core\";\nawait runAsSystem(() => Employee.find({ status: 1 }));   // whole scope\nModel.find(q).setOptions({ skipTenant: true });          // one query\n```\n\n## Exports\n\n- `als` (default of `/tenant-context`) — the AsyncLocalStorage instance\n- `runWithTenant(store, fn)`, `runAsSystem(fn)`, `getTenantStore()`\n- `tenantPlugin` (default of `/tenant-plugin`) — the Mongoose plugin\n- `setTenantMode(m)` / `getTenantMode()` — the read ladder\n- `setTenantWriteMode(m)` / `getTenantWriteMode()` — the write ladder\n- `resolveReporteeUserIds(roots, employees, opts)` (`/reportee-tree`) — self + all reportees\n- `ENTITY`, `ENTITY_STATUS`, `isEntityLoginAllowed`, `entityInactiveMessage`,\n  `checkPortalEntityAccess` (`/entity-status`) — which entities permit a login\n- `conflictingEntityFor`, `entityConflictMessage`, `CONFLICTING_ENTITIES`\n  (`/user-entity-link`) — which hats may coexist on one person\n- `ROLE_TYPE_PRIORITY`, `CLIENT_APP_ROLE_NAMES`, `pickPortalRoleName` (`/portal-roles`) —\n  which role names a portal session\n- `MOBILE_LOGIN_SOURCES`, `CLIENT_APP_LOGIN_SOURCES`, `PARTNER_APP_HATS`,\n  `APP_BUNDLE_ID_PATTERN`, `appBundleIdOf` (`/mobile-app-identity`) — which mobile app a login\n  came from, which hats it flags, and the bundle id its session keeps\n- `clientProfile` namespace (`/client-profile`) — the two-profile client model. Settings\n  (`resolveClientProfileSettings`, `MODES`, collection names), sides and tagging (`sideKeyOf`,\n  `profileTypeFor`, `orderSideFor`, `primaryLockFor`, `primaryFromLead`), access level\n  (`clientAccessFor`, `callerClassOf`, `linkedViewOf`), the side filter (`buildSideFilter`) and\n  the personal-details field policy (`buildFieldPolicyIndex`, `evaluateFieldChanges`,\n  `effectivePolicyFor`, `changedFields`). Every behaviour is read from a `clientprofilesettings`\n  document and each has an `off | audit | enforce` mode, defaulting to `off`. Business\n  identifiers (distributor codes, role names, product codes) have EMPTY defaults and come from\n  each environment's settings document. Design and tracker:\n  https://claude.ai/artifact/JrCTutgQkp32r3NeU2uvmk\n\n## Not covered\n**Aggregation pipelines** — add an explicit `{ $match: { account_id } }` stage.\n\n**Inserts** (`save`, `create`, `insertMany`) — and they cannot be. They carry no filter, so there\nis nothing to constrain; putting `account_id` *on* a new document is the caller's job. The plugin\nonly governs which **existing** documents an operation may reach.\n\n`estimatedDocumentCount` takes no filter either, so it is not hooked.\n\n## Compatibility\nNode ≥ 18 (AsyncLocalStorage). `mongoose` ≥ 6 is an optional peer (only the plugin needs it).\n","readmeFilename":"README.md"}