{"_id":"basket.js","_rev":"17-2ac9d65544a521e5a20a1c804671afdb","name":"basket.js","dist-tags":{"latest":"1.0.0"},"versions":{"0.3.1-pre.1":{"name":"basket.js","version":"0.3.1-pre.1","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"author":{"url":"http://addyosmani.com","name":"Addy Osmani","email":"addyosmani@gmail.com"},"license":"MIT","_id":"basket.js@0.3.1-pre.1","maintainers":[{"name":"addyosmani","email":"addyo@google.com"}],"contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"homepage":"http://addyosmani.github.com/basket.js","bugs":{"url":"https://github.com/addyosmani/basket.js/issues"},"dist":{"shasum":"e29d7f2051c9cf76a53b722614456f48371ba130","tarball":"https://registry.npmjs.org/basket.js/-/basket.js-0.3.1-pre.1.tgz","integrity":"sha512-racVmPzfeRK/UgSNN4FVdJmfXw3mUpZHLI/8YbX4S1EDPEsC3/PXD9qFpgPfqAyD8mD5A36C+chtH1i5xujkSw==","signatures":[{"sig":"MEQCIF3SvF8CJUMNrg4llsZIBwlTV+AYhhHRqAxp+SvLTFbKAiApzY5vzjfGB69sJlbSA7BmTF++eASa+KL80a6nOleFEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/basket","_from":".","scripts":{"dev":"grunt","test":"bower install && grunt test"},"_npmUser":{"name":"addyosmani","email":"addyo@google.com"},"repository":{"url":"https://github.com/addyosmani/basket.js","type":"git"},"_npmVersion":"1.3.17","description":"A script-loader that handles caching scripts in localStorage where supported","devDependencies":{"bower":">=0.10.0","grunt":"~0.4.0","grunt-contrib-qunit":"~0.3.0","grunt-contrib-watch":"~0.5.1","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.6.2","grunt-contrib-uglify":"~0.2.2","grunt-contrib-connect":"~0.6.0"},"directories":{}},"0.4.0":{"name":"basket.js","version":"0.4.0","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"author":{"url":"http://addyosmani.com","name":"Addy Osmani","email":"addyosmani@gmail.com"},"license":"MIT","_id":"basket.js@0.4.0","maintainers":[{"name":"addyosmani","email":"addyo@google.com"}],"contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"homepage":"http://addyosmani.github.com/basket.js","bugs":{"url":"https://github.com/addyosmani/basket.js/issues"},"dist":{"shasum":"6b7259a56dfc67228d4889c17c2ee3d1c5a636fa","tarball":"https://registry.npmjs.org/basket.js/-/basket.js-0.4.0.tgz","integrity":"sha512-vyHPPguTjpU1lTSnna586GnW696dLh5lUxl+d78hhjdvf65F7NubmS+zxyNpVi2UIQguoaGB6k9Ij9mKtGaknw==","signatures":[{"sig":"MEQCIGG29wxShv4am1oY8vXIyKorBOq04heTvj4G/4aHkr7LAiAYmFXeEh8Sbjkdy62ak/izKwsfyPWcdbsiL5pVAjpJCg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/basket","_from":".","scripts":{"dev":"grunt","test":"bower install && grunt test"},"_npmUser":{"name":"addyosmani","email":"addyo@google.com"},"repository":{"url":"https://github.com/addyosmani/basket.js","type":"git"},"_npmVersion":"1.3.17","description":"A script-loader that handles caching scripts in localStorage where supported","devDependencies":{"bower":">=0.10.0","grunt":"~0.4.0","grunt-contrib-qunit":"~0.3.0","grunt-contrib-watch":"~0.5.1","grunt-contrib-concat":"~0.3.0","grunt-contrib-jshint":"~0.6.2","grunt-contrib-uglify":"~0.2.2","grunt-contrib-connect":"~0.6.0"},"directories":{}},"0.5.0":{"name":"basket.js","version":"0.5.0","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"author":{"url":"http://addyosmani.com","name":"Addy Osmani","email":"addyosmani@gmail.com"},"license":"MIT","_id":"basket.js@0.5.0","maintainers":[{"name":"addyosmani","email":"addyo@google.com"}],"contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"homepage":"http://addyosmani.github.com/basket.js","dist":{"shasum":"b8a629ce1c0d1b07f75485d55eb152aaffb0d9ed","tarball":"https://registry.npmjs.org/basket.js/-/basket.js-0.5.0.tgz","integrity":"sha512-DF/MGyABYjcmTgGnzYZy4wi9Lp0lCfCddQzPtD8hoDxm9D6z180Kx7uNKxxm4nPe5rpQgfPlLj8yuQyBqXppow==","signatures":[{"sig":"MEQCIGqYO0h2m/QMtFwniqWEpS/1RUYO+QuOFLh6c8732aiTAiAGpHt9y2hzy+n5dt8R/dPHX+lk8G1DlGS3JivU4YMK3g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/basket","_from":".","scripts":{"dev":"grunt","test":"bower install && grunt test"},"_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"repository":{"url":"addyosmani/basket.js","type":"git"},"_npmVersion":"1.4.3","description":"A script-loader that handles caching scripts in localStorage where supported","devDependencies":{"bower":"1.x","grunt":"^0.4.0","grunt-contrib-qunit":"^0.5.1","grunt-contrib-watch":"^0.6.1","grunt-contrib-concat":"^0.4.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-uglify":"^0.4.0","grunt-contrib-connect":"^0.8.0"},"directories":{}},"0.5.1":{"name":"basket.js","version":"0.5.1","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"author":{"url":"http://addyosmani.com","name":"Addy Osmani","email":"addyosmani@gmail.com"},"license":"MIT","_id":"basket.js@0.5.1","maintainers":[{"name":"addyosmani","email":"addyo@google.com"}],"contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"homepage":"http://addyosmani.github.com/basket.js","dist":{"shasum":"2def81990d9a24c5a5a6dde6dc80b7105b330503","tarball":"https://registry.npmjs.org/basket.js/-/basket.js-0.5.1.tgz","integrity":"sha512-5wNzjbDpunZrvw9eIkpd4ZBx3ChYOW82X0kMmRt/CpEdeuDaBnoUtSkiA8oUJUbeVnejOwOvgCq5HHwXNYagPw==","signatures":[{"sig":"MEUCIQC9bbFwiyt0Gq85ofj0FIa1qvSrErOfBnLB5TwymyV4VAIgM8G0xDeLcTqLjnPizwOODvdJAyXb12dduL1gTzMXSK4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/basket","_from":".","scripts":{"dev":"grunt","test":"bower install && grunt test"},"_npmUser":{"name":"addyosmani","email":"addyo@google.com"},"repository":{"url":"addyosmani/basket.js","type":"git"},"_npmVersion":"1.3.25","description":"A script-loader that handles caching scripts in localStorage where supported","devDependencies":{"bower":"1.x","grunt":"^0.4.0","grunt-contrib-qunit":"^0.5.1","grunt-contrib-watch":"^0.6.1","grunt-contrib-concat":"^0.4.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-uglify":"^0.5.0","grunt-contrib-connect":"^0.8.0"},"directories":{}},"0.5.2":{"name":"basket.js","version":"0.5.2","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"author":{"url":"http://addyosmani.com","name":"Addy Osmani","email":"addyosmani@gmail.com"},"license":"MIT","_id":"basket.js@0.5.2","maintainers":[{"name":"addyosmani","email":"addyo@google.com"}],"contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"homepage":"http://addyosmani.github.com/basket.js","bugs":{"url":"https://github.com/addyosmani/basket.js/issues"},"dist":{"shasum":"91b54f0ce36e084c1a2daf2bc24fb68c16a72c19","tarball":"https://registry.npmjs.org/basket.js/-/basket.js-0.5.2.tgz","integrity":"sha512-wdWjYwcpd5KAafanRD8r7K8FCKI/at0ZCmtypq/mM/+HiIh1sdwXTvnddT3Pxk8Ak8gnlmyBPnzL3VT1qrsl1Q==","signatures":[{"sig":"MEUCIDE8iD045tPeX6yxwv+I/OCK1g+8iKfk/a5OCzXg2XhXAiEA3O8dbOE+Ki5/Uqu7IjDJ65SDVHuDBPgcf47s5dCaXkc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/basket","_from":".","_shasum":"91b54f0ce36e084c1a2daf2bc24fb68c16a72c19","gitHead":"f35feaba02c493fe281321a4616e5df08ffd28e2","scripts":{"dev":"grunt","test":"bower install && grunt test"},"_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"repository":{"url":"https://github.com/addyosmani/basket.js","type":"git"},"_npmVersion":"1.4.23","description":"A script-loader that handles caching scripts in localStorage where supported","devDependencies":{"bower":"1.x","grunt":"^0.4.0","grunt-contrib-qunit":"^0.5.1","grunt-contrib-watch":"^0.6.1","grunt-contrib-concat":"^0.4.0","grunt-contrib-jshint":"^0.10.0","grunt-contrib-uglify":"^0.5.0","grunt-contrib-connect":"^0.8.0"},"directories":{}},"1.0.0":{"name":"basket.js","version":"1.0.0","description":"A script-loader that handles caching scripts in localStorage where supported","type":"module","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"homepage":"http://addyosmani.github.com/basket.js","license":"MIT","author":{"name":"Addy Osmani","email":"addyosmani@gmail.com","url":"addyosmani.com"},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"exports":{".":{"import":"./dist/basket.js","require":"./dist/basket.cjs"}},"main":"./dist/basket.cjs","module":"./dist/basket.js","repository":{"type":"git","url":"git+https://github.com/addyosmani/basket.js.git"},"scripts":{"build":"vite build && npm run copy-dist","copy-dist":"cp dist/basket.js demo/public/basket.js","dev":"vite","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","serve-tests":"vite serve test","preview":"vite preview"},"devDependencies":{"@babel/core":"^7.22.0","@babel/preset-env":"^7.22.0","babel-jest":"^29.0.0","jest":"^29.0.0","jest-environment-jsdom":"^29.0.0","rsvp":"^4.8.5","vite":"^4.0.0"},"dependencies":{"rsvp":"^4.8.5"},"_id":"basket.js@1.0.0","gitHead":"03b89cd985155b259f23a913f754a9ff590667f5","bugs":{"url":"https://github.com/addyosmani/basket.js/issues"},"_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-8abVMxUq4//r+RgQIvkn2FGXEujQZWvKqLQH3J1SvC9iaMiMcGsZix5iF/AoJziaJPXSUkv2P/pXkyp6MEc0vg==","shasum":"4be57db90e4a9809113ae85938c82fae6d66c08a","tarball":"https://registry.npmjs.org/basket.js/-/basket.js-1.0.0.tgz","fileCount":46,"unpackedSize":6013283,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID7fjiC0o7gZyW3LfGHqAWE2m29No1F01amTOolCCchjAiB96Rg5pBh0f1Vtvf3WnrSXgq66/FUQTIXR4jwhfh/zPQ=="}]},"_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/basket.js_1.0.0_1740896313144_0.32296091473653354"},"_hasShrinkwrap":false}},"time":{"created":"2014-01-05T01:36:27.395Z","modified":"2025-03-02T06:18:33.522Z","0.3.1-pre.1":"2014-01-05T01:36:30.443Z","0.4.0":"2014-01-07T18:12:05.884Z","0.5.0":"2014-07-08T14:55:53.527Z","0.5.1":"2014-08-16T19:57:14.627Z","0.5.2":"2015-02-07T21:37:50.293Z","1.0.0":"2025-03-02T06:18:33.336Z"},"bugs":{"url":"https://github.com/addyosmani/basket.js/issues"},"author":{"name":"Addy Osmani","email":"addyosmani@gmail.com","url":"addyosmani.com"},"license":"MIT","homepage":"http://addyosmani.github.com/basket.js","keywords":["script","loader","localstorage","caching","asset","loader","preload","javascript","js"],"repository":{"type":"git","url":"git+https://github.com/addyosmani/basket.js.git"},"description":"A script-loader that handles caching scripts in localStorage where supported","contributors":[{"name":"Ironsjp"},{"name":"Mathias Bynens"},{"name":"Rick Waldron"},{"name":"Felipe Morais"}],"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"readme":"# Basket.js\n\nBasket.js is a script loader that efficiently caches scripts in localStorage for improved page load times.\n\n## Features\n\n- **Script Caching**: Automatically caches loaded scripts in localStorage\n- **Version Control**: Built-in support for script versioning\n- **Expiration Control**: Set expiration times for cached scripts\n- **Promise-based API**: Modern Promise-based interface\n- **Custom Handlers**: Support for different content types\n- **Modular**: ESM and CommonJS support\n\n## Installation\n\n```bash\nnpm install basket.js\n```\n\n## Usage\n\n### ES Modules\n\n```javascript\nimport basket from 'basket.js';\n\n// Load a single script\nbasket.require({ url: 'jquery.min.js' })\n  .then(() => {\n    console.log('jQuery loaded!');\n  });\n\n// Load multiple scripts\nbasket.require(\n  { url: 'jquery.min.js' },\n  { url: 'backbone.min.js' }\n).then(() => {\n  console.log('Libraries loaded!');\n});\n\n// Advanced usage with options\nbasket.require({\n  url: 'my-script.js',\n  key: 'custom-key',        // Custom key for storage\n  expire: 24,               // Expires in 24 hours\n  execute: false,           // Don't execute after loading\n  unique: '1.0.0',         // Version control\n  skipCache: false,        // Use cache when available\n  live: false              // Always fetch fresh copy\n});\n```\n\n### CommonJS\n\n```javascript\nconst basket = require('basket.js');\n```\n\n## API\n\n### basket.require(options)\n\nLoads one or more scripts with specified options.\n\nOptions:\n- `url` (String): URL of the script to load\n- `key` (String): Custom storage key (defaults to URL)\n- `expire` (Number): Hours until expiration (default: 5000)\n- `execute` (Boolean): Whether to execute the script (default: true)\n- `unique` (String/Number): Version identifier\n- `skipCache` (Boolean): Skip localStorage caching\n- `live` (Boolean): Always fetch from network\n\nReturns a Promise that resolves when all scripts are loaded.\n\n### basket.remove(key)\n\nRemoves a script from localStorage.\n\n```javascript\nbasket.remove('jquery');\n```\n\n### basket.clear([expired])\n\nClears all scripts from localStorage. If `expired` is true, only removes expired scripts.\n\n```javascript\n// Clear all scripts\nbasket.clear();\n\n// Clear only expired scripts\nbasket.clear(true);\n```\n\n### basket.get(key)\n\nRetrieves a script's cached data.\n\n```javascript\nconst scriptData = basket.get('jquery');\n```\n\n### basket.addHandler(type, handler)\n\nAdd a custom handler for specific content types.\n\n```javascript\nbasket.addHandler('text/css', (obj) => {\n  const style = document.createElement('style');\n  style.textContent = obj.data;\n  document.head.appendChild(style);\n});\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Run development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Run tests\nnpm test\n```\n\n## Browser Support\n\nBasket.js requires browsers with:\n- `localStorage` support\n- `Promise` support (or use a polyfill)\n- Modern JavaScript features (or use appropriate build tools)\n\n## License\n\nMIT License\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n","readmeFilename":"readme.md","users":{"dantman":true,"doptrois":true,"goatandsheep":true}}