{"_id":"@basementuniverse/content-manager","_rev":"12-cb52bdc836ab8d236e5003388301cb3f","name":"@basementuniverse/content-manager","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@basementuniverse/content-manager","version":"1.0.0","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.0.0","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"dist":{"shasum":"7a6063fa6d4bb3b72b4ea5199550904a97b2b737","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.0.0.tgz","fileCount":6,"integrity":"sha512-QzOraHszDOraSftg9D1lXUDMLzJRecLvHhln5+kaBRX1vN78sgFEawBu5s5M4QApZx4mJ+6RrzXDeXtsob6klQ==","signatures":[{"sig":"MEQCIAqwe6BuXPPFwHcZwUF0dI17gr+SJlQTb3LBJRRvdlgvAiBkOxwXl483/ch+fegyaPAnXKVv6ChnYItypZX0R24G7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrHY9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRvA//S01t/SFEOXoCWG3DVvWSTOo2OvvUQKcfPW1+xmnYHcyBYy4D\r\n+KiVvgW4rmM4hBp1h3bOv1aMRz/b1mf2wMkvJJ57bZwGABhGp0JURq29y9vU\r\nu+KrIH6F/+iEN3CHMa1EG1mLCJIfUPeiIJz9DMYXLkuxY5Yd34KPl781o7DE\r\nhoL8VTjW3ffXSnVaFa4kAB6oVi5/fSbmf8ZncTNz48PK5a7a8WWS9VDkDlPE\r\n+pSy02AFDFdmWBe4BS0q1VD/hyD+JcKNPovc+WaS2P7kidON4xmgTv8fTBW0\r\nM5NNLOfF3ZVmJ1qZMgjp3LbcWl7SLDTeTrRaYCdXdA7/ShHNxKuYlgKdYX0S\r\nRKEC7suEaII3TWmuvoNmIhJDGkpwcOT6o2oSNXSxhhGWJZj1WxAWX02gpRPe\r\nVXXPjBd34XJe0fiwSqLhgNIi30VLoO5MtdeYG07eTghrSIEO1efjMdJaj/oT\r\ng3j/sstEjncl7sgWtGV7Dn3zDi1mSNTcJ3svcGVy4C8jF3YYIIh1TodXSVKV\r\nKk85yGqjWr5WkKSmMCFLrcOybahBboTbLmMW4NiL2BjUTbBX2YPr9CZYSII0\r\nxQuwjFPbZYIIGbIbKPmt3S4UNkoY/xURIMzrB1vS0Jhw/vjhgKI9gdyepDlz\r\ngUKw5t6QAn2rlgt+hfgAtdy+BDWrVwjU1d8=\r\n=hqIs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"ba15e41bf3d81a1b62f82822dd8a9f732d9dd6d6","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"_npmVersion":"8.3.0","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"17.3.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.0.0_1672246844858_0.055493485278856","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@basementuniverse/content-manager","version":"1.0.1","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.0.1","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"dist":{"shasum":"594b89e799e45883ab422e52feb37f0df9daaf2e","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.0.1.tgz","fileCount":6,"integrity":"sha512-5duhe0F3dlQc8wBjFOhGoLdpGtrkw0QZeUQjzEl2lWtHt5rFhtf/9wx7cNF7h935lxT9DkqP38qKVZ5FYmuzUg==","signatures":[{"sig":"MEYCIQDeZOMBbEoVGlHCxCOYh9fDhqfNrbZ0eEuwBeQdk0yDrAIhALyxRQe9TKrDG9HIrsm/UgKhHUtsoqZZ3khR05kIGlmz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrHdPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrhA/9HPn9GjcEGuJvJSlXb8pJ88W2n8z2/fAHL+GRRz7tBe3ZOBT1\r\naIsLQ8gNLf67T2Nbm6GVlI7DorrG9gv+nbPV6sfZS6WaGfyfvQlyNocPpK9y\r\nY5AQgqgONsXAjFaRS6SO4ZrdkgtVUDenWDbc1vQjUzWSvjDxtFWMIAS2xJTi\r\nglGp51+am3a0nDQXBSsXZ5TiP4qNOMbKy3aAuPWdN3E1u1SHBCOOc3QV9Vir\r\nBf+uVWxQeoRg2QHsPTd9R89W9WSFtDKVwrYpxC8XyfWHERmzteR4q1oBfZ40\r\nqPVwflbVr6w1QVJjvq9jUemrZpLbnP0XwZn+8YspBNjMh+Ew9a78lHkWY0Wc\r\nkLM/jOTdbkQYzJI84i69wFEIreLAVljH6qC8hPRvfg+nHbifMjC4+ZRdLbF+\r\nnTCqOXBs8L0+tHogeku4goiMsgrimlBSiSqsKBBZTkLR/6I4gyXa6qr94//m\r\n/RpXDyzb1mMOlTNm3emmZG6A/U0IrwrKCXGud5l+9apGti/+6YbPC5qacdET\r\ndTDpeNTaG2PhxEvM5tNpUSR1daPVer0NY3ze+Gjxy85dLRVWLHkaBiYz45T+\r\nWhSvEARs4h1OH8T1ymbYhT9hZeBVqTe5i1mdQtX9lQQjAk1Adkp2ui6gfpmu\r\n0nBMzjDhs1cos1v4QnaaQPNk6LrWiaPWG/Y=\r\n=b9w3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"a8362c6181434a6f9b3e22eec9b8d4868c734e6f","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"_npmVersion":"8.3.0","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"17.3.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.0.1_1672247118760_0.6499184555119368","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@basementuniverse/content-manager","version":"1.0.2","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.0.2","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"4b5bb935207c83596e2356c6307f63b1bbb953e6","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.0.2.tgz","fileCount":5,"integrity":"sha512-oMoUKqnM3TWeKGggqc8dsz6ospQQyahySpUptnrSrBozMGbYPw81oyMMPUosTWtgiZUBXzQOm0SPvCaMdfo5IQ==","signatures":[{"sig":"MEYCIQDr+0PpPD+Er0nwO0Om3/04skbhMvwfTcVYfgBFKN/D6wIhALqpfWpA3YccqFfnrrwzVK2MC4wojp1Hc7Xb5wVfbYKb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtF4HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8wg/8DHvfTouqvXUcVVAefOF3bz63ECmU6fyk67t9FqZHEQYa15tL\r\nH2AIQyKS/7dvge07hSMQ2Vq4DqELR13KVAIVojDRAZ92IRpxuqAvxclogPzG\r\noNPCuopTb4jBw68T20Ez4xXVJGd9e+o/0ZKYr7UT6B0j32FRecBNhV3p2kDF\r\nBsddVRY67SvcbP9cQ6L/wJFXFFLBGWBWYlAb7QFBQl+ITHhnS8FLZL8Uw6cF\r\nDcsc+Zgt/+ogo8YglqtdQimmHlGRGGLiODN2HTiKruIvVzZ2K9oxbzWMlCAf\r\nXu7i4tncxHX/6Ar4xChrc4HWwS+bpD+nnz5JX0MZiH7fbwPOB6t7mTwMo88t\r\n+Pm6Xk+DBXFOTMKD35+vSxCA506mPud0D8rBkZjdU+oxrDgTf2bM84v6eo0v\r\n6UD0OdUj6/LHDHSaeoH7hr2ZQdQ2V8LVm93AVZtXTK6ssgVK384gzkGg+znG\r\nPPof4KBxffN3sXHMLK8O2i3fBs9DrJtOZ8uFJIFGdD2X2FbpmydmcRKChJst\r\nbG27WveMJIK7FveDvDkjuhqvpV7kZf+xySLg5l3qrUVLXrrxWXz2xiKcJUcS\r\ntsiRbMTConzK9O4+IZaDjxN4VO9mKjT6mvgSHykeMl5ZvXF4D9/dVF1Wg6uP\r\ny75kVJObYNEpTeA5WP6VwUrEb/5hJBNsRIM=\r\n=zapS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"724a3fd959e871d7a38b268f221aa1fe171527bb","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"8.3.0","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"17.3.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.0.2_1672764935542_0.2694485596468399","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@basementuniverse/content-manager","version":"1.0.3","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.0.3","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"f14415cc04b18be383e075ac015f15543ddf98c1","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.0.3.tgz","fileCount":6,"integrity":"sha512-gI6zFQS9ybf2MXCfDiInbsELgMFa2tvGA965kS78aI+hMffql7yeulBc9206rJdompXqb1Fa+Vvh8jj9SciF1A==","signatures":[{"sig":"MEUCIF+f2owQyDw9pGtIHPOg91hxFm02cq5wBBd49ceKrGxMAiEA1gYJANq83mpdjgGTnEFqBmR7hgrD3mFvJWLl2AEA4XM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61443},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"ebe9e34d4918987d9b9faa74a32eff8fc02085f3","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"9.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"18.16.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.0.3_1695980680027_0.19300272532645946","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@basementuniverse/content-manager","version":"1.1.0","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.1.0","homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"0e3858bfafebdc2176b6ac80b02699154590c403","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.1.0.tgz","fileCount":6,"integrity":"sha512-8n+X8wfNXjPSQzGVX4kVaxThISGHRhcaN+cE5zAkf46DODDO4zC/HFzfKlQ6ZCk4YgRuBVlDytIp/1uUYrdUFQ==","signatures":[{"sig":"MEUCIQCrm7PuOYT7dJGMwsKSoBEm6lTqSfhdNC3GH3syMNc0qgIgXwGMfDG54Rzy+lMXNRMqhqA6RvaGzxBdXZUIkKvzrqo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":67344},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"02442e67ec64fbf4494eabe689be901e3c959a1a","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"9.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"18.16.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.1.0_1719116577244_0.1145048917522904","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@basementuniverse/content-manager","version":"1.1.1","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.1.1","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"dfece9d1e3e6105736cfe2802379ae0cecf3fe3a","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.1.1.tgz","fileCount":10,"integrity":"sha512-YKKPvjw7Uz3tKyBWDsngOzeYIx5D8tlN8xFN92+UR7Ol0EV7Jz+Tvbqg6j/dnXSJTWOXgHQiOiDZ6PObD0EJgg==","signatures":[{"sig":"MEYCIQCLtjgb3Nabwj5pEiNjmS1ltRYrRJSVBUsbF25ezQGrIAIhALFI8cXoAXhfceT1WJ/X50WF+00KU0hesv11j4PzZxey","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38657},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"554842898940f6d234be9d1465476d7ee2594885","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"9.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"18.16.0","dependencies":{"args":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.1.1_1721040627109_0.17631706995283292","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@basementuniverse/content-manager","version":"1.1.2","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.1.2","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"11d1057a913fd71dc90b17fdd334bfcecb37e8d8","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.1.2.tgz","fileCount":10,"integrity":"sha512-oSx29LEq8QQ7IQSiCWRhCrJyNkWMeMxu12e4I/LixVPQb3WlOebfJ/HgCAkiGxzUECTdmrB3+k97vdBagqsNPA==","signatures":[{"sig":"MEQCIB6qudfEWjFi7w5V1HNhpQoHMECI4awYC1JUnrsR6J3vAiALEpNL+nUAaBkbW2dPjiT7Y386CAyB/29iicp9ykvT/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38663},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"58dabc7ce8b3a3d32fe57dddfb17b4505a5daa00","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"9.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"18.16.0","dependencies":{"args":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.1.2_1721090840399_0.0023441209721244416","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@basementuniverse/content-manager","version":"1.2.1","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.2.1","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"35801eae8933f01124927b331e17ca906a6a91e9","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.2.1.tgz","fileCount":10,"integrity":"sha512-knbwwe3W3lb2chih8UI417WHj9WmYk7D3Esnfgh0cDP4v02SCTeUOeINrpqUGtM+d0VJN9uyz8JhhGdrwvsK3Q==","signatures":[{"sig":"MEUCIGZsfP/S50UqaTe99PK5VsWMPGFhU8rbSNOY0WcN4uBrAiEAzxvrBwc5DqniiUZPWTg877JQN2cxxJOGoXy4kqb959E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38514},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"a9568509befde789dbaa06554b1189137d8ebcfc","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"9.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"18.16.0","dependencies":{"args":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.2.1_1721235787040_0.3707616448555877","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@basementuniverse/content-manager","version":"1.3.0","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.3.0","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"590fa2ee51c3c8d564320a0174a3c8427f560837","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.3.0.tgz","fileCount":7,"integrity":"sha512-CniOQAuvwQ0F0gyOf0MfcCpFPF4REIit+WvIpOsnvcHmwrvwE+Q4DCeHqFgGE0qPJNv9TnNjg1a8BWc031AGHQ==","signatures":[{"sig":"MEYCIQCGTtmzKchZA7dS/dXroSGg1jRrq/7Gx0okCWvN+T7GOgIhAMV7xyp7d/38d7zFERBQ9YVx5xMG5iHwhQ5pXjv1iTLU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37473},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"6073cae87873e8bdc8d307fd235262df2c24e7d3","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"11.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"24.5.0","dependencies":{"args":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.3.0_1754818702043_0.2370611592760301","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@basementuniverse/content-manager","version":"1.3.1","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@1.3.1","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"529490d6841fbc9514ffe8c181f1462d9adacba3","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-1.3.1.tgz","fileCount":14,"integrity":"sha512-XqZnawTTGCi0y03UPGwAROTivQYWpYR+WV0TyuO6vD2sc5AvVzDOZjcgppd4+urYH4H/A84P12i9HEKNVcxY9g==","signatures":[{"sig":"MEUCIQDEvibiw0u8hRZbO3oZzbXo6y6M/E10PY4LoLR8U64ScgIgRz//9wbIyMZeDGORnxEiESWfM4yt84tJ41BeAYlWU10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37979},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"3518f770dddcf6b5542e30089a164ee7d4abd340","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"11.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"24.5.0","dependencies":{"args":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_1.3.1_1754821537927_0.7662109117982332","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@basementuniverse/content-manager","version":"2.0.0","author":{"url":"https://gordonlarrigan.com","name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com"},"license":"MIT","_id":"@basementuniverse/content-manager@2.0.0","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"homepage":"https://github.com/basementuniverse/content-manager#readme","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"dist":{"shasum":"5cb759092180f039b3445b397370ead4833644b6","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-2.0.0.tgz","fileCount":14,"integrity":"sha512-ak2pkFUZPW7y06xgt+ZvdYCdlQDOrOQ+5u+EEtNM8LPwcm56FfXqMOFfIVothUPPGbWsUrrh8U1kOqQnWsaODQ==","signatures":[{"sig":"MEUCIF1T18t2b+6L/UFb0HGWsunsQg+2Myo45x5EltfbLUGGAiEAmn/MjTowYUDzOBjUN/i9mNkdobnv/qPdFSSWNi8xjOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38496},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}},"testEnvironment":"node"},"main":"build/index.js","types":"build/index.d.ts","gitHead":"1e722a00802c40fcd35bc54900024f28b8d04d2c","scripts":{"test":"npx jest ./test","build":"webpack"},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"repository":{"url":"git+https://github.com/basementuniverse/content-manager.git","type":"git"},"_npmVersion":"11.5.1","description":"A component for loading content assets and providing access to them","directories":{},"_nodeVersion":"24.5.0","dependencies":{"args":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","ts-jest":"^27.1.4","webpack":"^5.3.2","ts-loader":"^8.0.7","typescript":"^4.9.4","@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","webpack-cli":"^4.1.0","clean-webpack-plugin":"^4.0.0-alpha.0"},"_npmOperationalInternal":{"tmp":"tmp/content-manager_2.0.0_1758383271335_0.08254458728416503","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@basementuniverse/content-manager","version":"2.1.0","description":"A component for loading content assets and providing access to them","author":{"name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com","url":"https://gordonlarrigan.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/basementuniverse/content-manager.git"},"main":"build/index.js","types":"build/index.d.ts","scripts":{"build":"webpack --mode production","build:dev":"webpack --mode development","watch":"webpack --watch","test":"npx jest ./test"},"dependencies":{"args":"^5.0.3"},"devDependencies":{"@types/args":"^5.0.3","@types/jest":"^27.4.1","@types/node":"^18.11.12","clean-webpack-plugin":"^4.0.0-alpha.0","jest":"^27.5.1","ts-jest":"^27.1.4","ts-loader":"^8.0.7","typescript":"^4.9.4","webpack":"^5.3.2","webpack-cli":"^4.1.0"},"jest":{"preset":"ts-jest","testEnvironment":"node","globals":{"ts-jest":{"tsConfig":"tsconfig.jest.json"}}},"gitHead":"f84903753902e37400268c9c439e82dfe573dcaa","_id":"@basementuniverse/content-manager@2.1.0","bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"homepage":"https://github.com/basementuniverse/content-manager#readme","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-P9YO+Tz52d035ST+LnTyEXHWXoz+OxUwDAk6aQe4Ew4c3RjfGQv4lgsrO+VBY1iYLyVBKuXsAfbdxnz57keVQg==","shasum":"eac23d0746ba95e460cfcd6067eda0423c12e500","tarball":"https://registry.npmjs.org/@basementuniverse/content-manager/-/content-manager-2.1.0.tgz","fileCount":14,"unpackedSize":25955,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICWrFMy33/loIPNpmd/EM8pRCyG4+4LygQogp1HwLYBRAiAXRgPP9yfEN+TOEtaqvf1nHgBEY2eE/28hY+A6wEaWng=="}]},"_npmUser":{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"},"directories":{},"maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/content-manager_2.1.0_1786899008901_0.14092683898129366"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-28T17:00:44.785Z","modified":"2026-08-16T16:50:09.248Z","1.0.0":"2022-12-28T17:00:45.020Z","1.0.1":"2022-12-28T17:05:18.976Z","1.0.2":"2023-01-03T16:55:35.693Z","1.0.3":"2023-09-29T09:44:40.275Z","1.1.0":"2024-06-23T04:22:57.375Z","1.1.1":"2024-07-15T10:50:27.262Z","1.1.2":"2024-07-16T00:47:20.566Z","1.2.1":"2024-07-17T17:03:07.229Z","1.3.0":"2025-08-10T09:38:22.241Z","1.3.1":"2025-08-10T10:25:38.172Z","2.0.0":"2025-09-20T15:47:51.535Z","2.1.0":"2026-08-16T16:50:09.051Z"},"bugs":{"url":"https://github.com/basementuniverse/content-manager/issues"},"author":{"name":"Gordon Larrigan","email":"gordonlarrigan@gmail.com","url":"https://gordonlarrigan.com"},"license":"MIT","homepage":"https://github.com/basementuniverse/content-manager#readme","repository":{"type":"git","url":"git+https://github.com/basementuniverse/content-manager.git"},"description":"A component for loading content assets and providing access to them","maintainers":[{"name":"basementuniverse","email":"gordonlarrigan@gmail.com"}],"readme":"# Game Component: Content Manager\n\nA component for loading content assets and providing access to them.\n\n## Installation\n\n```bash\nnpm install @basementuniverse/content-manager\n```\n\nFor direct browser usage, include the UMD build with a script tag:\n\n```html\n<script src=\"build/index.js\"></script>\n```\n\nThe build exposes the package's main class as the `BasementUniverseContentManager` browser\nglobal. It does not add each export directly to `window`.\n\n## How to use\n\nInitialise the content manager before use:\n\n```ts\nimport ContentManager from '@basementuniverse/content-manager';\n\nContentManager.initialise();\n```\n\nWhen using the library directly from a browser script, use the\n`BasementUniverseContentManager` global:\n\n```html\n<script src=\"build/index.js\"></script>\n<script>\n  BasementUniverseContentManager.initialise();\n\n  // Enums live on the same namespace\n  const type = BasementUniverseContentManager.ContentItemType.Image;\n</script>\n```\n\nLoad content assets:\n\n```ts\nContentManager.load([\n  {\n    name: 'my-item-1',\n    type: 'json',\n    args: ['url:https://some-url.com/test.json'],\n  },\n]);\n```\n\n_Note: when using the \"json\" or \"text\" loaders, the argument can either be a URL to the content (must start with `url:`) or the content itself. For example:_\n\n```ts\n// This will load a JSON file via a `fetch()` call, from a URL relative to the current page:\nContentManager.load([\n  {\n    name: 'my-item-1',\n    type: 'json',\n    args: ['url:content/data.json'],\n  },\n]);\n\n// This will use the provided object as the JSON content directly:\nContentManager.load([\n  {\n    name: 'my-item-1',\n    type: 'json',\n    args: [{ a: 1 }],\n  },\n]);\n```\n\nOther loaders (e.g. \"image\", \"font\", \"audio\") always expect a URL as the first argument, so you don't need to prefix them with `url:`.\n\nCheck content manager progress and status:\n```ts\nconsole.log(ContentManager.progress); // a number between 0 (nothing loaded yet) and 1 (finished loading)\nconsole.log(ContentManager.status); // 0: Idle, 1: Loading, 2: Processing, 3: Ready\n```\n\nFetch a content asset:\n\n```ts\nconst item = ContentManager.get('my-item-1');\n```\n\n## Options\n\n```ts\nconst options = { ... };\nContentManager.initialise(options);\n```\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `loaders` | `ContentLoaderMap` | (see below) | A dictionary of content loader functions |\n| `processors` | `ContentProcessorMap` | (see below) | A dictionary of content processor functions |\n| `simulateSlowLoading` | `boolean` | `false` | If true, simulate long loading times |\n| `slowLoadingTimeMin` | `number` | `1000` | Minimum simulated loading time in ms |\n| `slowLoadingTimeMax` | `number` | `3000` | Maximum simulated loading time in ms |\n| `simulateSlowProcessing` | `boolean` | `false` | If true, simulate long processing times |\n| `slowProcessingTimeMin` | `number` | `1000` | Minimum simulated processing time in ms |\n| `slowProcessingTimeMax` | `number` | `3000` | Maximum simulated processing time in ms |\n| `throwOnNotFound` | `boolean` | `false` | Throw an error when an unknown content item is fetched with `get()` |\n\n## Loaders\n\nA loader is a function which takes some arguments (as defined in the content list which is passed to `ContentManager.load`, as mentioned above) and returns some kind of content asset.\n\n```ts\ntype ContentLoader = <T>(...args: any[]) => Promise<T>;\n```\n\nSome basic loaders are provided by default:\n\n```ts\n{\n  \"json\": JSONLoader,    // Loads JSON (either inline or from a URL)\n  \"font\": FontLoader,    // Loads a font from a URL and returns a FontFace\n  \"image\": ImageLoader,  // Loads an image from a URL and returns an HTMLImageElement\n  \"audio\": AudioLoader,  // Loads an audio file from a URL and returns an HTMLAudioElement\n  \"text\": TextLoader,    // Loads text (either inline or from a URL)\n}\n```\n\n## Implementing a custom content loader\n\nDefine a function with a signature that matches `ContentLoader`:\n\n```ts\nimport { ContentLoader } from '@basementuniverse/content-manager';\n\nexport const MyCustomLoader: ContentLoader = async <HTMLImageElement>(\n  url: string\n): Promise<HTMLImageElement> => {\n  return new Promise<HTMLImageElement>((resolve, reject) => {\n    const image = new Image();\n    image.src = url;\n    image.addEventListener('load', () => {\n      resolve(image as any);\n    });\n    image.addEventListener('error', () => {\n      reject(`Error loading image \"${url}\"`);\n    });\n  });\n};\n```\n\nRegister the loader when initialising the content manager:\n\n```ts\nContentManager.initialise({\n  loaders: {\n    custom: MyCustomLoader,\n  },\n});\n```\n\n_Note: the key (in this example: `custom`) is the name of the loader._\n\nLoad content assets using the custom loader:\n\n```ts\nContentManager.load([\n  {\n    name: 'my-custom-item-1',\n    type: 'custom',\n    args: ['./test.png'],\n  },\n]);\n```\n\n## Processors\n\nA processor is a function which takes the full list of loaded content, the current content item being processed, and some optional arguments. This function might mutate the content item or add new content items to the list.\n\nProcessor functions are run after all content items have been loaded.\n\nThis could be useful for post-processing, e.g. chopping up a texture atlas into multiple textures, unpacking compressed data, or linking together multiple content items into a data structure, etc.\n\n```ts\nexport type ContentProcessor = <T = any>(\n  content: Record<string, ContentItem>,\n  item: ContentItem<T>,\n  ...args: any[]\n) => Promise<void>;\n```\n\n## Implementing a custom content processor\n\nDefine a function with a signature that matches `ContentProcessor`:\n\n```ts\nimport { ContentProcessor } from '@basementuniverse/content-manager';\n\nexport const MyCustomProcessor: ContentProcessor = async (\n  content,\n  item\n): Promise<void> => {\n  // Do some processing here...\n\n  // We can modify `content` (e.g. by adding/removing/changing items)\n  // We can also modify `item` (e.g. by swapping out `item.content`)\n};\n```\n\nRegister the processor when initialising the content manager:\n\n```ts\nContentManager.initialise({\n  processors: {\n    custom: MyCustomProcessor,\n  },\n});\n```\n\n_Note: the key (in this example: `custom`) is the name of the processor._\n\nLoad content assets and process them using the custom processor:\n\n```ts\nContentManager.load([\n  {\n    name: 'my-custom-item-1',\n    type: 'image',\n    args: ['./test.png'],\n    processors: [\n      {\n        name: 'custom',\n        args: [], // Optional, will be passed to the processor as the 3rd+ args\n      },\n    ],\n  },\n]);\n```\n\n## Image Name Processor\n\nA processor is provided which converts fields in JSON content objects which contain image names into actual image objects. The image names refer to content items which have been loaded with the `image` loader.\n\nBy default the processor recursively searches for fields called `imageName` and replaces them with fields called `image`, however this is configurable.\n\nExample:\n\n`content.json`:\n\n```json\n[\n  {\n    \"name\": \"sky\",\n    \"type\": \"image\",\n    \"args\": [\"./sky.png\"]\n  },\n  {\n    \"name\": \"tree\",\n    \"type\": \"image\",\n    \"args\": [\"./tree.png\"]\n  },\n  {\n    \"name\": \"level-data\",\n    \"type\": \"json\",\n    \"args\": [\n      {\n        \"background\": {\n          \"imageName\": \"sky\",\n          \"position\": [0, 0]\n        },\n        \"objects\": [\n          {\n            \"imageName\": \"tree\",\n            \"position\": [100, 100]\n          },\n          {\n            \"imageName\": \"tree\",\n            \"position\": [200, 100]\n          }\n        ]\n      }\n    ],\n    \"processors\": [\n      {\n        \"name\": \"imageName\",\n        \"args\": [\n          {\n            \"imageNameFieldName\": \"imageName\",\n            \"imageFieldName\": \"image\"\n          }\n        ]\n      }\n    ]\n  }\n]\n```\n\n_Note: the args provided to the processor are optional. In the example above we have explicitly defined the field names to show how it's done, but if omitted the processor will default to these values anyway._\n\nThen we initialise the content manager and start loading content:\n\n```ts\nimport * as content from './content.json';\n\nContentManager.initialise();\nContentManager.load(content);\n```\n\nThis should result in the following content items being available:\n\n```ts\nconst skyImage = ContentManager.get('sky'); // HTMLImageElement\n\nconst treeImage = ContentManager.get('tree'); // HTMLImageElement\n\nconst levelData = ContentManager.get('level-data');\n// {\n//   background: {\n//     image: HTMLImageElement, <-- the 'sky' content item\n//     position: [0, 0],\n//   },\n//   objects: [\n//     {\n//       image: HTMLImageElement, <-- the 'tree' content item\n//       position: [100, 100],\n//     },\n//     {\n//       image: HTMLImageElement, <-- the 'tree' content item\n//       position: [200, 100],\n//     },\n//   ],\n// }\n```\n\n## Compiling content\n\nA utility script is provided for compiling and minifying content.\n\n```bash\nts-node compile-content.ts -i 'content.json' -o 'content-compiled.json'\n```\n\nThis script will:\n\n1. open the input file (in the example above this is `content.json`)\n2. fetch any `text`/`json` items which have a file path or URL as their first argument\n3. insert their contents directly into the content JSON\n4. save the resulting JSON into the output file\n","readmeFilename":"README.md"}