{"_id":"frame-worker","_rev":"2-1a9d31e73dd681f2dd2f4117bebbd4b8","name":"frame-worker","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"frame-worker","version":"0.1.0","description":"Run Worker Script inside an Iframe","main":"frame-worker.js","scripts":{"serve":"npx --offline srvd --debug","test":"echo 'no automated tests'"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/frame-worker.git"},"keywords":["frame","iframe","web","worker"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/frame-worker/issues"},"homepage":"https://github.com/DanielJDufour/frame-worker#readme","devDependencies":{"flug":"^2.3.1","srvd":"^0.4.0"},"gitHead":"32d80c29761f53ef6c409c1501b79b64fd4244d8","_id":"frame-worker@0.1.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-vg/MAAZpjrDs7DqFgYBVXIJNodWSqye6tCW+H0/PZdP1Ncz68W4Vsz++ppaqkfe5/o39ANoD0lyFS5nXlo/t9w==","shasum":"c012ff8bd8e35a30c8b3de186a8dd5904e0b6ab9","tarball":"https://registry.npmjs.org/frame-worker/-/frame-worker-0.1.0.tgz","fileCount":4,"unpackedSize":17222,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDpuunf+FpqE0L7U1cWGeUpk57g5XNvueAIiShcUYibPAiBWZjjRYLqT/K44REpWxzRgNkm3TX2ukcsLQwPY00r8yg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZ1SoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGqhAAkv9+cK21R342HzEYpCzdbw7sifBTg1lY0qz2q9NAIOqqGaEU\r\nbK/xZDF7WQsw5yMhsu/3hKlVzB9URGXogTPA+cFnTKDGkLPsyit8zuMkVVSN\r\nKmy1wUSpTqnbqN5wOsYKTO+Vj5WhIhbqntHT661B/+KtpuVJRgI6Fob7whXh\r\nUZtUxmDpWoSKhxjNsyQFY5trToR8YUoiALIpTdI29WvAg456LUd7LlxbZEAD\r\ncGKuVjR7BpwqwagOAlaYj8vBLeICNv1Q2kObuWbmWV8cca76BbUk9zRisJm2\r\nPGJF5J8MESvVfb6ryK5NP2608LYZavJI56zuN7soE8TFhxitpOheluigs9Vt\r\nmZu/CV4PAizUbIuFexrdHKh8Jr6zARlca0uoSDoPSSZJmOGMHt9Jl8FU0x4b\r\nnZDHLfVQNnMD3Ur0AW6V05kXj3TOw3BtYm2qHhEAvJVMkg5kjvd22SFGxkdP\r\ni8C551LYuZpnkyI3EcastA+3xLU+d9qXMzmnsalvbm8E+aQ9O8hvhsFR9aBT\r\nyIB1vYQtoAHkcYRpMnGro1Ulm4kiAcsmkdaWiu1y7783ojaUVq2iXl7LqvVo\r\n71crSpPzqfo11a63vYd3dnLpGqycxVZf6b/kH940GuBMhECw/+0m7sJpNpw4\r\ngdDD2TtqHzDXZfpinhMb+kb6K/a5BYQtAVM=\r\n=CDf0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frame-worker_0.1.0_1667716264384_0.869387422111555"},"_hasShrinkwrap":false},"0.2.0":{"name":"frame-worker","version":"0.2.0","description":"Run Worker Script inside an Iframe","main":"frame-worker.js","scripts":{"serve":"npx --offline srvd --debug","test":"echo 'no automated tests'"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/frame-worker.git"},"keywords":["frame","iframe","web","worker"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/frame-worker/issues"},"homepage":"https://github.com/DanielJDufour/frame-worker#readme","devDependencies":{"flug":"^2.4.0","srvd":"^0.6.0"},"gitHead":"d6252612773b39c1b4e8233e3a08297c3360e6ba","_id":"frame-worker@0.2.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-xiszg2sK6JZYjUhO2g1PRuyctP11wsrsw4NUWosc26poIyAiVZPmS6ndH4seuJmQQt3bq8WIJhuOHGeazuMczg==","shasum":"24e13dc85325bd0f6de8c057698937ad823cea73","tarball":"https://registry.npmjs.org/frame-worker/-/frame-worker-0.2.0.tgz","fileCount":4,"unpackedSize":17929,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICFqxyUDswHBiUcbFUP0xbrTf62rYBXJ9u0eBqfoOtgGAiEAkQrKJB6OnP9GxH9wNde1utCSkCieKzZHywNrQnb5NJg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzgidACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYnxAAngqCw4YOKjjgmK5EHYoEeERiQQid0t/pyPUsWpWHU7uSuxJu\r\nSxYpsjK4jARMDzJOL3ZwC9zvkO5J2mbBac62epbW3+DUCM8FcUhg8He8sUdA\r\n5l9bXgwyWPGoxht9VmYJ038PNwZ7LzV0ES7QYPFF68UjJI+fQ7IkwbHHhv66\r\nuRFy1aRv4BTwuWqkv2WjqXF122r1Bfx8y/oh5Jv/DtItjlYCz9Q79HShpK0l\r\nfPXmXH4xsmukkpCizn77KkXm75aNBQcJOgQBfBZTgWkmaKAdb7DWDsb7g+y/\r\nk9U+SPkh5DFPOa8ILY6sobWY4EobFqY9yOx2XBmJ62qcsMedt6syd5SVuAbq\r\nx6jXGnOy+b0O04I3cICOhlqRvDHD/r5H/O2QUw358HG8zrrWe0pUv/gC8wh/\r\n/hf7XV7c1FwOknzU97Ld3OrNlTU4JIRUcaubkkwbvxUfhqyNVtKP4lhMakxW\r\n80vxTwHCLIYHOm27xYbA9UqaUHJxbf83CnRn3OKLdH6JH1f7rDh0jmAb5597\r\nC/fFUtm9b4l2i9f3BiLzS4B9/d9lNh1utaL81gjKccugvLNQIqmARFC/NrVM\r\niR0tXmYva96CC8IHTQcChZRRtel5w984/8KOvBUhAZ7QvdNZfUA50y0q9L6v\r\ny8bnI4ejiilrPx3bop1GC0aD3mham2yr/9U=\r\n=nHkK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frame-worker_0.2.0_1674447005656_0.8214985850112062"},"_hasShrinkwrap":false},"0.3.0":{"name":"frame-worker","version":"0.3.0","description":"Run Worker Script inside an Iframe","main":"frame-worker.js","scripts":{"serve":"srvd --debug","test":"echo 'no automated tests'"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/frame-worker.git"},"keywords":["frame","iframe","web","worker"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/frame-worker/issues"},"homepage":"https://github.com/DanielJDufour/frame-worker#readme","devDependencies":{"flug":"^2.6.0","srvd":"^0.6.0"},"gitHead":"4799d45a1fcabd9b6247b20a371bd332c396dd43","_id":"frame-worker@0.3.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-nuzWCrkfhMqu/XGWPTS6s12nGpg0b6ZjPL4+QA4n1DW6qS7Lc7eUGCwplA+Z/N9J5CyiFV/miphXHJBPLC3cTA==","shasum":"841ca499678c050b81f157f2277492661ecaafdd","tarball":"https://registry.npmjs.org/frame-worker/-/frame-worker-0.3.0.tgz","fileCount":4,"unpackedSize":20024,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWIRNxx7sluKq1flGqXfLab4iawUVUGNsPVpYdopriNwIgSRhBSo18ALDdHAwKqLhrB5nVkl9TuvzHaDDlIlQ3ZX4="}]},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/frame-worker_0.3.0_1691354456650_0.8823878129427254"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-06T06:31:04.383Z","0.1.0":"2022-11-06T06:31:04.529Z","modified":"2023-08-06T20:40:56.926Z","0.2.0":"2023-01-23T04:10:05.824Z","0.3.0":"2023-08-06T20:40:56.819Z"},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"description":"Run Worker Script inside an Iframe","homepage":"https://github.com/DanielJDufour/frame-worker#readme","keywords":["frame","iframe","web","worker"],"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/frame-worker.git"},"author":{"name":"Daniel J. Dufour"},"bugs":{"url":"https://github.com/DanielJDufour/frame-worker/issues"},"license":"CC0-1.0","readme":"# Frame-Worker\n> Run Web Worker Script with an IFrame\n\n## features\n- default export detection\n- url shortening\n- blob url revocation\n- raw unencoded strings\n- CommonJS code\n\n## install\n### via script tag\n```html\n<script src=\"https://unpkg.com/frame-worker\"></script>\n```\n### via npm\n```sh\nnpm install frame-worker\n```\n\n## basic usage\n```js\nimport FrameWorker from \"frame-worker\";\n\n// initialize from url\nnew FrameWorker(\"./square.worker.js\");\n\n// intialize from blob url\nnew FrameWorker(\"blob:http://localhost:8080/bf331630-1275-4b3d-9b65-22512egdb592\");\n\n// initialize from data url\nnew FrameWorker(\"data:application/javascript;base64,Cm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbigpIHsKICByZXR1cm4gMTIzNDsKfQ==\");\n\n// listen to messages\nworker.addEventListener(\"message\", function (event) {\n  console.log(\"received\": event.data);\n});\n```\n\n## advanced usage\n### context\nYou can pass an extra context object to the worker. FrameWorker will assign the entries in the object\nto the global `window` and `self` inside the iframe.  In the example below, we pass a validate function\nto the FrameWorker.\n```js\nnew FrameWorker(workerScript, undefined, { \n  context: {\n    validate: function() { ... }\n  }\n});\n```\n\n### cjs\nYou can pass in a CommonJS module and have it automatically interpreted as a Web Worker script.\nIf there is no self.onmessage defined in the input script, FrameWorker will automatically look for and call `module.exports` or `module.exports.default` function.\n```js\nconst code = `\n  module.exports = function() {\n    return 1234;\n  }\n`;\nnew FrameWorker(code, undefined, {\n  cjs: true, // code is a basic CommonJS file\n  raw: true // code is not encoded in a Data URL or Blob URL\n});\n```\n\n### debug\nYou can set debug to true for extra helpful log messages\n```js\nnew FrameWorker(workerScript, undefined, { debug: true });\n```\n\n### id\nYou can specify an id to give to the created iframe.\nIf id is not a string, it will be ignored.\n```js\nnew FrameWorker(workerScript, undefined, { id: \"special\" });\n```\n\n### raw\nYou can pass in raw unencoded JavaScript.\n```js\nnew FrameWorker(\"console.log('hello, world')\", undefined, { raw: true });\n```\n\n### revoke\nIf you initialize a FrameWorker with a `\"blob:...\"` url,\nyou can have the url automatically revoked after the worker is initialized.\n```js\nconst url = \"blob:http://localhost:8080/bf331630-1275-4b3d-9b65-22512egdb592\";\nnew FrameWorker(url, undefined, { revoke: true });\n```\n","readmeFilename":"README.md"}