{"_id":"@aics/browsing-context-messaging","_rev":"9-0dcace754dafd5dd7a5c020e97854cc3","name":"@aics/browsing-context-messaging","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"@aics/browsing-context-messaging","version":"0.1.0","author":"","license":"MIT","_id":"@aics/browsing-context-messaging@0.1.0","maintainers":[{"name":"gabemedrash","email":"gmedrash@gmail.com"}],"dist":{"shasum":"16d4ae7e14cfc871b48efdf6237ebf8277ca602c","tarball":"https://registry.npmjs.org/@aics/browsing-context-messaging/-/browsing-context-messaging-0.1.0.tgz","fileCount":15,"integrity":"sha512-ixSH/PssXR69VDg9Z4H2BuhN2YqODj5T5BpTxqyR0PQQryBmBGqeBIAShHRcFuA8XVm4OqabVq+5728ygim6Zg==","signatures":[{"sig":"MEUCIDaj9aM0Lj+RdFpl5j0LL05xaTE7LOwcUDnkf1eoAPKTAiEA4AVxQkS061QXmleqTR5J43lODanpxOn3F+PviAfB60M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15736,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUkw3CRA9TVsSAnZWagAAzYUP/iDV9z2htQ8V0vXpZqVI\ntZKQMg0TU5w30h/pp47gWGssnGLLR+PSWyEavrZfyt2idRsryF+LSQIJUu2b\nRYekYZmj854va6k3Uf0x4NqD0WHlN0zsgQkU/UyhtVUIB+1Cev/AKrgGqyOJ\nrN/OA5iGoiBeG9hXqqn5JdCHuLoZzL/uZ3iHnE9kTAsUruFqHaLXy1/Y4Xn2\n5PcttbVxdXxkAvlX89j07++hWalU3NemZczRtLcUDikUaxYxBLP+nq5gKbFN\n9eZozJSrE4VDYivvyX8hOyLzkddUtcTYFq3akvtt4o8wFakmLDVQQQtAG8qo\nrtA0d+fyA3rGXFk255nOGqhq8Y6ok7dOqazVVNZCZRQEGxghED2HFsSY3SGr\nJtepp+vqDb0NPrg3KWqvOVggFAsa5DbSghwNnIa4YTx5s8229ihpWBRKKkmo\nQqgthqbxLyP/xsMKkNkUmr4ZLSaAnohcg3hxdymHqPQXlitKyBqepZ0P4v9I\n46HGZjT7Y86hDBzbCrZexscR3oD+jK/LwAIAW9QSYGlN80K0cu1P3Q8sf6ah\nEHli1+QS3aYFgDuZEfj0q1R7r1XJR8W7BUEKiO4RC+r5LRGCw5LJo0tk2LEB\nwPI5IT0fYUnA9asEgBrHx1Q/u0p4ZoakZS9PScVEIF3yri7oeXwrbu0Nlduu\nqGpr\r\n=UBnp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"type-declarations","module":"es/index.js","browser":"dist/index.js","gitHead":"323ccb47c40c0ecdc7da6bd5af0e95298cb5eb9f","scripts":{},"_npmUser":{"name":"gabemedrash","email":"gmedrash@gmail.com"},"_npmVersion":"6.5.0-next.0","description":"Facade for Channel Messaging API.","directories":{},"_nodeVersion":"11.6.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~13.1","chai":"~4.2","husky":"^1.3.1","mocha":"~5.2","eslint":"^5.12.1","rimraf":"~2.6","ts-node":"~8.0","webpack":"~4.29","prettier":"^1.16.1","@babel/cli":"~7.2","typescript":"~3.2","@babel/core":"~7.2","@types/chai":"~4.1","lint-staged":"^8.1.0","webpack-cli":"~3.2","@types/mocha":"~5.2","babel-loader":"~8.0","@babel/preset-env":"~7.3","eslint-config-prettier":"^3.6.0","@babel/preset-typescript":"~7.1","@typescript-eslint/parser":"~1.1","@typescript-eslint/eslint-plugin":"~1.1"},"_npmOperationalInternal":{"tmp":"tmp/browsing-context-messaging_0.1.0_1548897334729_0.8119805156549194","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@aics/browsing-context-messaging","version":"1.0.0","author":"","license":"MIT","_id":"@aics/browsing-context-messaging@1.0.0","maintainers":[{"name":"aics_jenkins","email":"aics-github@alleninstitute.org"},{"name":"gabemedrash","email":"gmedrash@gmail.com"}],"dist":{"shasum":"c804075c399dfffc96c9cc3201f6eb9364bbf41e","tarball":"https://registry.npmjs.org/@aics/browsing-context-messaging/-/browsing-context-messaging-1.0.0.tgz","fileCount":17,"integrity":"sha512-VBw6oci1LWdUqEFR97Ec0QFs31I7v88D+FFj8N2RUmirbSNkdRUQ/1GWKzgjkE6l4RDgFUJWxl+LBO+VqeOY6Q==","signatures":[{"sig":"MEQCIHSg5NvVcmIBEuQbXec+BEh9aL5tcJMkKnuKc9Xe15kuAiBdw5z0cO6aBmi6zL0jIpn9gI9BYzTCWZFD31fPw1yZ/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUlspCRA9TVsSAnZWagAArRIQAKIMabBnl4PiZ8euTaa5\nr8BdBld25RyW9NNyTEzsFDZx50B1G/9JgMx6/4WhSXQDQwsFpBCE1GOyjZX4\nhPdXekr9mHEtEftpuJn9qkNpqWLGgJSeCDsA86t0tzha0r8jWB6shnoSsDVB\nPZbB0KBpM/8gpPpZBiuGUzlavnXjPGJMEd5yFaeMi6uOrcXFmwumUpOHq28O\npTbGWt5kV1dcKAdchEzxVhVpP+nPmz9NS3MVLtnQ2cCsx/qQ3NlSupmZn53w\n7WRGZ2t6QKO7ZQfOUKdm8lDP3xBLUjwGsezO10TgKgS32XyFM9ugKLbchWig\nyPyDybv2c3o6goCXODtXwSxioUMY1lDsWkYtk0h4lUMqeVKJylKSYFfchH3/\ngF3FifrwXQDq35vqLN6tSfVu55k1wkQC16p0jUd3JSTqlBvpgl3ZSLhl+5/K\naeZ5GOtw5CcgcLz5uQVZsHHELLvOPLOvT3Usfp/bBj6Gywhevr+dfMzzXqFp\n/Jo9Aj/iLHqy3hpWk3YraCaOKE0Dy/QQsvgEgIUHEiQbAUDWkAIFXb+f92tZ\nUIb5MMFrq6hrmp0PS3ks0WQwCKSW2B2OJZc5xAMBpq7K5N7Y3xd2RYQsMieH\nARULKTGwkXHWzryMILlol3Oa0Y1QHevbT2B5P0Zp95B7ogG678nj7z5AAGVj\nt+s2\r\n=v4wK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"type-declarations","module":"es/index.js","browser":"dist/index.js","gitHead":"d144123ac08f971ac3bbdb22b62ecb4f3a1ebdbe","scripts":{},"_npmUser":{"name":"gabemedrash","email":"gmedrash@gmail.com"},"_npmVersion":"6.5.0-next.0","description":"Facade for Channel Messaging API.","directories":{},"_nodeVersion":"11.6.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~13.1","chai":"~4.2","husky":"~1.3","mocha":"~5.2","eslint":"~5.12","rimraf":"~2.6","ts-node":"~8.0","webpack":"~4.29","prettier":"~1.16","@babel/cli":"~7.2","typescript":"~3.2","@babel/core":"~7.2","@types/chai":"~4.1","lint-staged":"^8.1.0","webpack-cli":"~3.2","@types/mocha":"~5.2","babel-loader":"~8.0","@babel/preset-env":"~7.3","eslint-config-prettier":"~3.6","@babel/preset-typescript":"~7.1","@typescript-eslint/parser":"~1.1","@typescript-eslint/eslint-plugin":"~1.1","@babel/plugin-proposal-class-properties":"~7.3"},"_npmOperationalInternal":{"tmp":"tmp/browsing-context-messaging_1.0.0_1548901158971_0.0879920508826737","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@aics/browsing-context-messaging","version":"1.0.1","author":"","license":"MIT","_id":"@aics/browsing-context-messaging@1.0.1","maintainers":[{"name":"aics_jenkins","email":"aics-github@alleninstitute.org"},{"name":"gabemedrash","email":"gmedrash@gmail.com"}],"dist":{"shasum":"c4171a9e969ef118f4d42d29aae339fc8e4fd5e0","tarball":"https://registry.npmjs.org/@aics/browsing-context-messaging/-/browsing-context-messaging-1.0.1.tgz","fileCount":15,"integrity":"sha512-mT/ViZRcXTrejNw3o2V0A29uKw4mxtEIEI7ROLKnhFIMEKhjE0khOa4auLrsIYGIkdXAtbxNL94oFKgyGTvxJQ==","signatures":[{"sig":"MEYCIQCX+hWyfoyqUvRzcLnYld6mNTS8rNV0Uj4q89aYiGXiqAIhALhrD5j7YX6W6IBDOLitOPQy2f4fLfocDj9p8lH7AXJf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcU4KWCRA9TVsSAnZWagAAousP/RBhjiKTiUlEZCXDpd+7\n5F4qWeqRVYN55SuLo9Hx9IyQ25XwWKHsgZPTvfyUArkFner5CvfveIA8Fcby\niqQU8NjMtZR6/NKfahmEFElh57xKsY/Kkv1dwV9lz01KFHoV3Mn+1Mt1DSTX\n+65V2998+z6h5AyOPyA0+7mdJ1Ww6myNsSR0Y3G4gVXtHrQYYhD+4a7fn3w/\nVvuGoIeSdkmrMCa6+NrkGib9hZC/jv2ix1qj3ZD1mCSV0G8RWkAhD2y90tCt\n1QQQ5JpZrFUhfFatXwXN49FDZGHde4Z2zqTr8OhmJRrtWdACSPoKupxliL3b\nzyxoc9togdBIqHg27FsRMV8tKkIX1iOkWY2q+8u06bNVbOe4cZShlJpidgGi\nw8WVmctvXdXp14wTzQNDneOjXZL+2oBbQ1s1wuo6XnFtCkPWN+12L34pu/h/\nDveU5Hwmnfal00tHc+KAQ1YjX3zj3yhg6tolZeM1LXkn/P1B08EMYbSvfB4H\n5XcKlVGXngjiWgUdM1u6yc077+gsQSh8AxHLJ6MmJParjBIdSiLg8za+bcGP\nVdqG1heuVA4uO1/DpuZzpiGjIAIkwvxzlITSrycrEixKOnxUkNUbMh9b2g7Q\nwWwXWsd9oZrdS24hVTllYJpyN/HIk5lKeHsrc9izLMtlCmBDOs8xxUt1xHK1\nwCld\r\n=3B1O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"type-declarations","module":"es/index.js","browser":"dist/index.js","gitHead":"426450997417fda769f3b4f6de441a6aca33eac2","scripts":{},"_npmUser":{"name":"aics_jenkins","email":"aics-github@alleninstitute.org"},"_npmVersion":"6.7.0","description":"Facade for Channel Messaging API.","directories":{},"_nodeVersion":"10.15.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~13.1","chai":"~4.2","husky":"~1.3","mocha":"~5.2","eslint":"~5.12","rimraf":"~2.6","ts-node":"~8.0","webpack":"~4.29","prettier":"~1.16","@babel/cli":"~7.2","typescript":"~3.2","@babel/core":"~7.2","@types/chai":"~4.1","lint-staged":"^8.1.0","webpack-cli":"~3.2","@types/mocha":"~5.2","babel-loader":"~8.0","@babel/preset-env":"~7.3","eslint-config-prettier":"~3.6","@babel/preset-typescript":"~7.1","@typescript-eslint/parser":"~1.1","@typescript-eslint/eslint-plugin":"~1.1","@babel/plugin-proposal-class-properties":"~7.3"},"_npmOperationalInternal":{"tmp":"tmp/browsing-context-messaging_1.0.1_1548976789730_0.11078657638732525","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@aics/browsing-context-messaging","version":"1.1.0","author":"","license":"MIT","_id":"@aics/browsing-context-messaging@1.1.0","maintainers":[{"name":"aics_jenkins","email":"aics-github@alleninstitute.org"},{"name":"gabemedrash","email":"gmedrash@gmail.com"}],"dist":{"shasum":"00c9d84e4913615a67ce78751aa1a3e569c68b4b","tarball":"https://registry.npmjs.org/@aics/browsing-context-messaging/-/browsing-context-messaging-1.1.0.tgz","fileCount":15,"integrity":"sha512-ts+Z8g/xTJaD+g9fAElEJbclk1L0xDsHy6ioq9N5T4j5WPew46WvZ/794Vxnn9N06KyjkCO6zc4JEl7ZZRSa5Q==","signatures":[{"sig":"MEUCIQCj2mq95MGlZniH8SYScSAQkQKIDlTY5gj2jntih5gdTwIgLglZrDDd4TUairs4WWT/TaMTq+85VU4CfqrZpvveeQ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcU5XGCRA9TVsSAnZWagAACkQP/0AL21fU9Qa3qXtHCH2k\nFzIS/tcte30XHfp1L1xmljxV6855Nz6f1E32qCUo9IQyUT0s1IWa7rnmDGYu\nt95YNvU9/xssxWG5JOzPGCDUVqGRis0+gkk6ahOQ10nyIXYhmj+f4IrBRE4X\n7NJ2yTXr3UR1cxS6ciCbM29EJu4Aw4oXAP0MZkH64NELMVdQ7EKTuAxmMwzK\n8Dps/woGiTJ0IJ5kXWTnxonF/9+wh+Q0WVvZ7S9n6daOAQGx5QHG1AncUgbk\n9kofwci2sQoBrDUna15n7Wmhv/SDcw88CgggA/zY+lVTN2cSpfUJgKs9NrTj\nxbDV4S8Mr1SkeXFAQoNXk4tKbgMqZh8Qn4e2BmcgRgXRbp/U1IdrI9ehp/pJ\nGsQki19iffYDBNXo8hVxB4IMm8W+BnhF7Uxs3tEOBPmK6wLDOSdxc9ikNh6B\nWAqr2pJLdHyZU3UL8UtKU/RtaX0O2KeYWP4lKLBuDyaILSEfOYLuHyWmhGDT\nXW1hCMu2CaAonNmpN+pxNWlAs4SsHeaT0SKcos4DGinvf3EO60wrDGberu9E\ncWE2DogplQZAp6rlpNFWC85YgojyJXTl+eseI1w5LYXOkyReBKvgrZYtzwBE\nnSalYGsDKgc/V76/7hNSM45OdQ++5m2R7tCtQm6A6yfh0MZrdAvucqJfVeny\nCWzC\r\n=eAKh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"type-declarations","module":"es/index.js","browser":"dist/index.js","gitHead":"dcf736acdfbf46c53d1fe2fd6584172dedd46d4f","scripts":{},"_npmUser":{"name":"aics_jenkins","email":"aics-github@alleninstitute.org"},"_npmVersion":"6.7.0","description":"Facade for Channel Messaging API.","directories":{},"_nodeVersion":"10.15.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"~13.1","chai":"~4.2","husky":"~1.3","mocha":"~5.2","eslint":"~5.12","rimraf":"~2.6","ts-node":"~8.0","webpack":"~4.29","prettier":"~1.16","@babel/cli":"~7.2","typescript":"~3.2","@babel/core":"~7.2","@types/chai":"~4.1","lint-staged":"^8.1.0","webpack-cli":"~3.2","@types/mocha":"~5.2","babel-loader":"~8.0","@babel/preset-env":"~7.3","eslint-config-prettier":"~3.6","@babel/preset-typescript":"~7.1","@typescript-eslint/parser":"~1.1","@typescript-eslint/eslint-plugin":"~1.1","@babel/plugin-proposal-class-properties":"~7.3"},"_npmOperationalInternal":{"tmp":"tmp/browsing-context-messaging_1.1.0_1548981701979_0.02974614073718551","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-01-31T01:15:34.124Z","modified":"2026-02-16T19:48:46.837Z","0.1.0":"2019-01-31T01:15:34.840Z","1.0.0":"2019-01-31T02:19:20.703Z","1.0.1":"2019-01-31T23:19:49.819Z","1.1.0":"2019-02-01T00:41:42.102Z"},"license":"MIT","description":"Facade for Channel Messaging API.","maintainers":[{"email":"aics-github@alleninstitute.org","name":"aics_jenkins"}],"readme":"@aics/browsing-context-messaging\n==========================\n\nThis is a facade on top of the browser's [Channel Messaging API](https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API).\n\n<br />\n\n## Install\n```bash\nnpm install --save @aics/browsing-context-messaging\n```\n\n<br />\n\n## Usage\nThis library is intended to be pulled into two browsing contexts. For example, a parent document and an iframe\nrendered into that parent document. You must decide which of the two browsing contexts will be responsible for initializing\nthe communication. For the purpose of the API of this library, the context responsible for initializing the communication\nis referred to as the `MessageInitializer`; the other, non-initializing context is referred to as the `MessageTarget`.\n```\n|---------------------------------------------|\n|                                             |\n| PARENT DOCUMENT                             |\n| // create a new MessageInitializer          | \n|                                             |\n|    |----------------------------------|     |\n|    |                                  |     |\n|    |  NESTED BROWSING CONTEXT         |     |\n|    |  (e.g., an iframe)               |     |\n|    |  // create a new MessageTarget   |     |\n|    |                                  |     |\n|    |----------------------------------|     |\n|                                             |\n|                                             |\n|---------------------------------------------|\n```\n<br />\n\n### MessageInitializer\nA MessageInitializer should be created in only one of the browsing contexts. \n\n<a name=\"_MessageInitializer\" href=\"#_MessageInitializer\">#</a> BrowsingContextMessaging.<b>MessageInitializer</b>(<i>targetContext</i>, <i>onMessage</i>, <i>settings = {}</i>)<br />\nConstruct a new MessageInitializer. \n\nThe constructor has two required arguments:\n- `targetContext` - must be an element valid for use with the Channel Messaging API. Currently, only [HTMLIFrameElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement)\nis supported.\n- `onMessage` - callback to be run when `MessageTarget` posts a message. The callback is called with an instance of a [MessageEvent](https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent).\n\nAdditionally, the constructor accepts an optional settings object. Available settings:\n- `targetOrigin` (str): the target origin of the `MessageTarget`; defaults to `\"*\"`. If the scheme, hostname, or port of the `targetContext`\ndo not match `targetOrigin`, the event will not be dispatched. Refer to [postMessage documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)\nfor further explanation.\n\n```javascript\nimport { MessageInitializer } from \"@aics/browsing-context-messaging\";\n\nfunction onMessage(messageEvent) {\n    updateURLQueryString(messageEvent.data);\n}\nconst iFrame = document.getElementById(\"#my-iframe\");\n\nconst messenger = new MessageInitializer(iFrame, onMessage);\n```\n\n<a name=\"_MessageInitializer_postMessage\" href=\"#_MessageInitializer_postMessage\">#</a> <i>MessageInitializer</i>.<b>postMessage</b>(<i>message</i>)<br />\nPost a message to `MessageTarget`. Can be of any basic data type; multiple items can be sent as an array.\n\n```javascript\nmessenger.postMessage(\"Hello from the MessageInitializer\");\nmessenger.postMessage({ foo: \"bar\", bar: \"foo\" });\nmessenger.postMessage([34, { foo: \"bar\" }, true]);\n```\n\n<br />\n\n### MessageTarget\nA MessageTarget should be created in only one of the browsing contexts.\n\n<a name=\"_MessageTarget\" href=\"#_MessageTarget\">#</a> BrowsingContextMessaging.<b>MessageTarget</b>(<i>onMessage</i>)<br />\nConstruct a new MessageTarget. It takes a single, required argument `onMessage`, which is a callback to be run\nwhen `MessageInitializer` posts a message. The callback is called with an instance of a [MessageEvent](https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent).\n\n```javascript\nimport { MessageTarget } from \"@aics/browsing-context-messaging\";\n\nfunction onMessage(messageEvent) {\n    this.updateState(messageEvent.data);\n}\n\nconst messenger = new MessageTarget(onMessage);\n```\n\n<a name=\"_MessageTarget_postMessage\" href=\"#_MessageTarget_postMessage\">#</a><i>MessageTarget</i>.<b>postMessage</b>(<i>message</i>)<br />\nPost a message to `MessageInitializer`. Can be of any basic data type; multiple items can be sent as an array.\n\n```javascript\nmessenger.postMessage(\"Hello from the MessageInitializer\");\nmessenger.postMessage({ foo: \"bar\", bar: \"foo\" });\nmessenger.postMessage([34, { foo: \"bar\" }, true]);\n```\n\n<br />\n\n## Description of Gradle tasks:\n\n| script | comments |\n| ------ | -------- |\n| build  | create CommonJS, ES module, and UMD builds |\n| bundle | run Webpack to create a UMD bundle |\n| clean | remove generated artifacts |\n| format | run prettier on `src` directory |\n| generateTypes | generate type declarations |\n| lint | run eslint on `src` directory |\n| transpileCommonJs | run babel on `src` directory; transpile `import/export` statements for a CommonJS compatible build |\n| transpileES |  run babel on `src` directory; *do not* transpile `import/export` statements for an ES module compatible build (used by bundlers for tree-shaking) |\n| test | run `mocha`; searches for any files matching the pattern \"src/**/*.test.js\" |\n| typeCheck | run `tsc` in type-check only mode |\n","readmeFilename":"README.md"}