{"_id":"@goodgamestudios/cxf-runtime","_rev":"180-4e554359097bcabd1f3213e857eb4952","name":"@goodgamestudios/cxf-runtime","dist-tags":{"next":"0.0.3-qa.3","prod":"0.0.3-prod.0","latest":"0.3.2","devtest":"0.13.0-devtest.1","pre-production":"0.14.5-pre-production.2","dev":"0.15.0-dev.0","qa":"1.2.0-qa.1","production":"1.2.0"},"versions":{"0.0.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"0edbb486f60ff4c9d9babf61c22e8cd1bf8b25c5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.1.tgz","fileCount":4,"integrity":"sha512-YteGmMl5S9YMJm5LRcpvd8wOUqC0qtYMNuxDmiKOX3UEtHHO5LS1IIfVjOLRy1YOqSlInj3rQV1qRfKPRXqdQw==","signatures":[{"sig":"MEQCIByPsi5cwP+iYq0Q3xZObejyLPxPAasZMnSCzpe6M3raAiBQTaHsZcgVrZhCyGv/yxK6vqJNPo35pydhX7SUK054iw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":427535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6rA1CRA9TVsSAnZWagAA/PQP/jZjMERefcTdfdHb25gs\nwRxgJHDOujNibSfENvVG4oLtHdhlkIdUsRAwJRzz3AVtX30D5zCmZrdeslBd\nVMZ+L4QqEpob0PCFYZe4JC5o3e/+dzqSP2PiTehO5MYXjlxdXxHZKvNnMgJV\n+NOai/85aLI6hLQYGGX7Kg7aFhFaJSwFwyObI46I0J44nMkbfSyjmEAzZ9gr\n91Y2o4cPvx6O83FTcGSQYmQS88lPx5kH2fSQ6UsYas0lLPF1GlSD5fkggWxq\n399YMrfTws9a+zU6C0+UbvIfz4OUIXMvN60YOM1Ts1whzGlH+KCV1jyA0HK3\nZXeqqfrfVFV4YYWojC54zI0wJmm7JDerwDoBqz6wbJC6vh4Ez3S6VaZ0UeCy\nPtWJlJfSfXdWCHu/eDiTJCdMbM2yTJ6+1xg2QKq0AVUgVCWofWk31d1vrS5d\nj7LsroZFh+c9A7xeIYz9a4rBbjUqEdcTuIPy9QAhDv5U8fWw49CRZEIDbOXj\n8+crMd3Q3PDjMvw9WP9IiVIBPg/AXe/ivJBGRneabkS0CEI6IyBmpSKN6M6q\nKnYE4887N9BElCMc1YoKy6GpS26HmqICpWOsWvh0ZYuQhpD6iOiRC136lt4H\nH0b3ldp3v9jR8DQ5fSJCrp7vcPX4a5TV96mZbSXcCi9V92MXi+GNpD0xZv7Y\nkUYf\r\n=n/86\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"gitHead":"1dcc3305eb9b9b6c966bb39af13e7261c018b3f7","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && NODE_ENV=production parcel build src/cxf.js","release":"standard-version","s3:upload:dev":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/dev/cxf  --recursive","s3:upload:prod":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/prod/cxf  --recursive ","s3:upload:test":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/test/cxf  --recursive"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.1_1542107189155_0.8396126170321361","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"c1b66fbce5aefc22b6a47d90d4f5d1376e1b2344","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.2.tgz","fileCount":2,"integrity":"sha512-9EH37SSVJpFxZBGt98YQsz4IUeZleAUkZ2fGw/OdKfvc+SesALqORBMvICbuFq7jklrzXMBoZRA0UF4Zo8fw4Q==","signatures":[{"sig":"MEYCIQDtt0PBvhbIIfqp0465b5YteAMiHUR9WyacomLHYb9zmgIhAMVclBDTVfC9xF4GMNxuogGE61UmTQ9IBds77x025//D","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5708,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6thMCRA9TVsSAnZWagAA/X0P/0XS8SUAC6qtgyhLxEv8\nGATaNs3mi+R+Kd+6MnffmKkBBs/SEmdVHZe/KXgXtsMBrPd8MB06/GtDFUuD\ngeYDTW+eA+ZG9jH0vqvPslKR7Ky3n9vCmN8Y60jAlr4kP3YxRdhx3zLlsRkB\nniph+Vn1SJVL8tkY8JgNG8RoINuLbB1udtqfMwAAziWRwL13/oX8DkmGmPv0\nzqjxCO7tC2KLkHx49YGKI1cUqUSS6duVRI4Ib9u51+kRlrCQJVVuQe/Yxa4h\nHdFX6kryIaYMpQ04qVRVPovgGu/p2PURpbGgQVLXDVWmoQISwBf06A5wve3Y\nCLvd4SgBOC3pw1oZdovq8tYYE1rqzDWeIHtiZG72gKPOwz5xRKttzjOq/k1n\npINxDT6AyECovLVUDHGYh7nDHCLQnmGu2uVmjDV09M22kP8YQ/bTPnBAtrro\neR8EuvgEH3H1fdTI9lGZhwwLX/4wKLsSgPljaWVnM7wXk+i++Rl8Yokl0WM4\nX6p+wd7wfmKOKwuFXwftnG7xYLDye5GnVzAsUevviSgvDXRddWgeB7VS4hBi\nOA03bH7IzU9R83WeY80gUdIk+rEU9cGD8hVVtoCPdAXVKnCTL3qknri2uAZd\noMi6r8IIO7zY2FFrLGWF2CZcBQC+UuYhHOAOvzCrjFN2nmI72enCcsyrX1XM\n0fWL\r\n=HHuv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"1dcc3305eb9b9b6c966bb39af13e7261c018b3f7","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && NODE_ENV=production parcel build src/cxf.js","release":"standard-version","s3:upload:dev":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/dev/cxf  --recursive","s3:upload:prod":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/prod/cxf  --recursive ","s3:upload:test":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/test/cxf  --recursive"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.2_1542117452169_0.16251372376162077","host":"s3://npm-registry-packages"}},"0.0.3-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.3-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.3-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"12061ca454bda1e14bd4cbda832abc2e6125802b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.3-qa.1.tgz","fileCount":5,"integrity":"sha512-VljR1x9cYssge3r8S5h6AgeyI07Rdn3bhu8zQfTgLiwsNBQJdef8H0YesPpMW0GuuOjcPSngm5O/bkf6+0Tp5A==","signatures":[{"sig":"MEYCIQDSi63uHyji9vJKhfMgOVYxqq+Q5Heg3I8vYrGSYdYnRAIhAOG+TFJoOSF6UzMPzX0iNK1H8Mv9xPc2ETjcpF83/M2o","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":428491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6tzkCRA9TVsSAnZWagAAnREQAJJmq1IQwT0NuAYWnqYh\nj1HTg8bwoP6876D9Fs1C1NSrRyuYBmF3d+gS+F9uN//vNuECryvuYOt2OIMG\njPldyh5Ac5P6OnEolCvgoZhl5AFuFJQCRM4ptoQSw7H9n/tFl0/WAJA4BuMQ\ngG7Lqq87Zs+5j/7TmGxmqxckl68NI/y3E9aPglvoYGupgyqQXlpYHsQig9ME\n0e+sRnHshBSidqZdLtarjNnkRpsgV1OT54uDERwiiBqh7AonoZ8GPlIGyO5c\nWPhy5tk8uxsy8oa1F1U0xleXUnWIUbxtp+d6FaZrJpd8D/coIipgwl5iEciv\nnDw/wWRTrf5HXSlxvqEiVAiJT+lzFNLbQ4du4PCiYJMiHb4NubN6E8F+IQfX\n50mqVl5fgNRWBt1hmYUglkLIt4LUVSNXORMUK1ILclvHHF07U7gswHRMBdM6\n8G9EOflyfthpN9Bh7oq+XJE2xdPu3OgF5XMTZErbA5/9aoi9NPyZP1h/Tfal\nsjupFljheVeJz86aOz2f7n79LtWtxp4YZd1ddtSFXo9kHeVFXTXz68YwX566\nKUSOUUE330koeQ3fReoGG9LPGwvIXKJuHn5SXeF6wdo/CEJ3NcAoMuvC2hcB\nd02wAZ+HBUlnLktMsrNXe3Ohz+ywoaMlhWALBLEW5yEl3o+ttb9pkRW9wGMr\nMnjh\r\n=IPGh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"f05510d23c73b6ab0c4d687bb5a11f225b649e27","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","release":"standard-version","build:prod":"rimraf dist && NODE_ENV=production parcel build src/cxf.js","build:qatest":"rimraf dist && NODE_ENV=qatest parcel build src/cxf.js","build:devtest":"rimraf dist && NODE_ENV=devtest parcel build src/cxf.js","s3:upload:dev":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/dev/cxf  --recursive","s3:upload:prod":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/prod/cxf  --recursive ","s3:upload:test":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/test/cxf  --recursive"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.3-qa.1_1542118628105_0.0683903737004099","host":"s3://npm-registry-packages"}},"0.0.3-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.3-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.3-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"c5d109ca9ca6bc8bcdde052a1a2c6842590591d3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.3-qa.2.tgz","fileCount":5,"integrity":"sha512-JwQgH5eiRtQWZqKGTUQcWcpbwWAARqSIyYiUoNP8kRRvbREIWob5m/xwDg8e5p6i2mci+JcmARkEd9fQaBCPvg==","signatures":[{"sig":"MEUCIAJ6Ez32+5qveWoz9uzf6NLNlKnJcDmc2XeLMCcne7vdAiEA7TIx7sPc9bbUzl0VUlOhrtg2dl9E/vg8Kpys7iCMY1M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":428630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6vbtCRA9TVsSAnZWagAAm54P/jISLzPKTJ/CBB4MUmF8\nIbA4F7gQUTgJNxX1hF/+yGpuZvJ7n0h5MiiD4AO89bkObtW340cFLJvJoWRW\n7G83H2ZfSzkk2FTlYFr/Bs4tOYC85UeTqlv4e+PWPt1Swrls+0FpVano/CZh\njAS+ElXBGnZo3d4vjUzvxfVpEta4Y8v+p6p2G6IU4vUjJrhWvSzgv61mIEvN\nTIqUn8stDq+P1EcxykPCBuu9DOoZ54sCWJvyHdLt+BwF6dcVh8F0YbTMUGKO\norUPn7DmwM6JBuaDRfbcRwQlQzvg59pyqmHDFWVxZ6yuEBWmOPj+2ERNK5US\n6KfmOSUHcSVH1L90o7KuLO9fIeHLHFjm0EX7giBq4IrIWbWJv4lbsNwGb60R\nbYzZbLR5nXNJ7PAHbMeDwFzCz0bjbZXak5vubYORRnagOxkpwzx+A2YRZFY3\nL/cL4OjZTFGulfcp9CI30XLN678QFf+Njm3RPNtpFG6N9pt0E1NMECJpH98R\nnyrhzk7eH0nFrmJuv+WbjTJ39IfLvZ/vKMj09jx/1tQ2v5eddjvEDhpp4uk0\nHMoI7yzbK3f8iJ5PMdC1ijyMblcC1iy6ry1sl1HpytPhXnmEzOH9AkVT9F80\nsLCjkt4xYLYZv70BdgdsIPY9denaMrOk1uiIcn9RfC2gTMzLIcgp8TUrvKZq\n9gXl\r\n=xS2w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"652cb54957a70dfacf1948375a8214933e406bd8","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","release":"standard-version","build:prod":"rimraf dist && NODE_ENV=production parcel build src/cxf.js","build:qatest":"rimraf dist && NODE_ENV=qatest parcel build src/cxf.js","build:devtest":"rimraf dist && NODE_ENV=devtest parcel build src/cxf.js","s3:upload:dev":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/dev/cxf  --recursive","s3:upload:prod":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/prod/cxf  --recursive ","s3:upload:test":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/test/cxf  --recursive"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.3-qa.2_1542125293289_0.15020673667070206","host":"s3://npm-registry-packages"}},"0.0.3-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.3-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.3-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"652d0cb42aef1993be61288cf2180e4f92049feb","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.3-qa.3.tgz","fileCount":5,"integrity":"sha512-QBqao5X2ShOGAqajpNy94PyLBJJc9e2NFv5NSPLjLEDkGq8PNZrfj5fPOkitfR2C5XDnAu040ZspIhZvXkdhXg==","signatures":[{"sig":"MEUCIG36gh1bHaKlynVlltIywmeNbWWBJO5x+LJxZ9KWbprQAiEAvBnVdkK0Qe/vpXWWI4i0fMc7D01kMp5HBtHucMFgSlU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":424302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb69RZCRA9TVsSAnZWagAAPYIP/3GPb2pS3mWsToATrzuc\nV/4I/a1e2rW5Uj6R8lC62d2qHKYC4Smb7zsqazppkUzRw5850DgMcXQCEbQ1\nwWXxmG9MX0L4Q70ZoMv9RYPl/RMpstlrmaRZcj4QrrZqOlvoywJ2bMSlurMK\nCWxXFVSYvdBq359QB6pzzrf7VK6FXfhtXM3vtZKvwui/iT33A1mIwdGcfc2G\nPm5ify/xy2XcN1/NLgmcSLfwGErY1E88KOmZVcSOJGzdwSbvrnxn+1o1rAP7\nugjcUmjRg5jARXGNkORn7Fq08FaXegqrSa/yA3WuYLVg08vrsQ7oTCN8lmKc\nWTtHQtnh78ZlOKyI8Jv+ldO3WSTyqFV5bIPfq4VvpRR4nTJeWPWLReMvF33/\n+MmuwEKnAwaiL5SVuMkQ8FgdHYi3/uawQkDMxpZdN6Aq2Q8bTVzy84nL+Dgq\nxD5Q4aEZ6dcovPl9OfCD/kjONRj7dbPLh1hsA4Jh3QVYsr7eNKkATXP0t9b7\nWzTWevjnfgetnmiSqcPp+oZDOlwdSlCe7vVtgfvgW+vePpFFnjKUt5AuThdL\n88U8boNNkeuwkyt1Umges/uFq43NlYNJ7ok3+JrRhlxpUKkLb8k3amHFqRVK\nf2eOwR6lbRe5HrRKahgcK95nd849dcSP5f/E5eWKT0E4NYREd5L3iHOkGprx\nBe7i\r\n=6wPn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"988af988362f196a22986165d837ca5de114911f","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","release":"standard-version","build:prod":"rimraf dist && NODE_ENV=production parcel build src/cxf.js","build:qatest":"rimraf dist && NODE_ENV=qatest parcel build src/cxf.js","build:devtest":"rimraf dist && NODE_ENV=devtest parcel build src/cxf.js","s3:upload:dev":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/dev/cxf  --recursive","s3:upload:prod":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/prod/cxf  --recursive ","s3:upload:test":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/test/cxf  --recursive"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.3-qa.3_1542181977092_0.4249197833411471","host":"s3://npm-registry-packages"}},"0.0.3-prod.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.3-prod.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.3-prod.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"25bcef6e460cde38ade4c0dabb3c86f2e3ca87ad","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.3-prod.0.tgz","fileCount":5,"integrity":"sha512-39nEaj5j0J0RaYveietdyBkKQQXWZb/zem/zyup8Yu1sdLAgo0eEjcuwD0Rpnu0n1H97Y2OsU4v3gdCEBcqeDw==","signatures":[{"sig":"MEQCIDAVWdZmEAT1DqmhtD4S1qg26AGbaMl16187LQm0gTrzAiAdwKzag0mL5GD2snRwi0fBx31QSBYmmAtTnqzjkaQdew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":424359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb6+MHCRA9TVsSAnZWagAAQUoQAJ4Y8jVgO8bJF8eKqiHc\noS9DuJHKhu8drGwybNeV3YOifc3nmSUceKpGniS73CtRXidJzA/tzOrNMTPo\nuvWsaMD7m3FoUNOBDbu/bcjUWQhf14xDFmSlq3arS+tnXQ1kNl8tFTXnqBjO\n9YqI38lvE8LtlYzGg8CFI6zYxcGNdtKITmYdlraoHbHOa6RSwZcoK9zY+5Ts\nl9fSerE17e4a/2ZjDCP9XKPQbIFrL68xQ4n5PDDqN3Htdfc4LuhWFZShJC5W\nrwJUwtCslov5MSvzinpEWEr7xwL20eR3rWfv0RyOsP61CvXVm1bzYpPgYstB\ntGb2lH7eR43qg7Izk0QLqjEcsYyFtFcmqKJ+qodbXHNQVrKl+Kk63b8gV6Kx\n91eYv+Wc52+qwKLxQ+0Ow8ODWs9yLICZm9qLV4bDdGePgdB7Lc0koaIqtz2Z\n3AIL9tBFBrdTwENMaR0y83Q/OwZW/H03OVdbzzEGnFkC7DYX9VCdAoDTXE9J\n99F1z6ySr6NAMrLYILLjcmlXIgTtRdfsWq43aMFHM/a90eag+UyYhFGrNCwW\neRMjWUlVLaViGngT2V89ashUoRpYt2RMK+Kd0uJm9A8AH2YpaC3gXlLm2T2C\nsSgTVRSQ4IiibgDNAa2lC/1UhW5vFFoD4ucbBz38OnFVFCDkuiMtohGWAruY\nL23g\r\n=T4B/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"3711b5de7da512e41f9bafb724134e9116ebb05f","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","release":"standard-version","build:prod":"rimraf dist && NODE_ENV=production parcel build src/cxf.js","build:qatest":"rimraf dist && NODE_ENV=qatest parcel build src/cxf.js","build:devtest":"rimraf dist && NODE_ENV=devtest parcel build src/cxf.js","s3:upload:dev":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/dev/cxf  --recursive","s3:upload:prod":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/prod/cxf  --recursive ","s3:upload:test":"aws s3 cp  dist/ s3://com.ggs.client-notification-runtime/test/cxf  --recursive"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.3-prod.0_1542185735224_0.3256525334204903","host":"s3://npm-registry-packages"}},"0.0.3-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.0.3-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.0.3-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"c372bda664a4dec9a38ab531e57187d7d0eb0461","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.0.3-qa.4.tgz","fileCount":5,"integrity":"sha512-7aIWoam0KR5vr+FHzRusWs9NpCNezz6QqxNnJuCPGGlLmKgQlZBj4yCjmHAc0YYcFYOnc5YgFs77JOgCV9hZIw==","signatures":[{"sig":"MEQCICi2iXVnhpNrfHMKqz8UwHY3zGLDel2MYU035YBreJGKAiA+DsU0Zmv/ZwjnM1DdIKkL+cC8hr//wVrQfN+RxKHCvQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":425779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7BGKCRA9TVsSAnZWagAAppQP/RJx+t0LxjsjD8lqWteF\nx3ovKFQUodWsWKrW4If9mGD+41rlHwe5b4TKrSugFa4lOBixMEG543S87C5N\nGMFIaIGiNCShb+6lb6WsEtoOHF/cS5SmqcDbEhegyMoMmCDHz1jVngUhb5wv\nTNnzlek4tF6bRc2kKgusn+qi88fZ/aEgEVe364xGvbQAHdchRahGJ8HCsrna\na+yJGOiTsE/CZtAqaJ4dvsJqX/vRKHS+erUYEnp7zp+8Ihu8bmFMxHvmOdk7\nmMNPPE4hGL0ZaA934WKtr4ZxBheXn5NeoPQoQha2whTI87YizNqSXoU92+M5\nSkA2AyzqRtLs6zxlMf+48lX7pWSYVxq3bFVhPhrjdCHsnBppRvCkwHRNd1TX\nt8ozcWBdj8drR/lvLaZ+uU7pHMyV1wB82FhKggoqZmDmj2HTK233ovOKSGCA\nOKPC4AZpLFLBKJ8LghBQhE+8wv+68wmHLYvyyMMUiMHm5fHTJxvRRwp6Sacn\n37MliXvHYSJwU3focZP+tQXZnTDIrsQA/ySCmL023//l7m2fsbXli+IqKQ3k\napUzxaSzKfv/KMFU4ajyMIYe3qEuCXaJjeaz3KfJZnBIIixONUfHFo1Ng+/E\n+nCu/QJXM1PoAvDOyU8qE1f++8EchQltLt4Yb/XTw2fi3antG9OIY5Q1cSif\n67iD\r\n=qWZ+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"d0dc658db084b2d6733554fbd4cd1e744ec90656","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production --dry-run","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"dependencies":{"cross-env":"^5.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.0.3-qa.4_1542197641691_0.22626086361134412","host":"s3://npm-registry-packages"}},"0.1.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"90214742310047ffdf38c5ea417bd8d83c84d294","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.0-qa.0.tgz","fileCount":5,"integrity":"sha512-pJ5bB8GKF0WbCoK8mFm4PO8enKRpQTOe/SGhp5IwMIfP7I63kZaCC1MMaPX/zYBVr+ny2VdltwtRck/ocAdDPQ==","signatures":[{"sig":"MEYCIQCPk6jOAnwlo6I06oz84z/C4p3rzuHV1UexHji3XKo2SwIhAJgp77zGEgW9rC+XbvW27l9d8XBHW9R/R7XIym0kJM+j","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":429704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7SnfCRA9TVsSAnZWagAAnVMQAInWJzCVI8a3leplyQo3\nwzkYY/B+kbZSQSVr466xS/f8OfbYl+Q6UIqQsS+1hSVRSIqRw/Os8rVfkvTG\nRo0sginnMeKhzDzCCoVitjOGbTTCyPRizuevRuQyTAX9jiWmGryWXDnaxfm0\n3dPnBrENqgM3kLIAueimsUbrKiqPyXJGpWmRY2DFSm+Fqto8Khm5c8/BFbKp\n5IUPjQ9qNfRSA4X+ubr3UUCiC9AloS79JFTAvwP7HJhEFt2nJBZkljQt/eYC\n9ll/ugwKC8oFuwoTixW8X7QZ8F8nhUASUKZWrF9e4DIUmAe8csHK33VCSR/h\nO18LsAsM7B4P8FuGNtpYOQ2AQQM4MZKNNql80tzLdlflC8NINopkBy5IiSp+\nakcGK6W058ns3nf4+ACXYZYT8wf1YegfIxmLcj2faMkCazfp9Ixb/Fsey19F\nq26o0NygLraMR9xt9TA6/BPESq339xwZ9XKYw+FgRLQo3LZTbnEwEEc5/vf5\nM13PaPk+BszCwXuvMJe1lYYRrvUt/A8yq4gLrf0Fmv+mI4/SDatVOIXxjITP\noVFZacngVonfLo9pqvhMoDYi9lIb4ym2bQQaTldoD2mQE5g7vJYw1NrubMQd\nVf8v+poVBFNzmMpKTpbUx2OAuLqK0gXv5Jy5s7NhkXDTxBpclXqCnkJpsGrb\n+RTa\r\n=avu4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"137d9b1c2b4f4b74dec233b2b5ca8b4657d2ce02","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.0-qa.0_1542269406788_0.6429473536171195","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"3cf292bd2a3102c649598f5eaf91927a9ebf119d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.0.tgz","fileCount":5,"integrity":"sha512-PTfjXB2xKv0/q2FGmomX5GDCC7Mebsnnf+DQuT+hjh0eJ3VJu6iw9DiCJIFXHMZT8zJl9nFi65/+cjykffx1jw==","signatures":[{"sig":"MEUCICuDax4LjAyq5h5OLgZYg4zZ68HLPMEBx6JR7yA0E1+RAiEA3zqW7Ju9GDoTm7eiXMtk5QKENjxsVSOvmAJiujmYlKI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":429809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7SobCRA9TVsSAnZWagAA/JgP/RPaewGmAq54oIvcezGL\nrdzphhXXgW9PZ6BnLPwjWnqAlWEs/cffB9We+V3j7If6bbIHsAvQ4iaqOaI+\n3VhvWI4Lcg/m2DFCOBIQUKnIJkyFBQ7/lXowFi6h6iD2X5OXNVDx0ge5HgYa\nLZ96YyDDHRdYcqzI4dK3qiitOf+OYEuE7RSPkNlConraJQNK5ZrVN+Mptwcr\nbFmlwLa8+VqAAHdmBBarE9uDo4nc1oGZ6xZ5T0LINTZnMLiVIfM5FduiDdyx\nIRdlo1GH6egsBFxDk8vxNOUHyOQ2iCeRQRLkXVCiPgcMGKooH5DutwnnZXWn\nxIah1OdUufUnZ6Q34dClkimsZO7njNuHKWCyrpVUzs+G+gAW7nB5iQjiM6nX\n3eeSlDW1DE4AMafstaC3FxWmoK0/ZZRCkbhydCFpWq/jmhUY4YFu8qxekV3R\njtdSYmfQwCF3syMJa0y/AT1ehfI85IgbHmy8iGtpimctLE48sKiIKlZYUG0o\n5p5kcRQ8PTPiKLC15lWzuNW67UHWLAAQ47NUbADIQ/u40g6/jdsiJj9bPKTJ\n55ph8iF8x6reZ5qpOeto+VS1psf3Fb7SF3M3PAd7MRGe4nPzoHsfG9TaJSuc\nNsx/V8TRDDzya5zeHdttjv6gPNjxxNvIvEJecaWBj36cN3zAUFoYeOltZlgT\nCfSh\r\n=yRBD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"e8bfc112bd201b856da5c81e1a7c69b50544fb40","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.0_1542269466445_0.942914791588463","host":"s3://npm-registry-packages"}},"0.1.1-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.1-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.1-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"9c9f2e06f78b0f991f8bbaf40c9634fcc40e2b53","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.1-qa.0.tgz","fileCount":5,"integrity":"sha512-hAGIxBxhj519g8A5UuaJ2NDg2zb7FjBN67E2WhUBLOtzrfTrC4+0/gVhGdpQ4K9edIcudkTQsYAGP2+QNI45zg==","signatures":[{"sig":"MEUCIQDYoIWDapt9y3ZFizpTKJgh+7tWb3q1K/nmLDSimRPgBAIgPpJqCS85Prh3G9S94rtovWiFGOuKb8yfB0fY08m7g+A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":429961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7URpCRA9TVsSAnZWagAA0dEP/2SMprEygs22xrVTB1tk\ntTRz+fTT68YZpLK846Rw5xsslx5ly2vJoHiFYrjAJrGonzgu/2JeoF3u7jZb\nfKwFDeQ+z75Kg37RclIBHHLtRBi8vNx8dpmWihXRahJvnfga9fqj6ziiXGE/\n4m+30XDQJnlup6aKO7kHYlXEC2zRmr4/YFwlSHVvZI6k9jGZHeoj7sxGw1Jb\nCQvqQHHPi8JXYgFyveNez2XVFd1/m5W4YItdG7Zb9tI+4W4o3yEVZq1c9fnz\nnSXmi9WHL4Tosx9W6GceH64pE6WTkw7H4ADx1BoivSZKpmjfThBpTEcJrsw8\nO0MsM4an3WWYod2IqlFSeOelmPsEKSW7eYBp8nwWAKSVXaArrzVkEV3EDhUj\n2tbT2KNyrYgzsMNkGIM6zLllXEwQDgjHCy+753KslWpDh8U47hM4vG7YAqW5\n/97Frm2PJvRrVNlc+Dt1NK3eHWinOYAuQyBntiYS6UAlWCSq+Dp+By1fuhpK\naDh1vuYi6XuMwye6hw7nQASoNlux2sFVW21cXMLCxCByqSST2BI5kSsJ8sDB\nr0XaM4f1GUBkQPjPF2cw38P5MU6+Fsc10TLaZu9XRKWZBde5oAcuoUsaHenM\nlkItQTas+buaWp/tveITCZreg3V5rR/IE9Y5VEwNfgL7EOcNG0BPpW029oXA\nmGHc\r\n=HbRM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"96fce95bc201e00eaf0da9973247cb6c5471aa3d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.1-qa.0_1542276200746_0.5175641359099155","host":"s3://npm-registry-packages"}},"0.1.1-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.1-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.1-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"b7b48c5e57e9cc25faee4b97bb4d675407ec5ee4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.1-qa.1.tgz","fileCount":5,"integrity":"sha512-WeD2zlxQ47XDjYsHLDGBuIEA1HTqxqohj/NQ0/sB148E+70aWHUKjcbn8hUOVZV+80RjS4/UD/BBz9OkoBjgOQ==","signatures":[{"sig":"MEUCIHWRfN8K360fIcHfaYG4+wf8oTvMCZii2FWhuCvbhdQcAiEAlKXZuzu2uUThfyIUhhU04WLuY4L1LwZAx/K8WBDA9gk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":430109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7VUiCRA9TVsSAnZWagAAKXMP/3QgG/Sf4S2HmMl00N6t\nkLt34Ds6ivJ1NUCV3kkHBFqbEb0Qo/eGSCatXcByQoQv3NXJ6qqye1ysf6Kt\nqKu37X5Tx1DLe2tShSQIcS7178voyNjovZphoybiHCx8CjLnbwY++3cXl/b2\nEwayu5g4h4Nx77Mxtql0qifdaE+1SMClisfz18yxy6eor9t9bu4NGqsL7fz6\nt4Is+00okrUzy6os+FmGDhbIIRM17WHaNd3WPkFqYnITN2zlaUwzoizJpLkK\nIlWKGfNyeUx+iqOI7l/T/3PV2plmRm6gQqkA9qnB9NlQiRXrqNLaB3jaQAu0\nS8qUsC3HaMVhK37XTed2JIV0v5qJ7Of1zc/n7a7qnOdsIff3HNKl6oobWnAh\njjxQeZd6nnbbEpoc9Dd5SJ+zm/aVBvTUKwgh62xWsimlQRCq2Nm1nmY2JTNj\ng2+Tgf4wtIWVAlgqFmI3Ot0Uq4oDijb4yuxNfv23Ojpn7IIOOwzNkAOuhi7N\nUn1gvzjlXymLD7ms7lU77yKocK/ISJ6/lOo/yTMrmfRj8PD0i5rbKKkizvp+\nAwjd23OhxbuCBJ61IktMspP9LIRzNcm9HRvY9KelUj64XNBb7H6GPT5DCWlE\njV7P+0r5RhtqPpu6m3++Dymdo/HI+1zrZseaIS4vcV0AI3tCgu64nGuiuUec\nJ68+\r\n=/HwO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"b9f7e596e3ec7175cf7b0f127ccfd91c8dc564ed","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.1-qa.1_1542280482103_0.7086136176247548","host":"s3://npm-registry-packages"}},"0.1.1-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.1-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.1-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"2531608e765703e613d85f9604ae2b6a7b16c1af","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.1-qa.2.tgz","fileCount":5,"integrity":"sha512-97G+ZYqSLnCFGy12Udt4LmG53WJhdb7MbefNGCy2x5Mot28YsCMFteAyE6vDpTcrsq8nXLFFpRO+32NQLE6yKA==","signatures":[{"sig":"MEYCIQDScMAOCRXvmPfmnrUq3SmYgtzDbFBh+XS2/borOHhIIwIhALEMTjCfde20QFarat9U4CA/qkVubo5jdcECN+751K8a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":430262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7VWFCRA9TVsSAnZWagAAKp8QAInGKxBZWocaj2T2O9WG\nIyjI76vBdIZKN3J8ni1WH+WxUxSOhyKOzocnhWzFPVNUooq9SUQ9zki2gY/X\nazGlGRVvK2rJmzgFu9txUcrmWXEvcKrZcALA47hV/osswl6fLJvwVJOInNyE\nan2ycbW4cScmHiqAnnGNxAgaygmqmuEB9wVKESwiOLzMqGxD84ZyYXHfitFk\n44NedVzkKPLzdOSWf8beKedvC7L0hrvagaRr9aO4juZ68PiSWFxrDIsR2j4h\nCMozWjWU2XgCED4q9F5BqetNKeuOcvnTwpZ73DuMohuIzD2t4idWBWmEfLZf\nzy9lIHraUs3PMWDEOtq/g8evDFarDl0WNOs5Gi3QD624YescAOWC4Eh9S9tO\nz2/ILjUV/l570mFIX3UpZOYdIxyw33Ap1EbJMA72auGwvvacOUDLLWtnWyiW\nHg70zIMtAYNGSYuJWaUPTWjUx7BP9MpwL4lE8Qtuf/ZnJmdPR7ieocbJwmUX\nuJvNNvxKLTRa4CaoaVlx6xcrEw9BGUpkf033u0++aksbX5YJiY2yMQefGs8D\nyQrkeGmyOdpyLYTl8ALtsUNgDLYih9xF76p5XQnWpOA18qKHeicHRbtRz2uK\nYJIkIPd7UOFDIl65HyPgr0xXZef+iMLWgMVcjd6IOfuw16/gZHberHuy+PGw\n0SBL\r\n=Zwk8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"452f7d3af7a2c0ef9912140b8566d1f8c7c7bab2","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.1-qa.2_1542280580724_0.9899913552762949","host":"s3://npm-registry-packages"}},"0.1.1-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.1-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.1-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"08f2969ff53109476a2436c76daed79deb0213fb","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.1-qa.4.tgz","fileCount":5,"integrity":"sha512-Fo/wdcwxej7wME0Feb/sp2O3ome1ScqmxF8haqCZgYdBh61ia7tEyR7Pn044L3cYnVxHKrIzMVaXsl2nijmVFg==","signatures":[{"sig":"MEUCIQDQ+QXF/SEAojU2Y/Xc5DJa7b3k9tONu3CzFtzmdmo5LgIgCKEQY/opbZ6pGEp6Xwg3BvvYuOe5bOD01UA+5WHjHRY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":430759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7Ws9CRA9TVsSAnZWagAAIFwQAIhcGjMxxUrQbiSENMa4\na+CBVg7ppbtPGjYvO8RolEq9ZVZFeEX5HnxAJ0Fc8cM3rzMmU29mMkAvCM8F\nn3+uGbeVDSj7lMyius2XrjZEzf64+AdsoUMoj9Md1Sp+TNeITh3NQzadrLTm\nwSd4vXP3TaBIY+KQzvzHObOFxfiKbHmkD7HLHxlAHMncdLIa+o9BOrfibsd+\nrvQcX+vHRWrNRgWrsU0wUOhmwOgUC5r+2IZB+6B/Qn5YseCE+NSqIdp8MBhb\naekqbs946MBjBWvcy9jmULKHIKA7NEUQBpKxYu7N5Oj+MwSI6uJlTC1yNbr5\n1qKCLClysJffpoWHF09yoxGlFZw8fq3q7kFjLxtUsFHuf9Xmq/+5PxBlSXry\nlhSJfAblvz5dykBNBZ27gJvKgeseqOCs1GP7hChTnpMvklwFLSOwCt+Ml6Fx\n2EACPevQ95s27H5r7Aon1QfTyYbeBJ2mkFNFjGjIpYz/ce/DEHhFNi1TMmNP\nm4BW180rtBK1amaPFvPKfkw6YP/eJpp3G4W81MUHcY0asZJmsOrQNR0v2T8G\nIykwMYiLbkk8tODwP2HYOy41lDVRJi+ttqUTL1M/J/s/RApr+oEzv1CJXR1t\nsXCBdSsrxO7cnoBJtjP1BdH1dRLWzJ9DdqJodkrcWakv1ivBVAC3nK60zKzZ\nRQHP\r\n=5zFF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"f15ae247402eebb62bf33c70bf05408453969b0d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.1-qa.4_1542286140645_0.9716028096856786","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"1ca40daa6067ee237bd3351a5e00eaef91a36172","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.1.tgz","fileCount":5,"integrity":"sha512-m6slA0GN9+HciYYgxjOQRmBOv6q/ONEIuVojfay8wZr/wpgjkx47cM2hBtLPBonS1uVKtADOZ2I6SggcCIQ9+g==","signatures":[{"sig":"MEQCIEmWhiyhB1LVtcTU9k5EpQVj0yATLy6Hn9tlWZtvtyy8AiBzGOQ+91/mpz71zzYmOGi7Q8K5oamr0gNSV08Ns2iIhg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":430865,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7YMXCRA9TVsSAnZWagAAjiMQAJOlVdz+z8bjjJV69w//\niJpO8AM/a8Bo3I1umKZjYBZxIoB+j41KL+uWWzKgnqmNNCGMlr+QuPPSpkTA\n8wsh7ErQwihC0jOCWEx4Y8cvPFuuKmhetMxm7iNgayzgjbOlIPLS/IsWRtxI\nwS6itzG8mWc48k0mvQ5fqIzJH2MUEa4r5kYaMNEGoqs6AecyJikk2DgMyoZB\nPxSBViqAV5m+rrzoahtA8vJvn03f9k8wKaT01PGYF328WWDvhB6oT0OCtdTr\nAypT/nHHLNgDyPd0Pti/I/OFBSWZXl+lIQ9DhjPNwJ91127eGsz6hM7PIPou\n0utqORNKp9yiVuBiss3qaKP/5aLeyShRhY0/M7FHkvomzrCBjpeUHo94XLVH\nwDvyAmGpeUE9NwYDiP+NsepA74aJS+X4pTI7rZYJK/4mHSeYRP30KQ4uQXER\nQBYGU/gReWwjxt5m8srMXyjZUCIjexHMk+HX/2F5ytCz/2ozqUyLhX2v+YLm\nwshr+z0XKAsmR2kGzL4QnCGrhM6kkPazpZqODd1hu3IqZxwCxsnT3dn+oSTP\nJi9Qztv9Hx9FjGDEdpIs5nINmVAlK7zaSl1MAOO3e37YAUIf9GbXeSI6hBAd\npCNGEengMomMfahs9vUv6d3JsJYHilvWS+O8/htTWfO84+L1gnKZIjiSbT6x\n2o8u\r\n=F2io\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","gitHead":"1c8e7c7ba4246c986ef6892b40e97c8333bbc288","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["last 1 major version",">= 1%","Chrome >= 45","Firefox >= 38","Edge >= 12","Explorer >= 11","iOS >= 9","Safari >= 9","Android >= 4.4","Opera >= 30","ie >= 11"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.3","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.5","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.5","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.0","@goodgamestudios/game-alias":"^0.1.0","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.1_1542292246993_0.3607813236950379","host":"s3://npm-registry-packages"}},"0.1.2-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.2-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.2-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"7b91b29364aa1463b832fa62e1059aca0013c873","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.2-qa.0.tgz","fileCount":5,"integrity":"sha512-3qzK0pgOfrZ8WZBGx2RSYeiU3KHo4Tf09lcLPyd/owHVZMvlA6Z7d4IqUl2Q3nfv0upJjPtwNYwvG0SDhjFt2A==","signatures":[{"sig":"MEYCIQCTzGNcYMOVYjt2GgDswkRJtBZ2wCKmU0wfsEwYs3texAIhAIPuhCqsScNufJj0TqEO5hPV3W3MrvC6lsc91Lft9PKZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":434446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8pFFCRA9TVsSAnZWagAAKBIP/R8zJLAZFBRyaDCxfm2p\n6V9F7PGlFBbBg3kMWDVf7iQmO66/ZvftuLZJUXFlmdaLQ84BgNLmqqJ5F6/M\n8ePpgIr7GFQatxrkxnfoNu3KWf2oVsENbE4/f1tP7hlXWQGYsovxE0CjW3Ly\niAORoSua5khPBYyYJz+zB1dQEjY0a+Uw+sT5kWiXHmeZNVv9a1mgsnmMcV+Y\n6xLXs6QL3UiGLymwbah80RnohzDaub7eFwfr3oh8u55rpVA7aM4wQShANgNT\nVNVrupyKomzn3l1y/GL37ErM/l31ZnBPVkPZI5bj1ZezNz0azcbhttSEhTBX\nJjp+K1dxuDCoHeUxBw1YcRqun0KsUhEBLhOJbT5sDksYl/8W8wbjMWJ/DpJZ\ncRV8nDaJO0KQV26t1vxtC5WfWqoXeE8VHm+Qdi0goQjcnQyoo44iTR3pz5e2\nvMWTXvE8xRGPa2R/rRjqINHCLpOnJachwdimR0d7iQMyblUm6YD4PHcgJuyB\nL2SS5hWBvkq8Xe5SMx8iuiiGTvlJ70kG4McKjEODQRjOy7WXOgChI5soH9/W\nQDXHSswQaIKbMPvcseE1BqEHsYzxwHMX7qXWIX9sL8f99W1BXmXOWztWoWtI\nSK/aXhr44EHuWis4XcKwDYBK5auht548xL7GPR1CLT5LQpKXLc+5yvdOgJ2u\nTXTe\r\n=JuVn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"b5efcc23852952a7ef39c08ac7f7ca7d02fd0063","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.2-qa.0_1542623556635_0.7651525935458319","host":"s3://npm-registry-packages"}},"0.1.2-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.2-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.2-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"aa3114df0056b531e0983d0782c267db82020d04","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.2-qa.2.tgz","fileCount":3,"integrity":"sha512-KDR2+I/xTxLLelD7Cwp6fslEVPOi/oHecA/qtIQ+MKmUK9fwY8TtZI+RDrzGNVPqNid6YhVbIxdoqLqjic0mCA==","signatures":[{"sig":"MEYCIQDQg2D9Ao7brb7iTRJ22XRf18qzeeGMpc4Euj3gqnjzDgIhAMP2bRVgKkGrGqgm8J+/2BFNOhI7gVgPR4Vh62pLIm/U","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8q7ACRA9TVsSAnZWagAADUYP/R690xxe/8/hEUU+xeYA\ndfLcOOUyszks8FMVtR4O2zKh2rNlG4r7CjGhsSo5PLJL2sZJY8qfPkbXl6L3\n4Kc2tCYLIyxDluDMtJvu9aKMzDCDyZNZcrgYwPhafYhuF//hQd3w3Dk0ztho\nil6L6LunDiVwY7lPlJ9R7ol/Mh2+wdmWRYM+YJGI8fYZYhYDYgo1F6jVmrdN\nJavxYyls3m6P/k4zScypnzsCHwOwkmGsoq0IyQaZBhVBKSDtOLPAs2HNg20X\ndnto8AZ4w8NstDu+NOdQoH7yGWcklF43syHaQJ5Sd1rBUCm0zfjf6ibmnWrt\ncwzaUTyemODoyPggtAU3QQ2sXM5TYLgRKyo+go9DUNQ50wl9GjeXCQ2qQ/3O\nrIpVnXXN0mVEkuHB3tqYmp6MgXjdUyrb4iJ7I9INt7Oez25SEDjfA+IipslE\nBxKrusRNjSfaHoqmxnKR+JOKnzNqtuZdGy3l3fm3Zzr3e/vGACfB2bKDpVLp\np6kljiHf298/0JyIOsF5KGtFPYtK/NdNLXS9CXb8JOMVnddspttsBAW8mple\nbE+5yhW2RI3bOrSLOXZ79GaQsr3q2WXFg3k+a2Vt5jBNPB0r5tKnsSGkPCZh\nZkxJ2VVgMab+MAreHdQUMJpB1jW09wLxfg8T1dvw791Fulxkv1hE8SQiKvax\nkgr9\r\n=Bb8f\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"d4c847691c14db45ce02c8f98f73cc4f32e6643d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.2-qa.2_1542631103524_0.9230702984239014","host":"s3://npm-registry-packages"}},"0.1.2-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.2-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.2-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"5ff095b732d79cb424ecdbdbffba650334b67c50","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.2-qa.3.tgz","fileCount":5,"integrity":"sha512-gjDSdox8Uhe3zJtHuksgjLmYEPQYhiJvK63Y3VbdIsSVVV+KU0KPLKdN7++qNIw66T3VIF/bMkZc22cNGkOomw==","signatures":[{"sig":"MEQCIAU25tk3U4gR7wGYZr94By57e6di8RFx0btmMtAfYj3jAiA+pXNR7867UCqB0G2gqQtCT9bVPJzW0Og0MmK0sCvx5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":435216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8q+xCRA9TVsSAnZWagAAePoP/201HX2YL7wBZSTgXj45\nJIBLpesN1ojZJRyWj+9egR1o7LhnuYIcHuSxEq9PAOnWINXUHyoLwe1D6yQx\n/OEZrI52WCjD8u7F1SC9L3MT91t2e61IEo3vhjWmcWWdIip0si7Wu4IFZ5jT\nlRX0gEyzLX/i0ekjQI1i6e3xh8F4hP4FNH8QYWRC1cGOrR7sYc+2JfPXD06i\niCKNu+NjQFSy60Uyq+buxXVpW2fRIu9le9gFosO2YqIkfKLpOZTZluj1MUHM\nAGqCGTYDpka/dNQ54AvNFkIQQ1R23zOubSkk5N5qKOYjkXOx5FI0z+Kq3inF\n215WNaPJm0JbPGcslUNc00YqbImam4BOd56ChC05HkaUsAHrOoJAmqChCNir\n9grsHdUaQY6iu57zfJq3ZT2EqDe4K+KyS85aD/ovYGJfeaRHCcRTRq9Qo+Rl\nouie2l8doLAM0xR8OB6XOVRqyP2gqWjUc6f4AbELw6sG9par1eDnb1fpROzT\nk/Ovjsc/7hDFuhXrhyh4+B5o+I6UGiIpxIWrhd6nQGQQS9UzlcnXZtWRTOy3\nBye2kOS1ZbWnVUa2mmh3dtmIgG9YVr/BiS1uuOSU2GFujdqYiF/+ur/CM/jV\njBPfgw60uhPWJZFoOWJGLBkbu4ccUqAZ/aKaRSjA/+znuJ491I5EjhfCif9y\n/sh9\r\n=D3ru\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"532a14d44871de037d6126b6493d1956def4e894","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.2-qa.3_1542631344548_0.08347414986115442","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","./test/helpers/setup-browser-env.js"]},"dist":{"shasum":"e5605de8cdce3efbf111ce3a0f93ed08dbb2f486","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.2.tgz","fileCount":5,"integrity":"sha512-4I4JgXtEG3eGn856TrRQ4QvsPbY94EL9WrhHGCrRyLwR4S95PDj/t4XGyOI2inxQNzkHY244DOTf89R/9TmpFQ==","signatures":[{"sig":"MEUCIQC/SthD2L03uufwSINExMuNRxZC1jtDHK/IRoGdhA3IEwIgbW4x4e1PK1p+V4+qG/zOh6A7Dt/8BMEP+qFIr4MO4go=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":434552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8rPXCRA9TVsSAnZWagAAlbMP/iqL6PVEdMJUE9MZzt57\nU6bnewNvBxv6u0QZA8+R+9dMRwANK9ojHKlGZdycdM9BFF3CtkfhQJ6VFX8A\nhF8Upk3B4i4pPgw+LQjkO59KXlR0FYgo+BE+Zm4me25YR4BuVlmjpfQWFJVT\nK65z27JE+LQP9FjPvciLKx+vAwsjX9XjwufmdN19a/Q7P6LkLIo9B5Zqw3B/\n5375ztjlWVPq1EH2OJhuXaU9tlYXD0dOl5S/VCPcq2wiIm03SRcXTGZRDTh4\n7DfmzW7pkKuEfpaPGwuAW/61BZztprBi4U6Sda6E6EySEPexa3jhBGz6gJEY\nuK96XCE83g96+ntShz0vyErZcGnjyt+s7vpGsXVUvJIyOjtZXW5yRJTnoq5I\nMTWlitevjHRE4KTVmyhduZhYtXV7WsxvMjFHInwUC3FOczUPB9RA1PA/SoYC\nw71xso6nbz28kAvlqg0sYJ+n9A14g7UAaYXIscgLS0fCoo1gKE4miTjHsGx2\nbwE6kU/qygU5u+p2Pif/DS0Wp0+6WF6NkbhBNbHCv9N9PjVyO4+VuK+shA0A\nqCqfC5rk4YnxnqkDez/o/QrKgDsoSaxSZH8wVGymOx5kj7FCd0J53KbUECXh\np5TJlrMI2WRJHsoAsX118PQgkzm7jSuozOmpihMOlaSfcsgm+1TdIohrpdUP\nX84N\r\n=xcNC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"76a04de57ae27b7748d24722f0673246808e7c2c","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.2_1542632406676_0.3934603382786428","host":"s3://npm-registry-packages"}},"0.1.3-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"1a2d30e1effaf5e9478f7aab3ec7c2561174d54a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.0.tgz","fileCount":5,"integrity":"sha512-qnO0PlbchZwIsVPBS2msu6hkCyr7xU5lGAZBWTo0KOKotn/G9H6EcJZIKYwFUuCOY2b2Tke7A0pg84S+Gr3QKQ==","signatures":[{"sig":"MEYCIQCmWiPUB0v/s/f7Qw5Hl1mg2nnuU5719RKJspYd6S1o5wIhAPmPAnFruUs1fybQuawbcRzB7XeL0Bv9I1XV5+QlD1U6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":434929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8rSYCRA9TVsSAnZWagAAp90P/0gvRS2d7LU0+NuljMmM\nBLAWFyIYAKlRaPR9J1nshSmbMlRbAG0Yhywg2/L+AsKvybg4roy6N8b1ouzW\nSGrSvRKOAo5dnKo0ea13uHJFdHdV9dhqhfOe3HpsgLQTDU571Ir0QHEtBTSH\niW72l4QfGUoMkOYJ6SzGvr1VxngKHeaxPTObM1SL3xC3oCvqh6t0BcIYsPhH\nUOC1tOWAgjO8BR7w0JMWg4lIEYCvFrfAlPentCZ6yLglgjkMNReTBoE1tiJz\nXlpFsHQi65wEr41ckRBdsno+SadrW+WbdA/oeWuvjQYuc7qZweQro2BzYms1\nGnaLC774vUnmDUE8UU835XIsXeFIHv7AugvoAtdZfN9zz+1ln+CZ0lm0dMQR\nxEb8HUIaAe2pwBFc1Zwl9CgqmYmLMDdz2NdLDkhG0ltnrvdNEoDTJDYbxjb9\nATm+AhuF/dtLrkWdo7qQp5ZHukugw6FGQ6dWYE0bWNomE1Bz0vSfQdzbuNqK\nh45OxJ+aKTPQXDOeckDLAebSoZ/WGq7wECYB+xrPJPdAES0Zi6uzGWOZU4MB\nSfoA72bSx0j2l0iEWjNI/0efa10huPmzP/2SBs7Z/FRuVzI0NjbOeCjTPu5S\nrU7FfKoQV1vspYPzdG4NcVSXm/3j4/nGleaLiik+k8FIXmSEDmS2ahxd5i+D\nLsaj\r\n=v9do\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"2dfab5ae0771a5ba7708241e747c3b5b370d9bb8","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.0_1542632599219_0.3144130698024783","host":"s3://npm-registry-packages"}},"0.1.3-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"601e3684c9b510a45363e350cdb7d0ccad650f72","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.1.tgz","fileCount":5,"integrity":"sha512-a6aBI5GSjb/9tp2qe9rVgocTPfBjVJvi0q1meHRQlbnmdU71tzx4AfizIokKSwGRi7zxKhmOR/WAOQ5c+evZVA==","signatures":[{"sig":"MEQCIEfcYLPRmdEmoWC9Ce1KFzDWJwkn0s6XozCTga8SSnt3AiA1d/Jl3gy+5drvXncBA6OS/xW61a/Us5k3DcGpoRu93Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":436356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb88uoCRA9TVsSAnZWagAAu/wP/jjLIhVYoGHf3G4/z3/k\nT5dO9owH07uTuNN1R8nggCvHphD0iLltWh1tzMcaM+2r5wQNM0iHvwSb04q8\nXkC2XBiBGnZVGFZJETdWUbS6Y/l0jBAl13Kt0DQPZbje8Vyk8aOmJq+AK+gz\nJt5VZV0W8AlQqT/u8CtBY7t/RPv3WI/2Fp1p5xScE+ZTxZj2INQ1cC2Zb1z8\noUqQzEj+nCHUnouCjBRvAriBDhEawFd79CUu1DYAACTl6lk38fIUxMiZKK8Y\nLptnLLJMitDIB+JFyYaXugv/WdLQ/MkA1fKlHEFMRBOtqmhSDFTVchdZm+/+\n8yz/+M+i9TJhHykR1b1mVKU5A1ZeqAPsPaOanGXKilN6ug6KkOwJgoifLlUm\naKerLz1TXG1vi2ufhHfd0RmpGDmadzo8ZWtfkWm6Me/cYKOng1PqnZmtGSvz\n/sWGJQ3P3vxgcovboygvSLxB4oP0g7omZVSmSLoYPaGX//UUBqrWug03slQV\nHLurlxz/fpd8W348zBJ/tIJxueAyf7cpc/tuQ4owTRdndJwSqD2b5BifKv2f\nQek/k207Vpd9bGGEurqqC9pea4TzZsx8wYf+Mvw9Z4ZJLacndu17EBZXbuUb\nMab0BpBTSzn+r7WWp9bZQ7MF4JeEUcDNhscVx5Wg7IV4dCUj1XAHgPZT8v0W\n3+Ay\r\n=60Kk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"7e1031af7c052373ad993fa63516617bd3e9fb78","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.1_1542704040402_0.9551510855791554","host":"s3://npm-registry-packages"}},"0.1.3-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a191912a0cb2f7d6fde88a2f2c4ae39b04ce8115","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.2.tgz","fileCount":5,"integrity":"sha512-4i+SM9mzyjhkyPc7CbFOxRaVTPJvWaHxr7DfNFBz1PAuVjKql7Oy+Ol4aa3GxqUUlF4iR3uXcpjE5Lots23qmw==","signatures":[{"sig":"MEYCIQCggZLXQXErESItsl4NxUDubcxBlILSEtsKEqumOoQecAIhAI886Xh99lt+I4fcMxFelQ5M2YHITuO7dXHybGNpkDEN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":436846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8+x2CRA9TVsSAnZWagAAA7IP/2GFFXQb8rlzGqTb3uVt\nfnHwWyiAbsgVM2guX9RCjIwWqDiavjhUfTGtCokc2/9Zj2MNzhV3+0P0+9bL\nMysHZmGS1wvJlaYEESjM6KyhUQqqsVOLkDOfh7IlLESp5K7a5+5RcxJdtCfW\nf1Vn4xBDcrZMeD4WJi7RFSyVt25eUUu4MdW4TNWkSXWo8Nl7EcmdiCK9mzGR\nFWBYQwCUiarY2fp1jVypNr4y4D++LF84p2VQRxLXfc9Tq/3y6sj6hn67jbFp\nPfFKOmNmBRNg282rXVyxOyZoXnLxmYfaYvI61XCZOu8pg19crp5RpKyPk56T\nUQXsPViMjk5XENdkcURa8J7bchryPBGhjoS4eUWOD/zN8BbxRc0n0lAe0jfu\n/9JuvVnLUINK8OxWOxqdGsMrUN7L5N2x6w2N8+gvdDd6phI+fY6gd9M0UI0n\nfcWiUXrTR2kLqQ2WN11vcZJyhmBZD4NmPuAo8tTtunT8+xNMb8WPKkfF2RD2\nff5nB0zk3PFCqhPShDBYhdFZfcIXlzQ5r7I3+Vlwmv2khHKHzoBv3ZVtRI9L\nKL51iobjDn5T4ndzN9QFEj2ZkfspS3buCPAywWAYT1jLYlHS7ZVpygocxs96\nv2Dd/1I2fWCbtAlbOJL74aazOq3YwyV+RZDNEvItrAMBG2BoNFUkNCckXJOW\nihOF\r\n=DMHt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"cdb99213075db24a342b65756bc3ca33c6c75baa","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.2_1542712437790_0.03167861917738124","host":"s3://npm-registry-packages"}},"0.1.3-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"4f1311015407bdf9e8e6ddb5e00ffe1b968b67e3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.3.tgz","fileCount":5,"integrity":"sha512-sINNmoG5AlnC6Xz8WWSXgnK4Uykdjy99q9676FF1Svm+S0ix9ExROj5aer8BHgJ79zTSNbfLZ8Hp5Gx3cVW7xA==","signatures":[{"sig":"MEYCIQDYi6xqPxCCkN8MuY11K4tERM/GARTBL0oRCRrOcoGzOwIhAO7r/YqWxRTFXBtoFnH4sF1RqMyynYmMei9GKyK++Fmy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":436985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9CZNCRA9TVsSAnZWagAAs4kP/i+5ZjI/okkaemjOim8j\n0FowP2oLWB34gIkvUJ8x7N012JLtwGwxPjdubnmMu192b5ydMbXMg+0fBTlt\nJ3FMorAyhNjGD/+6P9DQi+fwJEcoHCEipKnvI1ASVJG7qsAD+6RcelWZp87o\n1q+mCFbEpg0OA915BeJDhqQNr0yrOUzVhT01XaWFBOwZrXRHuXMKnpErTpYa\nvAh5AltpQpisohQaaJVhGEE/l6uNcIx2kuf4h/06WB7baw8JW1j3l8TxQ/Wa\n2TsdeG8RrB+jguvmazDagd4XChhGM/v+c1JGWZrn6UXuLYr78tTJJl1oNGZv\n4wDnlNKLpUYhLJ9ttMpRHSeRMuQw15SDKfRlGf43ac6Pa6mOf/OCTR1lK0Dk\nr+2E+uKhG8Fid0Y4EwNvST3W01nbim/iym43KOFd4D9ktdcOJU+Co8YVyAF7\naFvb0ygHvV84il1eVWfWNNPWntsy4fpNcPrOeb0lZqpD/UU938R2Hag06nv3\n6EosbUnA0TaSmObNtU20Hi+HyDoyviJRdNwn6SyFMt9VyGwV217cDDZuCgHN\nCYJKgFlxCs+e2CxbesrNT7TDo6u6Xh7ffWH6x6yTnKlO3+S0Kqe+Okg4jwHx\nu+WcA+9wmMN16nLf1peuoNnim2RE7UFWyg8ZsX99t554CSOU31PbgG/Z8DFy\nwIOC\r\n=VSCn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"e48e106c55e265198f714090c9061e249a0e5fcf","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.3_1542727244663_0.10752419629276266","host":"s3://npm-registry-packages"}},"0.1.3-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"10640f627655589c6c9217e0c7a317ff0c961da0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.4.tgz","fileCount":5,"integrity":"sha512-jdK3ZoJp3kNJssWU8HCfa7VlB6WJerzIhBfGIsHrmUmfhxvDOaGOsRMdeTlEglf3F5x1LKGX+ZAstA7BZUrWBA==","signatures":[{"sig":"MEUCIQCnk4fJGLnXZJw0MaNMY6s/C0hr4Ruy3/Y9PJQrD+vKxwIgWerff7OFRGRs0rxXXUDwBITy8TrtYWiUxJhc47ZmvTM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":437114,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9Ce0CRA9TVsSAnZWagAAgp0P/jmitvcHGDTCkRcr88Cs\nD0+bTbOFWpCdrt2IZJMiHunXhvY52I3PGPmVl8on8/uudG1PYLc/KZyXyEs1\nlsliasX/qntl73kmXRgvpTT5+yr1Q1KB7216YILaN10KWuWyVD0veJ4zVgqS\npfnCRM1p9Ml6bFkN3cvz6y5N/nHro2OQA0+fg/TllVac82KVPCQV9O8KAoLA\nGibXVRkaI/H3awxIM1flpXKYYGSiACRuWtP8YtYuEuiXYj0YF/YXWo0KPU8G\n8U6KVgYf6s/ZRPI7Pm/Nmvav9nWgTF1E7ttd+xtCBQZbL8BDiB7pjMkj6giL\nZX4TX/oAWbPG64jQAaEAnF683P0OJ2fly/UeOFLX5ao9lroM28/UOlMutLyL\nBnyMMoRi8jItfEwcD2XMbxXUVANGmQFITBdTXhnnAQC+o4DZllZZYRsX2gQV\n+nWrG4msE1VRdR6Qeqyeka44vZxd5MaRBNslT9vQoJB+mTQ+X45jEA/U3Fqs\nGJu+aX/cwFGDd9nevOf3cF/liVYZO9K32HBCCDMR12l6MPCXxKuPMilRGqFF\n8PNCOipbXyhyAP6ubi/GiNhNle4YnlRH8wwMPgzCp9myTPTNc6popxCTZohz\nSnSVnKj1tNKCd/il9AcjkKU0Ry4DeblM1n9+3iJ1AqLZnEomVZWb9HccNTpT\nLdDv\r\n=5nVf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"6a2cecef08ef315ebcdc493d131c689aa4faab63","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.4_1542727603947_0.08297068733462853","host":"s3://npm-registry-packages"}},"0.1.3-qa.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a98a5676b7714bf907aac87ba46052c4f61c2cbc","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.5.tgz","fileCount":5,"integrity":"sha512-7O69upIOELiwtEDitiHXHs9Qof2SFNJmEjNbhTHvXplJirKjEaMEM7Oe4Zc8+IsxvZovqJ/suWEuM8sLnkRm6Q==","signatures":[{"sig":"MEUCICRhoQeiGh8tzD/51jwnI3Ly6Et7+P3/k8J1ONdnQALUAiEA95Nwo/ABlrvaBTDL52Ryhjl21eLnNlFX+Sf311r22eU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":436495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9sYICRA9TVsSAnZWagAAO00QAJlP0Usamwqqz09NDgwM\n4+BHSWvkBnI92N54OFoZvcvHr+fG9uMhIOBdQam8TawMSHp06CMLC0YKkCbr\n9wP6khLUk1cVn+JVvggylf00qllPbsujVpbEiPknXIEf/qwn0+H3EhJ1s/Ze\nySkNqUU7KBBIGh5HyDPJD9mKzqrP7WGTcO2fjRIuZBUWPFRzhlCv34uu+qgw\n66MpgBqpaz9OR0Cm63Csu8ZAH1Ar9jRmtWPZ6DtgRPV/7Bu9eNw/YGgcUGxC\nZOyGfcr9LLBaFf07/HpKAOOhKKggZqQFskyhYGjnlLshF8LLwajkdiaC0FtT\n6INPrc51KYxlFyzr+ShKdvQj4UuO7OxJcFo/0E/oh0vn0bZYybwb3Lp2HoIm\nDiqCkiC8L0c7wVYeMR0ejQNc3aznvr1Ygyf9F7CZHYaOSajrbPVODDSHE+Xw\nwqggtAQdgFaODOGBdo9zcyuKRyUSk9atAMzs3fV/Zw7rCwqi8IPbBq/6KxgM\nkWx5iBY5z9VU0uDKyrLdynP6dV8lBQLY7LzgddfuyWaXa/MGzaP77OlNDVWb\nz7UxZ5fP2TuPujzZ3kjLJNB7EmhCLqP3R/SZ8bREkgASMVM0MmN8NDyEysj7\nlIX9hspIMmbB9ksFa1KQjCnVSW8Q/B85ftRf1b8q3KBfyaaCjRdLPMKshdit\nydvn\r\n=e3L3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"3d670ad14a757f8f652eb862899144628a6004bc","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=qatest  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.5_1542899207902_0.9828290449078638","host":"s3://npm-registry-packages"}},"0.1.3-qa.6":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.6","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.6","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"0893349fbe39aacdfe980ae53a7318b20b077347","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.6.tgz","fileCount":5,"integrity":"sha512-+VkuYSniL2W84Kg4Y03yFnz/bboJZPYvQidPTmq8GRSxO8eIXWzfd4LmzTtXGaLnpYY/COJcy6/FqNMGdExFtA==","signatures":[{"sig":"MEQCIGKjFwbl0Y83HG/4Yzl4aceYplaVdTbhbPjuexCvirAgAiBSNbfTScmhfezJE79SylDIQgzu8oxDiEHlzR5j14eE7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":436624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9slKCRA9TVsSAnZWagAAdFIP/RMaO46Li4C/jkaeMAvF\nGNeoSUnUeUsJ7QoaYmKvhLzxvK7/44QsFhPh8qH24+jAv/JEGLZlUA7Yjn7o\niQVEFlSBQG4O/9/ZSIiMl339QGxb7fEd5UrVRdyyBEYklRmwbBj/V30xy7MJ\nbDmL/uDRnBFL6o2Sie8uu4LxGuZHkY3QqcXgB/NBvBhxhDlCnsDcxeTY8pG4\nyHo3PDSFDct+dgxFp/FccLDj2dDOXwAn3EfiD2b7GNEmzPXpLQo/q98ty5fQ\nVp9yCmSLJrUXAXp9miLMNO56L47PLxZaKFiCkzv7PDtBhagsH9yXmrX4rDSy\nIxA080sCOWaEkMlu5GElUckMta+Oe9YriQ6PioxHNJQVDk84DhWzLnztkMnH\nlhEEoRZ+6/IfSkEaRldmPNCVkTKLrrAq+AJ2q4PB/V2d19nGYhnJ+3nrbedD\nkM7am4GyKv9uBlU/rmYrVETWsnmUtfFcgrmIII5iB/od9QNgisb1lXgrq2k7\nc6CpW2YYGfFi+m0i6W/tdrMf7VXAIvYFlBFrU7lZ6IazBFXYqrxCofB88AYx\nueYdt3UxWiNWnOUoQJTpd0nU2XSBZn8UxybqeKOGwddUydc9h1/+pZHkbv/k\n/VFD51DNQODELr7xcHZMxwR8fby3Tq+oxDMiG+E6SQ4V5BPOdY9P/xt0h8ma\n/kMb\r\n=ENHs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"usage"}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"52d2deb58aab743e1f37267b7bb7ce635e821f18","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.1.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.5.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.6_1542900042360_0.34179568136079763","host":"s3://npm-registry-packages"}},"0.1.3-qa.7":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.7","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.7","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"47f3fb373f64186186a8f3785a3e756505834cee","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.7.tgz","fileCount":5,"integrity":"sha512-8Rj9W8KdQSD+hc5BR7Y57hq6aMUZMsVZ1ecGYQDYHZs2IuxbCq/dCtgtZkihZtgkSEZ3qE4ZzXyoMB61N488JA==","signatures":[{"sig":"MEYCIQC6vrFl0yziKdDz8ZaZFSqC4VGPQy/d7PnV07qZ+A3s5AIhAOxpcLAC22WmjXxUNLjYTPC0RKTi0MLqOVMmLVco4vu4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9tBrCRA9TVsSAnZWagAA95oP/0BG2fbZ2pK3AwvPSU3c\nlAg/oAz5bQ4OmaDVKDxhvTgQT7wyatrXpfGwh2iE18o6VPYXFizS/5SpcFUK\nIkB45mFbxc0t0/9FuTBe1aTlZRoBGu8NrEbgEH7XbIvkz42RXXlCI49JLW2D\nVFDDv9rxs3Y3mwbs3tSXB4midOgpDoa90u7ZVnafdQp1Y7Elny4z3YNFiMoB\nsLcCE5s4NSPFM9vg+q99+UIdZbdsP/prd7zZYorCgJMHFqri6y92mzhuUhSp\nLj/Z/c4hcTvz2SnAOTUfiR/L0UvDY6T+/f+nN+l6tACawxmeLaEfoqAO9BVF\nUPCCrcjCmis7mQG7e7rgqf6TG/KwKsZDTzBJMT0iuUriNZxpacv7nA9OVAkK\nve4b9AutC3ZxpaNOu9mTdUSy4kM46NOd2SKaUFfLa4qyTMUY/cjN1xLy5Q2X\nlaiRVFNCYmG7gOLR5fGC/gGnmFDLAng7I9UTTgs1rkP4cb236l0aHxc1A2NP\n/3uWvHkq6Tr1NXNnrD0dWJ0XBwa4zNO+mBNeVZb8woUdqffkyCPXBpZ73m1p\nUSr7ptXw/P1j1Yxz8uZxpxGKUxmmP0rywzXr70MvQ3Z+mX1eQ2l9XMeRT3q/\n0YvqDRCgkR8l0CCrD8ZZrRr9ClyA69ziDPH+UcwybcE4ArFocx+S7PdEySGd\nLR76\r\n=E91a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"517be8655fc2e57373568b0e215e156e103f36ec","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"8.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.7_1542901866459_0.5409514618983082","host":"s3://npm-registry-packages"}},"0.1.3-qa.8":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3-qa.8","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3-qa.8","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"7176f89d81209fc21198fd2ac5fed48d39b7e0d6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3-qa.8.tgz","fileCount":5,"integrity":"sha512-TpzT50upXlJEIoUVZrQu2+SOjuRxkbwqoe5PVasUQhDCDDKw3BWoCxgVcQJOPpeAU16g85vhekjwmekGd3ChTA==","signatures":[{"sig":"MEUCIEYS4xMaDEgoVK9bOcuXRtIwG7vk/25ykOcWU2Zk36q0AiEA5ebtXt42K1eoRZN13GvR52ytb5TG96WjFoRX7DjFk2k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":841929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb99uRCRA9TVsSAnZWagAAtO4P/Rgbp7fQZqYOVJgOVftK\nRdWShIcTaD93zrxhlLtoFnJCAENhdSOr9pz0XWq2Hrq/h56GDPOV1E52QylW\nOxmRCWgHvySID9G8dbUrQIA4UgChtCCEF+VDUBJLlxhwMPYC7mve+WSKt4UB\nrXW3cg4umsr6TZB7siNTee4r1T8SB61VGDIMJv6NNjvjlC4jWQY8YmQiv31i\nMN1KDO+r+eauHX1NRqLS1zTTBYJH5kxYRBW2HANUV1/bK8Uiz/KVxFfD8UtY\n6XkxpSyOhlJhIon8G83ANpDnznHr1R6dWxczd76ifrrGKMhs9QMalCHwNoaj\nfI7BZreH7arD6/9SDnktzus7navVPPnP0XRGTTxNyxFGYc+6eKAjvQsf/jSe\nGl/nPRy1JOWymRkvbdaelymEC0nUbmB3GVRxCdJcS9k3WYowjFGRpUuhyAPd\nwrkGet6sofebx93pJov2lObi8xPv0QD6ma9/u1lV7XBT2oTtAG6LiLkVg4Ej\nZ3d35Xow9GQYtQAMtZUbn8sxfPGeos6fHkXWNl43YICr8VPhVA7MqQJjDzD1\nKNRPuq+VlD0pw4qrugS38jdW/vLLuKxCIBmN2bjnnI2dgc5Nfkg4cF5Z4SNb\nT67drJUdkEVO6YGDFDQP3cJkXVjhJ198qhDTmkSo9w6X0JLIZ/WemK9slJYC\nAz76\r\n=YV+H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"73d4ebc8d1fce946522a9f21e70e5982e3db1ba2","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3-qa.8_1542970256713_0.7642405369892098","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c833ea1d0196293b5d1867b97e32046ae2db2ff3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.3.tgz","fileCount":5,"integrity":"sha512-EPz3QYaIw5I2OSENjib/bZgxKXgyH5oOCYI4Hfg3U79AWE9BouYI56nDjkto63838tXtI0Z/5c+SLmheOzKw8w==","signatures":[{"sig":"MEYCIQCe2u7mOiwXEeo3R2buAOmfqpHG+tFZvWV9bdhu5Nx1hwIhAOnO8E91Y3DxzBMk4nflTe5DhJRydpmXTJliaQDiaCs0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb99wPCRA9TVsSAnZWagAAaxIP/RTPHlZ1DLRaHNVbejsZ\no9v+xsjs7VVgRrbwWR6poFwc1/mApAHcF0dDuOwAsMykDYZwwrjaRExj5/FY\nEDPnPna/V33LSLKQ9B2zIxCTFmVHrzOZdCFRj0Vepe4JqjlIfbvhC0j9bHV7\nXtiK21GKVxrNAWxyCdn4+VMl+YPnyJm8tZPFP6AipibU8M6yYdLINOHP14sv\n68ZSzztz+bFOUwj6NzutGvGm7BHZPTRTnd2wFQ1aBHmkZDp0dUqWwJzzIc4b\n+YqU22dYL2V39Kf2WYiI+HA3wOxAuxzj35PgizshzH8tTFd19L//Gu/ILFmd\n3Tj4r3F511hPTgXH/Qmzb8TZwqZ8Jqi4EgkTKsh1VyYS/cnJ8dCe3GqDLNZq\ns+a0Iqy1ZcEzruLyOQQPokRBCLpDbDYCuWHrDQs+TdYa01XhY9hGsIX99H87\nFsh9ZLf4t5ZBMSIRG0v97O0rN7/59uLXnUxYwiCovMk9IJF5MBMHv57+hg74\nzGue27KyjFxXkGfA6ARY63Buhxuo0h5GAm/qP40+mwSLH7NQIph9ExwTK8yA\nnHrYlpNtYB9lyrxrKim/odor6nxrhoCwbDZ9TMVI0mleCG3dfwMnoOyNzYO6\nLSksz5qyxvfUUzwBjIESdDyXVFtDiog1GsrumRYXIaNTN1teKYPIjUdgfJb5\nyMKn\r\n=W9HR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"f80866ffcdb89db27544520ade134fc1cc232422","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.3_1542970383178_0.612838760557572","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3d58bc1c5152a596bbae3a4618ff00fc0786a23f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.4.tgz","fileCount":5,"integrity":"sha512-A6qG19J3mVsXPcdYPzXmEK2OOXhiPSzAlhMi9n/w6WJF4PKw3qFP+O0AN1YlPPAlxTI0uYPy8EHkRcaZ3Wjtmw==","signatures":[{"sig":"MEQCIQDlb8AgbY09j0cdYiO1U5sS8GaK1Joj0XVe4RLFwZsqaAIfbBZvnU7PhuL3pMcFcewimFOGyrLXMsTaEsRe+l1nPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb99xcCRA9TVsSAnZWagAAjLIP/j7SvJn4JaYsNo5IPbpD\nexkvkRsoDHhHEIiPB8w/DWx/AZ2o/JvGSCQPLqXH6OI8/gKwBSgImNbyNVz9\nNB9HCywgDxtiOrc0vgbs4DdDbMormPrDqfiyobC668gJDdoNgzBAd2JVi5xW\nR+isY2WqV2VTR3OzwpTOtb8bxkENH+JRjr9svA9ddh47hvJ3KDECpXDv22+T\nc5rmwBP+K4q/8LJIRrhNX1VNgxM53jHBI8iFUsRwr/I5ly8CZKfqQqT+v7la\n1QfZB/URkYQbgFzdnCe1aH/2HElRl78xqwtMyov8YTRYuwApm4EpvHDwfzrp\n0NFOeKKtdogU7ibn1cQCXWT4d+PSJjfOrq9X2WP4WNy6fc8DJGLxvmkVlUoY\nZ/4iOdPCMYWTftwpsT1BLn3JTxLIBivODhTdMD/7xLiIXYU3jvGUv3x6gjFW\nasWri+7nKnsqezGnBM2puHckepY7L4GHL9t367JCakVq2EZuspjjmT4sFwYW\nhG0V13+mVwznHFARaip/wBHVrJEvdJEy0lIn/8kAgnpkKerAm+3zE2YLMh7S\n4JzDkD9IuPqkq04846e/M6+8QzMTW6cdAjTU1YTpE1+uLcA4Fl6LnNooMR30\nhokMB7/vpTIFKEAlxq2QmAFLJfnA6pqpt31sIttT/ZHQ3+0JzqCC0VleGkpJ\nFUWr\r\n=um1E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"e1373334eed23c4287c8f12c749f772e846f2d05","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.4_1542970460042_0.027070470715498063","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.1.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.1.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rkamysz-ggs","email":"rkamysz@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ca0e89612089546664415b6b44d98c1ca56d8ac3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.1.5.tgz","fileCount":5,"integrity":"sha512-YmJQZ98lUANF+qR17OHdMQ01RUyl0iDKc1hRTIX4Vd0PEE0LS1x1w5EI8B5s8ht1YQbHyWoBLt71e2U79V8dQg==","signatures":[{"sig":"MEUCIDLQ8ijX//wew20LguJh76Ah1NfVjWUT+5EGSzlM4XTCAiEA2UdHErtZGcxPVuROs8bHkt9hJwnp28v2C9WUzyaxfOM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb994VCRA9TVsSAnZWagAAf9MP/0DbiL04tMOKYzerHnup\nxJTbcGNc2nSUj6jjJg5wg8hcTF+ZivpfHygWwsPLPp189+99Bl6FYF6mqyvI\nVAvyhIZW945Gh2y8NWgxC/L3p/HTWmFUBN+KiGTpR6NsMP5UDTdzq6t2LqhP\nyHupSSH4YQDvDoBdWrZPK/RUYN7RPXdDpMBIDO+uhXmyFe0oRWPDnkaMyWdX\nuP+KqM1raF/JTExeOsBdG2bfbXHWyVyhiwq1dUg8gIxcRct7jXxdFXC+10E1\nZsB/+ZyUBtliUkRNs3GcqN2ZbJRBQhVLCKLYBdiuNXHAC+7sBIoMV37fcKm6\nuU+OMZbwd55JD4WEMYD0nOFTTthTTp8yMAOxYAe5yO3hEmtOOVqvLMMmsEPQ\nJno4hgcMOp3aFu/TfkIQHaoM/D7IorA6IXZs9Yej8qQvs+4oqq3qTjQtMc3Y\nW+pPC+IpOJgyyqbc7h6m/8SGh+THkKId+XB8mhFZDl5m+DXd2SpSo6MZWkO/\nPh+pP2ghItN33UgLiwDNUxZtOTt9bcZ+UR+CJmRz1+DsYef0c7IOm/ARFFlY\n4W6l8CmQ4ghYw8U2sE8q9j5qsdQQgdzam0rUo0TnsghuPticlnBoxwW28n0e\nk4LbaMfQ1WZ19tIU/yBgwz4nShhMQ3HhC0MCh3++zdzA3LiWD1uAK0xX2AZe\nPLTE\r\n=sMMV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"74d796f98f54b48959851a1b5182b219b3eefb81","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.1.5_1542970900753_0.5760397969534359","host":"s3://npm-registry-packages"}},"0.2.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"6949f2d0a8628880d1fdef89062938edae059ef5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.0-qa.0.tgz","fileCount":5,"integrity":"sha512-2zO9rlTa08QmLU3Q7Bb+pbGTxk2l7paQJVvWDKQ0c6dmH5v/fGgf2sSGO0H9O27+xgU/7yWvMpxCeVQPQMO9Hw==","signatures":[{"sig":"MEQCIHx5U4PO9F2phkvBLLVuj3zjIu+NJ90iBYTq/NSszhrXAiAJe+QrMu6zJ797lZI6FSCA7CESpxaavIDDfH2omioegw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb+/olCRA9TVsSAnZWagAALwMQAIJ059GsqBL3ScMdE3y5\n/kDBSGz26xjuTUswN1UMlW1YQjuoDnMUpznmr4gYGHbyr0/qLMaRpXcVaYZT\nfWPoMaA4ubA65SrabigwcvPPHNxltzG8QEDiaN017Bss8r5ewbe4mlAwGWOx\ncuZOVCmXreVDPIWO26qqWU3u442m3TN0NRso7yZ02+sajhyAX6QdpQwTPGXE\nCpVsBJqVR0sTvbNrp9YL/d11uPDoq3WkPuQgerUWlmllnhIhrxiw8+P37Ou3\nnnrbakdlDO8nQPdA6eHGRjQ6LRpkPd8oLMjP7OrjjiFk3rftpi3FBnZIy6bR\nSiyKb3ZCXvvaCqEYUmo7CGfVMg6c1OOI11uaxDPl0q+pYU6e3IywHgqnM51g\nWmVAMB4k0f0JfGRnHWNYnn2Blr2LQlNZ/iYex5ZGugNWGII23Uv80/OKDhpM\nIjdh8A1Hg3tg4aXDhSWkt58idiHKWY/o3GvEIRxQPZEYeK5wPd9A3FECUUYJ\nzp4QT+0k+PigzRt6FHRNpSncn3BheYjnAl1pSxMb429clamB75GtlCV6WaNe\nKcQbtLtpmYfXnWJ0O5+o44AgTHiaLgQOLAv9A/ssxr/iOgiNd1NMkPiFyL2r\nSankE3P6OMxA2GxZDkXYc3GKWSx87rOMwdlo2VBAPxrH4N8e9XKqEesP1+iJ\nSqh/\r\n=/PI8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"41f7e9ca5ade76e7a7b5b63509f26c48f96a4061","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.0.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.0-qa.0_1543240228932_0.44011524260714285","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f90b775585d2e54316c7dbf58579c8860b913096","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.0.tgz","fileCount":5,"integrity":"sha512-iCustQUXSrtiN+0j0IEVH9D6L4CaoqRdy6g6+pMFj3oejXSvDuUtOD4NSbD06Uh/RF8GQscn3DB0bGP4/HmRow==","signatures":[{"sig":"MEUCIDDB1P0270NlaZ1MVF2rgkDQrC5U0aKpO8DUksr2RQZuAiEA0HeXtKb58uz9bwjzFn8FUuDSuGapECLK/54BqJ9o2aw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcACQFCRA9TVsSAnZWagAAAs0P/jCzqn1cDiO/opdRHXpi\nD2BgUauWriatO2KtyiOIb6fXDLjJD0gRUpkt6tXNJAwghgSsDoN/FP2+5lJ8\np4CCwviuB0Fy3Rff7VbfoMkGQSuohP4cEwYxfMkqH9E8j9hUbxdQpCYWljjX\nCAYSoSPZE0H+uG8+aXjJm8PpPv/M0YYhhvIhqrBTILl6eNsh3H8rPGWNotCL\nqDCqeCWuvnkeDXnGoD1/Nl6+7BfO4s1BZrwWJsbPD1fc/3rb7TilIaNj7ImC\ncIUdJXUt0Z8SuLSqTOk3gWA5zl+nopdLxMhMKGIkTHf5wwAg3OBdD5rGgiWE\nBh6b7ojJjc1dqjdcKTunqUnfOyZVVDi48GhP3l9vetrdvyRTACzWo5pNkSfx\n7YoysmWF5Jbc9ytYmbTCZkeEzCwbO10p82lIsSnATnXp7O6qa5RL6t6rgnLQ\n/gQ0m3pkEI9Sv2GkyO4ufS2SeOEfcqFvHh0bmVpSFI8d5RgA7hMAaqdxhyMz\nLzr4Sggfot8izbgUnwgAege3X5mWbKfqfu1ad6DWIk83PxZB1Yoq+mySoGxk\n/0nQwbx7CW/kRIrcS+r3oODIZ5xbZv09ZYWAL71udB2YIxNUvukA40xVVRG6\nmdhkBz1yIimcXPYpcvrQjnOfGcDuOGc+hejkoYmyOTYphsuK7lVn0C6QZEPz\neLLr\r\n=Z+T9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"b187668555a58af40fccd1790c586efd93ad062e","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.0_1543513093128_0.7966591775422482","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"18993da2ed0a866ad11fd586310bd0af85ee8b39","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.1.tgz","fileCount":5,"integrity":"sha512-yST5Zk8i3HpuTO6SAlDCzydbYxrcjRyQlP9WBviJsxS/NR5PSAofSl5yJVdgm4Gb4EgJlrcWSBMgc8p8xCDhog==","signatures":[{"sig":"MEYCIQCwTBX/5rej+m1qTm4J6Dt2s2u/T7gV16DZX4d079XnigIhALSTAF1baYNSuvoW1CDkNtcjIJmOh0Q3dcg9nUMycXoq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcACUUCRA9TVsSAnZWagAA2LAP/jouj4CWc3ifmY1exqAI\nWlgoQrNuZ5wYpuavKvwYeQeUKotsl+VMNMcqOgjCZ9rc+RDuK3MxdeB73vQj\n1tmio8IQqRs9mVPIba+9zKY6aMZwgCxwzsZIVJL+gt9Bx2qJXsmA+x2GeS/O\nJ9qb+7gEZbvy6zApWqKpBmsG3NusqOYxx/euQV7ON+BFSAbjDgqt6+6WZzZI\npgiacNyP4sSw3LcnzJRYqgy+sZvaxLWoPxGYdMS3GLYloh8ZN+M43dzNWFp5\naV+9bSu3lEkNLq22PHYmHq8V9K2yEVSfQXJWnj7MEfyDIZ+NZv4okpvQOvc3\nvm8B2uC4FLlWiq7ROUmC/IczohBsHGWRO07JHGdudgXkOW1EnIqEE1RWET3l\nBVzL5WE+zPxa/+CAP7vtr5QP0ytk5AqLPj+2vdap+fjpJTF603hCNINn/ZtV\nd28gp1qAf6b0lkJXudMC9kaCaQzFOoOcJ0rwz9G3BjrM4+iir+4UTa6z4Dhl\ndUowyApwsbwgup10jOKBtUUwoslm8vtSf7eSemkjzxVH9dkEOJUL38KBRp8j\neMPfXG33E+09Rp3tgKrqOgu4cdsS1a0D577rnjzz9xRhBDTEMTknABsOX86r\n1q8COEdT0eZyxab7zl2lrSVu7A9AacsWGz9G2s/6QpQ90NDre+RBC5pthKun\nV8/3\r\n=1aGZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"8a785d9b2891ada453ad19a36a838611f58ea52c","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.1_1543513363671_0.251150191351053","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"9a7d83b7f693e553baf1777a01955b3a8dcb335b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.2.tgz","fileCount":5,"integrity":"sha512-7Iv+IiCeQ0zkP+OSUD08qhOxGfG7Ym/Z3fyuaL+yqtth7VZNpzRxXUhmL2youhVoRzLVaJlTnTJIF8y7euMRcA==","signatures":[{"sig":"MEUCIQD0w+knAgXzYaZPtn2NUNpS+Vhid6fjF0T8FMQz/3pPrAIgRnoEDTWq+tAQpreIdptr7mK8lg75Zh/vzFbhWpR/SN8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842561,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcACVLCRA9TVsSAnZWagAA+qYP/jhVTgEFVt5P9IR7Prfm\nrv/ZrsmEUJcH1NCh/p1rYoSSgw/uqS1Ji3B3YdfLEPyX6AtWlT1AgjJP658/\ndrbnVXL8c3lfCcp8Wn6xKXhb0KGpqeLsiT8Ol+tttMmU7Gu8SUYZzYm1xzFs\nQ/E42dOrsOhJM22g5+5zOqyGJ6NHVr+La0igtk+98uPzmCB2khGxbbk/FvKA\n+aOjPxhbRTLAPyi9J6UtfsOfghb7WOmGBDbonGvHMC2XCsGYiUpzKb10bFPS\nN8j/A8RvmlYycNF2J3A3sEXSLY521cAYhiFPf/h5/K+CpBb/wxpdp0r9ZuW0\nNBd/sTmzYTqO78PD0DQ+cKJ/hN4wjB4ayiWv3gfAz15HpNpUKhbBM6/WhuoZ\nEgC3t/SMfUAZmVgo9qPz593Q4tJFjNXxx7AKuEo04YS7frbkHCdzuBlOoS0S\nCU6PPF3XDA09opS3d6XvbfUFc1poxMQ5gzBTV6qGn59inbhjy7P9flsUYtOp\no60GcZU+aoXRz09yrlnQhgP9Bpzx3cmGAOlpFbqj9BSSXM9e7y47zm/32uAd\nWE13jcpzvPm3CzVi90nRiHDCtKW8omPhMtsCN1HTmSSEepFMeWkBaZFFBDux\n6DHodZ2JTP27RR/fdJ33n2YDqBxIrZEwNj+cGZd9vqQP0riRuVoPoPv6/Lfk\nmR+Y\r\n=M+s6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"1ab56d92288cbd3cc5b68beac7024e998f73796d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"andreaspizsa","email":"hopster@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.4.1","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"11.2.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.2_1543513418985_0.9429733312246726","host":"s3://npm-registry-packages"}},"0.2.3-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.3-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.3-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschenkel-ggs","email":"tschenkel@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a0e276cd6ba4d89feb8116c5d0038037c47cc78f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.3-qa.0.tgz","fileCount":5,"integrity":"sha512-nLpeD0UznQ9+nxi6HmBbqc+PBoIKno8ahWhecg1MWOS1yPQj9epFedDGnQvAe1hc2xdsCnzVnJE8dzsI+EjvKg==","signatures":[{"sig":"MEQCIEA3uAfOzgNyKk32VFJQxyas/LhLnobSQ1WBYwKyewq5AiBkP0s/8Dsby4ym6EfNjHQLd/5WiGm/fUCGhbiwAzEiqQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":842716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcB6EoCRA9TVsSAnZWagAA18kP/2ZjAgYiCLNqRltlUgDI\nQOWJf0SG9O08hexmS1HTJO2V54b6ksOrmGpRxkKgfUQzXQ4M6eYlJ4OwkvtD\nV67PeMgC0P7o6xjwgJ8c5wHctNvE/HlcJPH9vdoP+X0l9jM96xFeaKCH6mfd\nQaXi80FjUl5sQd2WeZlTSzxo/DItKgHu6d6Jk5uL2bO2qBDUDuXDbwTFRASp\nZa8cueH2S9MyPkaWgn6/JLfJZWN4rLfNAP0/hcQ46q3dL4yvWbGkTSh8HfNR\nI3l/7KIwb15H0Vu/UumDLGOBiHAXddgs30O8QCZlV7S/sjyu/EbWwAihIQ2a\nLA3Dq9mLGIKLeG+lCZVWy7zXrJ9J9yTttarsnfKZrg8Z+3kaJUQacqNpeW5A\nxzrXoViZmpjNWjHG2OGeDt2FNvMNeSQTKvikzfJV7tidDpicu6x2bU8eqDJM\n0o/Dzys8sSYoLCNHaGJ7kvf/S0ssEH/mLC9Rm2/LYw05p9EypbS6dtvREEv2\nJFjcrpiU0IANKg+O13XB7+YnR8ACgdlBIKzaXj8iYd/CJrUAPzMtgmEsa+e5\nERDu9imYeyp6FALAtH2prtl7OhudWfpfOwkzGQBtSuFk+T/eAsUe+maSk4aV\nB9FnsHLVQMT9T3QMrcXEUIMHbyvHkQ+GHClKTaLNvvdBxQcOuBvVskfqxkO2\nLirC\r\n=mjGA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"a579cb22b4ab0df9303cea892ae0d16c2df73bc8","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.4.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"8.8.1","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.3-qa.0_1544003879617_0.03478109438488808","host":"s3://npm-registry-packages"}},"0.2.3-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.3-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.3-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"b276f6de49e692baaa7bbcf4c2ebd594fd62560a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.3-qa.1.tgz","fileCount":5,"integrity":"sha512-GmFlRSOZy5h5TzNid18GIIQheYsynPawmiP6n8Pp7eJl0E5y7a05hq9dao6UXSd2s+RSF48bezZMAk1esHfsuw==","signatures":[{"sig":"MEUCIQDqxDnLPVnmArok51eOnEcCyIQc9PV2vW7qOyh8XN2Q3gIgZwL0EXwfucGp8IZx1jsJ3NEqG2NRqljyafU+lcQFEmc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":845180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSA73CRA9TVsSAnZWagAAL2IP/14dvMw/+UsnYQs2PNld\njQKW0g0Na/7hoggxTWi+UvmbnFjLNcsxHiFpkXkhCgoH8gypHC/lDR0J5HOm\new0oMPimOS8+x+zcfyuAzsO2knWxnVfbmqdczaiav6m65auiNG5604BJx6fW\nVNFwPf5IOHJ8ZNdyTDgSZQzjoEExjbTNWiAcW8o54FqJwgLbLGKXmz4vWsWP\ntrwb3sXrTqhkx/NNao8J5LDXj87OFhsmY67CkcEX8+zJPqEFpewWEfQW4A/G\nTPj92kZ6UaqkI1GLaCFglmW2uuwiXz/+paJa6f3j1p2VY7poxWr+oveDIjGh\nwdM4bpc8Jw79Tsp/a+EdIfUbLl8rLKiDx7ZiEzFJuMg9kW10NlBolFcDYWs5\neS0/VdT+9tBel3CISx0yoKlxKqnkL1YXmAjZ7lq6Nv+iZsH6+Y5j2ZU7in4h\n0u2590sakq1vLJ94GcEA1vspFEoVk3aLcGM6OgRTuPgrRq2VRGF3jA+LvT72\noJMBIJA7K4ZDe2ScGAj9ahqruX+Nj5FsoXC/o6G6gMPKXa3XL7SiaaPgKW7b\nVFFPKsib1dl02+OcyJfRSXx+F6orPr0jEHc2iAWJvFhvB/8YSf5MaDVLIP/X\n7T95oTMS1KAmnzJs9Wfk5SzfkWlaWLz2yV9+9Eiu9ZjxhbJo9H9ZXCOZ7hXd\nu033\r\n=l7xZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"366dcfbf555cb435f9d41bdc36e1c400a44f4c66","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.3-qa.1_1565003510944_0.8950474380733469","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"0946c8198fc6abbc0997253ec79033b48896cb95","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.3.tgz","fileCount":5,"integrity":"sha512-rMjGrZ/Gen5LoBm+5zbsB4NCzld6osLJfgnsFKNFzvwzU6KUyc5Wo/dmA17zm0HmINF4MYN8fsalDyu7SGVWJw==","signatures":[{"sig":"MEYCIQCCLpNtFmrmbkRvblQXw3nFrz/BG8w0PQNyHxy+02V18AIhAIQh1yU8P48hKWFXKNi9MRo1hI1DGO45BxoisbKIip/X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":845283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSUhICRA9TVsSAnZWagAAFoQQAJvCrNqpzibSMy/e04Km\noaPz5vmlIoFypXdXKFZT9AKKc2PdtCiOlLgJ4S/mBJlk4K96vGN7GcTtNfmf\nApw2m3mHNMjbmTqt55dHI0jpWZ8xF1khtjw/ffrTMABvtGls5xbt0KvQ7Zn5\nAT/XKQikFlP10zPnhSEmoeUgi5yW1tskAnkHfy8FVL7xvzCa0UE4unRknZRY\nIvY4zuyTbmURPQFJZNjUf1cpwjjh94Y0Up+Of2j0aof20nweO/zsuvFWWcZz\noHnH1a+bzvtkPQGxHt6QcQ+amSM0qySw3KpPNJPsRJccPCZikHikAvX7aU3A\nF+z9oLadEoYzcdRbOxC6tYUIq+0lrlMn98n5z9RHz523nm6Oi418O9FWKg8R\nIx7dQArHTZN3LHvIYfDqeOY54rqynTdi9fUccbAWaAiBQbX16LfefJ5Afi+I\nAQqpF3YKeEndlP2fyKO02hSInQMcblfs0C08jRJCP7/5h1PnkryPbCuZaTfr\nidKGcbs/b/WbA/AXNKAwwNgMc/331o2JMDh3MKb9B0f1wnpdA4GDrSWZiFIC\nUtbkPEGKP9/lh2wmnyTVoIOLsLjMdraMPmKe1b/c8p5q13qLGQmnrnZ2ZckL\nELVW4oRElhNAPhSnaGQzng6d7V8gsdKWlFGgOQPAi0c9baNxxT2LCHbL/v/A\n4yu1\r\n=keDc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"7c42d958253a3dea189fe24bf536211d78a97c0f","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.3_1565083719675_0.31930611134434606","host":"s3://npm-registry-packages"}},"0.2.3-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.3-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.3-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a17578d03c8d663644448ce90d344a8f06ccce17","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.3-qa.2.tgz","fileCount":3,"integrity":"sha512-Z10iae1y0p0t20qE9K/J9X7NysL0hMeMiQewrXOvXQi7N5CDWhnEInLpaidkzX8SfbsyuQZ3H0GJ3OZGzVdAQg==","signatures":[{"sig":"MEUCIQDDqLog3q60UG7d0EqsqL8ihRU6BXsuOAYzwwI6NlVfQwIgQ3mM0wFhW761DuHIdmhYyyw9h6/PB0oY6xoZVJFJhbU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSZiSCRA9TVsSAnZWagAAMOMP/jUFkyNWyTqVktf0emMr\nI5M+5k8ElCpjJeZz/tFI62dcWvpLnL+nFdN2O5+N/kBRE7y4MgAzswJMrRB2\nt4qkffVvIifnunJ/ckytNdoyqMao9BOzPSeKNynkLOzCK9XcD0euM7r0T0wp\npKOf5FmriA/fsjQIhTV1M3zzk3nOfWlzNHpWOyW9rk63Wt8+XaK/00DAfxcx\nARtV9wNdIDoKgLgbIq1Z72YAtStYPoE1MLw2dp0fbU+91B4WM/mncK9Cnl4X\nFG11c+T+UUcNtGE9VzsMHU/TDGxNd/1NNjytPEXebQnaRSu0OFeY+IszsBbq\n4VtqJPhrnXnqgW8bDcmIrUnhNpeZe5KBi364P3NTa//Vp7y2Vd/PaillMGWz\nvCKUvQD9qw/L2w2WZFN8yvCM98GwRpKsgrC7/dhQnTEp/0At3Ppc7Ymjo/Y2\nbhoKK9/22dJBpX474qFWnaT3ED6fRq1QzQuW2zRXdki9uEUyyi0FV++rxneH\nxXEcB6GZU5/BGP7R1CpRk4CjYJp7lNMDY5p0oRMM/0CyvzBvIRaQ1ntME/uE\nVWbBpSvFyEsBqTpsgI03RBKL6v3tEK6/7ERUyK3VP/1vVwNBXU7zXD1Z+LE5\nNlboOxuvRUli8EaniqdaVYW85V0rVnhIksjUHdffqML/0A3j9qymi5OAVyNQ\neEOU\r\n=M2Tz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"74744c4e8262cb18b583c485808d4c97dec68010","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.3-qa.2_1565104273810_0.2924728999283144","host":"s3://npm-registry-packages"}},"0.2.3-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.3-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.3-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ada506fba8cfa6462ece5c28d5d41e0f6fd4eba8","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.3-qa.3.tgz","fileCount":5,"integrity":"sha512-pJQ+pbGFfflUG22J8qAY2zlW3hvQgS3kMPrKuYZWesqSkiwTBJlV8cuuyxkZMUUuq3nnz+FOJwoWSQnbgyHseg==","signatures":[{"sig":"MEQCIDXA1X6T402+kGrfO8TM6IlmdtrS1D6lTSQsToWHdewMAiA+cWr4qqHQ8f82gSsq99/DSGITxNPgWRmg570fyx8/ew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":845453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSbKZCRA9TVsSAnZWagAAYWUP/2Eni0TNjP5nu8ugcWEw\nAyDX77NieBB1StxPzVmFgTzLxQVSsa0sG0o3WSqaqOTs8uxK9IAHdqjswuTC\nwOGRjgt2huOjI+CnCLUoXo2nCZU7ezOEf/Jb0BDZHGHRAig3EkJx2jldAK+1\nw9R3rDimubybjMhbZA8YECt7Zpe3craK8o73sBnOWDOr/e3YlCYCcTSxZYqW\nFjdVw4qvt4gGwJwqS+pJXuJe9UX/4RC8mHK2Lo81VIOkItpYePUgsTp6Ke+h\n/Y9qSE2RvhGUaHNAQUCjD31PBQgafnJhQ7fFr3rZLgg16vwK104iGk5rQavp\nip/AiFl1FeUyrXTB0AEK7sIiy2eY8Yms+v+mC1Na33ZhkS8iI8DjRtm0xvqz\nPry8wOs9K5dXttPVBxNQ3qrBJm0TabI4EfL0fKTbOeND+yJ8JAH8ycQhKnps\nUN9euMrDduF9vTdTMy/YjogyxfkXSe51EHUrTr7pCVeJXukMUwiCzM8gJIS5\nWgVAUCWmjToE8b027et7ycVuGsnig0E1yyYshwhlEyS765YnDOK5xFXn83hE\n/eqhr4eFhhqIa6xFhJg7Lm6BsMhEwtO4oR2ffnVOtNUXD6yMsZcJMvxZjTp2\nKfOcEBdXUn3XpNGh7x9QRpDIrqWoKE9zHF5/br+Uc790KEDCmQW5A+k/h3Yb\nYXdK\r\n=YiVD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"112f9db38f6a6b355699eaa816ca19dc8cc31d95","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.3-qa.3_1565110936174_0.553439268707963","host":"s3://npm-registry-packages"}},"0.2.3-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.3-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.3-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ed2da0e10aeafff98a26e54631cf59a332983b63","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.3-qa.4.tgz","fileCount":5,"integrity":"sha512-Rt0jgrnAtn2EpcDXyxr3v1vfPN1hQlfoM2Dqsd2j+8wu6rSgM6hlukhyvaM5EQXlStfU/Ef7FRV44ZsmuHO4Fg==","signatures":[{"sig":"MEUCICmdclgi32H/K4z01wI3HDRwsB1DcjxcJy8FJCMzEgH0AiEA+/At0yZufBdAlxkQ+uCkzM7Ac+ilNDD31dpm0FwqzLM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":963651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd4cpCRA9TVsSAnZWagAAl4MP/0w8oiYyLrQ84Oun+FEP\nejo+Ba+PjrzOHJKZFa1DTeFI9qNj928hQ563PLZvdqdMhXF8Z4Vs4oG9dylY\nkO52rtkVPgziRrm54vibyW543ftnCP1KPDCpYdIf/TeZPA+qg62qUaiYNH45\nsn7npZHaK4Z2X0VFpqGX2MK81Cja91av3nSZcp1vjchRnLsPX7x+4m4kLqXX\nUvCtVH1UJmQ5angaeYKurSM0B4UuTmIvlZjcM23PJVedy8bA0COsePWLWN4h\nWW9Mhp5PCdTRd3rtIbEAFWncTo1I8EZOAPfUMJl7fZ4BLFWPeOzguz7T3swS\nFVdbt2UTrm+WsMBSJzmJPVT1baxii5+5NhyGY0KxZ0dPiVG0NfEpu3125VLN\nWvNyGcEGzce15CtBtWGUQ7ahcjH/ab17Qq6gmITAlgx3qjvadJje+43JwNhb\noMS6utkkDp4p9sNifZeOeGtr9X2zLHt3fV4Q0uU4ogZG3EFdmXIiXHaHia1r\npKQVPQm950e0MPzbrWPpSK5HlToHRrECIW9MIjwzf+PATRBGa82YdcRYGwdI\nW5px26Oarq+GOIwo7ocRTD7R+rrZOgyqVcabXkuIspPe9v9MmJJ9QoVSkoR0\nBreBJFoF6bZzm7XvmbokS+gluAqRuvbT8PQBAmTcD7k3Ft2Bf2DP5mkZAAhq\nplGO\r\n=rcBi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"122a8312e805f199900ca1f8367fdaa5ea6005bb","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.3-qa.4_1568114472949_0.27980552392806035","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"844db217f615ef1aec1f8a33dbf0e489793018ec","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.4.tgz","fileCount":5,"integrity":"sha512-ntT7m84HaoHViWEjJateKcCTxFCm1Ji4RAkJ9uW41ZuxLQtvgT2q396DrtQjUCD8o350huLTq66C9ner+3aupA==","signatures":[{"sig":"MEYCIQDYrNC+Y124DGo7T6kLv1PEzVXV+2bzhM9JFrBSwwna3wIhAIgZMrA6L5lYhd340TzveFll97qLgdNoseirrz/Nq0Ud","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":963878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdd5ihCRA9TVsSAnZWagAAnnMP/1DyAkGdsoHW4bfq8OKj\nKYefqiywnkneFAg9ELqgjM7Nsp7vuT2tl+Rnke6NXDw0DVfbQXd74MoHEcLB\nfttuLaCSKf+XrXPhKorMIhxZDyw56z2ibJFEMh34OvbuqlJYomcl/p/8FaWO\nPywMLfipsPgRZMZOzvn5lOvW/J2ZaRrhQsFVNKpPTk+FTZP8fWR5fRhAg5Hu\ndGf5s0QWVNgcypqpCdVeXWO8SjW9BBEL05r0cxIyAzr9M1ztfG4D7geREzdM\n7hwKhEV44qtYwX/6hAmpzoRo+3U6Py1bGmQMhKP5NgDoM6y/kinYK+3+zOUx\nfdjt/Ex5dp0fzXWIATaConFTrkfao7T8PUeWzd9qM1ESu98WIBMHvNxj6B21\nA5Rhx1Xbzqx0hoI16faU3ip2ZFb4rsypyPGVt+qgkchjsTWq2HVyzoRPEtjz\n9B9qaQo8rrcpoy9Yyp4+cV0l8zUJonuA0TobEckBa0fIKVV/0EVD6siNEvhX\n7sWi8yYEQ9AFtyb1UfwJpY4yqgAZ/viIpsbIqZ043ZDelW6QsYBMIPZRq4wq\nQGz2KELufAZb1pxO/sYkE37HJtJ9dozqHWAPtEwgwjivu1oQBGLUGsSeimWU\nUpB2vQC3/E8/+bMrK3z+cpBHkFgA2Wd+jx5OkYrKUhWhas7pgvBYyLHeVAvU\nxV00\r\n=R2XF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"52da53d0ed2644a944057aab101747caf2fb5f23","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.4_1568118944784_0.4976566250750225","host":"s3://npm-registry-packages"}},"0.2.5-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c35542daa106e6532fe79a517c49cacbc650a18e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.0.tgz","fileCount":5,"integrity":"sha512-5QwfzcyQLddPNUONh6kVEIyc92x8VyMgC6ledpLZbJzj8dr2xzbl/XahSmsV/EP7O4ICafS6SUYHnfjwGvNPqw==","signatures":[{"sig":"MEQCIHMYLLJt3dKAO6PexymRYhK/3ELO6AEiiW4cY0JdHi4bAiB2oiVEGKwjCTSQB8jKJpVuNp2o6nNUmfVOTjcyLj3s7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1136169,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeRpjCRA9TVsSAnZWagAATMIP/ijfuMvOf+qpUYpU4cUG\nlfc/bFoZxWtFdm9gEHYgBJiacmqYmOeYwCxGspC/AVlgPJ04i9lQ42Z9xCdE\n/aN1AjVOxXsY4vT1dPn0Fn4YIRLZlclOGKjUkdY476MEk4Gh/LtrPdkSFZW/\nS5wsiVoe5Ud3ZXVby0HYO9oCHrL7vx1BwN3H7sdcbZd4eUVYeqlwHT2i0bzs\naQTuyxjRrkiqu9PHn9wAkMfba2sboKSLRKPWIXNTg4tXk9Qm/4QSh8TocIWl\nWIN8tZSj6+4aw3V35zw5O3iE5p7Mdim5DK9J7R6KGEjzB2WqHEBAWn1+F/RX\nRwD0ic4kke9CW/RekMUMls9SUuIjIu8S0PHDU8sH1kdbTc/yeHSdltHHCspo\n5lSmmqfQmvKrp75jcj4I7b1Jg/P6RwGJo17uJk8vXEP3C/KUghciBRbTmn84\nxv0mTr1PHTiWeGf0wMpl6XCGWXW9LYCKgiC+99uP4SsUHNgoM7qzAasNl8YS\n6zO+sLWVu10a3fhoGpPyg1TqQLOmF/tLQlcBU/7arHvUfwP1pwJnVR5PgSjr\n1nU6MPCTJ1gYGHQlJJzWNDBYEdB2UDOGJFVvkh9dCPcyRDqlyY4OWcgq/dqS\njO29TaW4s9ra3cQ17XxPglINyXERqubUVoSzANfOymW2/ixIQzS7DZt8Nn/v\nihe9\r\n=nIq9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"3f19b111dc29ce776f0302a443e372eaee82d0b3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"@bugsnag/js":"^6.4.0"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.0_1568217699127_0.09893542203756667","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"jschmidt","email":"jschmidt@goodgamestuidos.com"},{"name":"jschmidt-ggs","email":"jschmidt@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3fb84fb4cc933db7028dbe6db84858d87adaecf5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5.tgz","fileCount":5,"integrity":"sha512-9VK5pO36taUbPlmqrBLA0hsw/3RcohB8w0MVYEcu8zD1uTV+Qw/w9exFdwzFtuA7mf27lAFV2l0TvD6Uh//8yg==","signatures":[{"sig":"MEUCIGwNr84waMbwL8qLf4GBZ4i+RAlq4ME26jD+zTCnSkBsAiEA7sbVeKkCFI6zWxZ+oC1Ne7kZEl1lcSTY7h5ocCKJjvQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1136278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdegNjCRA9TVsSAnZWagAAv1EP/ReTrmgTKQmC0Tivcfka\negw5CF2zwLeZfUYZpapZNhnqW452qfa148mUbOFoPvA02vgnI9/h5qxW9lCs\nP9F7kx1uuacBndSf+1x5RdhfcEEfP6pAE2paAQhl63YV97th5UvsuAtxxRjd\nstlQdbR7cR1snU33LiJ7WdyBTYZj6eMVW/jNslEkiFUHoDCsxCeNK9lG0QJY\nZWR/KQ7SQjV3I44dtqvb4lXpEuOfXG9XNdy1t8L0K2etSrFqw/ARKq6qJJ7q\n+l/5qn2wB/hNIuOmmOD7+OI3m2Z1s9jkUnT27UTexrU4pp0oObCjnXmIaA8L\nlnUPX4Ipi8xA+54JHUtWRtYSm4HbiAYghW3tH54GQB6kEGGPrmof7Y7BSoHc\n/yhhNL5YFTne5Hn0S7gCtrY7Q9Of3wLs2+rQkwJA4k0rEKIu8fmzL3WrmYqr\nqHXyzJ+bJkifSbaqsX4GODp4jL45rC5gGNQPALoYaekAg34Oo4NcS4kZvTFN\nuiDTVx/nFr+IpkUZJe9u4qLQlYYsHfdqqsklfyKNRsYarDSdXYbgqx0GDCEO\n5eW7xnWJ4YZRcQumaNvrVJpKs7JRaOJ6krKvwGTgXyQejxU7lkcFgV/gYK7h\nAB3APoVwKMmYGp3O2Fq3lV19cIPhhzy5uZHcD49RKl5CRSJGH7BVuvRbQqTV\nDQ4Z\r\n=MNOO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"04b27c01d271e4aae3f56930f94d799b17e3e51f","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"5.6.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"9.9.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"@bugsnag/js":"^6.4.0"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5_1568277346351_0.7031916382108272","host":"s3://npm-registry-packages"}},"0.2.5-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"4854d4b5f01a9e8e6beda494688301ee138cdec5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.1.tgz","fileCount":5,"integrity":"sha512-djKYbrQAS8dJmmL3aUirpEnQC0/cdjllWlAiBzWsUqVKkIoY6XfGcg8CL+pkQcTgp6hFElKiFLl8BkiUMwJNzg==","signatures":[{"sig":"MEYCIQDkZ2FPxZUi8rSAQRuLfNxJGpnyD1vYicpdnU+xD9VwmgIhALkMlbFmNmeR3WdPlFHUfWTu04GZkIfMUoDt8h6wq8vl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrVlhCRA9TVsSAnZWagAAFKoP/0UzebHUr0qQIxMmaGbR\nSaMksVHYRes9UUfXTCg34dpcsyfijiznh+AR/hTFWWyJQAFlwb3ce4zcBuQh\n6epYMocEsYT4Wa+A+2J1ihAGCOZy6IMEpbU5G1W/R+xRqJjKiPh8xqNv0eHn\n7yUrUJf+BD7eIdqw8goCJKANiVSI2/UYYNH2iqhqSd93F7RA8vf7lp/ih5AC\n/xHjTBEz3kZBInh5c9hiv6elqKENxhfMkIEBH+4WAFfK8iiNAGBWEmZiixQc\n7XDSYOsNhWPlk3Pbduc9IEXptE/14Fzk/keptzYpM/vF73iqmrmkN3jNVtZj\nLvst+dRpLP9Hmv6+nO/f9zc7ocWUHkLoplat5+hBDR8Rlb9pHXfzQs+FK1fj\nZT4AMO2fnnuS24SuvO/iogeU1w820uHLacroHypJQJhllI6ZWwoYelMD/8Rj\nh5AKKzcsQYc6TlWHU44ifmA35ms8SBK2UBfmUG06AyCMaImCzkfjO2tgCi4X\nFwNMKO0uZcel7TBeRmMXUEV5RxgT+Tg/8fd1SFCAzOU1PtFB/FZtzBIrfv9q\nQDE07hnDk830lkPSWcjr7WkkYsFhU8LEkKmdLF1JDNHmCxFHNMJyzBzlQagl\neOyG4fbjybzYxPfx5SwvN65noutmBoIx4xvjfWK2vSFP9hu/pPd7zalDNQAQ\nOEo1\r\n=zW8K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"0d7e36530a9414ce11fc222566fec81f6f4f15b3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.11.3","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.1_1571641696709_0.7414481935895492","host":"s3://npm-registry-packages"}},"0.2.5-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"05c94a0a51645dc459311bac0222db245a8e5535","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.2.tgz","fileCount":5,"integrity":"sha512-RnHX99ZuIE96z1k7f3r0DSyrfxxHF0de3sPImaDG4wzcbhdQX095xPi6lFZSd74x1iVyEPmS11jxHcnhEAT1yQ==","signatures":[{"sig":"MEQCIE7DgVFeLHesCKPMzherphDnftydzDRG6lb7zwqrHLCRAiBHkBWYcroWVExNmJwQc5CTLfcladeVwMpEcdJ1bjS5nA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrWSZCRA9TVsSAnZWagAAu8MP/jH2HTy6JZ2HLbICQT9X\nTCpqSBWiqJUN85QcDwbUM8sefbFEf9p0OtoyyXKAVbQLakXFpg9IKbNPg9Lx\nxKt18Bu/+6UMtdl2MnaG3aNTXziGDvqjxp/mYu2nJG9L/o5Kq9yJD9Slwh2n\ns2S7azLcApkvRnNwvd3Ay32Z53f5Y8CvDVvMN1LQtw95RcyMz7D02Cq0lbJp\n+691M7NB7Ba00H4Z4zfuL/eIpJ26tYpyuuav69WMeQwRwbFOfSRwksZgRRLp\nehB5CrxuiCHm+ujQAV9NDk85bDgNRqLCEIie9dPhJDDxXEY8wdUpsOtTmIZO\n9y1GDj3tAtdfr9Ia7xnfOswBU33M+9iT2G+PZuZm5pc/+XSF4XixwGRiJV3j\nZrTbsNNLb+ElH4K69HJhsyOTTe4YRDjaRnRJHnTdXHDBRguk3uFvU9CP0nu+\nOSyuHxPPS2zdnI7eM3G57ANRZ/UTJ2/0F/fzsQczDCwTNLuP1jk2ocyEgGLS\nLaA4xpTjyXu1YpcNyHNkVPVTiK5xWJoDLsNwDuYIunYTgh38BMbpmSC40nXF\nSDjZOB0fTYhh8m9WSZ+OBgtV+vOHiX2zIxLlcQxoMTtc5ofXmxEF5Jj6WPAQ\n0VIJd2Kk6llFe/af/oHhFvBKZGzstgjYEbFE6K4ypsbtz+ijDweeaWpYvNJF\nqaGS\r\n=xnvt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"6d64c570575c147afb4d3788dd2653073e18d717","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.11.3","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.2_1571644568664_0.42910454021351785","host":"s3://npm-registry-packages"}},"0.2.5-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"5401748058a0783edbb73ac1583d6737fa2bf7f6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.3.tgz","fileCount":5,"integrity":"sha512-MPWD8QVaVrZgrk7p+dt0GEcpEyvYCM+WIW7uyPANPyJ1j3a04h40cmJ/58eQoWGbUTq+bjLb8zEiPbaCLGc98g==","signatures":[{"sig":"MEUCIQDOJwJc1jf7s/SJh1IsisGPintEO0ftZWD9oTELMXeRgQIgGlIJ1rpRWPx1LvHRLlHnTZa7NrSM6xGNiqlAGEbOQnc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrXw7CRA9TVsSAnZWagAA41oQAJvPowOiNMDjIU/fpN/I\n6W6iNbPoe7QNpqMIHopNXjXQDhQpW0f9YipqB9w0Q5lu03eMjVSAeYJm477f\nPrVVqhZsLp4jaPIixI9vYSzQ2jch6VahjA7lJcbqsMuUohdHAzy6m+zabD3/\nDCMSgK+I9cjhdb4WLVn3xf8vcbpGK/Aa+70RePfUEz6FIidYrSonEPxE3qL7\nd1GU/w9YeKFSAOGqT4Av42Zt+XBJ7XxnHONNhJQKqPwy1cuhzo/6Dmun/uWp\nP/mFe4ozBnW8+8Ao7nAjAqDPml4qAcmKBaOXRhheQr5bajFQF6d6P3OtwGwg\nW74+eerTefAiXmaPebE9DLFBp4rCeAbuu7r+wXrecpqU2K+zbhyn+36k7TSB\nADCwNSVz7rYVnM2TcrAjpP9Qmday6o2aXe6eTDB2ZoRdd7Z5efFIJB563QCx\nGoWoNTLpTCbfCXCRolDUcQndqxnHE/Y5F8NzK/RTyhs/qBw77gE5q4q2cTBh\n+X1uxxTOKlx5LhQ6l6/IMz1MZtk1Zei0wFyvCjd8fdbhspVmB7c1zxQWhXz+\ncys5bzA1yH7m51m5BtMBA+fCklvbFinBmFEnh38kNga8YjOoNUt/vwEw8sX6\npqoYpH2RoiBsTUy1r/859vlth81gz7QNPEfVIDFSjyVEiwM22R96WD/Tvk3s\nUOEZ\r\n=S3Rp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"5f8090ccbac6cc6080af108b5ea7b3cc841472b2","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.11.3","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.1","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.3_1571650618506_0.5671505205422707","host":"s3://npm-registry-packages"}},"0.2.5-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c3afd6046a4474e63d800a751b6dac87a24bf334","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.4.tgz","fileCount":5,"integrity":"sha512-qz5ru48DW7mMDyf1h6rvcBeMZWJ1fODo6WyV8keFEbfcobHsGQ9oKhi2HGTHuHlwEyNV1hCNMKE8e/lGTXY2ag==","signatures":[{"sig":"MEUCIGlf79aVsXMgdmXZGGYEse25zVfSRyDXp7cKPJahcKVtAiEAkxanBa+6jEL+ivF18+J4dwb5EZEtAVVA6ApSM4aY4XI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdu/H7CRA9TVsSAnZWagAAkPYP/1bbSqmoCqLbRTFTSrED\nesIrcTFk3iuS3semT7hYJINzPXwebYniRPWWZ5Kc5oCtR3LJ/l8MKM0c2FbQ\ndQxTayqVaZ95R7Zaaoc1dYzO25DoiCs5ntyO5eGbsjVFcpm8AMun7IrQQ+45\nrWQeOj1cAt5i9+VP/uvXL/2CytFv8wedZLEI+abniQnBf6wU4o643VTEmB+j\nBfTqszhwAQfhFbjYW8UvOqFMr6AleDMAc0L3FGEIC1lHpOzVYEP0AyFRPDCI\nY+KqWHSdi5DHTesBdmWFKFEEgrnJhNEKM/cj0XMYnH23zf0/s6yANqDcwUkM\nIFg3x+bICAJRQB3rYjlA+Efk+EdDb8Dh1ZyqdhwWemkq1skgDWQGUmwU3iVZ\nDgekRK644kLXUUAAe/jYQlRf07KgmSHuGP6vOvXKLuVQwP4yOSWj4b3QM1Dr\n+CUwn+/6UJbVQ/aLcMAsYvLX9wZ5yAilgaGQQzzKAu7Us5DVCXFM4HXoTzV7\nPBntfcGGDmZ8szwQV6qsyp+ZoEZ8LYExmcmQmxB6x4eJ4LUNWqy9tCk+t9XT\n2VdF6uKL+ZkAhlBX1OnENz4zCSHeBIONagwuUIqkxNliRDdn/wtP0LPf+kE+\naEomMVoZWSbVKH6RuatVra/mWeAe6nZAahhrIORsUCorCC8e95rRXjUP2xcE\nTGZn\r\n=QUEJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"05f3fc4d0d20139fe912b6ab72801c3e93831bb4","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.2","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.4_1572598266984_0.9563235324030477","host":"s3://npm-registry-packages"}},"0.2.5-qa.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f53adef77e21a56526f586b1b36c1a9cf17af76c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.5.tgz","fileCount":5,"integrity":"sha512-16Ufv6uGC3UR/iDPunupwC7xoFx9FZRmx4oKRMX59gug9CK3ytdhCSK/kFruNtLBjUggFRYioFOlMoEjRh1YuQ==","signatures":[{"sig":"MEUCIAHXdAhIMPZjEXnFSUafa8h8mn7pBD/8NQqY5LDt1YoQAiEAtKax3CCr6Zwiag2k5Wrs3vbWug8U7QEDbqCWcSHcnwY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdu/2uCRA9TVsSAnZWagAApVoP/RrjRybcIQltRUbWsHuV\nqs+/hVOT2U63Vv3FtR0EQ+YPgzj/RTYrATvh2kb5n0KOUH7v81pGC33sCbXu\nsI91xjaY/AOjSspowVoh4dV4k6I2U5c5LSy2l1apab/lkTN1NCzR4xmfYaF0\nNTl+7AzzC7oZ/kqhnTGmJyofpHRXwjD/Z0P/C3eXgy6tHVRmkEDKuU2jJhib\nGzpUgJv2mVSp6s5YjWTqUs63NtGAhIG7q4mPWdjOXkdCksTY4SPqKAlCXXeB\nw0b8/bT4JCouSwW4Zl+I94D9ZOIPE0sXkJHEX9d8C38d3hpY+kx2lsJ9MOHy\nvAaC6xeyKnEb8hXrklaPFFdL8psM7pPqA8dKMVQub7QKpAzOTqnXCwRExa01\nHd7pu7H2+IFii9tSoCawq/Vfd6fkJ0+cbOMrNqrrZXF+74PI5nDw00sHxDi1\ndyI2xu/0Jo1GPcnbSh5gov0gq8RyukSOEGGNURNFyjsxkF6br4cv5sE0IH8N\nG5/h8D9u/lqSQf3P9DqRtQnf7qHKHGlVwf4uAX2zgCqOZHQnetMeRmwzastq\nTa031XC5EA3U37ILPgGXJj+Gq9boNcUVkHISvf5gwW60+vBaVVI0+Uhv1y8m\n7PKIQ3h/jtof5I3liTNBPklnBE6xFbnG8EoTdZERYdNJgMGljq59xi0Sadb1\nNfmq\r\n=z8B1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"84eec17bdffbffa10ac7bb55cb184fee3edbd8e1","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.5_1572601261591_0.5233184832096813","host":"s3://npm-registry-packages"}},"0.3.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.3.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.3.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3878cfc8e9b54d5c17f0802fdf0748d387532cb5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.3.0-qa.0.tgz","fileCount":5,"integrity":"sha512-cqPod/4Sl/6YVbPoqp9MQsrZU2JV42onjT4K6yelr/JkG9gsQ7LchJAVjj91hs98wg8TJ6Yjm4Jr1zTi31fyAA==","signatures":[{"sig":"MEUCICjPLptCLlI7wf3J6lr+3QBYo1Ng5AxLfS802L8lgElqAiEA5aSYCv4Y2SunUJe+gx00HYErStZXLFKEMfnE5atgqfE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLvyqCRA9TVsSAnZWagAAWIEP/iShSDIkDaoJZbmjE7wu\niC9tZbcip4zbjZ23VZ8BX4Wm7onqFkDEzn1aiDbPOQJcgFKim0aHGkOwtpD4\n7VxjPXJ6dVXvnot3K80vtOw6+SDJHkLAPXUK0flcfvCJe90mOzQL2LJBMCiG\nq6ueHuQCFwdlaRXjKKZSP56frd5H6dLUxC62XOKbSpc6yygYlbSjEuQ55/Fg\n3YjdSj1waVm2Gmh44dV9G5G+a3PmW6HfC9bLv2JZ0i7aneRTispDJuF0xQRt\nyjTAKljRurz5znKJnL1GCbiIPCn0jRzofipXPNa6AV/CrDk/fgCjqyCdn9E/\nsu6cTnah/MsjTcLdZlIU4tU4QREbNoG3CoFJkN3oCnKMxiM+VtjNVm81l9ps\nqIDtd9SVSbNPen15nBrxAyz7blm4Ejj3Q2s7O6xKXzagxQZ8KLiSTnl1x3l6\ne1/PbEnlQv3DtQ8ygyfQ50BoJHs69cYMxEBeU/oZXUK3Qaxkdt3bFPNqnEG3\noo0kPdPW7ldEFIqY6kfIOVwD86SaJynpyc01SJmWBHs5z4xv2vn9GdI441N4\nNbOIdYFIfwrQl9tTcozR1Lm4ukSymXhCvjySjXwFA1PBTEnahClR2D+6C0CJ\nfarlc/zCaUop+3/ytIAv0uP9O6xHrJ4CNuho2O9lkgeL0E9ZEQfwKQg9UVCo\nyHqu\r\n=yEVV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"c5b89a1ce9992c7e7193f935dfa512ec2bf99059","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.3.0-qa.0_1580137641471_0.8149421285240983","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.3.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.3.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3f094107e40258a801144dd3e903e0223a44ce9a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.3.0.tgz","fileCount":5,"integrity":"sha512-B+ivi+TUSnJVIdmKix+oy18PdUcXY1DOI1H8LzY6PmPZ38XuwZWdR6bm7p4PJlDiyGQ9vfnExRuh/0ZNcVyIsQ==","signatures":[{"sig":"MEUCIAZe3HQHlNn9of9VtkJrxqHf74d+p15RWV72FJCseYsOAiEArNM6t+MwJtkWGm3N0/omYFMdBdlsAVsqFTXQq+3GvTw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1069046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLv4zCRA9TVsSAnZWagAADsEP/3GaK2SYyfX8a9EeL29O\nVJ1CO7MKgp5/kh6E1yoziEbzvD+aKqe0PSV9I7LOE/jD7jpJ9mxUDnuTcznN\nn8oz9uSn0HnSkHeYKLY4jSm2/ZWOcsIL+vlgbhywWHSIY/CbfOZ4+2ELEJ8q\ncgXZawx17aA+u6HNjPE88zD/6jByPcO2/T3yB7iVRDEtI1Bp3wCip4jW+Prf\nbNkjL2kMPdV/eRJfDzsApaCBYqPaDBc4X9P5p0OT6xNByeVpAPKzZ/v+qL1z\nWJwGBPzJGrUM3IVy1uEEdUkD60VZMSGgPYgh4xFxYnWBJv4gJJr85FmJUUgV\nN5aFHmppsjRpxnF6/fM1ciGRMX/rvsNeAt1b7rhdbRTKiDVJvxbBZCaknaT/\n7KDO1qDgoZ3hq6NuQx7mYLlqs/Q5IqKr9juxi6doVaps98b/sU6K9y39BtLM\nHvXVdUNkJRNSOqlpL4aYrVK48cTXQR21Icp5m77Fsqcr8c0zaHfsfrGCGT3L\nG3sDIbXUGS7txS+01OHNf+l+kuqlGM2aMPYgAQqPE3PyLv8Ljql9CqitRVtJ\n8GodX+siIVb48TINXyhLyGTkR5R1Sv+ibHt/iTlGKD3EQbFUkIzpk3cysE3H\n76EO45bIDq7aEA9F25Kt9e+iTWrixFMaNVc3yKEnQECXGW3Goh1jbp4ySqoj\nmPf0\r\n=A1af\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"cc16bca021d091c7e4a413c391956706854aaf91","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.3.0_1580138035577_0.7532310223194001","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.3.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.3.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f09384f94f31f6fd1fe855b1ae2b340f43dbf4b3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.3.1.tgz","fileCount":5,"integrity":"sha512-DDysiFE1fn1GQ0Zf3KH62kGdNbcf1zzT52Hh3eXQ9s3IAd4TJq+l55aXFXEOuimS3/tQmtVsmcpmz0ftbVI24g==","signatures":[{"sig":"MEQCIAzWG1/haYzEcjesqd8HSBsZzoqo076P82hqThF5eAlAAiA6qejQtQzv/BAcayiYlfXre5SdsaE/k2aB/u8OTF3bJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1069164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLwEICRA9TVsSAnZWagAA+isP/257hmYe7tSqPlvQ0CT1\nigc32Ntzy7sbwUigcvZx4ilOz7z2iHC1x0E+Xf5S+bITMPN2JPjcllPwSKmE\nC2+2Zjz8uLUgSs54pRejZMfKWjM4WBUZsPht16QRIrNj+xbccAfABcBX1wCb\nj4KBmB2l/R4X3ubJtvrt+QS4EE7BqMuXFmSKcWQjJRpJYmtro6cefqkTOsS2\nzDoYWf4/j2DRZYbfXqsQhA1r+thFLt1WT9UTUduxPC1A7wr390MorfiyUv37\nnG462zuA8r9pQ0r7pbUuyN9BIz+m+Z97U5h9fatCzzmh4QivZ4vSHRYWqyz3\nnTeXA3EFcET+3QfByRg3H3LBY8PcgNB1NUlXifGee1Pk3VK7NJI+M/AMmwhJ\nfo6P7xGVOv+IhtyxApzb1EP6wjo11iZ/LF56LlEzTG1MPbiuyvQloCgD8eFY\nMDEHBxNE2RvdHrel+EnGpG98axMpd6AcQH5/Nklf8bqBZzMGkF158kWZ9t9e\nzXws58gXXMdED8g4D0xwhcqYuatN9fd0zn99Cv69dFYyVsPnMnFAcT6yIN6o\nMBdnc3JrSvVo1BbS5mYeSYaoDKCcmH8uWBeGRzep1UQV6rbhkgkDH/Z1W3dw\nZrC+s4kYbo3AHOxQYgsWK4i7IMdd3RFZ1JV3xmjDNgC2SkfxtjJZoUXO55qD\nsmfN\r\n=JJHi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"3f750eb29d19a68a7a69e20d168147ff8525a3dc","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.3.1_1580138759711_0.2988144308027403","host":"s3://npm-registry-packages"}},"0.2.5-qa.7":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.7","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.7","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"cf4ca2cf8c2908315cbfb31c54560427e79a3075","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.7.tgz","fileCount":5,"integrity":"sha512-FtFGx1A4unmxrgI4Deep+7ZaS3QerE1+5jS6wo0Nbt8mVYVMjllAeF6AkLJj5JksjBRt/eZ0k7+ERu6E27dVww==","signatures":[{"sig":"MEYCIQDpPKTdVEBytyQ6kdc704ZzdP+vYNrNRdQGWJ27MIgw4gIhAKya/A9o25Omcuiy2bcKar7w208KA7hKLsCnj57VQfeZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1072108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOXtQCRA9TVsSAnZWagAAFQQP/3xa29oszOocu75Wqxdy\ntQ4JLZMB+Dns6bJ78gJgaX1ekQBm/T7sUIc6SotnZBjvHWYUwyM/xwlrQ1oB\n3i9ErUj3QK5NNzWafskQOpmtbHzqQAabUQu6ib26259ZiyE7Dy0Fbn1gcLgA\nkpGFO3STG4OxnOwpaI/9wHwQi+dqvLJXv33dS01r17NmRqyiaP4vB2wMDBg1\nfzvi6UpzTQtv38n1lCZ/LjCJqdVmdQepQ6gjM9Gxqt/jQy9R5WHV7lpIrpjS\neabbeN6h1qX6OIrqWRX0fP6MZxyYsHDe0RNUtHDBv+F2n0CHvPrTb+DxFCNS\nztNdpbxTS9V4eufO4QOdqbe5Lgk0Le+DdunWMa3Jfc84pcWWF4yZo2chnysv\nBZcet1/COXRIORoMlq04oYEAhnY4xXVF3e0BIPJEApj1tfui0WiCcMoqCYFO\np07dIRX7PPR56T3/ZhKWmTyZyrDoZ5X5yp0INYaN6c8Zu6wfsBhKy82SV1BN\n5r5Lh6RI/r7gkaH9WutBy8Q5pIpS/9uvStFZNkU/HB8zM7hRg2pue5l/9l4b\ny543LS7JgNVWzD2HaGF/wagBoXXL3CIglonafvFJ7v/kj2vPtJI8deLbcZZh\nL3KA/36tPis2Iq5p1jJoNQtSkq7LRvZzQxMTF6ub3t/leBcHEJVcaomDTHBZ\nCluz\r\n=LdDB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"4204423883fff8103d8e8a7313383644c13955b4","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.7_1580825423326_0.047210587675391213","host":"s3://npm-registry-packages"}},"0.2.5-qa.6":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.6","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.6","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"61a43de8b80db42f080274fe0e5810a0e9f39ee9","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.6.tgz","fileCount":5,"integrity":"sha512-D4cgXBSIN+hG28NmwqHA406d8pShKS0+BF6lUtYn4f17JDxHrQQLk5UVo/TPt/OkiGJXPxer6DO5KwhQbjxLbw==","signatures":[{"sig":"MEYCIQDECoTbrPYMbLDXBgW2QHi6m6sZmGLXbfehU5C6L+BIyAIhAKnYGGrwQWElIun0q8L7aFEiYj06PL+iWfK1dyZE1S0Q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1068814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOYACCRA9TVsSAnZWagAA5QgQAJR3XOGggWvpsylZb7Yn\ng34TakswZ8SifjTSTfTea9hdBrMI+/5GKr8ecXhgvfCc5EFWUBRfOzTtN8IX\nqh5d3yDA6EtbMnZs+LkQ8n9zY2JhKErnXiuuXsIDbIbD2H/jWyCHIkq0fVwp\n91azITIMA/DE+IxI3tKzSt8pnKdfHldHu1SvTpmcpaAH6vhppTAztZbt/GCJ\nqaXsAjRKzRSOgemgl2AJr08kwPzApw5NIz+6s6QvqND25SHx062KurJ0conp\n5e0xxq1eIyWGgJUaoYLx87cBD1ToGlUEZeFfk18230zx80cOvhvhWtNw34rl\n0YhoFmDy9H23ctzCktWDHdBDtST2deLFrJP3p5Ma5ozitppu8LBV2vRD8LGx\ni9ojJ58cQUblCBUZKZDy2i4fywCY5ISv53+rYwkKCfNS+ET9hlld/rlTtTOB\nw+6MGxnIoKH53sFj6YrXw7889qmamQ9imuAdvUtiJxGED4izPUyPWAKLbbhb\nlRJad6/KBwUFiSXFZg7usoflhlha1Zdo8jyu0XULCfGuyO9soniieC+7MAbS\nFplUD+KwCO5gzSGuNzvobYk33kDp+7LVZmekdEaZPVbWgmBfMMO0eCRDQcV6\ndYUKDtWADEJ8BLxuq1cHxGiVSpGnGS7oWY1wapuf6SQaqPIh9P/BfSFuNY62\nFVH/\r\n=L761\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"af58e9fe952685b0a8a139a09ca3fd11672a7444","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.6_1580826625954_0.5014947128074629","host":"s3://npm-registry-packages"}},"0.3.0-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.3.0-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.3.0-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ba1b3568d233c0299012e651ad5ce8fd80f19833","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.3.0-qa.2.tgz","fileCount":6,"integrity":"sha512-1WlgHc+jXsmz1vEblZp4FJ1yazQiVo8/8EsJBi3dU2sa2SmgtY4XyRdKfeirBB5C8hwhZ+iDHEcpoSp9HbMRdw==","signatures":[{"sig":"MEYCIQDa2OmLU1VBN1VL130vt6gSVFaqdMWl6T6BcrWv8dkiBAIhAMFgx/ZSMYx8OMzh1aa8XN37ypn36mXQbRx2DfJgpssu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1070066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOZ5nCRA9TVsSAnZWagAAkk8P/0+T0kyUbdIBnz6lap8Y\naxDsav/N4rroYcFLP2LCW8LTAlv6AKLT3A3BEXJ0pyeNpvaLNhlNqhXQq+a0\nKcBeokE3IQI61mVrGhfCQgNM3NOFJJ6QmVMqrk4PY3mSG59hsS71GByPV/Gp\nxpRu9xaTar1eh05ivddkNNc5e9RBBJtuxGYAJJJyBqS5gfOHeu68R79U4uo+\nTlGQ1DC2ABpG7tPy7+ABUBHcRD4rf9ILMWYfvUrnQI2OqGWWepbmPVRwCG0U\nP9+DUtJM58siyumSTBmMMyPWkK+KZVwbLggVzJmG9np8a289RpabbOzcQ/1y\npm+y1edeseZoAjLaw7PViotPwF/wwXKbk4Nw1ITMpa683R1hb73e7kTdGDQI\nm1iklOWuOg/Z1GPPCLrrbJWDogKo7DHAoPn7SaRaKsJC+wlMO9+QMNx/+ilZ\n9NYyDG+lXz0kZah4BhZlTO1JLr0voUT6XynHqol7I5qdW7g6ANNzjFSpmA9B\nc6ct9CgfKqdL+IEqkkKnHRs51i3voq0ex+9fhAUgdCqT3NBRvwNU9L3KWL5h\n9X8R1Qm5eYcCpGMdPIFkYqdmeg2zoafijPSHrLr8AvDdjz0XnKzQbEj5KMsf\nWHICkqvI+B2luUc3E8gRoK3Q8RYlhfE9HUp6OoqEw7ZOKi6cR/EjuTIjbbje\ngXwA\r\n=Ghd3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"d896311d441b1aa30f953a31de0317af7b1fb505","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.3.0-qa.2_1580834406699_0.41262066141171627","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.3.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.3.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e27fd2ba49c4833c63627bc3b71bdfd55543efb1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.3.2.tgz","fileCount":6,"integrity":"sha512-bJommUHCbaLfpBnklTJmvTvgMvCU971hqHHJ/zmaSHbtlz30EYD8UJhyPiScgQZEJxlzaB/SpwFio/CRtCM2eA==","signatures":[{"sig":"MEUCIC7tKX91dqz7qdA7xtn1tnhwiM0hcebYi4y/ybC3E3ZvAiEAnsIZokbn4780KM4N6aZM+zxmUDs2yexV41/6o/3xEO8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1070411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2JJiCRA9TVsSAnZWagAAAdMP/16hoLjb/lmZ2NMyD/AR\n6+OPeG97r+aIalt39RpsdA77KgYMQ4JTqSq3WMJj+sXeqnbWbChhIF2EWKIM\nEgknhdj8e4X6HphiWL1ZvHb0avi/c2FvHFW4zCTe7yvkxZyDmc9SNQHMTGbz\nf2gfSIRtD1uf8lQz8zyFc39B0iV2HcskQTiLe0snwQQ+Mr+B5S12Ysm41Obh\nrTz3jogaKuZVpsUTNIr5GudC3Nyek+ztpRH4D9bYUkvAF2yiKiEYjQpAMKvF\nUq2QfOgVXTKKeE62DKcZuOjh4opIU3bCeuRPWmzHOYrl6Vsd90k77R0iatTV\niYLQKbd0VmGxZ6pIfVS4/F4x5Y+J1KtjV18mEosLuGrm4IQtnq+Wic3viVJB\nmMi1OsfHPmeVm3QZgPwgKaSDWJ/pYnwpXiZ0MQ1PxaIVvirwF/ie3XVbVnAU\nc+RTpeqCdlyBDAKWPVJpZpKpx6ukDjepSdi+oeNr4MW7zAJ8lrNitRu8f6/K\nePqjrNK947iTsNZfej9AGUTPWsYvJCeUEyWVUtPFwrkseHVWL90t3i+B1kbI\npnfWi+wztrlsSqCl1bkOHkyqEvhvc4EGk4YAjqenuoB+c608bo/PEdjybqkV\n8upS4zRARca65vS8605JvAwx6tYsLg+ez76MZ8uQe8kEsmTIYHq+hKMzkqkW\nIqiC\r\n=ndxN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","source":true,"gitHead":"4c7468a944e81d1387fe8640bc4c5debc084375d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.3.2_1580834560506_0.9417985940155564","host":"s3://npm-registry-packages"}},"0.2.5-qa.8":{"name":"@goodgamestudios/cxf-runtime","version":"0.2.5-qa.8","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.2.5-qa.8","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"77af32b69227f3c87301b3e4fce0eff26a19d02d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.2.5-qa.8.tgz","fileCount":5,"integrity":"sha512-z09qQEqBOcO9kAGzeXpBjXY085oYsMqOuVFpxb79ua57IVQuFv+p8ywWWPLkKVVV+FrAD2GaYHE2TloP2KMMsQ==","signatures":[{"sig":"MEUCIQC3rLAcixEYcNSb0FRuwdpaU00waeFGFWMigk6ulcki2QIgSZ9QV+yPeAbgW8yCEjXWkhUAh6rmEmhxRdqHGTUVRSg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1071876,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeObIkCRA9TVsSAnZWagAAegIP/jJjpgQWkSCao1w9/O3k\n6z/96pfEO814vVQkB4ulS+b06kwTPLhUuwWso/kQo0MpWsHiKD0ZHd/ZhsM0\nnvDMi0gXA0/Q2OtnNC10z84+W9RidBEbYkBrXGNNnTxPL+Vtac8NaPlPyg1m\n7na2xXLV7hXrxm5PPuso9Bq0DZxC4hZtBM7Wdba0FMwtx0+0r2OtV4W/mER8\nVuXwwy0whmFiNOvb9j5Bv9A6vAtAWL69Vl7xvhrs2o2EZh/qJGoYPIOu9VLt\nZDMzMJQxZJVSEM/OTNUc6RuGPK2SwOzu37OHeMqZEIPNlor5k/JoWEogcRHo\nQBMZxTkahtkdbJoSvLsvcyQ79nlNDVfFXy/z6u1bO/xJ122imtYcYyb15xAH\nKHIAvkTyeL2h2sMCf+AV7lhlc0JDt2AhD91vPAq5zxh0+vIdy04zSVQcQB3o\naXiNf3ok1XGE7wMjcE/jFGj5uaSYAqOsruF6mD8ofU3/Mo8gbRy8cdnKDPVR\n/RXWWI7aL6vp7P8vD6+CFvHaYeUKaESxvIgP3g6MEWhMEPb6mt+ttb2pPf8t\nZlXjHtcqagjzY3SR2OsR0FECrECQ7og/Fj/8K7Y1wbb0axFlx4Dcmy6V9G34\nawPMaIhdf7zoq/M6izDiBTSu7bD34yJ00quZrBArkY81lI+eWoWsyAtVjbGF\nQHoC\r\n=rYnl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"f430c991ed4956bc7ef8a4e32a0bdc1b75418725","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.2.5-qa.8_1580839460150_0.16269277271417493","host":"s3://npm-registry-packages"}},"0.3.3-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.3.3-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.3.3-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"96f07edf80c6efdb3ba56a5d9102cfa4bf9f996b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.3.3-qa.0.tgz","fileCount":6,"integrity":"sha512-rwd7iaywKKDqhov1Bx0aiZ+plH5KsAof7rX4c+hGANWbEMCVsgIrzox0SNH7iJ0QUnowDJ6fSqAC3EsdKCg+mg==","signatures":[{"sig":"MEUCIQCD/DPtYkmEAWTZaoQe2i3dhOm05I0unOT3stsbUOcc7gIgERd2ffbg8em8tz5GoXHYnuIP+LimEx6I2GAbc3Ec+t4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1070566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeObQOCRA9TVsSAnZWagAA/ZgP/ApFZ51hELculaVZtyxe\nxcLbkFk/RAM/dCOMWTpNXOKdPBuqmT/n9Z31y4oWS8iIcOm8p2P1m5em94dP\nJCGqLym3o9w30DUljWvmu/gZ9EIVmecT9dSXNRx/jP8lbhoiB2Jv0PXD3Kih\nhpJ3Tb2sBzdpvDsSrEJZLC5CUqT9NmgRMsr3nrZozfSHgnGr0bEE9aYlhJU/\n9YLbSNumr9YaO2NdRI0LVO2Sv9POp9bUG1V9ktjVD/YAUswhf6V4I2+dY+Km\nueNeKTjVgllc1aU/+vynk2JT2O82afO4+1PyQIDkC4qNtLVhfx21/dM/PyU+\nSvnwp2ngquUoKWP5H6FXNB4UP+M8V4Xst4nRdC1C7SXgai3gvIfi86rzwHoa\nVQgwsquEhTPsW5XRcqxtZNlBjNVGgErjYzhthSN1sQXu7VVGcDjAKlz9TB/c\nahP9L1lghOMyMzw92ZA/HVk3ENvkKFbgm9GlH9Sbf2pA6VPg5PDh/6AqztdV\nLaHC6Qrn1oK9SiDQriD4eN7/QBr20amepyKjkN8GgMTvR5lKTtGT9zoLAbCz\n8PflnNV5mHBb97Y7wT3D4Xnr3Bw6pKS7tAVbAGv6VdXJNAeVy16KmsJNVWvv\nlhYE4R6MzkR7ieU4lcnF9DLg/T1FDbjsyclni9FIe+sVKdlzInb1doW/DAIB\nfvTP\r\n=huMl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"04d54138c25a86d3cfd078e0fa40531503f13d79","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.3.3-qa.0_1580839950190_0.8824792002398727","host":"s3://npm-registry-packages"}},"0.4.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e9ec6e86daaa77804ff2127b83353cf0bd425369","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.0.tgz","fileCount":6,"integrity":"sha512-/vtOX4a4Z2Z6GYOpcVqS9I1YRcTRhTN3UGr50pmpayclvJGxKPnSwNBNPBLRiN9KPQzz+ha88XnbsUPCVFU04Q==","signatures":[{"sig":"MEUCIGJQvbSgmOOpcYVHygbk1K9kLOTtnGq3jWFxjRL4o0oLAiEA+tD3JU1YwvqQAldd9h4E6Zizvg/12vo5xGY82TUjMP8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1070944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeObS2CRA9TVsSAnZWagAA8I8QAJibwYUPQAoK8gDKpTKe\na/oRyjr1LPAQf5QMncldGQ+X89PPSKaIy3xe9bMf3+CToMINd5tkHAbMpvc0\navqjVB/k/JWapR6ruk6lfvXt8WA3BsThX32B2Zbf6mJBqdFOUh1EpbLBm55M\nV5LH8jzWBMxkUP9Cp4Za/dZ1kL/kKSmPrOd3ASOXx0WZOYzzKyoa3JzGklK7\nW6MepJuaXgu93fpbRN9nxnz+ohkytwCrd1Bv+FGiBDxK7EHGLy27wPDCCoNi\ntAqRCb103tKJXrhE778k4e4m5iaNiNA6UvYyAyzV5ea60ZAwkJ/vRUbV6d+I\nx6h7hsSMYdF9FiR9ueYmP+uDvytVrov+oKHBrbByIyk94oIONzn0xSE2DiWi\ntGikuZg8J0yBpm2s98qAok8uvWBWsR7eQea96T9Emx1XuV2P6UueV1H9J5Li\ngq6Lu0orU1BnotR2q4hPri1Kp/1xYXpUefSTFoYyatpRE70Jec5tAPvhkjpt\n2JfiD86VGHxGlBNtP4N5Ge13JguELbpXtfznGjK3AzbY7UQgJEbFyN8A1qms\nxW5LTfQGIxnFgY1nfn7Vp4/KpwpjAcDKzlzjWR8xHoYwvSrBei0zgKhs9UgT\nCsS1epXjqEMYjkC/2WdqIXFXVcXqD8AC9MBGn5VzBjUl0cQfzD4WDv5TfWxx\njr3a\r\n=xpLX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"93fbfa1850ed22f69e739baa4ecf76c62d57051d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.0_1580840118076_0.16191766200407054","host":"s3://npm-registry-packages"}},"0.4.0-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f1a37861454be90ae592fc1ba8d83d99905257a4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.1.tgz","fileCount":6,"integrity":"sha512-qjpXNz9EUgcVWI7ZmdgURJrKyN8drh/y8gTNIIYhVf6dFHYUzY6Zg9b6W77V61QvVxvbjJKJqCZYPvq95tjF9g==","signatures":[{"sig":"MEUCIQCs8dPJ2Otbm6fDTXj5XPYg/wZmR2pzXlr2BF6arCyzvQIgfjWSWuSMfHtD5zGI8qzUViPMJjdvfxfv1OsEVXSG9q8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1075345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeObajCRA9TVsSAnZWagAAHh8P/2MlHfvtfpUBFIHrJT14\n1nCSxkG3pRj4H9F2/I+eIa5A3baplT7g6lzCr7jJ/oYWmYzp5ww9zNeWt9zs\nQj0xFPfJ72zfSDOD72YBre6VHD6C9Mml9+DbPIwlyrU2vmgHySls0fJ0uVsa\nHvZhCcEYQl3rlPVPws3322Ea1pCo08ILoIxMySvGOvZlu35bPn0wN8hbG0GF\nbKvJnudfGQ9VdAKnl9tP4/UzebJbKCcJrg4Nqen7+wQuARI0BUEFYvoGkRjK\nHKf4aBHiuwEWgAh992ERAHpB1wh8okQjZ/fOwoR9y/rCercA8MMoF0goMm3d\nNjWfE86T8zKkgDK4o9y9jr+Psju6oMk86ek+vJ4Rz4ZOLC6JYJH5hi/Ow1hW\nyNwkojl/ilFQ+eJwORE3jRYJKaR/bKz+6tD1AUyozq281Ubo7syK05WfXB34\nEslJYReOSE8kA40JDHhJZnW45K8fSY1ZE8RQg5pEMkeuuAhnkG6UGuDOOUiX\nKiyJaGWnte2N2MiDelNwX9Ov7zY/gEDZXG+22U9OWC5kinrOtb3E72b5VByO\nsNsBoPsgAYjlqKcBLzJRYBYlYLoy1Ib8FO2oe8iMhIZhCx/qYJOjF1gCrSPR\nx7qTzNioaEeABJ3SjbXpsJQzqGQiyMNPNX7j7MC/QyvtgiT0h8qxNzl3virS\nEavM\r\n=m+a4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"49b50371ca0078a479af743c6e926d5584c8f955","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.1_1580840610656_0.9936711875990711","host":"s3://npm-registry-packages"}},"0.4.0-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c0e11b809da04c3749e762d54194008c0f6d3895","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.2.tgz","fileCount":6,"integrity":"sha512-apfkEP46PfBuAR+2PI3NdcKl7f+rE3P32acWQxR/r9DPDZi+IC2aAo4cHCLjg+4OnZShT5ZNRshEM6hYFwRsiA==","signatures":[{"sig":"MEUCIQC8WgBjCd8xkg8cQgHPjVTRPyOZHVa+QdDRx/F2nOVhBgIgVX7vrAsbl+QAX8I+K+3ir4+G35D4W+rq6bcnef8DgKc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1071220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeObjJCRA9TVsSAnZWagAAkUAP/RFMVLEDC4iNCdcAkA1w\nt5GSrKehDmdmeWwB/FScpmmlOukFaZr/RoCcdpdLbvSWs6tchSndPNiLLtBL\nB+RKOCDwv0Z68dcvGnkJh7zuAPUDZE5Z78Rb2R2+Q2cQ0xqfwdh+BChX2QiF\ncAtm8rI8v4GAERURKiFO6uuQV9ydrLm+XTG6btqKMYsiKtenWye1nodQLP87\nonh9CzVc4JaOeI5xtrBepwYr2qnQW6vFSrFG37CQAjlMOt6rOUDvO1JpqWNp\nKtPE8E1WtwVYfYBGcmcUDHj3p3O/biUKqbl3d8eU5I0iPeMpFkXRdtaS/0lk\naeOMtES4bmZv/X703ibOSa19oTBLZLm/WOVhbi0p5gnec3aMoheRUzGHESE5\noItubuVJvs70PWBPuYz/XIm5z10Tlw5JCtcsjnyGbU5L7UFTvuvW8T6Qzoup\nfuV0IMEASmDut5SFW4YhwWPHh50cEUmocDVy9K8H0AzGKZFRss8zcW2EZ23O\nzKTx4hX5S+P2i1ORDWjd5h2lWiGKgeoZrZhSBwLX7BcWuvAuFvEciU3Q3FDB\nkpvJeVmqknzcRlVzT+4fuK0b2qFzBgqKgDiOJ5Idvyw/9DAJbU0pp+wkrKs4\nhbGoYHMYzo6769sp36dOErNAkZpMu7LxmD19qlXmsRRxPmGtAh+cFmRkQ6NN\nLYYP\r\n=Ju0V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"76caec85c6ba78423a7169cad6dd3a4b32e3f3ac","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.2_1580841161011_0.942094622308679","host":"s3://npm-registry-packages"}},"0.4.0-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"8d575aaf3389eff277acfa73d3b6f535afb12abd","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.3.tgz","fileCount":6,"integrity":"sha512-e6tLuTjHXgiev+p+cxklDaLARD6FGzl0ACjPdLcJtNeAl0I5VApwU0Wk8U3K9Dc4N8dT9GxQKaWjr9jIugz50A==","signatures":[{"sig":"MEUCIQDeLxO2b1dGpTb5wNUJNtbwHdpuZrtAcGbpq7F9NI0S4wIgZSyjAbZWx1NOAM2oqM2IGfqdSp65UyM4reoXCwdm7qI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1079372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOpu/CRA9TVsSAnZWagAAi6wP/3jLh3pxHbIWdLoe21TK\naMZ6qZXPTN6FkO14+FjbpG2fgFE79kOJbQ0iomBdHsa4JG0KaVelB5IuJWuh\nOdC9nZC7d432M9Wk32ntQeQ+mZLFvIsNlnEFX1X6XVhO39aN7RGHjiuC+fUr\nHgBJRbp9S3Sp/MJvaMBBAW3W7I23n9US4IPDDTHdgjRqbg20haZp3LXzlu84\nt+2oFXP2lrUX1SA/sjZ/AJ9tFWiHJa8l8GV41fWTLYhkkScJCYDY59FHIhaR\n9fyroI5IhE9e8fj99BLcZkgAApLR13dcXf94YYfyewswWt3VjUM3VQA0YDcF\n3HOXGpzbrEt+hxg5Drmke5d7D3cWo9PbMtMa0Sj4zh4bemUR7LtabP629q3A\nl1B2bRxAsq7jkh97zWPvYcd8ujl1AfFagyjTtY6s5Fg39fFN8+FSJR2FZFNl\nOiXWZwxsFu2YlS8P+4DPvmjV7dyZg4l2yQjU0K3PKdo7WZh9Xd72IuPbobBx\nmkn0SIY9WGtTT/szuuNIl+aMqzOAWi9/sRPKWNlWlCeleqgcrk2sWP7wkxl2\nCVUHnAd6r7oBUZW81NkNbx13qv10ZrhQ142R+GhBpuNRa1WTrh5W8TIR5WBt\nI2rzWQ4+2mJsi+RmW62lFs40OD3uF/o+4D1Y0mobsWHw9rYy6rtwzfItlLCY\njDf6\r\n=Fn/t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"bddc57a9ea49995488b9f8f49a181bf15c375c5c","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.3_1580899262985_0.9297845581817419","host":"s3://npm-registry-packages"}},"0.4.0-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"bd0ba12de7e35e575a44490da39e73c3b18417a3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.4.tgz","fileCount":6,"integrity":"sha512-tNBJdY/I+YWo6qUb0w/QUyatSwwuuwGJ/N/POajQB23to7gHlX25IHg/5uELt87mweRaFYQa0Rz9tS7W6AtXwg==","signatures":[{"sig":"MEUCIQCf3U+5fTaP4Ulgf1bZr9RVB0ho+1Fki15PPKtQQRgheAIgH6z1ks+26Bz7hdeIYvgCy7vDWZSkjQKlHFK6E2Clt0Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1071496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOpx1CRA9TVsSAnZWagAA8GUP/jFwqnzG7NK8vvti5POL\nufJ4pg5E4MRYT6CoTdUOcnoCt10YHgjasNitpH/XOl6eS9VCskNX14L+sRez\n2/A4mFHh/Or+Q5vZPz1O2JYnCUQPlBqjUgjJMoy8fDg5CjpXTAVivtN4yDs3\nSm7chkEcjfOy/nRSD3QPfDdE8lxf5NthlMUUMSAtL8GgdLk3oBRhqNdDmLjQ\nYjR+Hs6VYckIUrpkr+7nhyvcOf5iYQPaotLRRqhyMxebH+MI2O3k5YvYinKZ\njE6ujmLnZeK4zbJbsgz3XkOHmQenR2tipzEbhcXRNQ8mV/NWwWJAUIqNOcYM\nm9pzAxE31RbjZMyRLVvImRVhbZnBNnln79upN4Q8jqDxcBHM/B+3PDdxi9Cv\nzEjKLcpbIoWZC8zEfsVhcxgSWU24rjePzs5W4QyiI1b4KqsTMI+Fyh2Oksid\nuWuV7tw1OnxP59j3n5WTMXR8VkSoR4ZOmpR/QV/mTfyOg9F6JWoUdBkrPSw7\nf56wBtMknFSAiCbhdMVvPQhLlaKyF593gszg9c6J3crLl3FUESF0EQAbxlFR\nROFTq3l6GTQjnsXeoxqMAv5BvG2GGFO5BCITcGe2QBGlo3vKzfxpFGqoNjfe\n9deYYTO3NfyW+Eo+e7Mg57hNN7dfKgHNvDFjXoqiYtQ26sZIYUtbroVRqrm9\nM5if\r\n=7seW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"64af65cf7a5efc5588ddb70f734c7240b645b698","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"xo && nyc ava","build":"npm run test && rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.4_1580899445033_0.0523003802260098","host":"s3://npm-registry-packages"}},"0.4.0-qa.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f1caa860fdcb2e49f218910dc1e658a41efa613f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.5.tgz","fileCount":6,"integrity":"sha512-j2NgnseevKwfkGOuVp6+OLz2K1I+coxuAdmh8I+5G0u0ldjMTlSkVXoMOnxKGbDSm2HlgYaB1UZppyXxfsf8lQ==","signatures":[{"sig":"MEQCICZzGcR3BlqU0ng7YxbNMk3BEAg/fk1Jw9h5ZzDw03iGAiBLc1CZ2Pzwo8ExjA1E2uQQDCHWQ2iolakwyacDJWjPyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1075439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOs5ACRA9TVsSAnZWagAAmTAP/1cMAOXLnrwIvI09U26D\nNzv6fAFV6Ku7FwqwPTqplar6WQxfwfrwT9b6shAGaWzDaKQ9QJxEONWR0YWg\n6nfFAnofeAKQC+/u1q0CSArhypgmwWylNyN2T9nfPwYJw1ejev1FSaJ3TWWE\nAULJetnT9G7lws5nYznyHrEx6pJY8zXR9pJPxowrHBhIM0veg1vXeC22+J97\nTZ8MfcdQSildw5k26PAg2L4YHBvviqiT1ZSkYNPC4CcPfZRfBBal0oe4Q4WO\njj7tiG6rS8I0CnEZMgCMUtM9C+OZzWEBjAHDtl9w7vy61neyziUT34qOvVxR\nWDk2Hf5Ah+LEXt47QCVzI4MZWDdSyWB5S7FRRwe3b8jT6igyB2XkOnU5XaYz\n/DFcEkdgPVapAl+EjDJbR2q7/uEISuNMsq2fq4lWaWdwuw/zkuysWH/9HTkz\nxcg2duPLDoFKl79sISpdn4YqU0VkM4vB5Croty3+hFczc0qsPS7ae3c4lANJ\ny26+mphqk8xoBrBbNz00WOb5uvBD6SchcEBzA5+wWLQqs3ntuZbtTPqFWKwz\nLCtkROLoSaDW5tqbUTvxHCWfHoE1ixS6UO0kIgftCp3DTbocmM31YmWxZGd2\nPRMd36KSzBoQ6KE8N3ZVFIztev8RA/3XE+J6sQ4Q0kB0fKGjAac22dxa6vkk\nW5ch\r\n=ktq3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"f1aad7ecf1cb70aefbf256ab2b2fb791315d96da","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.5_1580912192169_0.07237214389572966","host":"s3://npm-registry-packages"}},"0.4.0-qa.6":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.6","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.6","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"5ce4c1812366c55b5264dc5131115ed4ac1f2313","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.6.tgz","fileCount":6,"integrity":"sha512-aVjNlIlm44NXsLLghHcyfu8hHm79pHitmJJo1jkdDDj02lclk86G9zQ4gWL/SgAi33sIIx/3cWcHgAnqi5oKXg==","signatures":[{"sig":"MEUCIQC92gXtS3ZOJrzpbgKAjjM9L98e0VmlckSlYh8XBuonxwIgHITgHGnvklnlf42FeveThuHUEa71pFV7wGKBPMrt+20=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1075577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOtFnCRA9TVsSAnZWagAAG1YP/RYlwa48YbYwMeDZT6Qt\nTyQaleiR9Eo3XdJXqFj/tjWCW0N6R6i1rlGOG0h6iozijKgKzb92du+ZShVe\nrfFTrU428Jp+r6rs4WAplgu9TYD588NFua8lsIPqb9aHUBpPNagC24tH9T0l\n7g7v/dpxyyfVI4LGszmjGfn9soldexFPMwsS/NS/7l1kWza1t0fMGDumh7a9\ngGF1RqUrE3eEpdCrSj7MEHfdznyBGHOe67M9vrmdYPxJM0PIcYi5NSMJNmTm\nTJZyHW8TM5rOJGfKiHA2Znx5+FLkssYrPFZ1tcZ/uefQgt2Hmu0djrlJ/aRL\nHH4lwb2+YaW9wBWo6VqfSq3fraCfpVzLofjSACo76Z2WK13RnS9D49cPgPw6\nxV0vlQ4GBWnjkXaXcODEGQTgo4zFFCqtG0V3ryaaY3405OiQ9YNrTRad7W+F\nQgPfSbLXRYwXuCme0dIZziGFdHokHmjnvB+Qk/Nbnsoyezv2+9eCj9I/bl9v\nDQskmHqmv4oB/OLMJtBb9+KJ+jJueXwPBJyKO6zu+x2JrQI7PSoJhVFunuzJ\n/NHk1ow5S95XsyqyKdYxAxw7Aff629XDWwZFMqbMAKl34baSYrGzD7Vxozrr\nNrwtsxnO9pQr5rAkWlilV742/q1cfLEih3WhXNy+5E0hIimLPd+bd3WV4I1l\n3u1x\r\n=wjkt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"bca7ffc60c990391b194a7989e66c6ab6655d40a","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.6_1580912999077_0.9305947072853555","host":"s3://npm-registry-packages"}},"0.4.0-qa.7":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.7","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.7","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"dff52fdc235725abc31d6cf2a011c3c62e0f9cb7","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.7.tgz","fileCount":6,"integrity":"sha512-FDuIsOcDc1OVR0WwLenIuNcJXFJWek/fU0cRnycMSTpxCr0766FQx8y7ABvHqQikqLQfDhcTCrGdo/yYVitnsA==","signatures":[{"sig":"MEQCIFKxqGXHeXDyK02c8tUk18wupCjVHrYQ3pVp+qzu+D5tAiBBHUy5mebjq4CELpzr46fGIm3GykaC9uKME9t5FL1ytw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1075410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOtvkCRA9TVsSAnZWagAAN8UQAKQK7hiMb6wPnKQv3DIr\n0F/grh4dnMFchpN1AKwDEOTwKsPvRzKtnx4bl3xd0kpwl33TxinJSM0S/CfA\nOJJ0pyZ4MBVcyZcwilEYdXwsre6e9HnrxnguISOq9UqFh7JgKo1Emkz+6DJ1\nMkxP4pyXQWO75V4++FRYgcinOFNpaPTIfA+7YKhrdMCmNLVJ1iAZ5woTxQwO\nwk9jlcQ85ByYOK0xQLPcfa7BI7lDLjvl15/kSI8RsfHyXfSz8HAt+qU01qwo\nkPtsO1DH6Fr5nJKl5OK12c50zfjOUW/of8k+MSL46P2e5WOsG958jK5XvTiu\nmquSIPLUg8KyqAbg46wRxo3t32btFaf88XY0Q4+jA8/ct9uR8WmoeeNwHdsu\n4uPt7EvYfvsD5WBD9KNlG7eR4nplzPvlwtjSqt1nNTIj27yf7OjTBhfkuW6U\nQPEX3VUacTNZQoElSKDVsXFPVM4VzVflsdlqhhBl7ps+8EzOFvU+dMgOnB4V\n4zR5lNVrSQhZwn8iDS5f/bceFWlU0u/lXczjLgDfUbyAh4lgE57/02kgeplx\n2Fi+mBWq1ClFwIxJyMkEWTF2/IT9YlibCwXKPMCX11EvGn1TmzGItNB+SM2q\n3T8ZcWZexNByhYPkNoIDwyK8vTsg/2SLD0LkjPu5YO0R5qGpU3DnU6E1c3nJ\nFKwW\r\n=vtU8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"9f2bd67645524aa5cc52d853a2cfbb5ac180069d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.7_1580915684277_0.7207644263663671","host":"s3://npm-registry-packages"}},"0.4.0-qa.8":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.8","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.8","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"1264f248370db184ff484bee9cc1373dce21fa53","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.8.tgz","fileCount":6,"integrity":"sha512-HjLZkE0It+tAMXUTCD4zlfAemgIKQJkyqX9pdkPAMn363XQyZ8ITSTzHKUwDFyyzwcvXtUBa+WPKp3zuLUYd1g==","signatures":[{"sig":"MEUCIGyGx6k8D9+xzw5/Zoosu/Hcul46UXR9jVgPCXSB1uX4AiEApEGb3kiEKEqbpVq2H3wIXSzIV1Us3Q94U2JHUAGP6ts=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1075296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOuE1CRA9TVsSAnZWagAAcAMQAIGRuYKkfZe+/TsS5jyr\nUDFrNktQ3HGcaV7LK/22gtiKzaUmi7MzA3FySAvERkYyV3+hTz1gyGXFjWPF\nA+POGdQ7u/rFyQ7QEMqBUGaKXXo4oSKOIdQIq1MVb5Zh2eAXuYMP6eApravo\nAPZps0A29q6SsRFDWSiKTr1pJ+JH+8V8O6rOIaV2UExWe+mCWs3JG+8GX5A+\nVFqyiJ9P9y68CA28W4eHH9geUgdCMDgvVptcBwMN1W1jzl+ZZrD1AWq2ph2N\n1h9NHe8xQXR2wSap5FrjkkmN/98P9jsOycZt5HMZXHlKmeWYO0QPSHdw66oN\nb8sxBjOKrfTnItXmdGcT75GNf65d0SD2UrITPTp23I5ReOqP9qluJTYZhcCf\nMxAD1mASjqxn0WW8YV/48H0vaJ99An5ImGwRHUOyXBZLgtZctghSJ4Vhksxz\nWx/+bbRIlPBO3CrTlMqikup8KvGarnZxu8kaL8tL1G93erzbSUC6i7ofsw5q\naBAPHvZi/Ett4m15xPH+rm4UzCyW+EdDG7uv4wzi73bc5hr88br3anvcYzsn\nUFMp7F/8LJnXWgR+6k8i+i+cY+0wRHr0x9COXabuWMVGlcl2RXRd20hb4J3b\nkhOlpmAG791TKKsMIdwYNJCNJwFHDQous+T5zU5LElqNiwCCPVc7+jwtBfJS\n8PyH\r\n=d9bQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"0cd595e79c46e7aeed2cd15b1f37b46b1a5b6a98","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","test":"ls","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.8_1580917045202_0.05574985660939724","host":"s3://npm-registry-packages"}},"0.4.0-qa.9":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.9","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.9","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"92a125f34c19a9c4bc9870bcd65aa71ca3906490","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.9.tgz","fileCount":6,"integrity":"sha512-1alPFH5ClflF1xKGzPFl3nrxlT+OW7GDw3sBioqWgUBylHKLnDgi/bCiXScBiOAEaFLApCVUjfx/37Y6JLgJqA==","signatures":[{"sig":"MEQCIDDRv5jnG7IAMy+/YdzR/pv9n3/tqoB/rDapqm5TDXOwAiAU1mqHOg6TM5RvXikti4NMNIWzCuiHJqWoReishynqXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1076865,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePTHoCRA9TVsSAnZWagAARNcP/0Uu+sALN2MpNcss2Ldh\ngMXEqzP4EqxSjdmFdvZ9ve6dWHxfBDnZOzglR1IC3ToSyNsRKNP2exHw8/iN\nS8qRV7IDNgMGrT1tozayTFNUmIpwAWHbTzzLKr0QVOGMZtGZ+aJ4zu4QbE3U\n6Gd/vdaTYpefw6iXGhx/8MvCVIkodX+twusOCsPojUYNWEUtCguhxR7igmsq\nisaq7ocv67/rTfgUj2ZeaT4Qx9koRRq3tg56sE7yct8QKr91hJ4yN4TK6cxn\nvznhRh0ycMBK98p5glsWkgp2PGv93zFZGqzCz+aXVfqA63qIOUDAHa+ARtY4\nerPx6UvWRm7iF6jwSKeG/iCil2P9wvkrHRh4cXxpCqNbfV4c1gRcUKnj9f8o\nFaRQR0Se9cowxMNuiK4B8DYe48HPObbfhIrsn2cSfdvQkL54iYLHeagr7RwK\nxxEt8nx44CA4x9ybwZKTr8UNOSQJDbkjZEEyZpcF1Dc6m7ijUihJxi4HdX/p\nH3vgfkhuI5GfuQUq6bKdc7QEUI4cplzluwwnZlrK7xcXpH8oxVvD76UFbacn\nB25JEijUOvJjVfMUIe0h2BVQBEzPazkD61ukB6Pm7M6+JDGcY8OfgMSSDU6Z\nyBcmgKx9y15G0zX0b65yVZnsO0ws4Xp0XX3A9+hjDjfo+zByozDq855E62Gq\nwxyN\r\n=IhIr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"037a25e115346661ab69140f55468bc82d44bb3c","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.9_1581068775596_0.07734769173109934","host":"s3://npm-registry-packages"}},"0.4.0-qa.11":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.11","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.11","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"49fab12f4a0a23dea03eac7aa30c003607966e7b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.11.tgz","fileCount":6,"integrity":"sha512-AWCcm/U6ufg6t67kPl6OoKuvDFkE2Riv9/R/2haIhkrVTOdMGrMjootPCTwYwmGRdaNx0bD5n60bnnitjEeVFw==","signatures":[{"sig":"MEUCIGHzMYIU7+ORyOZ/BZki4dcGvK88WbR1nRVCSZ072ueJAiEAyeb+YU8AdMDLD/YvSREsdFwqPP399tNyhtIgqMul8Dg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1077648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePWacCRA9TVsSAnZWagAAFTYQAJjIAlZq6MDQejDQzLTx\n77pkhOmdadFcIGkXgVcI3Q807R9QNVw8FrKmww2lIHRoAHBqDuoKMpGX3ezs\nQfv1YHWTNPMkObjwc6Z1cz3YJJum6Df7eAgjWxng5Bp9iGym5Q7Qv65uHfUN\n6GgRlf+NPTIxa6Ckp8ibeFGzIVrYzRrl59jeiXpyQNl2ZNJ8tHSbOWc5GJ0Q\nUPHMNG2LKssUJw6GCt3xwxnOwyeFS1NC+B/wvBxBnBNHKz7siHseZbARN4mV\nh76Z7pB9VgwQjw2PyyCIKEnZFH9zKJe9PUK7c4a+rQd/HdGYXGNj1WTY/oht\n0tbOJi2GSEsh4R1j1795kQ+gegUaKGkoYOU8hyFvG0Rpbw9xikPd2giGNlXl\nnG8dZ/tYCRRQEZ5fKg6pNjsehuVIbWc+e9LwNIlhA8o4WqIXBu0w2zyrJfV4\nTkIaVGXr/Hms+hvToZSpn/hIq+MgCOJrtLE/aW8CTs8oMGMmMt6LPlPAXc7n\nAQV0izi0WGN1DWnNKqAwYji6oZllH3MpukreUrT5Q3q6eGcsRAsXV70BqXfo\nnpc6DnS5PSvrgjUI9j3YipdJcafQ1SDse5+DeWxiNDa8jPiJwT5ba3+6yQPK\nUju2DreVhGf+vERkiKMvPzmq7vHVsFODKeazBmhq65uggLHY9nMQajCgI4X4\nAIIB\r\n=AIqI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"fb363ae366fc56dc62d45bcaa55cfb92081c199a","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.11_1581082267972_0.22924590910340048","host":"s3://npm-registry-packages"}},"0.4.0-qa.12":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.12","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.12","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"33c7def1a48bbaf9f42b9303286366285787152a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.12.tgz","fileCount":6,"integrity":"sha512-bhE+tSLBI/qBUnsUBm4tnyHH8ERRSj6Z5hGyFdd69h6/j/mvk2yeh11RWDJGQ3Xa7e2P50EkyggL9U4rtHKAfw==","signatures":[{"sig":"MEQCIChfFGYwE5l87pdAlrlmKhi/JMMBY7Ljz7fIneMSX5DoAiBid8IsIw2r9iAxtQvAq1EPD5PzjHvls6bAfQ/iAy9Gpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1080758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ+CwCRA9TVsSAnZWagAABk0P/0Imgj7UubFX0NqMwjBe\np3g5UjwVv1PBkc6NLMZp/MATinb9sLqhkMgN31FbbbuAiwtFvWa1JaulQ1YM\napecJlYHsuMRTeF1kcG2UCg3sOlfmI640H/uEJZI2Kll2NYvApekGMwI/iig\nZ+bJ4pgarfR6YA/VZmoSyxTXsllvjU7bELfLJamVjBnMfUMrGN3OK5IP3IEd\nW16HTkIdUBa7afUbdZ+lMYBU/QFIO0fClUig1NV2Qj6Me7zT2LuYcS4aTev7\nQ/FvpE4wCl3khv90Y0lGl5aysPdC+oM7EBtCOOEb7NqndUj3+JnGWittNAUJ\n3qlOM3LXmn0xqC1IqnsPiVD+87Z4C3nfMEb3msDuWcmWryzg8gatPmlw/pwk\nIN+vDQ+cVwtN93jqt4C38z8NUWczRCao2O0iPZAd3drtDSiyqzvhnxPCNpLo\ng44J6hZ4PIln1IbV5v5V8vocqpiO3AjKAm6tsSBINCl80p9yY2kByFODg3ya\nwkJDr+RN78Xub2lmZ5nJZQhtU78+dDROANdLUoxjrm1uVjBYL4A9WbWrfJmB\nWeTC83JIMXf9qy8K5y4fk+9HjC1eHpvEOzDzri0PJHHCYmFVfGgzPoBovuRp\nkprSXNrmrA8GOQBpQ6yVjLpOzstOeG0BT02moP4pQkTFLBIGb3+BUO8vd3+/\nXA9Q\r\n=kULK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"3c0583e794dae7a31afa79bee9e734e8bd3f43b5","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.12_1581506736235_0.3625540581991755","host":"s3://npm-registry-packages"}},"0.4.0-qa.13":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.13","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.13","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e61badb39742b88986aa467e7ae45b4daff9e9c3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.13.tgz","fileCount":6,"integrity":"sha512-/J2zeG/PYy5hiU9V9QxJeXYsf8UZMEqBPmsY+JeacPK6kII30Vqj/DCB6kGwH6y7RZ0da6Epw2/Mp3PYOael8A==","signatures":[{"sig":"MEQCIG1g2rmmtbyV20QgVxwNladfuL4FeqAfzuYMSS3FrYYnAiB8nJnMD2Fs4q6QHH2c7RvdSyVLtA2iX/xtQVs2eG7/MQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1081577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ/GiCRA9TVsSAnZWagAA2EwP/2Aa+EDmg5TeVT4KExJ0\nNYI2uY4e5DbMr5ZTwV6jO38ERHvrccEQHBj7ZG1WUNAQkrWh103r30Em8492\nf2hIkMsJ0RKynq99AC2kHKGn1SZOBqOOMFkBlrLp9EFeAZEJE7hErmTcApgy\ngazLev7Vf8GA1JsGXFqkSTQ201Eb4eQdfDwb3UAE1nv2VRqQYk97WJbsRQrr\nKZDe13ja727qZsz+WalgEzjz8pqwxOsxSgk1QYRNhp349cvgrk3nJBh0UYdA\n1/+wqEHBfxK5S8RMYUjMjR4QsbL1lktk12+JKDg0zAY36T0UsoOAlm6oea60\nf6jDsPloMeue+2P8QnsGezbS4/kusO1vs3mgCWtBpKncK7+iz73qECB04hqJ\nIC8WWpOuHn/JEZiTtlC6PLEk3B2SSVtScF7CzjmdoVd7TvJmwLAYYsQDIy56\nSIwUzoI9L3alj3ge2CKeOABqmweLhIGEI7K7coWyqmxQmEJz0WdTUyGlr3oP\nO8v+jHZESxT+xfPhJMXrCRs0+46+2Y8JpoKOc16Z3yn6qcUox4NArVARq/16\nk80xypTfv0t73y5xQWri8YWIKP3XnBDZ6D/bcKH2/usFOUcG3Z57Q352noio\nRD0DlFAoHLDLSw/PUy8jBCDwTouSNZ9el1KCfvmi3HoEzuw1NtCOO2F3qSMm\nZvTT\r\n=wdM0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"ae9b553608cb63ac8c7dd842d6326489881a7828","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.13_1581511074174_0.49120033331645363","host":"s3://npm-registry-packages"}},"0.4.0-qa.14":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0-qa.14","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0-qa.14","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a7c7dd8fdc6543b9c3bad0c42f228d1e70339588","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0-qa.14.tgz","fileCount":6,"integrity":"sha512-8Zto+BPw2cOjrk/BBh4dOMPJZptlI1D/hpZIWR7Lh7wxxFOwOvzVAeJUoHlhAXFugRMeYQc7qQHuKfwH4BxXPg==","signatures":[{"sig":"MEUCID5nWT5p20/qNCbd4FQnLNwQGqbNqs4VmG6XsukyFCL/AiEAxAjk8a1kvQfbwJSWE0MQRDjeonwqo4r+q8hhEjzN3Sk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1082273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ/MPCRA9TVsSAnZWagAAO1EP/29dX9M+hKLaHEEoGCWw\nJ3gkHxcw5VSDaUk3iwBQ4y/AXTN+nmPGfV2ucP7Icjfrx0svphUETGYB7ZFZ\nO4YbRwAI+EHcxzaoXQRibkL5Zebi3sEBS9CsZqCv41u54Qn96o0oePl0sonW\nzsvxJHlgEmWFEx33nTRKZBqz5FgFMF+pMxvKuScyg95SRqXdXwtqUEqWdgfh\nbB9zajYfqM2HqQpuEyhQRGdkD5ND8cIGBn7GGfbuYJhD1/88UhbM8LU4JnPT\nL2vxkDHB/fmRElnRtsoM6e06qEMJ0DjgGmzEQSQa1XDGtV41vcGHdL4CYKje\n5HME1l0HQc+yqfqNhZEBIThbSCw/JUtAVUZPK1FcvmhPF3fMolhccywhMVaJ\nkxcnRWDOl9uaGdW7JyItSnnk6fdDhK8emYXd2xhHKyy/GUmo6/66AqrNoNX7\nzrkzaM/2uJ4qc3rOw/pSTXfUXnU7NrPp4MpfIZzavEvmBoYcDCnpYN9iQsDi\nn9CJK28VpwJrZ2d3EU38o0soBLrCrnONZ6HCRXYVYGErcc51aXpbBX9lYfHH\nv1g2AZ5o4/bkH608pKTA+Cx/jd58IxWOQyP28Uttqvyc9OUq4/y/mKUdKuMr\nGHA7vpDkEMy99yb+7kubp3ds/8ZiW8ctSxPD9kRODIyffGCFkGnw8rZSe7KK\nhl8T\r\n=3FSL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"64d9be8e7a0936106737115320351937e7befc0c","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0-qa.14_1581511439469_0.17133949208430055","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.4.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.4.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"d9142c60dc1436a1f0b6f65bc4045ed18c0dbc4f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.4.0.tgz","fileCount":6,"integrity":"sha512-dft9IPMvuFwHFvRTLzK6EJ71EwEw9IQ2y980g08xT5B9015IcwWqF9btHZ/G0IdNqjpCaF8QjLC4wLAJvZsaRg==","signatures":[{"sig":"MEUCIQDPjakbwnjkM3aZ86Dim4wxwQnfMr2bfJf0RRvUUWn+1gIgTR04AQ5Z7Q3ILQhdaY/qg8iqrFjQOk51hRM2FgeHemQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1082337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQ/vtCRA9TVsSAnZWagAAokMP/RaWj7Np0Ke7OeVnNJam\nFt39VySzbatSVByT8L0RaeXFdVRWE62MajBZilzFHCZEwyIlMCbhqbojmXxW\n48iGmajKuBpv60kAiccqNixusFyksi4CL7DG3dTtJTza2j6WsutBxvN93CL5\nyEIhLLPbPp2ok75Bg+UgTKkoNiZRrmvZksX8VEY4qJn0BYUz7WQtK7d+bPNU\n6CAtpZcjzoWv5vkNiKarTtbRTTpxvw/puVpOknKHO723p3YE57Sp7YsW0wCc\n/ZPF5Yv/T83Rj7/4iVOW+SpLcUEOXshi9k5qOOijhOXBMylQprAP5xp3P/Po\nO8N31x4mFjL0Z3oATfFYvu7MrQveMeNCFb5ewTgB31YRjb7co/TGCD5EmFP1\nDvefn0V357iwjh0/Wmkpo6cKD9hII55w8Zm7/+B871a2NMyn530MWssEQA9L\n6gynrhzFF5txtU5cv8KchvYhtmAxBldPQS0YI4yxNb6fp5w3ym2GbicdLJlm\nzR8Qc4hNFEwaUW1ikxwLUiovHT3UTn/6XkCo+7j1rbxtORScnIJNr0KFK/2f\nvnhWHHdFDRcFRq/+CFfdJKX6N7dWOi5MCkbYTDV5qB4eWeZK7FTRTxnTKy6R\nmmDqqcufvvoxPE8YzP+0QiFwnhsjCM0FukUGCStUXIYAPZpXovDnqKHHa+jP\nFpg7\r\n=PNd+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"1051370c290df1a4c00e3e727ae53e0f8e0fc6e3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.4.0_1581513708767_0.8626989737290445","host":"s3://npm-registry-packages"}},"0.5.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3a21d378fdd7f8a687afc5127c726acad4134c29","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0-qa.0.tgz","fileCount":6,"integrity":"sha512-/nJChhJ+pUG1sBm0vg0qTNRhA6scEzvO3HnIlM2DYO0OvH4pFZ9qdzk2ltbpM5aBDyopBKQg7RgFSGKJgyVQ2g==","signatures":[{"sig":"MEYCIQC+ia9MUQ2rZtr8gINKLwH8kYcy236e5R1PjJv2hoyEPQIhAMFRiwGzah8xS6PvN8EhU298Wyn75tQWIXrwoVA37Dmy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1081895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRBlRCRA9TVsSAnZWagAAX8kP/2SqLA49KG2k6YDQJr2x\nHAVj7mxxEdc1GwQ+3cLVFO0m6p/Wan5rP9pAmU3oORnYNGHVWAm9eVesLXiU\n6Ln8Ln6gwN3O21HP59sLgJZft10LKeoPatiaObJ/BRn6mOm+8vD46P6N5upo\nq459e6+mERRdIcVoYr8q9IKaRLedtg8lqPdkqQHZe2Cm6Lh+W/BkVCE0+Gyr\npa7CO78jKL6awb1G8rw3tJhAy2SFmJnWQg/xpYFqYTHTRPO2dKlggzKPYJSu\n1vaRdosfU/V0+aynXe3/8okrFGaHfb9r2I7Hn3RkQANSvTlhI/KsL4pRZ+oe\neKPNk3lugj2AdUN10eBb+xUc5abPpyVjtUFQu+COGhU5igJkGKv+FHYt64OP\nd5r86V6wRi5lV+Q6VQsXOt22hrVkGLAgVc7ouxQUxcbXyTyI7uOGtvIux7Vd\n3+gjCbVVnhVpPrMLeIQ8LZHWvBo2V+pdffojfLSoppaObZb3oZPexzbyLp68\nZ7DoEsdTGxgrTkWkv5p3oCZm3ZMpTKqWjENi2uBcWhp5/8qzTbKE2PSsYRrS\nbVH00IHnMua95y4BVoGLsKNACgdjNgFDga6D/O3lMQSoLNkFQWdEASPMrnh5\n7XlsW4oq7fzw9BwVGzMT/jm+NbAcKzCaMUWwOoK17KbozuhzIu4F0ywi0vgC\nWU7F\r\n=0tIw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"9916ed5e537547273feaec8d2fa9b0c9984f0f6f","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0-qa.0_1581521233486_0.9561263890228482","host":"s3://npm-registry-packages"}},"0.5.0-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"445fe086d5e52e8fcfbe70d9b0ecb4eeda109321","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0-qa.1.tgz","fileCount":6,"integrity":"sha512-/zUjwkvQIMwte39w4dnoPqPZIi8mLG81Cg2dZC66a65xe6AkbYdvTVGiElfcvC8D6xJlrpXLPKnaCB/0U+sEDQ==","signatures":[{"sig":"MEYCIQDimBvfmxeCROOEevhvEQj2N4QdzHBH2vatbqCSgS4q4gIhAK03ZKoRKuwPxNn22JBuxGkuOL8Y8+sTxDCwMb1niRLZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1082371,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRnVyCRA9TVsSAnZWagAA8vkP/1Hl6+Su4L0G59t2szwA\n2bn7EnyqDJwMdyzKmplM2Epgs+q0TC/b/sEG+Zrr4O8/Zexsr3RtQ/48hfgL\nwyXvPe9zn1GvjJtfd9sO3bsmyLzSCUVtqNvQLDdOIyCYbqSF1TfNqjWcz/HG\niUwlOLu135gzCQhHlbEk/ouTDo+zEoV9arivcx1MDNgKaKacDi8JAcsy0Ohn\nOK+3MPglzBZs079lNpkzCfOAyK2dMawJYTLmE6dOwN6R3BHXiHfuIrACViII\nvUoLq9+uod0DJUK90B81WbF3YTkMcMPgtm3I71NvsecA6VsY6bed80aT5j8q\nD1ZIaBDIuYQVJU4OD3b1WN6s9WYRIvvCxqEPvGJnh0g4m79C/DB8FGN9H/Vl\n4oofrlswu9WL0RhBZYIXeMap7/YcVCMHRw3Vg+0r1frOAzAWHxai9cGvmIlX\ny39HgjWqkJU0KJ9jm59tFOwKdBUNgKXsLcTDqOx3r08+7wjDMguwnSdX7ocp\nc5UcerYqO+ZwC7wVpoluai24rCVJb2RvbbbglLuL8xHBE2ekQY6BsCqEw7B8\n+QbEA4RZvYQbqg5h9MyfBxZzs0/+FwGBHuDa5bzNVqt9JoKJaiTYMULOgajR\n0PZl+oVzLlKqnlwmH+/Q3tt1KAJ7qFjpJUCzz6H1k6VGHtNhssuOoY5BIRkY\nusZ6\r\n=va9Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"a4afe311fc09c98374916c26ae3e3f4b40425c87","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0-qa.1_1581675890064_0.1908484402877948","host":"s3://npm-registry-packages"}},"0.5.0-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"8bd16274c19e7bbf9185c89027b0eed6d191fe52","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0-qa.4.tgz","fileCount":6,"integrity":"sha512-nrCQn2qB3VikeiRhGGaJ5P+gw4rC1gsQRLyi47ThZM6idyb5hyGmcGYzjGo711jnyoQRkGFiaV2/y9v6wPVEYA==","signatures":[{"sig":"MEYCIQCmm7AtjTAvfWYAaP9DR03OvlXUrAUl0NlFZVl+YQnBNQIhAKkDgy/YsvGe3Wf0uL5RH4KiDWzhtDxUmNOavA6uIfBL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1082631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSobgCRA9TVsSAnZWagAAxq4QAJ9v7sp/ch4MQ1+WJOuQ\nma8F9dF+gKUh2SXNbHEKdDRbRG0fByaTXTbDwVU8MaBAsbMPdc3763r8xXBF\ngqjiL4Bu27zxMNbxiWWsW5B65TVzf1EPzjBB3VjmCNtjXqpWuq77sPrICFuO\niGQhqjuiFUZfwCusGwNAp/FQajCyLYdo0Q6JBb/B4/fbTHca9rPezXYGUVq/\nV5yCF5zkeTARcsQVUZ/SGAdWwE6090Gayfm790d0uUDTW0JFtm9OPT8ePO2K\naUE2BmNS68UOhmCzNLdc0XQi6ZjaYNCkaYbQ5U7i/cJOgY9/h6gI7ZMF7VVo\n2i2HU7F7LJI/MCo0OSeTXZ0z2kUl2M3vAzQIfIp+h846MWVpPL+v6UT0tMUQ\nM23znjrx75g5IRtTPMROq2HMlWnKu2zyla3tTShzJMQVtH/V3afioK4dB2n9\nigL4lsoMJ/EeRULJHYjzwhX7MZZhIN/XNG/ijxpWtStRges/Y/BdQG7rR44j\nA9Mzym5cknq79Itf6/Pec8Fhla7xHA95ToV4fJrvicURV9TUAaUbHhJeRa/5\nId0wid1Ln/s0O9a1TZeIKVCm1QvPFhUNCwXJiXcQnayrlbiX8cuk4EVcGh+L\naoo1AY9RCuzlg9u/7U92LEsabGsKnIhDVGq6j6rmKqIv+4ghyD2pIS8UIMQ2\n4WWJ\r\n=K+aN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"52b53ed0a2034f41f2728580bdb83b3e5ed2f115","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0-qa.4_1581942496176_0.5987906703325523","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"0bac6458c4e37c517f5078786b95a818702b92f0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.1.tgz","fileCount":6,"integrity":"sha512-ncI4oawsK3zb2NM0aCW3TPg0Uktv8kegmfYRn2xZ61VtTRFTF2S8smnv9Tj42Mv6P2sNl8Q5oaEZumWjXxIThw==","signatures":[{"sig":"MEQCIAiPZzk1amKQsjsrQK3c3CgZybKnv3G3VaqgZMUOHvZ4AiB1YvvF68heBmb0jsNDprMxW4jwCpNlTZKUVU77AW788Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1082124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeS8SVCRA9TVsSAnZWagAAxBEP/jht1EYJ+ZZLss85UCTL\nMEo//jLTeW8a+K7Hhq9fwOiPiMubgy+z3v4EKmov4gIhwLPe0XWEOIBVvwC5\nnMIjwoMWUZZ3NQP0x339iWggjJwdUMEZxzIzQYwsPkNcZzCYGBquFjH3b5tf\nh9fLvj3uQvgqpZYwOx4PLXCgl8pPiSGWNFckEDgyKBmqemAHpRc9FEBG/uYq\njrHKtluaF8DnJOiPaRjPnNj/znzozeXEOtJ2kLbiIBg+YogPp6zwEusFd37m\n1Y1JZsZF46Tv7zLRqbnwEt79v9lkvThyytyyHTqlz0xbxX0Ho5/K5uxJm3FI\nK4WO0IOc5V4YsYdijcXNS1vsipR2ZUDJcOtu3auj2nnYnifpLZJIWXOFe4l5\noAYF0sEhf7Kram+lGoAMwL4PiTnJgYVJOEYkzt7Lva85gEmNK+IFkPfjsZZM\nYOdY0MT8EtWeTvY+vOl/nVQnrD0X8NNXWNYkd3fsfgmH5MypdQRwVsBROHCs\neWQnlnA30Jo4auxbsxfBEZq9tqgfnH08XmJeqY9UiB+8KMxF7s2HWum/TPGH\nMVwCyDOomCBsFvDXzlJsGf9/V+uYu8CQIVzNlLWSIpx7w3RfHJh4AEsg6Q7G\nWRaCmYppRWZ+9IqShil6BSw0YNrk9SwSf7UfNvM0nSDkaIELsbyz56T0uqFC\nBz+l\r\n=THCC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"990b3cabdf871195291f887a089366aba5e0c618","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.0","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.1_1582023828994_0.14294951560052493","host":"s3://npm-registry-packages"}},"0.5.0-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"9bd516ca2311101ab2a11a214adee7934e2905b0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0-qa.2.tgz","fileCount":6,"integrity":"sha512-vt7PDsHq0oBuxpnqNFS3oyJ3Wg3D04Irp1t2ME+gQw/a46PIQj/sIEaRkqyaBAbPRwehyRpOaYT3yIbsdsEUxA==","signatures":[{"sig":"MEUCIQCH04MLmKq0uZcgFE7KuIGp2iuWgf7nOrb2TC1WUyJsGAIgepRAPBeZmRmTIA7O0FbtONeJK3dWnoJ/+Lnce6MGRrc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1116735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVSnFCRA9TVsSAnZWagAA1lkP/RzExLEOftn+6ACyrL/P\nVWKLW4HXOR70zFnCWwOm2IPVPMg1/a6hYf+rDa3M04ZQRyig4B96BWDjrcDv\nMA6dT4KsQf6GakJI3RrJ0vM1iMDWThjzb2UFIm8OHByoeNunIAZiG0A8gcbL\nyowFgrmpBkF0ehSyCcq+sP/4NMFByiPI8+cPxFH9MUCVld9d3+Y7pyyZRDor\nGtGZ1ARuehl2eKfPMrKEj5NfgUlpRp7B84sztqQzvUQlmsv+tN0wBH4raZWP\nku8BoNSbGU20Ap+QeQ93vgTVp0sHLKaI6k6OV2k/knmUN7EOM5cq3ofeO+GW\nbuydB1c7T+8f262w4ryJXJmzRGRuVp0zznkjBg5HhHlDG/mNyDjQYhCROaGk\nAiTf12tTfD7I/vYPfmzZsrgiKQf2k6pedMIUxaLjHAPzhmuiaDkUbrtpnZHF\nzxYCUBvqohR8NADRDwTMuqxnFk8rgDS7TFq9xC/xqMKF6iGpJUf4LiymHbUr\nbiEdrDv6oM9HK27pH0tg9NNHgTBhxfwwDDdIs/XeOeJgAc8caNOsgwUueI4y\n9obp7fJ27bLnlfQS3Xla9/vGJJ7cEaCPA+HZ1jUUdAjHnrpYIuel4I5RzKbU\nuVgHA6iaKB0hfcjHV7mjOhLNjY/2FyNetdO1d9xFTfOsjpi8tKu6ziCf5lP2\nFWyk\r\n=AkVq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"d592c1a84e488c0fbfa6889e168be565667a1303","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0-qa.2_1582639556421_0.38918587755209466","host":"s3://npm-registry-packages"}},"0.5.0-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"aa38981c5d994c49c5580907f4ad5f15e5bbd43e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0-qa.3.tgz","fileCount":6,"integrity":"sha512-eAIBbfNLi/ksNIKHIHzHwgk4AHDYHKFnf5E6d15YfAAn/KpIzKOwVQXggwqrclwlbP/SsunPqOFaUJoco3+j2A==","signatures":[{"sig":"MEUCIG0hPS2BUIjG69VLKIY4AUuSeUd8BVpH98DuBzOGBFK5AiEAvy4ctEQKuv1VXiw2JUbFfCZUpuxiT+iGsnWXKdB628s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1116062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVTKTCRA9TVsSAnZWagAA7tcP/3Wg9C9XYSPEYXOoTYzW\nZY9E3a11rUkNAHSDByQrRAOPsfvZspBnF9jm5cwSlnopKFulJYfPA2/QnQQI\n4CzlRRtu2yyN5EWFB1LCHY2ZdilXrcuG/WotZltIliOYSLkhlQKDEeITsQxp\nPlknZDJpKKEgmnK7r1+ZTq5rSSJULD/HChon0v5LsgjKzzild2AFpPqWXjGz\nkkCQ5k1Odvn1WSaLnQQzSV1ftrCbd+WACkUCDFCcPZwzy8zDnT/XNH7y0DCl\nKbMojl873dAH1mK8mjDMRnl70QqEgAEJuK4vBNm51769mKkBPwsd6et2L36Q\noJwUVMD4NByrS+sDJgWs0D1SnOv3lZdE5UxskzyktcUtfhiXXgGKPMdJvrT4\nd+mGK9JgK3AM9ImHaRUo6VZrbY2ibEuV/rrX2WrueUgSe3ygbIxu0EeiEk97\nCrsYcFqb0Sz1SR/JOZOyFuAZD2wCaPxHlUCFHHKfuAFP9fUR635u/WGsDy/T\n8s51o4JT6FXWmNPIGDpExHUZ6DHx4wXgq7wPXW9Q9Apq7Mbzlgvf2OV79elp\npvUaqCS/AzvXp+IWLa6YwL3MWCDGnum4D7RTI+xweaJPkQfY0XPYuASDSSba\n5b33lkqUWMzNsjbZHazWbHS7bRuOt/HM/QXuKDmT/OoWes+4tR/+BQk58tyo\n9VBf\r\n=O4w7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"b6d511baf5defb89bb9c8567e3ad2cb6f34cbb0f","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0-qa.3_1582641810846_0.7661770748548686","host":"s3://npm-registry-packages"}},"0.5.0-qa.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0-qa.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0-qa.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"0af95e2ce328f85f675e9b19faf8ace38f6f7ce7","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0-qa.5.tgz","fileCount":6,"integrity":"sha512-pSpCahGPhVMF8k/uVE62I9+O2cXtgAC8NuDquKOjpE1E/Wpw+35uPkXcbWWqqHCPGK/07Pwr4Kfd2T9OvzFJeg==","signatures":[{"sig":"MEUCIQCmNEHy5fBzZMJEHV71/2Oek5ybP2AvF2JHWw5ZRTMx4gIgZN2xyRaIibcOC77JXqfck5O2lZuGdQiV1WykAsPJHWk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1118037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVUiWCRA9TVsSAnZWagAAvPIP/Ah8ST29ygqWixJw+F3v\npZWKx3j9MopeuEVrdfMZd5brP4sATOeyV07jgtqibh2fzUJriwE48awm+htd\nGh0kIphTLYWSdL2drJihqQ34cKzl59YelISTx2yR5wJ0miYdFmoHic2GruFF\ninRUcklyWnx0S+JzKRiTPtAgCNBCha3iBiH2U0rmdD5arlkXqN/rxiOJ4UPz\nQDlAly3Ibk0JiPnbWy3EUOezcebLx7EP6E6amOwFA7fr4N98nYeiWt8mxg48\ntZ8pq2Plv8h1Nuh3ita+g7+UU4Z8MCnPq31bZgfcgFt34mjv7EdGHHyKL1yB\nAWpD8jegwxPOfA8iw3nArQU20ysjCRDd/RvH3Wqp4w8xNnvq40wIXZfHgnSp\nDnOrOltJIOhWbV2C7zBI/8Hj07iItaoxX+STuuVbJWU54TSRjSNK/yUvlZYD\ndkmRAvGU3s7QYfEPagd79vt4bcdn2Bd8fP844uDZ/kCk6EbYbH5jJnrlGXsf\n0p3IBVxbtFV55agObCBphIAT4rozf0VupxnqqO0JX47vic/Mvk+mRYxp5iho\nnL53ipN0h5wubHAGOl62hmd+AcSfRd04F08lLH9M/QwwCp4Xp7XsnIHC3xOF\nc0ssUDGpr4zGgniitbOsUqEKsdcbUS+zGOVGaEJYzieR/sv4hc04w1xHlIuI\ntecN\r\n=Xdh7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"427cccaa628c6ffce7550292220fbb5e9cc882c1","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0-qa.5_1582647445598_0.7292025503095798","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.5.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.5.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"463708c52c8b1e58c18376c4f8b0f4240166dfeb","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.5.0.tgz","fileCount":6,"integrity":"sha512-aEBaNTNrMnxQHFjGYQ2PPIrvf0gCsCTejcp+QcbS5MB8iFArudmh0/DAml0KJ9vRi/kdVDty8RRiKrwR4hy7wQ==","signatures":[{"sig":"MEUCIGP+F8PM8dMLoPL43tlWsCxoOIsgciauOKL9wbA7NlfgAiEAs6o65G+RU1tzfpRhDklyn7nZXAc7zgNLXgF5zLu5AqE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1118083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZiB+CRA9TVsSAnZWagAAjHMP/2VGcXecvoE8DSx/QHvo\n8PYpW880pRS6/tvcEQiphDDRle69n5G7APaHrVlrCdVq7gQd+TQMWi2KGTzQ\nR8wM+Qf4qt7vehfsAOCWIJROmV/eKxkHf7HSkDXdWUGWn8lRNnVTbtRhLIRM\n5Yom023X1MdtQFLNZNNhc1hYCYcS/JOWB9bvmMRsnEC4UhNUNT2KsOnZ+Plt\nwiqSOWwcmJHeRoaAWjDeNv/2kdc3X7C7HecdyfG9vRmlgWUcIBlvsvZD6Lwq\ny+SAgdUsomQHJfgDKMt9ZhInd3JH4DT9Ci3WFuAG+PqtDiGadQmdMiGNDouy\nmpD7Gk7o8sHeIsPwnvohFYxrJc0uuUZKpkTTC83XolpIVETzYYI42Dh0/9P1\nz4mHu55PdsDytUkZScyIx2dXplffsVTmFgTv49D0e+tsELV609Rgp2ibsKyd\ngxlz4+DpEvbPkQXS6p87rVKTZtxY4wKgefOzHYHZ0xRFd5Xxx1iXrkca1mcg\nIe2/QbTKgt95ODORvCt1EicI/u9mUVyqjhO1sZ4em1sQJRMsLoUFBTFIpxCE\nUJInSidWaDHDFUYVcaUDmqAp4GUA2v6+O2ODb802+YpP2q/RmDoV7bcVN+Zy\nn8PLAa1GEmkMErlWAXwNz8UKxMfdWl6XgQmkcLvPUiB88DdY2v6zOqMqaCJX\n0oUW\r\n=QM56\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"adc3c17b3ba4120ea203266440050e22a29da8d5","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.5.0_1583751294274_0.2900826412020534","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.6.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.6.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"bc84dc9ddf710c1aafe4f1e9a4503b5468e3a60f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.6.0.tgz","fileCount":6,"integrity":"sha512-yh2Tb5+nS/M56Ydu6tHmfZnM0mlfTugP+zQwtTHae94DFIpLuGWCRD9rcpRFoncVvOKMPs6Bwn6sSJVKX0jcdg==","signatures":[{"sig":"MEUCIA3VKxFdAkjGzhI9x1oqJy5lM0iBE5UkcN41h18b6CI1AiEArkHVvQgYYXRA+XM+iB6U5Rv2+eozHlKmHqXUYz4h6JA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1118425,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZkklCRA9TVsSAnZWagAAotUP/0SGrbAVTxFhc0pCe/Xc\nhpziZzcze3X8hq+AXQdM//b6GaVByQVLjla7abot9uLjGF4zsuUYAX58/0WA\nOG6Y1SLjb641ruyU07WH039phXxIUNW6TxfoUvb1TjnXJVV1a4TOwc+qIoZP\npLUJS6iaZxFhwBoT8ff54EST6xwwOczuLoKylzk5NWs4sQH4zJjgpr7jVvC0\nDK+q2mdcE23e+RsDXYWlapucBcm/r0PTyZbxe8teTct0OroHEAMvSBeL3kYH\n+QwqyFp/1G0diGQh2j7rgbVkjmTtd2YwcJoymgtgSk8NjKEDoFK2PJVlpwTH\nlHbN/OrWQhqomxYRjZiUdP7fGm4TRvwO0cVP24D8QGgn0u3VIsc9w6P5Yaew\nAPOt0GKGZoVsRNUlSeBwRAQtkLe+0CtfS8LAROfQfM2PTElYTA23AFptQNpI\nwj5g6L5REeZJBsPEVheoE40ZhRtE6YHibTCTT6JoOWRbLXjbwf9qSeLompeN\nKAbiss5Ddg/tpUj67mELU6M9BgJWkPRMdxIIB6yLQBaoiBMercvda9iLelnR\nqq0Pu/ya54loxLomnbjKWj0uoPWy2dVOIwf2YNZGmlUFRpii5nMpLr2YUpph\nepmfhNsth7u0mfhZODhHNECCSMnnf8yEzhM2R7JehOpFV9D6UWn122roMs/H\nvK18\r\n=sBM2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"4f6dbf821be9ee63a48051b7c363137ef9653196","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.6.0_1583761701363_0.5739789021495167","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.6.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.6.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c487fc7714d06f0c48c10f45cd1f63423d95f350","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.6.1.tgz","fileCount":6,"integrity":"sha512-b41UPHNMqPOpRmYNU7Ap4sTbI+X+GZ3+S8Y39TrNA6nTxz77PrLc57Lj0MS33NDXJlSLnbNfdS/yv3LrB0mfhw==","signatures":[{"sig":"MEQCIHnLGUwvu1wGoTut5FPWcKIRxVyWA02QOx80ULTbe/VRAiBXq/zDqAzmP2teJGjPWKTPavK1+Ycp5HKFAcO/BY1s/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1118586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZk1FCRA9TVsSAnZWagAAD2sP/2opIL+zs7OVV6NMKZRj\na+7i3QTzCNuzcXEEgD620Xhw2HKcxBtFIeOzN74T0mLK8Vg7jr9zKLObrAgi\npj6NE3b6vQJiha+VeXWBtSn/n2t4gK0vFGluc+axoyq3o18V4WJwAGhGXw1S\nJP/xufhtRWgMUudsi2xqgLzHqCLrtnS0mx7yZ4dtSza0vyBUuTp0V+dCzq9F\n26+dsIXBvwwIr/KxJFv/fYb+iMj8Vfc1gYIkOqr+7oOi0+Hdto+7IFj3tl4a\nurLjAbQcqsK3fx6EPBjEDA+wwuOOhbM4sk2HzdUBieu+fypaNyvrJTK/N/bA\nK/y2Pe2I5ZBwZgdegq2UzKdVp4hK2M223C8s6+y3b9E71J2aqJimrXzjYlvU\nCqI6lllTLNwHK4f+nWiE4iW7QBuEmaBpYzJm0SLeV4znRQ5YuiTEG2jhF5SE\nUR5n8kuCsLX/F4P3wb4Ok75+XFhDNV2R/N3NWjyQn7kGUkkn9lVVPf/LWvYr\n0H/PI0PrmXKrER+vrWYU4RsWd3wbQT0BBF2xSFYbjGNN2A9yLY7FkhOJ/k8s\nxO8R1GhnH/LU0RoVaG+o80s95TNYqOVU9Q2CRamDMBcsL6w/Tv9mPApPKQj7\nlIGO5JbCsb7hxf2KG0nXAD1yHPq0+pGXe+b4MMnhIitU2WRF60uDuBqi9aHN\nopo1\r\n=dVAB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"b52693eb424056282b933c8c2f941d6962ab9409","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"10.16.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.6.1_1583762757321_0.2618215920226281","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.8.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.8.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"102fbfd830c2f78036d9f9bbefbae79d02ee36ff","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.8.0.tgz","fileCount":6,"integrity":"sha512-V6DehDo6FKhCh5qOheRfuavIUjKcIP96R7Kff5zd2s+I75W/ig42GNtdYia5dcTXjn4Wx8kec/10Bb3ABw8Wyw==","signatures":[{"sig":"MEQCIGche2p/ksTA+GFr9AyJhzDj9YpnDBngfRACyB7CpAzhAiBNeqkKmOgs+7mfqHjQhqGTy1sQY+bvRtMY0VLFM91EhQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1119437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea1yoCRA9TVsSAnZWagAABq0P+wf6uMK6b8+LcOCzI4Ua\ntxfwNd0nRCbfKtJmoXGq2wLg8Rv7OhI3x2tUkxaxrmQJw0+xniBg9mYmKudL\nXt0owiqOVG72nmYmnIVwasHrI8y7SLa5zY5Y/TJvxUzrMGTe3KOFjJDePcIo\n2PHMIMF0nXL7v1TRBwxxiVoosEuOpQnwMCkL3m8i9j5QBjIDaY2P/xk/JXvB\n8cGptEKgqvGkz307HTUhVEMK9D1Pa6BdmwSuaCAanT92uAP3ece2fFf2A1Cx\nys3U5H8Kl3MrFfyhqYyf9N/uhzFbg7gATLz/QQf1jvc2lBhw9ai6akCZyQwr\nTnOGfaa6fovlJzPuvxS4/NizwtwO0Y0G/77Nr1pLNFLHAQyEfMB/C1YiEt7/\nqWwNfHy/bFfmuGwNy0SUtI3JBS04zCSHlIWwmCyV5eAPQf4o0a0CcN9Yyn1C\nVWripslywGITG3bJuVuATh7yrzWMefmx9YKVB9d1Mi1o0hQw0hyy7rR1yI7d\nU1Ldhe/bOY8ZgjFAWa1Nscu5lFa+uwG5UVa2Y48jJSnjoVTcpNHvCszl1zc6\ntrqtaZKTFufx+KWAg5+fc3czlvTld8n3G5pDHkgzHH2UCvbyoH0IYEIZ5FXG\nDNJQoUEljJCsxIEntj5+IhD/2zJRQo3VgSbkke/gaS8QNnrHgssvRV8gPtc5\naV/I\r\n=flYi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"commitmsg":"commitlint -E HUSKY_GIT_PARAMS"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"10fb12ebbf0a7673decee362dc10c5d217aa1bac","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"sudobangbang","email":"605h4n@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.10.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.8.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.8.0_1584094376150_0.5746156940599183","host":"s3://npm-registry-packages"}},"0.9.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"4d6242f2d240c4ecfea5dd8a2e878544e133c751","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.0.tgz","fileCount":6,"integrity":"sha512-W9eqJHEZf6aKPBOb/Q9fscgv67UeMihwjb6B2+MqurThHTTE5jXFz6fGlPP4uBVn0oElIUoe+ahNX4fVIQTQzg==","signatures":[{"sig":"MEUCIDHWW+/uxumr1PE7WSm3Ga7VOxukCldyc+HqOfrDh/mZAiEAksC3gL3Msd7pSYHzOJDYdQvGc94CTeRAIvpvl8OwX7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1086200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedIxoCRA9TVsSAnZWagAAD88P/iLHXq5rhJICsYJMXONg\nJPnMGH1PkeDweboxEEPOGMQG5kEgjpXbifCX2uDjclNFXFht8Agdgna+X895\nk897DAN+mIWklxKGXqt1QVJ6dlvPPxYJiORsAwxrEM7aTkxMDax6E8iJLZjI\npUpVHaPxiC/lZUawWdGNu8/7o4ug5/i/z4uGNDRN9Av48TyI4tzRZAg48YWW\njqxyqZoUqaM+DCJ0iWSE1xvmD8hoiXPcijOHF+NVGzCKweRyvEvl2gyEfwXO\nNaV0mWSaHOe5vBRNrddOPI23ojmptbjpz4O/8kCXbSlqPOzRa6Ui7/sDO6lv\nmTguUs+5w89m2Va4F2DXsa0n+oRsr/5HZzuvEfypQsr0tQELx16TLYi4yb2W\nO7Q7xnE21FQdssGW7rkXDYJpdOrkfgKmLtdobIYcMkD+3IgL3buS8Z7QdIK+\nxvwcnYYPqX0n7qFBCQifG+auZgHl9ZFXOESpGM7aEf8BzIVfS0LRDWLD9KQs\nwm2JpziiQlUG9v1MmiBhjXF2nrcnnjps4qxwKMFFwCu0hISGz4SjEr20TnrE\n3lkxnma0KTbw0qMASbBm8PY9F1ewcOm11m53/Hq5gMEbli9g8xerfdpklEA8\ntZjbppfCiCYroH5P6fVIiHZvAQfYjCVLmAcHGTe4gGgeWRkb6XouIqlLoE1T\nKUJ5\r\n=SE04\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"12839f0e6bd159ffe5ad1ea2a4e5f1c161a78476","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.0_1584696423877_0.9538619188293205","host":"s3://npm-registry-packages"}},"0.9.0-pre-production.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-pre-production.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-pre-production.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"532b29cb0daeb5c7cd6b14e9e800b7b0f04d92c2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-pre-production.0.tgz","fileCount":6,"integrity":"sha512-wlOSSBae7qNtdGpZaCnnI8tgd3CrjWCDssGQswlUtYW55ddKZGb0/3FMns41Kz3ohhqaYdZi/U5hy3yVZvdBOg==","signatures":[{"sig":"MEUCICBduEh8NRllM4wmvGn3EcB1HnAZ8QZAAhmzIqrHKtW5AiEAx0ktMKDiNQtlVI9C/SpR3D7G5meykZJQaT9mDSU3ybo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1086373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefJ/7CRA9TVsSAnZWagAAgJsP+QDJyPXqedPFLnRdDOHI\np4Cgt/Zqt4cPhx4NqSOwfSmM0mhZcWmCtwL8+0itTOjbD+IWXHouXg4ZTmDi\nTv9CR/XSa+O2yiRQKtGmAYfd/EVzuaL4lXKAhF8UsatejEeiEAH8GwjDgiCx\nDTYvN79+O2VJLllSnHwu2cpGcPFY3k1UwoE7ZMhNFyyJo6GoCB/TKzx+BCNp\ndmOeoaJmCj2XVBRGTPgwNhAZ21GucZCfR9vCeUlW2NSfTLn2W/PNiI4pVgeX\nRfWPOiivkkB6IQQC39CM1FPmy7rGG0rSyE8N7Y7duTJqDVRi23HIgmQYDfww\noP0yZO/G1hzcXRfrEVYlY4SNby+H9gcMgnjAn4yNjodIIMBUvbC7nc7z5L/F\nUAMHnry3rF0KaYpT5jrQw/ISzS/JGd5iv5l1p43F6OIHLbw9DZYH0ZC/NWCM\naWbrhScaQmhJ27wPtB0wRVgR4wl4LI8Hk8+L9T/0GbcNiOUgoTwQWU5JPbHS\nb4uc5MaY6pWkJb919vI26wElYlMawT4egR52IDn/FmlP5wlGBgva6okOCQ3i\n6YpP/E5eBD8I2iNxWOYv01KTfL/K4+V1YJWahj9xZYBpWfCBuNwPG/YAVC+Y\nmo53ZLWx39nF9gxkqzDK8/E/NOnX4AgOlYDBz0YiB+d8yZxFaRj6TqDSecg6\nja3s\r\n=B3o1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"1d0438bad7c33c563bbdff4ef2150c3fc4768bc1","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest &&  npm run release -- --prerelease qa  && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-pre-production.0_1585225723116_0.6698367363136082","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e071afb31665e28d164c1fcc5449eed8f05a2a24","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0.tgz","fileCount":6,"integrity":"sha512-KDXorBI2V5DJH1Ocfo/+c46h75kYi/M5Z81XxGjLhVQVV3yNVvCb5thEmHrzlC2U/tIykLYdklvif0lyVpZn5A==","signatures":[{"sig":"MEYCIQCSya16X9cnjgdLQ2q6AYBwsMczmAy0kLHWMfzw7HrKbQIhAM4ycnj+s/v06hdd1D2XpmaX6zWP8PI6qjTyPNBJ9MMD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1086749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehtbYCRA9TVsSAnZWagAAsZ0P/3ubPtcN3kQozmu1msqO\nOC2lowSIq7Ee9Py/g85t9rgPtjk4sqRl1CYeR8mbVIfA1CuPTPK2alFrhs6i\nMKW29V5hmcTG3KIjkw2f7lzANHXj7dxA6BxIgDkSazMyUFaxXyBPd27v85iT\nxrOzWugTbS/Wq3ichZBVHr9tOk6fCaoTZMkjAAeDYPoybQ+a4MFjr/f6LJ/8\n4fyArRI4UNr2TTezj6Ytz5UlPjIlF5WjFkImHqMWvBxxk8EH4DRF1QGMHuqp\nrWmB0lbluyXP5Hf+710VJdlFBaP74ORFsXbg+jB8RN4+Vgz+niyMk8KJgZLV\nLHqFm2N/yVMz3x1kYgh1WwoxedkeXVmKGu7o0AJJpQnH/doxUNZnMK/nYrJe\nM07XRIr919h87EMabW0dKR2rBY8IzYsBf0Aut2DkunoA8O+Qe5Ab+I9/5NOt\nBnM58g0F/0wKZkmfyeZfbF2kpEpY8RDfap5EVpYXWPvnt1nlxB5L7NVFdSHx\nBgRelHJEMg/utD4dIitwMR335kefQ985V4pfzayzjSp4XhCLPgNohysZR8ON\n7hZUZVL/L/IZYfW5NBOQtWQcPI9dbmAYqaMXvk4aMPVi7u8P2gDfs0Aa84g0\ngosa7C/YwRX6HBly0fD6AN2fKJoFeX9wyvNhsEkswYYSXS5dxgqMveiI2w5R\nQdda\r\n=dt+N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"c28c53d180efc81061d6ad4981402a5068a174fd","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.13.7","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0_1585895128075_0.8529749665666326","host":"s3://npm-registry-packages"}},"0.9.0-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"4044667e5abd52473025cb364b4677af0dc52974","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.1.tgz","fileCount":8,"integrity":"sha512-F/caRQ/5B+/r8W470EKWtNUYuuL+Xww1p7BqPg8x+pJmfNZ9TAFZqrrQgb1pytywOyy2EiZX8w1E9EbUrrwUmg==","signatures":[{"sig":"MEUCIQD5sgVyJZV1h7s0b7NujwYXME3MISKhGapoCb7jcPYSBwIgdqbVT9N8tPvR8j6+Oi1nweTSXycILzNqNgllthbBPbA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2901676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehyLgCRA9TVsSAnZWagAAamUP/j/DxGqK719VulQMSe21\n5Q1IUy/nz4/yt3tbJMLMgcIuXy+3oHxF79gVtV+c3AhPftbC6c7W79tN2syh\ncsubF8wz62/dS5Ylro/N9sC5jUPXHacOGCn5bMCyc63vUWvv6SOz0Xj0kwOv\n+L6aV8LIydTL+Ns7g05Qegtni97t8+OKdoJnNQAa77NtzaRD4NHOpFMhmXQD\n3X/IIMtSXMutQ35pP4eyoAXllXIFBh4+PISxc9x9lApehaUZW52qS5ejsmy+\nDHaJVGe1KSonBSVLny0g89LqVI2VVZAEM4w5beR46UieG3dJ1u1pl6srC9X5\nac+QCXrAPxYqnHoHRExH9kASqcyC1oJjpGCH7D8k3PbdooDbHZu+25aHDS8f\nz3M4UPgVcYwHYrgte4x8AXjaTuaGrRLCjXBH0jqdEaLkUhNxSHBdsqfbpsnd\nIwgFTQDzctzFq5XtBrQgpt9TdBHWfytEugups0IwcXv9F3QLl1hkq/Q1bhZe\nlMIz9SD+ge4KzUNsSDamGTFgu7btvUxotnXegUh46fvGe0Ni+FVTzzqhHuMW\ns98TI60onQ0fS2zdk1Z6SDn2AWLs6uYI9APN2g6EeTOD8QRZyzTnzC4eyVUC\nEKC0Q7C04u9LpZaFEWW8AqZashilkdkYb16+KMR2qXfJXtOhJkfGLevZ9up5\nehcG\r\n=YrMV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"01cf1fb7f3ed8bc0184fbba37a0dab977fd907f3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.1_1585914592001_0.651943383999406","host":"s3://npm-registry-packages"}},"0.9.0-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c8a1613149594ee9bbf1cda5d7b759476af2acdb","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.2.tgz","fileCount":8,"integrity":"sha512-MGhnP3YnZFIzBi+beemFnICvr4FTOT+PbE6mf5UJAKnE5l6iIz9s/ZgpmuAWIGIpR/s6oPs60wXp9GX8iFPcxA==","signatures":[{"sig":"MEUCIQCJxMVg8Ru2Ku3U/zhzIktHvZgUY2uB5TDFCTByrsLaoAIgeFATlo1jBUJ/6Y/cmFlg2zvSndlCPivVW0rrPDDhDGE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2902412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehz5uCRA9TVsSAnZWagAAw4AQAJ+FxgLM87qfKj18fdSm\nXKXC0q7MFA5XURhmaR3nK28iYTr17U4beXhsMmh6cRJHVk19cSWOScxlR6RP\ndaibA+CWdt9QdBbbO/F03Z4nfFnuyhZSbhLwHOq3YINawt2AFPxw3zXK+vHn\n7hNvUzinSll4tB7c8Ux8Q2ns1J5OlDwHKCuicDEi4cUf6eVVnCY0BdDD1pyE\nckLWmYlK012AWJs68eZmWDrLor9urD9NqbjAlKb8IhqU3gKS2VhdegT0UAAd\n+5pwhUKhCISjfAp7znEqrbe+gKJygcsj483wcDqnEWZT4CzGV2vu9eNsZ84k\nFat77aNOvcW1FJkQSW3hmUFNQPjc+QB5rKvE6y7mbY8XPHysWiLCmy3uOMfr\nujZzVdpxCFAFaSlq8Adnnulh7eSqiauAUggKAPd3HeaK7hdydbUC9z5gu/Op\nwi3RRvxudWuILdPXd8yJ9HeEfMIsq3BUjhZD2FGSXRHQHJk/80wCS2wRK4yt\nNOl92u1EFRh4TtI0o/NQ0myI742jAVt75Nq0SFZrRpQy8YO04fS8m88/R+xu\n61WXvLPwX22gkF/OjzmC3MVo1ly/4d89DErA9wFfkROdF40nNJuVLkeFLUWO\nVsERqiQ5hhvmFz6Gx43pWxwhXJ9kuj/yiYFxdRybDhXOQ5i2BQNAa9Ia8Mp4\nUglZ\r\n=FWd/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"c91a2be51f5ca151287876d43a5727f8546da069","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.2_1585921645398_0.3749947361276158","host":"s3://npm-registry-packages"}},"0.9.0-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3aa36be00e1cd9ae6649ca5f02c21dc1b7d6d9fc","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.3.tgz","fileCount":8,"integrity":"sha512-Tqi+NO/Lvu9JAEw4qx8jIjhEl31jtO/zAdc62ie4OvmTPnSXfZZ+wP6DWCNyhBFE3Kmqz0R6qYZcANvptNQuRA==","signatures":[{"sig":"MEYCIQCZVGDaiPjtpUiA/OhkVFmnv69+bP7Oi/sWB+mLU0G+wQIhAMQfT9yobBvYDqZPCzgOFUeGOQ73gbnWRLTP2D8MFiGK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2902695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehz6cCRA9TVsSAnZWagAA+qIP/ROHbFkh4WViN7EwsgLr\nqhNeV2314F6vMhF3f8q9xtzPxtgLNonfz7wWU+tHTlG5QjglQcyVMsIgOmQE\nW7Lh8539CFzFVMlqoQaj+l9bWJjBjjr53Gx844IGtz6d2cjitMuNYu4S9Nvd\nJARNGEqb/BIamBk4uqczxBm/rMjUEYaG1IvyqFDiEJQPXPjilXRJsPSCQoXa\nwuga8ZPELjyGBEcanSkvIlw+9U/m38fmXDg+Xu64ts6ORSgnjxg587PJVZpN\nQHhwP4DaLyt2kIW9m7gzFPiADeY/pYuCwSbiTjnJR/O2WFTHD6P/u6GEM7q2\nHCLuqTsjm0/Hhodb0g8ZCMS4bApGJcSINXxqP+3hzTjjw1L8l/u0lM0s6AhO\nsvQNu1/Xek/zY9E/214NZZPwnxsXjgdgS1JIaDdkXGu15ZA/fc6StfzP+AKn\nrFq1BawTTQPHdc7r28DI9cFc+uPxpe9WypgCv7OMdGaL85IuiuKVDkLjUIC5\nhz1E9v7O86kwDrR4WPYXF3uGQ+SX/EOdyCTXBCxhzAFTzDDNqjMcb+t7U2Us\nc2/X5Spa/3Lh5SsRwJ/xM3kir8iZ2HlQYDsOY5EX6QpWT2njJNrfgKeOBf3x\n9TzOW2+5deAl5CYarlkseC3cF8UdYZXFwVy6ooac4Sg0kxr9/RTsS2rdv2hK\nJPdw\r\n=GgHu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"bc7749c91032a162a261c6176a46ff8eeb20b541","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.3_1585921692499_0.3534739747296962","host":"s3://npm-registry-packages"}},"0.9.0-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"1a66b4947784156a93c41b6afe83576d397231a7","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.4.tgz","fileCount":8,"integrity":"sha512-1W1FASH1Z6ujdQSGj25bTyzB3flhU8aLWadYlwP1uYG+EM19nv54QttplFx+lpNbicIdB7zwxg6w92WTnyMuDQ==","signatures":[{"sig":"MEUCIQDLVw9D4jBJWbhsbHaY+ngolJ5WH/zoCkzK51DyT7IlYAIgLhqhlutv42BpuUW2rSAzauttqq8EAQN+mTt6nOECyT4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2902922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh0PLCRA9TVsSAnZWagAAktoP/3ufxLKxYhah7w9wtEIU\nXC6Lc/uKy7uDy/iewdWN+kqmkh1//hQVOM39CwfwQrNVtnu8cImx0GWcIC60\nNsaGX+fvbNhGb0uKMA1b6NqMBYI/lVhqfrq9mV6h4aehZDLypFeFejI4NOdL\nEtTXC8yvhg0K4Cqg5dai+LkcvEGVBlD+T1HG6ihQMWt13YYcxwbCoREzO5ge\n1jGAER5HwkooNKUg3LDKPmzDozL1WmmpGDdt5vmnxJjiei4K70lrq6GJz1yW\nZBcm7G4pEFBQ2v5JjHLwyyV/QWGVE+e4whNEvQZSo5gBwD0xEWyNZAN5tojV\nJ/iwnNA9Eb/sAGuCCcVQcpMQhR4EGDORUcc2iNwfEC6SzdOYgsfYaMSy6uKA\n1huZdK3WG3EDGa4KDCHDNj17MIiycWxFMMUdbk3IbJz1BEA4fCU2x2PWXKmq\nlt4Y9cdNYHbo7+f208FNxLWv3A2wGrGMrERwLwBd5SP3JIX6HhZnVom1oJKr\nEjmi8DTrNbhCv5f7yRIZT8ZxmzmU3KswdyTOJYP80ETYbAA3HTv/O+0BRXrW\nAv2xkCYgqGy5gZcVbPWjMVAF+5HrDtBqJp/PHzfCbBCupkBZVSUcqgmEPPWo\nAA5i09mGXUdpHvo9BAbWYGIndW6EOg03drS1LpDLv6KdCMbqUcsl9JhpZu7d\nnHmo\r\n=2V07\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"fbfc4cfd1133f6fcf38618e19b64fd4c9dce8ab4","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.6.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.4_1585923019152_0.4203027757944984","host":"s3://npm-registry-packages"}},"0.9.0-qa.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"7680916984fa2a0449b104c7aec44ed58ff95b0e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.5.tgz","fileCount":8,"integrity":"sha512-IQNME4Cu/7XoreXieWAfPtUQnTp/G78lUM+/yjS2BrZHwFxeD07pR/6rXqMmNz0dwcUXTNHEu59Gmr3tqWleAQ==","signatures":[{"sig":"MEUCIFK4ik8PpmrnRcm5OqQGAOgjfWnszcAib8DVtVWyeL3DAiEAtGr612zkGFv48hedSp4ZfOe/nrQLiYL0rcloBaxvGgU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2907099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeix56CRA9TVsSAnZWagAA2jEP+QGAj3i/6sqEB38AxTV7\nSLBI4GWsxw0iRqL+QF9c1m51cS+9IOrv2MoCQVIdchCwOr0PoSpCWbpZTMEP\na7U9rDNZ8+wjgIo7+4sDVCIM2ietx1NEikqx76rqQ3roixk6adNXIfHNJXr1\n/yR6lhPyopm0aDcyGr1Rjk2Ll/N2ou7ROZ1kHLf5DHtMAu3C7SdchGlGC6BJ\nOOruCIYjy9a/pZyZN9G+JVQKkBTcdEzEkS6gJWpHprLwrap918NYO1m145eC\ny98oA7SlyyReL0pPuZhDbQg0ok/2HJxiyzT0nnCXDZPQ/79Kt1x7N6B7amQ4\nvi3O/eKWejOYMqZpz3wIEUBj0LaACNAr/R3NUjZnNAbg/ZpsoI/5CPRzq4Lm\n8+xOdfSEPRdj8YyooyKA3u30MK+9YwjS/iMWp+lAHstCE1w4htuzLhFXS9hw\ntH7ISOs+/osLVzd6jMW2n8nmRG04R5zmfAV11DeClA1Sg6NueuDc18L/H2oe\naeTCzH9n8cGe7VVQG58Q8RGheBxX1Ey8uYAMIOmND+pu/3Lw1xtImRiE3G9y\nPTzZzkw23pNkegmeCt5iQpO7SYAntV4JQhRMonHskJ9/nqgAE3oLXu1rKAja\nXYWfrzYRAMHNuAfsz3EcXwoWYivaxzazj319hZteu04O9lWwilgK/Dv34Ite\n4mtN\r\n=iTi7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"cc57e4e45f98e942c9f1c5d6702c978515b16287","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.5_1586175609738_0.7529110111914146","host":"s3://npm-registry-packages"}},"0.9.0-qa.7":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.7","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.7","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ce9458e4cdd9e57e407c8a6922956a0a2dc728ba","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.7.tgz","fileCount":8,"integrity":"sha512-86zAE7ylyd10e2v9U/M4v+Kd5hp2FITm7ih1+H1dsxfE6ziauXu+kFXm4aTIgM4QG7Rk4CMBkA6NKiFuYHOQAQ==","signatures":[{"sig":"MEUCIQD2Y+zPY+ARkOGMMqXaxXbSZ4+ubG7t6lUpN7Hi2bsS1wIgEEbKmouvURmzB9tIiedAzZQGXo+hH4Sq+rdAn3t+RVs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2906971,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeix8fCRA9TVsSAnZWagAAoMAP/1JkQvJwaAtFnibrOABh\n4fd+acPlFBkIFV77gvcGzwauEenJX2A/Bi0G7xt9kC1UJrUdYGl+uB2sUehs\nfZqdCzF1BoRuW1qbZR/u0SheH26ZusGhL/HUlCqkrFES/tZZmkdB7azk8+4d\ngcVnPWmkQP2pysD4nRRmUyT9HKC5oTUZ0H6Wvt6GRkrvQetjUK6sjBOXE0eV\ne/yOtpG9+K6o7bpmvCE+UHZ4luFHIPPDgwNdJhN2ONQI1N2tindjZH8GCVfZ\nCnrMo9CRxzXqTMtA/u+qtxvpIVIZyvAzPvyDdpdj0Ur5gzCVhIULxMvOe8jt\nCEELTDMYw899hgmmkTEzt1S5iionOsYnhDSKkBWwyJil2s9CFVidYPbyWhsZ\nWO/EROv5ptOHcNjNzsyV/gvJ5NUPSh+3s+rwOjsmv/bM72aRlIHVzxyV+fM5\nGievRZTrAuCemf0XFeqpnFhQEUMnFPs+vVRr/56+jiyks7H3b5IuLN9SKtZk\ntJffuuxD+VpB6VB1F/IvJ8nX7jTkYCsr6F9ZR1CApFRKmLbmDqjg0Qoitb3X\nvOb5bfaeMsdBf6lbiQIamHGNYWqx7eYKPsC7ooJpen6e+XiL80TrqFc4Xtvy\n1iuXBYLu7txBTFa4l001B13+Ry9rHL2SNNVxSmafIpab5JiKF3L4bQWSk9qi\nE009\r\n=pdVw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"7f3ba429ecda89d14470dd634fcdd1ca29440b7e","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.7_1586175775079_0.1525937163421922","host":"s3://npm-registry-packages"}},"0.9.0-qa.9":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.9","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.9","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a087a055a25e9fe923a32b5610f0b8fa4dbf5bbe","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.9.tgz","fileCount":8,"integrity":"sha512-clVT1HpsoWiv/JZ88HbOIEPb9bzSuP0T/ykoBS4s9Kk/qn2oJlgE7j9v8sIAL6/TeyfhcYT5PCOoAT/ZQm4ygA==","signatures":[{"sig":"MEQCIAaMrWT0CBSCW44uAqRvC8Rnjh1QTZgONWZ5aKiNETLhAiBYtEHA3MAOdjndq6UkVl2cK/XCUtaz7VpTLBzeTzxmOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2907924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiySyCRA9TVsSAnZWagAASGwP/iaTq0bF2FOeWYhmhcyc\nny2WrS1f9j2AJakANfgEVB84JWtNnLKdjkitBk/hUFIjC8dsU4MOKg4HlEd1\n/x8s13PxxeuWPP54xKghvREVF39OGSIWTedBWbvBsq8F+nucFPzEmEzqXUjT\nLbyD7IVw5i3bL3S/YJsw+z9yC8RGr32napE+5nmxYTOrTTeDwvVzM5u4JaJD\nrhjuJbIb96Eyr0X8y1hU87jUGXC+fvXMgGBAZt6W2ID9fCsN9jZDm+JWWwFd\n6dMVaTdrPIU7kSpGRRO1z69p4Q0PQU/KHFh18ldUFNxpZWHn/y1vapqxL3X0\nE5fYEffKC/Tben/SkK0YRm2loyR1Jj1K/F3QsZp6ee9Kzf/Yt8hg/dNcz+S6\nSziA8o0TIyDTIqfv5M0hk6GmMWyqU041/Pf/o9NzjKNTNO2WnSrJizkYsnXk\nAD5ENnaCMxoVImOi9HI0/ELBwxQHtW4/S8aOLndlfW4K917pZfAua4V3jZt5\nDjuNT7Gxov75mFoYHv3zHfnPGoW1JYj4tA4ozvrc+vk9p/hCZ1l9zjGRcxsL\nw9vUV1EyK3W6rZtud86PCkJQ4iYezCKTtP3ZWw1K1vbUd519ywcSIp4hva8O\nyBbAPfS8slN4BS7DRGmnaK/4xk/FeQtRiXA2WBT/I1OSHfXxcXpkDZqOUgGv\njfyx\r\n=AWO6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"49dc949405957a4e8b36c5d5e56c17323f969bdc","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.9_1586177201870_0.5085596080372874","host":"s3://npm-registry-packages"}},"0.9.0-qa.10":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.10","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.10","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"19b9cd99c163901413bc779f618d0d885d6ba3e2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.10.tgz","fileCount":8,"integrity":"sha512-ek3HiPmW3BprtZpTL6buALjDtAaVDUIj+d1fsQc3zTOVfRpeIyK9m5ajOD8nsnuDPd2lR1WKafypnn93CNsSFQ==","signatures":[{"sig":"MEQCIAtaCj2YesIJpZdrQABhkuaW6TuF0gW1ZxcFjGrOCdkXAiBxdd9nSs1ZouwVQXpSqjQdMW1DMAwlZcL2d4/L+R6C/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2908066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiygcCRA9TVsSAnZWagAAXUsP/0gB4FiRH7hwjuy4jwnn\n0WeRC5PrCmk0Q9Igh+L7aDww2pWiEQhGmnt4bqxkSo+8VMgr2QOVub0Ne56O\neLP3UN+r2WqeTGa316xmJXfgGzz3lu9l0NV88PxRagun9UZpTTZPAVGYcRVD\n1ms2D41OtXgyICj6s7N+P55TKMU/wul2aqqnBzrh00+0e7AUk3OWCiM3kyZ6\nS7OaXgOYxuobuHh6+l5FRMduXHXxV//hsTXq0kMzPc6hDo3TMhL297XEoXZo\n2Mgqt38osTrnBujytBAbw8FXUkfEhgyEHGnOdMkw8HAz6RFagPdjnsZ4tnxu\nNRozi76q1XN0/1bRPEY5yyEEoloayNKm5nPfeihFx6zoNppLYpB8XmJh3woz\nD9pCGMZutnr0XsD7rguKZeqSP5nefvA/mpQW8oGzVt+TQ7cjUHF3bTiZFQQY\n/bjwyMQIy/g5KJSfRR879LfavEN+6TCb1sCmTi0TYQf+vJ8KV7BQsbjsIuzs\n8kJ+gggAhyBf0z8jd8dj+H86jO+fBNgtA3VMTbzonWPwIOkXUQFfhFrfAXvg\nbechZXzD8HIDZ7P4k25rgfyK/KynH51KUZmh63vMinKoZBoGSV1aiC8XZI9n\nfZgE2p0eqwpGEKJI+wT+zBSnjlDOzRhOPHpH0TOXNTp1BQt3dQ6fwRK/ucKH\n8JWe\r\n=TRIG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"c9195feee0509ae132fa5488f9c8f80eae1f1819","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.10_1586178075643_0.27489524484599404","host":"s3://npm-registry-packages"}},"0.9.0-qa.11":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.11","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.11","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"bf87bd64bae4da25a66abeaa1123a50c12f1f738","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.11.tgz","fileCount":8,"integrity":"sha512-rVQ06X6UsKvhK41jvK8h/dty1g58rN+REqUI4fcx0pb9Ed0/Nzdg5QOUolhwYpw6kJgXXJv8tPvpDR/9JBdfpA==","signatures":[{"sig":"MEUCIFo/DuyBL+whVn/yjtq116D++/BmF3vcdLWi1gCMzeQ/AiEAoxKxY/eaQXW0WjThWpL2boTQICxheD2evS3BAJXYnpo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2908240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiyw5CRA9TVsSAnZWagAAYswP+QFEN6xfPMRklhe9yH+p\ngHEHPjqtZf0R9WXZkqN1F3po+/2WXJD7E85BbgU30sa8ISLEfKp5/o3KYgqc\naVVqowy5nMMp0LKbKaXILic9BGxbf95kUQpJ1Lc5k3kahjCtHd2mvWdmGf+d\n1R64miEQRBE1NihG6+exBp/TNP6u7I5hnzRXDYaihWItXYwQUeE5PO3zjQcr\nAfOgdRDFjrub8AI5lgaI3CIi9UAY7BzrDgsQqPs/CEnuUbwXLRSD++5e7HAQ\nG6HU4pmgahgkmLh6AcSK9M4r+Q1R5ltw0nB2bgCshyh9Zq8AC5buqevP4eVd\nQz/y7qY/4M+LE9ZfXT+OAH1yp1iabClHs/0TRWG8PNQt9H77AbGrlwW0lrD1\nl3DLzjmJ0Qg3dtpFHxTcoHaSSqhPyMEy+ShlQqcQ3NTVS7vraU/keMVVoDrU\nv8IYjeFtdt+Xpgk1a6SACv8aD6zM1zmJga+8KiM7LeMwUwFIl/gVARHqOeVd\n/23j8RpuIGwTzeW3WBEMH3NLkDKYB1RzLBxQNgGbv8Qg7PxwQDq0YcCM+29O\nGbPLLZmsMWM3+Ke1NDuQvva3WmYf2KzBBdT2d5DqTRyDE/2YPsVJrl8CYpNo\nUs/1a7VSuwiBpsTZQfS+/noiG7NE70c5Yjyn1i4XvdmnPltCqQdySadocJQx\nb8Dx\r\n=WQor\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"7ab008cd930f920c0c255d1771444b871fcf4c51","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.11_1586179128832_0.46776201047689114","host":"s3://npm-registry-packages"}},"0.9.0-qa.12":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.12","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.12","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"0ebfae2f0a2c4b1cdede14cbbc28f9302d82d3a4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.12.tgz","fileCount":8,"integrity":"sha512-iQ1x9Ge5cTpWieGMgG43+tO90NwX/ZEo1xpIPj74CCWzHI9s2ILJxoIPvLx1XRgWnchIPdilpLIPErfcVMZpfg==","signatures":[{"sig":"MEUCIHViXBMLm4dncnC9Hl3edj6V/SR7SUpqCagbHnBZadsjAiEA/igfa6gxat87y/GaDmw9T6urtxk+Wx08M48Yz2HQZmQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2908382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiy5FCRA9TVsSAnZWagAASJAP/2ARxJQ3F+TfC/BAEmaH\nGg8ugoWNvcRJ1rHIhK4Wcwc98R9qSsgnGHql5vClabQ9MSsj25QNMUueodAo\nP70C+YQdLLZk25AoZyJG53BeMbumokHOr66HtcCBvwbEkpTe0YtyLutwSg7M\n/+hJ9D1lc0c1zrgf16vQREwscfmb9QMEOFjtFNrI/TxPEWNMMy5jlQDbgGYF\nW7kFBael4zOXY3LgN43jPM4omprGI5/EyyfvLrj+MF5SHX3anVZd+QS1VQFc\nCagVU/EzFg5YSjtzo921pQwSTal+cDxZWWfurrAgPOuy8G1Wi6pC/oOgrlnt\nag2CplsuDVOzUGdopkX0gk+cqH6ZGSoRNYesUJwfNrqHmv4aeaDkXNH3w+7s\nlei0/sYlCx/Aut3spCXA1yk72w/RR2+5Tyx1WikTpT6HZdfMCXfRhgHSGK8L\nFS7U736xUoaUwL9QhLDiddl+SRHCw30cAN/CtgshKwsXY3PhHvPMvSLLaung\nuCUXobraNJLb3CdB7NKX4YIYtTxheymgt7l8glfbrhg7rgcUtsgxGHoT0Nn7\ntRxv+8gramfoFQtiif956HJdsiRtbv9LqDWk3I1VVRWeC4QAMrq/KNRgxW2W\nu691YUZrkhxBxcOU4ltlXsMVs/2LVTMMy/7bnSsGoKide/vJr/kf0c/qVL6b\nLLBf\r\n=OtDp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"702438678e093d86d90c2429f4d329ec32b7dde2","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.12_1586179639836_0.6116172813501319","host":"s3://npm-registry-packages"}},"0.9.0-qa.13":{"name":"@goodgamestudios/cxf-runtime","version":"0.9.0-qa.13","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.9.0-qa.13","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"24499f4de319f95fb565e9c9f50493c9b9db8560","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.9.0-qa.13.tgz","fileCount":8,"integrity":"sha512-uqsjF1mlF0ItkeZ8gZXC+vIAXkv9R/0tc3K8+ipMlxvvZ+anyJvkYPQCNzeVIE2ZnRtf+3XZLmgK4VWzPfbGHQ==","signatures":[{"sig":"MEUCIQC2SNL+knrstXGnrtvMnDpzjOZwKnUX1ALH4QMI6lftiwIgSnObzYKmpEADZEc37W0nciXPLJLe/2zzKlydf5ws8UY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2908506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiy6VCRA9TVsSAnZWagAAF+4P/0B8mN5qf42ayHnuQUIw\nZ5NdQPSGPiisumwQEuTde6aS3suUj9WqQF8yU9vrCPA+6AAu7vC0E0opZ5mk\nCiewiiIUhfRiTuUxSobQn8iRnpXyu0Yq7g3UP+Qop35UTxdd2CuBTNTa+MlT\nTJ7fEZSnT+WraWZhdvI0k6Z7ELubF8ReMxbS5Jb4AAX+Q5yN4XtJJ4CBzJZX\nsz+ckGOv1hR2tOl+g+aEAzUpPJEGWomSZ4fEj8yN4P+DMYgvxIRcamQKeCNg\n2CRoqCt6YKBWvh9fqnSsf/pkfbRESe+xIUdSsD4bzno0OoBpfhj33q+tRtFs\nY43118nj7QRqQ5EYGhoMmisI4/FFhQS+LYOaDHn0lFZX54t9xQMHKZRaMisN\n0OoJrximtVZh+PycAfDVyyyxrZ0XnTvkqTXYdZ7VHg2mlHOBU2bqncNEhoE6\noTW78MAv/pYYcN7Ey8YZSeuCnGYIJ0jYkvG3aAQkVwFxDBbITjkteq4kZx0Y\nuRXqKJeb6eoI3mvKFybBotWDTbAY9uAHDAHbNhturZbJbmYo3xUUC7zO0MXY\nue4j+RUiaPiBuepEDQjpoZATKG4P7IAbERYy72dMFoY704ptygcIFWwoplfV\n4J38gtTvWnvYMlQ7z5V9gDZacwt9BqJPjl+OvH/ifjnJAOQZGh6cyZbJod99\ntNPb\r\n=3EIo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"9fee4edb685ccec7e86e015027a024b9c6322655","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.9.0-qa.13_1586179733372_0.09787809048721563","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.10.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.10.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"edced85197d970f31616be5c708edee53b4427f8","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.10.0.tgz","fileCount":6,"integrity":"sha512-5WA5CF5pWqSnRL+HsZ+7+Bl/xekZ5ZazhaPZsSfrvDkP+B6HDVrC6QPc+2JQuX9X4oUFE/G8vEO5bkCk8E6B6A==","signatures":[{"sig":"MEQCHwvd/7mjCVGER13+zdaSzxWm/ht+Xl/lo59BlkwdUqgCIQDJ+5uvxH0Y4kFI42QpkTquskAhLTwgXpF6YZv2sp6Yqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1089762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejBu1CRA9TVsSAnZWagAA780P/jPCW4GZCHmc7vQ4LsA/\nFjHUwTs2xJ3tpXi/x140M1FkaiyhscaZAkidb9FFx8/+K8ytsJgze1fTdYSm\n8ZWld+l4c8FNaAcozGAo+LSqXW5PdaoU2c6Js3z7xq0jDZhknR4z/LPoF9mq\nNBGgN0KqqSvT7G50+8EgnAWybUi9GeUF4knE53rzgZknbDWn9o+6ZPyus7GI\nPt2SgAt38EjS5w9XLdF7Gc7wbpHQP5Nc2kHQxg1Z4Gdgxub3xMSDylUb8lX/\neSmP15iZeCNGhuQqTPFm4ur+Lp2pOkvtDIpF31wqG6uOokZXHh6m2rvXxSLF\n6vqXxZ2p2+mnuX5YfbyqgsT/CoofoTKwjAaZudUSxLDL/nTZhFKcqf0gMu+Q\ni4y6XsI+xzXoYLDXg8tmj3WVYHbBG1eM/BKEieUfiTJmd13z4EBWaJvqDk5M\nTYYJLfOzPZhUsh4MjC+FtBM3tih2wuIMyImxcoBYM2z5Z3ZlihEA3nlAbOLp\nIJGBWXLU4KYS02M7mCBlXZWtC4x2sZ8LV5GUsyLwb1hBhIGEGTeBaZAmQgIn\nb+inH/31ubDOWDkV4XV+/+jBHAb4yYLPjXqMf4QOnce/fz9YT7BXSHEM8ClQ\nS98pqCGeafsrK4nIrNTsvtNOKy179fZ7Y5k6ha05mJaR+SQsg9aLy5GVmxwZ\n5+vn\r\n=MZAy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"4c554967e229b2207b7c556c8a7c50a899c3b018","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.10.0_1586240437281_0.6077988824800742","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.11.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.11.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"1330c017c1c01afaf7379d72adc2cca50e1c35a3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.11.0.tgz","fileCount":6,"integrity":"sha512-KLu0BrR1qGs0e4Ga/Vy6fDZfxKQ6e2eszth7WqJtaj4CDBh96VKmsp37/JwGDIlTA0TMzuAj/D2H95wzNT5dUA==","signatures":[{"sig":"MEUCIHuesohG4JpCB6jyYE/lmo46VJNYz4C5fNv008uQh9KPAiEA5jZWUUReVKj+Q+Lyjz3jX6Uvy9/tA58mnRXXt40zclM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1090012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejCe4CRA9TVsSAnZWagAAKO4QAIJ0e/+F4Ikao/nuIP5x\nTyBMIBRXHEK+oDAUAuyRv55qpr7zOfHwoeuLVjSqcEeXwBwdc1NrmNMC1Mpq\nz8/+BEhY7HCc5bpTyYOoTyVZopy6VTRN7kGw61hu4ab5gXYsYnE754m9w+7m\n4MUPJmKLH8ut/JwhBmXrA4/0EqgM+J9Sgj9K12UgBu+A+CX10pAEo0oCbNgh\nLFriNzO5ciuyo56cPSsZo3gelr7ZAQDQqNjEH5o82hGLLsWNyMocoLVAXfoQ\nzT0/DhhZ9vq0vZ36JgR13VOinjHhrKE8njKF9YEeq0opt4gjDqXxHvDT4eD0\nTp8kE3r2B7NzLtffLvmVD+YXn5nn+0v0kqwdMUgpZyD0r4RL3AL6M6XjsX7G\nkjyiMkNBaGrR5ozktb4/j1lBee6q9rUpbJ7BQ4ylK5Ta4Qr8zH20XncoBdcc\nd3azgIQD3y+cvqVWgEzqWwSmfXaEdvWtg9o+RM9AK+7v2nde7RjSoal0fYkx\n/DKXSxleqB9Xgz1YjUcHhHavkbz+1detCib9XbCNwUMQs/4UDaO2yrCCPfSD\npXOekonWJYRemL0RCyyYXo2QWr2Idb1K1w1wzFgjAKTLavMyNV0fAHXyII05\nmJ8M3xV+rcBwOB5jagAKwXcTP7v7rxN3gt4USQrpOF7SitIsUnDdJ2q0TS+Y\no5Ml\r\n=x+5s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"f5bd7c4e1193557f2dec87a530bc6d2515645953","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.11.0_1586243512146_0.7695179768677272","host":"s3://npm-registry-packages"}},"0.11.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.11.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.11.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"4743e65feb07f63689a480bbe7fbeb4e2c517a0d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.11.1.tgz","fileCount":6,"integrity":"sha512-up+d/pn8HpgdxuxbNLRKcWxndzir4ITxbzUKe2NzZmAFahUWGxvgz+s/mqFwjHfNixIiL8O2ue6OEnQamy9vnQ==","signatures":[{"sig":"MEUCIQDMCVxNdzmxgppau/Dvv7xUSapuv8RcH2H6oXu9AEx6IgIgfV4q+FGMi1ETF3LIh1/+ex2vQPNKhEeyeozk1jSkfdc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1090259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejDQBCRA9TVsSAnZWagAA7ZgQAJOxrt9ivjya9MkB40VI\nppHWM/WCIbaevVQLimGYknCm4EbsCGGO1wqdTbgJNSgmHvVJ5CIfyGJdFZBf\nZ9l14os+NmPC7ufdgaJALsc3QVGjeDyIoeq/BXuPB+XwLcDU+jvKxOvD0zyd\njYjAvP/hq+lMkss3KJfgsXPy3oFarzxyMPBEc3mkZj6Xce7tE/cgcJRwBmGt\nX3TIUBLH+TAobam7jSonMBPMhHg8gZPruWB7W9ycqizEBkWxoyLBbjO96URU\nSYl1SMmZVghXWC74s1L8z0xszipyB4WK9MFmoyhvIgxwy0RG2slJPrPmmMI/\njzuJqkGSitG/0l0lUoxqv+peU2zAeV3I0VR6Vy26uMhUSl5vAk9Nr7eZS0Pt\nvBBNRRXaUCVQ+zronwwscdVs1bkV1i6tce9ouGCXxYOFSH/ii7bn092e58kG\nUaAzb7AQocMUwxciZZODwKFi/bNIkVTjKBj1GvPeT3uqWghy8JseE5QDYqEc\nigBl6aU8EXYFu6CeHGIrDW5MDcE8GSXS9Ch3Pj13ux9p0USDHs6ow9FMK60T\ntKW9QhMt1+8bPmf2krDXarivgR2dm3UzTZlln8/ggtt0bmwrwMsXVZq1+i/3\nZZk9alZowEgKl3t0iJL3nyI/n3OhPSuNx8JIJjPRabN7lUZVKMA9dpwB2Csy\nI4bS\r\n=TFDL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"c08972b51962ea0999beaf51ac1402250844b280","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.11.1_1586246656714_0.09275008429549136","host":"s3://npm-registry-packages"}},"0.11.2-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.11.2-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.11.2-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f5003df26d75eb6cfafd8c6d8f0da445dfd1bca1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.11.2-qa.0.tgz","fileCount":8,"integrity":"sha512-UXEAOcz45/FxvX+8VBZip6HQ54bXZcOFpby1asK1pa55Sd4aKaOw3tXR7N3LB3gVb0ALwGOvdSNivQtzozwLtQ==","signatures":[{"sig":"MEQCICp/vw0kOxBATVkZGNmOUo5Bi89Euoj8RsY3VzznmYMYAiA/GcWxNnDLmzFX8Idt7GXbXjGjBUI2f6VzI7jypqRpow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2913412,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejEOQCRA9TVsSAnZWagAAQHoP/jdwiPNYt0i1t8Kx9Rt9\n+HFPvMn9yQwSnC76FlmYyXnsAa6ifYQ9pXTgITH6R1STCHwynSjSXRJU47Ai\n/0iStZUjvvyzSw91jOiSoLvz1ee+ORzk7Arbw0J6fXxLdwHOP2yJT5ktPhTR\nPo1NkUkmO9SNxGfYICE4NUuGAcMOMn/At+SFqJKiDfo+BNx/hztp13TQT72u\nLo/Ly3cQYpSNBEo60RmgIqgHIbnkab4bDuWjIWPSUNbDDyiLJN+huS4DTCDH\nQST5XQRQfPbROdRwp+lOrEWmw5JlxPwjoOLiQfoEKS1BKyP37omShYI6owSr\ntkDKGkVBcZMght8/Xd3VMCk63wld8TCbI4MpWqjeJ2ekbIhShfna+ucNnZYS\nHW52yX+F1AwAoJi7pjmrLUf2S/lyl9qOckEZU7Uq7C/RrqREZc0JMOnvlwBn\n7TGsYPQ2kWeL1YmuZafU/SBT/tSQpT/lIW3YFJkm4VTicntoXwPi8k3hYH7N\nMeUM8G9edKPV9vo1fBSMA3p8tbAMmnu2QskaltyiwqfQOSsV9I9xC3UT4zM0\nOsRfL4HfrD5TeKcEqAVb4VpQC9atTGKxenVoSWeTlppQPLJBgpAPbjsYwG5o\nwGHOwv4FYiupI/H+ybuMBI86SGXeWQ5bzZADr4Dq32ByvuwdQC4cRkH+bXgX\nmnr8\r\n=sDDU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"7e7c9ae0e6275c6853e2eb3f0c0d9394412426ed","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.11.2-qa.0_1586250639972_0.06099791167893698","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.12.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.12.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"d13ee9e6f66736fa281169dbbd1dd10348db9fc6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.12.0.tgz","fileCount":6,"integrity":"sha512-63Ypfvg2/drSxLUtTQuR8YYhJ77rOfJzO/xzsNmiT1rf4y/o4eMfseOfdwHsdkmFJ1e6T0ryxX0YRD/L8MPjJQ==","signatures":[{"sig":"MEUCIAPkpU3ZBkiKy75yWvg1/eaqoVCmoeC4w5JQ62XvnnIuAiEA4jJ/gDm392MaREvjMlGS420kDwmH+fDt5wqL71q9GA0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1091716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejZYhCRA9TVsSAnZWagAAnsEP/1PKPoObcyT/aOaaxCee\n4Ds5NkQ73eUT6nYkNZlhfWlm9pQc8an+TM02/qzi8zTWHl9qU5jLvbHxdooq\ncG8Kgu4GGEhp5BBgkgLhEfz766vY8HfPa9mLUVkyuP+piQbG6ERLM7rQ9HG6\n/xK9xv/iU8h25IZ2Cd8ai4CKMjKJ1xp3uRH6cefe+QhTldQEEiON+Tvocgur\nstzFNhTUjgmzK758hK7RbY5/EPv4NjFMzRSTEqY0w7/u4wpPzdOje4EZg3IK\n2KkKSYw5XXlmAiiVD5SV8h/o/RlrxHRTvt6WB7LeO2NA72C6idnlQtjKEmW0\n2CK4Jo3mVNU/3A+4U37HLL7+C/oR5j82NvSjRXTiGhREBYXZixhZTPHKrK+S\ndjAp45O80Qp0F7ovxKJ50EhLSZdgMOmcT30zbBzGE7iOYPn0REb0aVvsZZ7u\ne/Bs+17ASeq02JJkIznqwJBAoY19ZoyT7HpQgMbARV3/k1B4mR2og98nWXCI\nKPoVxaCLoT7WDXixZrmqptjAo690gm9tgSFOq2pJufmGGvf+JhuAAr+f70H1\nbrrkidWkmWRk0m3XuYiqYg7Cqyr8RX2w5k44I2UOXaRkNDq5Fisj0lOCmuLA\nyomyIEx2sWh/vrkYgu8JQEJG29ho6BN7lXaBVQVj7jGkgguNA5ysiDRFJUt/\ns3U7\r\n=tJu8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"26cd610de6803dd8bbb378c45f03f0969b5cc8b3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.12.0_1586337312379_0.779940575384364","host":"s3://npm-registry-packages"}},"0.13.0-devtest.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.13.0-devtest.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.13.0-devtest.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"9104af89a3e2cd520c65d0b050d68ef70bf99ae7","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.13.0-devtest.0.tgz","fileCount":8,"integrity":"sha512-iW7BbFukKy5NJOjIgQjyIigFY5sniEuCpGFJAYmdSO0RwoZQM/Q/paWFqk5ZeznLXCvJKAMc7P+YfQ8geYDNLA==","signatures":[{"sig":"MEQCIDHgDiccDy4maub0VmFEb+xhjd1eFdgB9iJuYW7KCXWWAiBCqL2n/N5ncFeMuku1CiBjh/9eCKJ6G+lETaijvTsrqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2914711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoSIzCRA9TVsSAnZWagAALeUP+wdnWxF2mnxzl/pP1TvE\nkxpcWbb9xwAoLM5hkcHOSONFuRoT9KNLZGtFEl8n+xTfDe9Q8jE3RG7hoiAJ\ndfyb+02m51J8nuzrjF/w7EXETIhbaVa5giLtfjIKlsrjxKTquE7I/r+eRnLI\nNhYac/ojQjpxe6ujxqUXXdCtMIIpxyft6bfB2AFhXpPznz1pWDAjE3l5Qr4y\nRMH2ZKXU/HwQBPvvEKukVE6yfHoB1yXF70mnXvDgraWhU/lethiFvgx6i0Wp\n6v/HBwKSKjzet/dUc2VNPYpOmm/nxr3bS7f3WVmlO/gdFmb0HlN5jwrwn8C9\n4u1AqRPvCK3rgrxvHLgIkowOxO8ynl9fK5msvpo5/VkCS817LOYl7uOsvEq4\nbFxODBVlcoViyflt+z5yx+WFeLaIsrA1rJQwNmpasLsqggq/gkxMV+pOkFWn\n3Vkg/a20JryKpQvSZbh1jlgJ5VBWgL1wyZS+TD16PAlt+R0ABCbxtOxEAcDR\nVlOENUyf2aC6lz5hvr3OnTwESaHEFRQZR3ph3pyBz7DU9qSvv+eCuIOa5ZVC\nC4DEAwFl768Z1DIWoAHrDgUVx4vMQcKuRKCHs91HTOrkpD2KdVMtiLiK3Yct\nfNNhD/WLDUyUXS3jO3G13EcpJO3xsOZicN7MbYhfDUvvC5NIe5i9gmGdgYFZ\nAjVw\r\n=/x3w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"01fef39c3c3eb01469f4d164ea680b3c3c5ce4cc","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","DEV-TEST":"npm run build:devtest && npm run release -- --prerelease devtest && npm publish --access public --tag devtest","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.13.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.13.0-devtest.0_1587618355104_0.027557550555490362","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.13.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.13.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e8a94b4385f1a48a9fe9cdd764e635928baefee0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.13.0.tgz","fileCount":6,"integrity":"sha512-Tog2/+jJfro729+M06i10rjadwDnsThf9LpLfr0j3abkkpm3/pT8gV3wq8N9j35bMvTHPY6qPtsM5QgmHFLMZw==","signatures":[{"sig":"MEQCICGeLklbCc9uNAcNiRxcmS/UecRLjY6chFqLeqZo2rTkAiBAcwEpS5+8S/lIJURc22/kwpTtd4zXAU3Nq/orDp/tgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1092140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeps+zCRA9TVsSAnZWagAADXIP/jToGBxo508F5DVoOEaX\n0XSvRAgMYTmdJC8skgl7w19XorMGKgV8sXX4Rdnle7fLg733Ik641ptGBNsk\naooi4cPrwQqECcOmaDKeIvFOFxotH5O94i0S4iW3rl4D84fQT7zugy9NZhWR\nh6gTIIonc5HrXyBl/evJe0hot7GL2EkeqhHm3ZOTfFaHwOBaK66Av/stndUS\nCTcdh5mQk08XYWNfArRJ+5c1zbD3IErevqas81lA6jBNMUUbgZARwV6fyZjZ\nU2496FNnF+LFtIXynAzt8FReIgLA6WnL8aIovsADEGhp8hpKhLvqu0YeiSpZ\n49jRmTVNwLxprIAh1peYQwk88Sy/Ivo5QjpvPRY+GOS9e6Fq63OBozcz5s3s\nSI2YlJ2FApm8hLzLz1DYUgaPr8S/X5xoqekTFrNV81W4FQg81DRBLJpZ6pWt\nfKQmZBz1qhAQQTwFXuUfyJiXgXNFB7FalKAzG8mbR7rGqphArS4xFirwigrB\nW6Ughpwr8U4OIy2WxYiF15q6ErMd3xQK7LODHwG7ayCV61gpk36nJB7v7Xej\nKIsG86nQaxCfEHI2smSCmyazqso4cSk7BTHLeVAd6DD+xwOgF0ZjmpIPk6UR\n+1AJlZKkp03X4VAqZZ99R6pWRGIFpYSy5EvhEJ0r5incBpivESCDd7sl0FKD\nHJjG\r\n=8i5F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"50a184fc0851347e7a0db30150c54459a6867951","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.13.0_1587990451423_0.6152804850476117","host":"s3://npm-registry-packages"}},"0.13.0-devtest.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.13.0-devtest.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.13.0-devtest.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e9f243ff3f569ce8d569fb29919c22dfa3ee948c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.13.0-devtest.1.tgz","fileCount":8,"integrity":"sha512-9K9PlQRtP0AJ2hgBk53rUtTtJwdCwEEmA05fashVpNTWj4PNGTCsIS4nDWsfQHpEZA6+Hkr6BTXbnZtq8GJ4QQ==","signatures":[{"sig":"MEQCIH/+0YmELPxFXnN2EL4XyJ688/4o+aJRtr4Tsim8Z82VAiB13EzrOD+p7+DYfL9KPSyiEkhmurxJlDVJS3zndcz+HA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2915001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqVadCRA9TVsSAnZWagAAndMQAJm2aW8Azxxjux1Wwux3\nqz+Tp9z8XCi7FV39k9M17s3SYrNcagunE2aSWF5Fj9XDJ0AGmyZWlpDj8KzD\nifoEaI1oxAP1RXk0qenAzaLuKNbPN+5aVX8DbY0FberoWL4IrJa5Bji8Kkcn\nHd2M8C2P8U0Ooa6/iKyt/j6/wK8KfsCGhHf70kpHDWvVWT6ajyYYf1hpzrS2\nyppQU89cuaIX3cmwa8RI6f1r/v8JDuOb8cajk4D6B1VkUkwX4LmPXi0BkvbI\n5n+Y4HiqANeCgjlz5BDqiqkKpTox56ToTdtvzvqhP86uOCZsYLrGc5Tffqil\nkQbaS8pIyvWab/Mj4ww2ADY8O0qzjCOkHW6PpTlU5fItJhjDcgc0rL7fgH7W\ngNkbF2vLC0+2BkC4OYYz40v+lB5YTpUGHOkU9q0Cgkw/INcRBL0og0s/RRUL\nEc8HNOQBvG0ND5tsspAWIiVa9W3mt7Zbxaec23ULbXoEk8Ysb0TuEMoN6FfG\nSyNe7AgZmFI960F5e7fCNrGDtjKuUN1s+guG6IEoHLijvJH/ub2iEkED9Wo+\nZeCNIjKj6DmRPLp2CbOS5tpScGKX+cvnqvfp+doCqIjZzgEawKSp0zIh2o2j\nhuur1dbC+ghwNH4dh+luWvP6EaKCMYXQ7sfZwE1d3bhE1V7QGah/StON6z4b\nFrlz\r\n=fcFw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"1014bbb1e574abaf877b14b5fbe0774b079a4c12","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","DEV-TEST":"npm run build:devtest && npm run release -- --prerelease devtest && npm publish --access public --tag devtest","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.13.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.13.0-devtest.1_1588156061450_0.8721719211077177","host":"s3://npm-registry-packages"}},"0.14.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"3d452081b8b1a3f603e861c2171454a3885c6c11","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.0-qa.0.tgz","fileCount":8,"integrity":"sha512-ZjbncxYnKb5ex/xSwr/0nMgCQoVMwc4CHuYFsoDW3cnrTm6WH+JdJgqrsOk94drLVONCN9Re4uXMAidxYvfE+w==","signatures":[{"sig":"MEUCIQCb93AXKH5MPyed/Z7axq6V0mR+xS0rzvLU8ZRByFppLwIgAYCQ1mi+B4ctm7N4D1mReH+RlIVQPq86Al9wY6UGy18=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2914976,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewnkBCRA9TVsSAnZWagAAxA4P/3DSM+oYTeoL/0DHDqet\nWy3CrHaIYlOW/uXtdoJZEefTjPzmNvXJ68v6MuD+2+4yiooPJXJW3WaF/4Z7\nA3h62P8PtfN1xecrB5tBbl2AD3h3kQyjXvEYwRG8UF45cFoWeYBtPnX2TqNv\nV0VAE94eHtRDKddAIgz5WBjBuNw1EB/Aw35Rjdelm/qcoVWxTnr8WIpezBgf\nvnr2N7sDecpSTc0INC6DTdYE/qxj7GHd1XL11EBY50ieHnVEp7aS/B9l1Egm\nLUY3uCjakjv0xE+nQ8dq0LExdn91J9Bib7H8w6YSamsxGDH8UkSVUKaU86Mi\nIrDtkY0OpldQp+Mx12v5ntQR5NKRvBsoD/R9wGc5ym75pj/3jxuTbaamZ+Xm\nAxjKj/CIs6S+X03tn2olGCvKJrpJjOSs9lXeUnchimDQFkCcuK8mSl6b3fvn\n55wI2CrGcLfStq8EHKVEDSgZ+dIYXMh7F+7BvGbcCvG4NZz8Enb+n/n1Y4X2\nV0f/KZCUt4ETmG+puMMMrahEbV769Y8JGnnXLEBywkDylIuTZ0txkI6s7AGV\nUkGYNona8Q87t5u5TUNLKwOFRjoDu6hf0328BaiuejgpqT/NpCUlVMrpVxD0\nE8RDIIiYYyIWqWJ4A/2RFTLEdH5ejz4CwSssoAdDPrthNiVSuMSTYy1DAKsp\nacuj\r\n=fRIZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"40ff6758640a5d7e7fbe6ac8e2d80f06881ba1f2","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.5","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"13.12.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^13.0.1","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.0-qa.0_1589803264949_0.17329109916346397","host":"s3://npm-registry-packages"}},"0.14.0-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.0-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.0-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"d7457c2544446e103eb4d727cbdac3f5c7c11693","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.0-qa.1.tgz","fileCount":8,"integrity":"sha512-1PD01tZwj+Pe4QJcmKWpalPR6381E8VebmlS+Q9vqMvgU2K/u3/CnPAbnNaItD+fg5aqwVC+dhFVgVizbD1Pbw==","signatures":[{"sig":"MEUCIE708claerLmFabTUyjqMGE/IFoiUb2+faGTVvmt74IRAiEA1ZEp+zVn/sdbIP7KCwfYBnPYIdYQeWO4LpkfA12U5oU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2911176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe61XDCRA9TVsSAnZWagAAqH4P/R65oBd9GAPVD7o0/YLs\nZBy5owoOAR0DQXDdEUPlZH98xKsLgJMfZ5ogvggcV5vDfaqgVVR6H6ZEu3/B\nYjLxFwJwgBtw5FH4pJKpsaG0lnhqN82D6Rf3PXctD0MJfGdvcz7+OALvabix\n9+yF6bFW5j1vZIbamJcZiBEVmaShYo6ljGR074bsT9GbV/RormJgHIvBhm2p\nn6Xv4vlVVTy7NH76dEJa7QuRmDkvtN7qtIvH1ZWRJ/++lTUguvJcGMJF9YUP\nqddkNN+eGPfP1UcYw3/3USTf9278TZX2FpLtIHdbFcZPpwjpfIRfJEOSK+aj\nQawa18K5eYWnqxz1AlRN0i5yF4lTVNqRLAjHqtguHVUF+8Ob3Osu2NSczlZl\nABsuEWSx2oQnklou8picsIJpxniQpIrsY4kfvl74fqluM/RxIEiec1rBC9BC\nNynP56MlCyFVO78RQf6JH6O5e+qhHqUJzNNLQwxsRJZG5kiEtSahFSVjKPuT\nhjZNzYQqZQdBx83wGeE8/Z2HzfIfuSM4zfC6AGyuofZr0dg4CwkOzQZUBVHW\nJbmjrrjL6Trgo3/ctUCxgQ/ShkvED24FeOhJ0+AnNBjjtjRjQ4GIdpW2LvUk\n0ckr4NRGfyMt1/XDl1iBdEouJCJHDtD6TxG8XyRhDYV2hO7vPFAyBhRlEh27\npL2I\r\n=hnTM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"a52750fbec2934df7259ac9f29266304249296f3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.0-qa.1_1592481218546_0.2551996841390478","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ce255ac1836b7c3e730d65a0a7e0356b1e1de679","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.0.tgz","fileCount":9,"integrity":"sha512-OYYRyA0d5TLfR1S2AbSj2cFopImdqjP+pMe9ykx4JfWyjVKyNU+bzaFfqUj0w1LceRSRH+L84JwCAElg10FpKA==","signatures":[{"sig":"MEUCIFojO3ZLpgNbmSMHfCns+qnFyeKn0EMs9GHK093lE4BjAiEAzetRX8hU9hKHyj+AmCuo9iH/4GuW2mOZEo5p0UI58c8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3378693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7JiuCRA9TVsSAnZWagAAGZAQAIviAFwrlEiLHLQ4qgpf\nAM1eBu3BVsm6D5kOMHKfFdbHaEGs7K1Z0mKv2GH6RL0gmAoby6SB12Rx00ok\nVvxcmOtRe/+YLkb+a8U8/s+pcfEZb9444eaxKB9qymntO0sR9NV5gGbFbgf+\npRdEmuuTohd73aU/I+wXnQwaCXLZ37nTmQSvkdxmPidgY1mxQSDnCWJv/QUL\nCURo/Chlbs7EzJCaryuh0usW9exPMNL03fiW3425ifTGOMSQnTTxyhbeswQa\n8NYDAMlEW6xlRe870knPDUrRkydMEBZ80XsD5jd3O1jQaGLwOF5usAOByvKL\nnKlmRkCLqhYnzQFngH6cF4Gva406LBzyIpS76h58zy0e0wK6aIsze6GVYpM0\n9Mh81PVLpck9iwFlseel1wbufEgRj3W7LB2bgUyPoQiykFvNgZWCze2V/v7A\nViL8I+Ud/1C8qvJl3RDjZWEeDaDtZ2lkarFPE38XN5TqWXMnkx4SB3exOAS3\n0qAmB4xp1dtNPNn0K2EIP6eq+pjWaCYvCPg6d7l2GLc55j2JUCz1kGKrYs7d\n3e9zmoB0484j5vIdGs2qTaQdMXHcSGSlYFSXWS3GQv+0SXFiD5KgXNGRLHWt\nDww7XCmlaLfLLCrpOi7CayUgurUbENLrphoq5RQy/pnmrRgvVnWmlKbJreuA\npkep\r\n=oy+E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"07e9496a4c8ba3121b830aed6454c52f61bbe4dc","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.0_1592563886445_0.017956760225249946","host":"s3://npm-registry-packages"}},"0.14.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"dac0f089e20c16fe79d3af67b793ac5bdacbc2b2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.2.tgz","fileCount":6,"integrity":"sha512-Snz6b4+UYv6zb8y5JVy9FzMNAB5j0RRhWr0yDw51SFzCe/uyuVsufMS6pnmBd3P64Hq8MDk+O7+C1wS2xdjg/g==","signatures":[{"sig":"MEUCIQD3y9mrTXl6JkFRj2vX81va/UjKR+btTS0fc7d5OIogxAIgaq40wm7XeNdpanopDKBV3wUzkTPvNQxysRj7Q2LhHbk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1092387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7KCACRA9TVsSAnZWagAAouQP/0cx7vRO8sjQgKSoYYEI\nJb68iT9E0Gi69yUDF7okFbpuvoMF0SN3Wke+4SHm5ZQbctkdWUMPejdWDw5P\n8J2a8KIjhn/a0Yzqwl7vVq7cfMVfAIqtdM2MvIt9g56WWwU0isiw/20R+G+g\ngeuJ3LYDG3xJvjp36RNZor2qD/1XiGuliGal/NsYzZ9ivA+Fzp7o+eyS2sol\naT5Z+g+WGd+9iPTwWsRwhxEeBz7q2c7dWRIRWXsRi4RAJpzoFKadepFQ/fmP\nDMMvjtJpLGY3RL220LZbww/quxpPXrNnLebcIiruN6I4nUFsgt3k/UKu1GD5\nYu5uI4Sjo5rftIDtdeX4+WIhY/XqxHr0mkep/QenGwDJa7znNd5CctQwplr1\njN0oXs5u9hKp4/aM3m1pNHGauwXkYMHito+UXYc9Ts/eUQwztnzQ7Yvc1LpH\nPJjfAjCJP1Oobg+ewSf4/DgvSaLxqPMz1dse6x3fZzQEC0g7cYEySGVWCxt5\nWuwlZsSjnxtHowHovNO2l5mfo/Tqr+R8ektimPVN1EVSQeIA2GesPLAhHeMU\nGlsQgDILf1qwE+1Wu/acyLSvEwYCUC0ImhazCJSTYHHB/Lo5D0cO3ckFKjv6\nPfsOxgUquMKl68eRT7AjNxfZH1ouSWcui9eTDggfKJrRqDhpx6XpXW4yh4Sa\nUakr\r\n=AxAP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"fa58a0a74da373b25e10e42ee009ca1c6e4f671c","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.2_1592565887824_0.6409479375079046","host":"s3://npm-registry-packages"}},"0.14.3":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.3","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"4da85e001a2f98abce22df69c117dab396664fd2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.3.tgz","fileCount":6,"integrity":"sha512-NortUR6rEB9O2yu1DQ51UtP0LBzsKU8UklG8G1P1Ow7AMmlRkJCBftZhIWtPkJD6Pze4V1EtSefneHrpEEqj8A==","signatures":[{"sig":"MEUCIHXyquR3kQaa6HO0CmUkZV1sp646aArPiVBu652WmAAlAiEA7b9N/lWXmDIIVR7n0Iy3vv5TpkigKeyvEkC08HoUWaE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":642069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7KauCRA9TVsSAnZWagAAPHAQAKLtfSFIu+iFQoLspevO\n7L+LGGOM9PkfTVPN85Eg6rMiT23gp4DasVdWfV1X4O+ICgatA50lCMJE+FqJ\nWvbx6C8ogLpfwd26SNw5or2aT6zrKmKknXn+K4yEOp3s0giSRfM5Fee65rdZ\nSm2eZoe7dPDXuf8Xusq85jb1aIBag6V/tp6lZnAzMO1ueILjDxmSWxR49ho0\nMbbcarEbvg0+fGaARnObKIGLr8eNIzG7dccIVjlIVO3ziAGI5l8KjOBu5XhD\nQAnZT3rWZVemdCH0Sg93oUFaj9+IOWY8IQ/IdpUsbMfrKJIFs49vphtU8ZZ8\nq4SRyMstHVpSoRdOuwdVHEN2kvyhZHXb9Jl9UMl5U9p4ldNSsjvgwvCORZ3Z\nyRbYvfPXeCS5NYaQlE6jZ46xjy7Uh3EFd5EhULzDqIOwwluCzQd8IPU2H6KY\nN9JGtx53x4tcJODwV++7aK4yOm61WFQuDS3tcvY1r0U7gAj00B3zFJZ2bgYg\nhEsYkmPPZvEosjBLkuYFUoCSPpFo/q149l4VPc3iZ4yv308AOUg6YzBJafxG\nyalixCgidLoJ5plbT2d5XvF2+/JLJiffZKU980aH4gGVNra/7Y2edNK+C5Lu\n1IcPZy2ImnnTgV9PvIsvbRn8z6G3QrSegZsFjE8HmY+1UA/IGm8bMD1xur1R\ndE/v\r\n=GKc1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"fc52e0bf017a1f8b5650798154964be6dd1aaab7","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.3_1592567467592_0.8876003954010221","host":"s3://npm-registry-packages"}},"0.14.4":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.4","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"c4d26558bfd576d92545a34496b96b9293752877","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.4.tgz","fileCount":6,"integrity":"sha512-XZ7W+tlzNnmWCJJG6ffTRviOlqAh7ChpVKNHvvN36CULBW5rztzZNvFL/41jE4iPchD03T46BGjLuOIqvwjKrA==","signatures":[{"sig":"MEQCIH1RXog+wQyE87n9rT0fB/rYq+Y7N+/wXoT61K6vWzHTAiB5aLBnStYdWPxPb4HMXEiNOVUIUJcYColW6Sn2b+mZ5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1092510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7KlBCRA9TVsSAnZWagAAVLYP/2q/zQ/6OwoqzpSP86Sb\n8oMyGaU+ZEHb6a4xwg5+wTVanR4LyeLZph5IcpiaEcRcFjc8mK0jo91dYk9r\nmW2/rYNoRF5Qg1cRpvW1Gsp/oT/84ECn9kSlQxvhcy9dbyAOwrTzRYCfJi68\n4qsVSmLueh1+qSqEDkEL56QsJCtpKIJotU9RTSBgUbUnrlr1n24vDkI6GyAZ\nvTIpPAxgvUSaeDYw2J5I+RB6DGo3tibEuYeC8B9oEw1wyWPSjDKg9J1yiB6m\nec9lAfFWvKhFDAiyx/qXFGHRbN8Ux5qnb3KHS/3myPbTynbzgFU2q/SYwaU1\nIuTysGBHqIwaxtTvvdRkuq18WG64/A2M5Q/grhvN+3iVWtlAhqWUaJcVuJa5\nyEKf9Dkv2cNPYrquZg8gyCr/30xDEFQDc/tVUyjef/MWyh8rH/0wt6scH8sd\n570SnyQlyE8Kwbf8eE5T2q/Om9eKdZ6YUoaGL+WmJarH4GHKcARHMdtxCd1B\nKUWTN6KDr5vfIf1L2hJpVPIL2L+VrsOFX6vgZDh7c8gLQ+Z0soflkvyP/p/G\n037mIZ+Qm8amsLzfTieDaQRMlfzlWAZ7GIruiJBsvCcuywjwAb3Tphucm4TY\n+C72MrylRfAx2+5uiKh9YFMYCGaGZ/sIGP2wa7EfAqqHeXc0x+3TIANF+ik8\nzElW\r\n=cc6O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"209731c91e604f2b2ba7a4dce521a13525eb63b9","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test  npm run build","build:devtest":"cross-env NODE_ENV=devtest  npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"parcel-plugin-package-version":"^1.0.1"},"postinstaller":{"see":"https://npmjs.com/postinstaller#readme","add your config here":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","core-js":"^2.5.7","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.10.3","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.3","@goodgamestudios/game-alias":"^0.2.1","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.4_1592568128882_0.4414972825641059","host":"s3://npm-registry-packages"}},"0.14.5-pre-production.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.5-pre-production.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.5-pre-production.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"97d914a35b12d3f33f69516e865b7e690386dae0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.5-pre-production.0.tgz","fileCount":9,"integrity":"sha512-T2qguvxTgw1SHv282V9XpgyrB2lq2/jsMuvbo9yUDi/4KtyqNyP6wcOh81qam6ghVMfjDOOcSzEisDVYJaz+cw==","signatures":[{"sig":"MEYCIQCAcu8b32/AxqX2EWck9YKsJ5MV7lSB6sF2YrhMU07DWgIhAP1iZh4QBTzDWhF20YrGcSbxdNJOKPlHdwlhgKetygGn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3380433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAxoXCRA9TVsSAnZWagAAdHIP+gJ6M93SmRj3/2p5/f5s\nF7u+Q7UUa7L/9XsHjh2pDyY4yZi+N0czvYJnQnov8xFK+PlQyQofYuGedZlH\ngCql+ZYgsvmxCYERDttHa/9aX6CoAVdIEcaq6YeWAoCAjfZdUcS0am7SHXhD\nQbLNRHh9UwTJ16yLkf8O4dRldGiLBcGH8PjUBoCrrktG2UFDSr7MN6yDz/dq\nmjtQ7yBjPpVkIBiMeCmDRPL0NcUPfmXMNlCbxJaoES3edrxGxoxdLeXyBCGc\nHYlCZez3QpdP68wY7LDBFj7I8B4AuuEy3aFm28SZ9Uo8X2wHX/66mMv5FkfS\nkr9gvzYZKeV37yHCxbcemab95ogPB8a92seGZtF6ZS9WS3ChiPGCwvwV86gE\nfDh32c+brMFZ+VHM0x/7LAZbzcKf/DCmkFtlAEwxuOpy4drVwlecGB+jaUM0\nWHdPzs9MyFDjHZf2nXfhu5OXNELQwtSm3ECtDL9luFStVhV14CML9FCEeP8x\nxcHdcHwptBpJQwJMypLylZziw5/PsoaUIyPFcpuMcWCegp39VbeIRaIj5Bxx\nPxxU/ZiMzve+uZym0Z4ar66fiGx9W/GQg1pqZDYjwSIVQg+7I5H3jukL+AqO\n5wGV6fjy5fpaeLH3AZPB5JsjWayla2hwVUp3jIBGLyMX57gyMFi7WpM+i8xk\nZW97\r\n=L9Cf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"3eeda294e84fdfc184d306f631dccd7061e6e5f0","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.5-pre-production.0_1594038806444_0.7607212473916065","host":"s3://npm-registry-packages"}},"0.14.5-pre-production.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.5-pre-production.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.5-pre-production.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"cf1eab55c84dedbf58e64727b9dcdae2eb1d9e7c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.5-pre-production.1.tgz","fileCount":7,"integrity":"sha512-2OIxY2jqSLylDlSrp9abSmGW7hDyq8iSVHWtZFtmqErzDvuGYVvnppJWlxjDAW3d8ICXoJiBY3ddsiH8POG8OA==","signatures":[{"sig":"MEYCIQC6M8RTg433XyStzHD2ATQrQV0j326BxsWarv1mHAuKRQIhAOzzw594JyhNcG7Qj62vJtaHfOiqclz+BlbVjvCczVoV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":948537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBE8BCRA9TVsSAnZWagAAalkQAJB8GWIlJWmDoO37JzjU\nZMseU+PLRa7nZgVV9QG6e3IJVAvty0g1IxagohZx7/RFWSC1yTlDff25gun+\nHEZsuttnllocq8EcTwSbPEo0+AbGxttPU/d2b6zijtWYBuFmTwEm9/n6Skay\nrTwsnYcqw5S7Lm2bGhi765IltMSX8VRDcvDP4hCNUJGZ4uKuYpoo/0N/tEgn\nNTkM4aO47LCsq0ZFpYN7u086mryZSj5x5CJsC3SIgK4lX8N7Ht93SMbdSsPt\nVRR7Vjc74mdVNyOA+58o2nwEH7hMSgPZ9A8gm6DApv/sX/r8CMKigNN1LoY2\ngielCWHlqDfn4DYltESwO8kE/J+t2bpWdDEQGqYWWLKYeRRfXP7XIPgj3J82\n9miH227IVG1DMZn4uQUNBadTbwUDLjNWnGvqyfXlJsUZ9X92NG8Tox/DLQ+a\njZOCQJ8lCi0SJK3T+02TccTXOt5NZrT4UHhDRiSv4qoYL1ww8x6Heu0CbrM/\nTsn116X5RoCQQluGNuydNBjyapX/hrG0+rtsYjLvNYb1zKptvAa4Gd/HF4DS\n5Etwm5VXSfEmZptw4uJQRUd52NPf4xkplDH3jH19ngoCLaiqfT5GtTfPaRBi\nfpovyL7McMOOgfLVRS23I9+dK+vcHQ1veTl6bRjtl9MQ2eCJjw8h2ioHh3A3\nODdG\r\n=Ah0s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"211b499617b0ef5d92fa271e64dc34b168cbb683","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:LIVE":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js --experimental-scope-hoisting","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build:LIVE","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.5-pre-production.1_1594117889231_0.37204688299296285","host":"s3://npm-registry-packages"}},"0.14.5-pre-production.2":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.5-pre-production.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.5-pre-production.2","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"8e758ffe07a7cb5f896e07edf2b17e90bbcc12dc","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.5-pre-production.2.tgz","fileCount":7,"integrity":"sha512-DMlOv66vbk8JqykvQgW54TQJqd8xN58sooHonWqAim+V/dtxjyoZtzK1h6v9Xnpn1wU09DdTIw/PhqkTSai+zg==","signatures":[{"sig":"MEUCIBQOJNLeFFsmb7sIbP01wicJuDI5ql7j8HXNfI1rzJsbAiEAlPjwUQ7mu5tr9ypZgjixxWyc0396Uh4ImfS4dW4z5iE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1219549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBFQLCRA9TVsSAnZWagAArQQP/0J0qEPFHfr9/XKguEsm\nJqzXZUGZnvJhAs4XwnYYl1KNlIu2ulrsmvbOnIPKHLYqeEHS+SNsKhbx45v+\nx2WVTEx1HqBEmePmdYMjIi8UICmkLejfoWKlg/N4EEjBdW1BWhzLtVBC/0Ch\nIg9q4xK41Jm5P7RD651xehks8MefjX5rxOD9vcR/ekdcZGg/KFHDdEg4QX7R\nJfJJaA+nXBRtLvm34EusDXCWtmjj2z9Mjq/zNjQX8mah884Z+tT5f4mYgaUv\n50i9yhZz0ZAVK1zg6oO/Jw0Jr/Ck3WvXfMsKBEChWODsaW1gTGdGO7TRwmPq\nlCXbBtErTutFUdHJfct2qCbPLXob0hTnhLMZkNmekPI2ekCPamVRJxEQJn6i\nCbTYNDxxOkLSiWbRkLUeAAAdJwLeo1V/o/G7/cp5BVHpS/dzCH8tGCEEwXmb\nDw/b161u5du0Wky3ekchqDyfElbdwUs2DL1nssakT11LdyhrVu5Q0GTaEQpH\nunUAleVfXx8vBl52H/Y+HHQ7KCYCf3LaszclMte+jplA1u4myL9TJF3ikW3f\nJcKxOIANvNUVKSrHXO4JbO59Ke/FwgxB65jChwRXXaf+D2aIho73aEB8FHBO\n2+iumJttmEpls8n5eXP2/MP/mAvDxn7RsxM1mKDUrEP86KKEjqXtamQ60WH+\nmzMG\r\n=XNO2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"057c2f7efae6f136d7a9dc628f2a1f0d020c548d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:LIVE":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js --no-source-maps","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build:LIVE","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.5-pre-production.2_1594119178717_0.14851770621308158","host":"s3://npm-registry-packages"}},"0.14.5":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.5","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"0ed982083c0f47a85ad38c89287d2bdf69373262","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.5.tgz","fileCount":7,"integrity":"sha512-bJGyRK8il1kHZr/ZKvkbH1KslZMeWIBlmuT7M9kxXHozjmfIn5BU+z6etVGrJEJ/vC9R/omry158Rse2Y65yGA==","signatures":[{"sig":"MEUCIHaIGx634cLvaATNrSoIclJhODCsr4qW+48Btc8F/nYXAiEA2jfy4yaOe0RM0SYZHLyiiHuw/tzlIiMXbvEDJrpVrMw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1219640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBFeECRA9TVsSAnZWagAA4VUQAJ9B7NnvuHq2kwag+Zcf\ns+qoFO4QlRqb40Kk+hkwJxN0yJ3mD9CFArjJRvDwFt+BnozQFrruJo5fABMx\nDQhINJJU5S90Tg7dqkjjjqNOGoj7NtruoQmMV821Jm8sawVtMFJvEn+AMW/Z\nd0iltr8rVeUpdyZ1Cnf7b+TOcdmprPpG3ebfaRRYwYZrp6/zkn1d5EDcZPBi\neDGUV6wGljyhasVlfZUpri+Lvj8tmzlm1WwhfSfv947IEaja4wmzK9JLbGxL\ngwQqMYVJb7yB5GqXWYk54vYKnylCKreHppKNR8n3SaayDwk4ZeexATK6k3oR\nrKRH++rhT6vdmuPajASxGGzeFBCeMYIuP3jzfmEyas/7m02uP/uBG8IbIsgH\nJWIdImP2s9ZM+z6UB/MN31K+By/YSNl0v1Vv7GAeh+mcEV/lX8Yhfuv9+qY8\n8xsElb1JIBjYbQdS1SPx/ozuh4tAXjPhuvY8Wi3KxDL8GzhEF8M+fBltJM3J\nZPQK0QsU0lSuR5Ew7ti5nO91ucSAPZBrY5SmQLEQJqqiXVrgfW7vdYfJE+/i\n6aKMsFHfGFbsRJbjbfyW/DgYQf8QxwM8BYSkcfN/pFIiGIsZqqLaOW5K+H5r\nUiX2wAK9DodvgHGMu2gBfWiqnqhahgl4lNlqkVdHwdx4/l7pF4IXwzneKWKa\n5jN9\r\n=lfgf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"b79b6d53e5dab4683d1a3befcfdf7a8b4bbc63b3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","build:LIVE":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js --no-source-maps","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build:LIVE","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.2","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.5_1594120067990_0.4464358835845428","host":"s3://npm-registry-packages"}},"0.14.6-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.14.6-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.14.6-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"7a2bb4803ea97dbecd1d0916a5996d0d35f23176","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.14.6-qa.0.tgz","fileCount":8,"integrity":"sha512-8fQJXFx3fehYPGhes7OdMl6CwxXbRsDDv5lA7ww+gUNpEplR+8A8E9vLN1jys5uPaSy3HgoQzGwCLFHHCgF+sQ==","signatures":[{"sig":"MEUCIHIpDHEYRbHtbMm2I2C+iCAvVfOcsxO2AK7AesdffzLaAiEAkZ2ZZVlEasgO7k3z/RatodiRzXB7i8DjphC6/lI6HtA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2916482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMRFrCRA9TVsSAnZWagAA+6oQAJCfwZ/fXIPk1Ijk252G\n6X+jDClX3HHsESYkH3CslFGrj5M8OO8qEa/cQWBv1mH3f4B6e3L8Q6lpjh4c\ns3G765Iyy/eTdCLZOkIVIZwCwIoR0fqcx7iWv6JjLC31EKtP1sIwIUTbHqjP\nVbXSGLQQU+aU4I1Kq1SO3P1T/YVkwkmi6iJqAWmxEvHAgbqtV4qHZQQvQCFr\nIfkxjxHcQD3Cqg8UFjQ6kQdNmqnWiiWX/+J9nHYsLwLSrvTDTnoXL1TP+rDw\nujJXh6O4uh1y7kWp4+XhQ08I5HFS+xAjf5lGgpPK+/OC1kos3TVTUqfGdIOX\narAXKG/5op0mS/doVr3O5jArUtjlrDpsh71qpi9Mg2likY5s84D9kao7gNDI\nGyUxNPCuMUcM8EUyeRnb77bgVxzPwrGPCRYJ8NjZuSGpq/jPhcktlJljCcnP\n1wHJOXx4BY/3FIFCGIzSJbGGKz+QSX/XJ+g7fvI1oYfD8TPWabm5J2rPIBoW\nC64pLj3rNp09gfejUraoKiptw0UtEPsXk6hpLm1YyCqPNAcKfjQwLt0JfbD1\nREPwl9WMlOp/5FYABVJUKG8fk27RAAlxceG8SzTyuVwnvuZvJXACog+ld2Uy\n4+/lkgXpYGbJJ0CjfYENfHquNRFqQLA4VHvPO35mFnhTZ8bF7nm674Jx2eTx\n+iL2\r\n=4Iwb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"bd76e53fdededc5828b2a6713d7376ef7c017be3","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.14.6-qa.0_1597051242845_0.40569454700865526","host":"s3://npm-registry-packages"}},"0.15.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.15.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.15.0-qa.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"83305e04869066aa953a72f432e0b7bc6f955f6a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.15.0-qa.0.tgz","fileCount":8,"integrity":"sha512-pvO/dP60BlsFU4r0qtPxLfqxRVB3stucW2x+AO3/h8UY93h5qw4wYQneeTbD7j4LP9sti4+sjlAi54FUaaQCsw==","signatures":[{"sig":"MEUCIQCW4N5EeDAllEUJL4MrziDo5eMh1KLtl2A6JIAoK8gKKwIgL8/WPe24hYZAiU1zg38rzXAqlaHljVNAGU+YVPiU0LE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2916755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMRYsCRA9TVsSAnZWagAAIfAP/1rOqg3cOmvMZrBKZ6lJ\nHyyAeh5B20BWUVHFJBXK7CAZnIym+yzYIdZs0nQbRNd+CFXYoWtcB+LJGduj\nDWB0U68QxTJ6zsCYM87TKKaS8fcnKqt7N2ZxAlozgD7IH2nUNAn0JS+zL4il\nvsbmZh7dOEcyvP2yZnS5smJW7UR4ztLVlXc4X7/Kh9jyqACaD0nvm8mla2sC\nC0H9xgfl95J0EMyTywX1HGDMeKz5IEiz7Yy9wncBzSGkPK7nfGPkX6OlAMeZ\nQtTMem1woJJ4xqA+9liyFPLmzmyxYe0ewTm23aaAwKolX8XJLdcSISr9i36F\na7na9COoFeKj1qKvrtqmVmpzG6OMQ4P+QYapfk8sFpl7fGDD7kHTaidbeoI4\nwg03Qe5fR9pnRmWYq8PFSXAc0mL8c8Vtllit/jnQn/lGN7HPSn1uaepbRKkC\n/cdr896K56FF+iaLZZdZ/I3YkWFoAY0vsev1H+pRKC5Yx2gX4SvTggQHRSCW\nzuyryEQbLqpzJ3Is/sE4pCq27LQiIY6bhuE0sf0VU+lrDDt06Bw9bECQ3vuJ\nIwRqB7gnMg2VNm8ZPwZngkFeCysFn7Y1uoBvFhNubbcHF1brPmbAE0fPFj7o\nOYDH1PGsbt165TNv08PnaNs6fVPWoWzVZZg+5GnnPVsVNvUQtWK8NnDlEgSQ\n4790\r\n=SZhC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"778e4665688a2d27e439f1e0e18b86899ec87edb","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.15.0-qa.0_1597052460113_0.09632468006462047","host":"s3://npm-registry-packages"}},"0.15.0-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"0.15.0-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.15.0-qa.1","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"ac0991c8ec15bf30dd048621bed3453433171099","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.15.0-qa.1.tgz","fileCount":8,"integrity":"sha512-CIrzoEhzSAfnAJ9z7JPrQ/NSUnja8iMWd65Oi7mplaEvUDNFwuTiWJlB1DckeBawh5Ea2VmjfmTgvd6Jmcz5UA==","signatures":[{"sig":"MEQCIDh5IOTp/dd9OS0VlyNt7dhgw1QIzVsX/F8xCgihH7ohAiBl+3elkn+F/kdm8rGOzSI0B452AbCez+euYYpBwYIj6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2913192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM99lCRA9TVsSAnZWagAAkS4P/jiDW3kuYobp2xeavE8y\n5J2TNgbdLhVIOb/pT0FS+GmOvV7uDWMBeQjnqwRzDSB/SWZgKqikX5ZugXJA\nE8ufPYsBnquKZ7IOtl4w1VyvUOk7K0LQBpEaNqPlpx2Fl4+shTfgOWJgyZSM\nPt2+0C82IlavraIGjZJbysyjVlLeq9ZPwnunzNgu2VAhzGFfDIqaFXrsikap\nZ6aNafXjthJmviS3FcD2ujuhJjZDkKwzQ4M+0sl5XbO/PMSvzJOaLHHT84tO\naPcGRNrwsJbOkgr7ftod//Hsfls70T8W205B46jD8hHRuh4rjOmTDxOj4NBt\nzkJF0y8549OYafLHp2pQ0BG/PmJxuSxPr8NyGQH0uMpUY8RyddwQZR2fCDsu\n8zWodkPr4OjvNBQzIcTHEUYDY3JALmsTOO4yYKsNnIIZXm1vOctMYJHYEAQs\ndXY+rt+uBK17BNU3KJuy1M/HY5p+D4xUZEEV2/4zslVemkmYu8KY4s1VBxHU\nauKiRVpRgyLEM/ikzPMIavv77co3TlpDhlK5WboNlmM9nY+pXqiFYG9ZjWhX\nUCyx4CCMbcPP6JlN+H5IdRRqi8q9CvS1oOwkP9UIqIGWGhud1JLNzf0Sl+Qh\ntL/KXY92RQDbwq0uCRNCNLpK/t+uVoRbjuc5l34Tgs8+y/3GEjiIRzXeJR9a\nxY9F\r\n=yiN1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"b665f414b3ae196e2cbaf2e40eb919e47d84616d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.17.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.15.0-qa.1_1597235044644_0.3706914508431691","host":"s3://npm-registry-packages"}},"0.15.0-dev.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.15.0-dev.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.15.0-dev.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f66c57ca454fe1fca10307af24168b8f24ecd2df","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.15.0-dev.0.tgz","fileCount":8,"integrity":"sha512-FLyd9zxqpnRRL5OPbDnZTTpTNet8Yg6fmH2kAUTRFdTnOr4dV84lrIrb0Xx2moAbbq+24e26RoHltchxyRunCg==","signatures":[{"sig":"MEYCIQCsLRmzTNlfG2p7ig5+i3BtKRZeCTTk03ON+3kj15ZALwIhAMNYXLsDoH9DHM+1wFQsZ+JHCceAMjITCwuBwl664erp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2916985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM+qcCRA9TVsSAnZWagAAmEwQAIBxa/w4B/J3VcqGoIbx\n8uev6CMKxSQ1/JhT6+ihhZwW+LhbU7vUo4KfVTWSv9s54KeD4vmoxEoBBsa1\ncJTVkerRWbfZeiyyk6/7Kyr9eYnYMi5BavfbpevjaC/G2xM1aPpezMlIZD5o\nLr28wQOKnMuUZYZT6Ni1lA30mrp6KGjgM1uOLb/nr18m0UtfTkJuV2yGktaj\nh5viLnEw/k8JBO8DMi9hSHk4cNaty8sPYZ8b1MCK1QsDT0pwOR36lwh1xax0\n0+AersrNatcNZWRg5MM/1hTLXZ7wFKWLLFfpSNGt+ZP5E4Z266A8TRAWhDmh\n1IfRAbJV3sOP+Ccfqo5bxZTi09IYFrGvOrNcbUZ+UOA7Kw38QozZOIXBXdma\nbBoJBqv3rlq1MWY17jFCPpvANcbI71qd6Dla8nNXiaowoNDX1ina079q583C\nmy8MAeyz979Rt4m1ByI7K7OlITGceVHSz4clAT8Mi7wUbUxA+LnIWbX8CNW4\nqNIAPvJFFmD0wnDKsKlvOAgCT7SVBErceNUIzqopv8PVCdSZXFefWewxpnNs\n7gVIWmEiUlbLeysBZf2+q7nGlFTOwpt6pRaphWQ4SAmcFsk4czJ9n6W8zShy\nnEB/x0Ak0xaQCxy262C9U288W/x8Z362/oLM3kBtu/VJF0kvTd4ezFBBlfW4\nXDHL\r\n=ECTe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"f6a15e5772a5a70cbc7ead2366d8dcc81c30ff09","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","dev-TEST":"npm run build:dev && npm run release -- --prerelease dev && npm publish --access public --tag dev","lint:fix":"xo --fix","build:dev":"cross-env NODE_ENV=dev npm run build","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.4","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.15.0-dev.0_1597237916145_0.9100123642688926","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@goodgamestudios/cxf-runtime","version":"0.15.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@0.15.0","maintainers":[{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"f94a2b8cab98f24144289d6d61f8a8872d641a38","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-0.15.0.tgz","fileCount":9,"integrity":"sha512-tmUDvKLl2Dh43c1tW2txJbhO8XSiYq2FG5lUPA+WtPFt57uYmIba3A0f6NKcDVCCK4mMrY0UtTR22UgfgCdAFQ==","signatures":[{"sig":"MEUCIC8MlzB59qIAEMGtjHs1Zs0NmzpT4YMuIbqaDl5/EZFjAiEAp67IyWAexLi/wOheoXtHFpGMfGPyF8+YpTRUo01wYdY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3384538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNlxkCRA9TVsSAnZWagAAXE4P/1TgtVVXYjNjN7gSOd9T\nLi+omyOGweOMUbTXOFWxg0powHyEd2fHe7qtajtKYLvba+tWNJVG+AtZ3Uv6\nIhCajH9YV6knhHV6z2kUcSiPZMqxEIbshKSeknXOkaMxSrfJDUKuc/3QRySk\nUAOo8StnXrYHPTmS+0c+cHqYk6ScTPou4gFQnx1rAw2JnrpnPHYpuC9DMq5m\niXWbVNljNZ4wa30GNTSDGz/+oMmpxon9/7ZDOyd9rZZuZ4ZG+qumh+OrpnPS\nJttHGElZDz08LIYsDPLQUicZvgnJU9xXeeS/hB5YX3KRaMIO5y7AzTZEAEF4\nxbMmCF9Sko2P7ZRhlTlKUrdoVpLk0+8Ji+/H8s2vs9tcdGiSJMvWeHME0LBZ\nVQOaDcOj8NZE6WoXRDk6XxFa/1p+xcehxMbDCyMnvpNEtmdy2OA8qxKarKWt\nVDcqLh1VjvBedMAohNwhbWh6g138fcsEMX748a859oNcXzsqLz+QRGZN81mh\n80Y4ChuFeb0Gw6OXDKqK2by+PWV51c/REU7nc5FRYWJZGtcrXrMaCYKljPR7\noNnsvWROYD3hsgOKOYo3iNpgajK2zSAOaNTOdMsfEQWkCc2HuSL4IEICwKp9\ns2g4+v7TmQQp9jrzcfGx4KSoXLhSBDlmxNMnjhNSlGlwAVVnwgOLyMkuz+Fp\nPPCz\r\n=QG7m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"3780ebba6d753275accbf55e24485589e447b039","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.6","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.3","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_0.15.0_1597398115668_0.06576503388449795","host":"s3://npm-registry-packages"}},"1.1.0-qa.2":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0-qa.2","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0-qa.2","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"95f21752d28166fac5735251c807ba9ecb3347b2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0-qa.2.tgz","fileCount":8,"integrity":"sha512-vCF8cujgIUdNcNhJoFpy45ZH3zb6QozYOmGyE5Yp8kufBcyHUTZJXpco6Bzb9jowRo3NZsP1LTdGjolLCgPhCQ==","signatures":[{"sig":"MEQCIFNE9eZGULxX/BEew34i00Tb9aiAArs7WHYDtQDGVS5fAiAHh8ftxJGxxyBB4W1A59CEmUK9qMfH6Xv577/Zi6fAYg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2923538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcDepCRA9TVsSAnZWagAAcWEP/2tYwjZEJvF8bjqJFVG6\nB5F4RWfA7wixlTXaT/c2EU+kcnMsaFKs/XQQx1EPdpqE74Z9iBHThQdwowOG\na58a/vQP8n4bHQUsJdLuRPR8e/CXMPuWDD18428zG2AdMBMlv5iF8mCT7PuQ\nNmNajmFNUpMnrBTQgOE19f822eJXw85tRrST3QbPLkcqpD3tIXhMDomWVWmo\nAHGU8rE6hc7aGEFUFMfrr0a4q2WGT5xG/d1VQLWbFR/i3j+1j5D3CH5CT6ul\nwgDEhInS4sspop7L3GcLcBx4XomwJ8gHiUUErb5x4hNPvJGRmroJkbtroNc/\nLz5D1+cUZfdC708I8AA1nIJITyC7xGbTf8IQel0bD8LPQveDzBU/4h9Xtuys\nh2i7Iiji0dgDBFzBpqLMAwLqxdVv0bTWQljTlwrT++1ldEd65v5p2a5+noUJ\nxm7R9hXFHvV+DK6tKearolsCKm4n2sYnN4arGTraaj4WuQfeGuPNRSATv0zc\nW+biMXyBVIsGvKX8nh/YCKAPiGTQ4hz3v+deHaKnTicttLzxXkQYJKUr3ajy\n2dUvq5t5MquSOATwbZy8A41+3Kcw7vPptfluccV8Auov1H4+Msh6NmhuYBFB\nssVFdTxIHlAvtUuM9U7WwgdXC3UEgoayNhs+zb39FvdJG+4aQfN7h0bWWg+v\nEEYf\r\n=wBia\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"2eafe201e744e8b72534d3d80419f9c538e615ab","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0-qa.2_1617967017175_0.9574648425053709","host":"s3://npm-registry-packages"}},"1.1.0-qa.3":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0-qa.3","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0-qa.3","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"81f98e13b2c60e2bbb7868b79eaaaaf4bb795087","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0-qa.3.tgz","fileCount":8,"integrity":"sha512-eP1L010lUOHIocf7Ch7XkiWgWwPxz/Mvzri93meAzHKpstQck5K6Mh6mmNMtyA2uX3Ya1k+kboVeRKOWieGNDg==","signatures":[{"sig":"MEUCICnnWzF/JDv/S/t1R1qFX08CjXUCrlcqHlp25mN6r1xMAiEAl+hHGlCnDDbpGOmQulsXOJkQBaztpxf5uUuOY3hA+co=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2923805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcDmzCRA9TVsSAnZWagAAepoP/j72W19X9stRIqmYEALC\nRxV4AchWzk2Ta8jHpf745O1UC7qCmM7zcqgwEJyVc/BqCZw/tedBMTIk+YBR\nP/xyuz0MjnKcgspk4Tns4q0FRHL8zpsrolTIpOhwMRf9qTlGoySjHU7sFUg+\n/anbG3EO6w+c6y+Rjqvya/VclRii/nTyY3KaPAN6Q7hiamk+mhMH+Cpt5obU\nJepbKwTicoU6qXzkjr/ZKD6VIhZzkIXKLJ+GbLqfjtmOdzi+TRWdLJgBFAjl\nwAeHeEQCKyL1qaZZKDIISewTVKYTww33t9D/PAA3u6g2VZc4Uq75Uf1y3hJT\nSWz9IF8bFI1rrDZBDPrUG6z/NHXbG4+NzJ/WrIdgUk6O+eXlUgaPcszRZhBb\n50pN5EWCn0y+5ooyMtySw7lHqGwGedf4yc9oXL7e5PrfndLdVZdZI227sjOa\ncqlgt9EBOfYIV0pS3B9VjIbSVg7ngi4rktpDhSsziL9A1i5QPS/N5c/xpCcm\nMokTOUPleBh/DhGzMXfeIsmBZiO4BbAX9O8u0X+3tlhHciA/KMlOSyxQO/BX\ngl0oR3i/ULFv2CRHfTrRjz1gVx9BfFWXN0uuFhyT+6W6Hawx8KZcdGwc9nGo\nwUeDaz9U+cDl3ct1e+X3yNChsBv4p8vSaJ43dAyHresuQG8sbJ5YU5btW5Zm\nGBoT\r\n=N5BP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"0536c8653e112e54a0772651cb4f1d47678d17dd","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0-qa.3_1617967539134_0.5558552183560475","host":"s3://npm-registry-packages"}},"1.1.0-qa.4":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0-qa.4","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0-qa.4","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"09ac51b7fc8fea4bb38fe72dfdc8a77bc347d42a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0-qa.4.tgz","fileCount":8,"integrity":"sha512-6LHsin+7nbYMp9eAPz69uUo4AaCXLkmfOQ5qxn9VwF2SEt4BPd9sv4ms3Bkybh2LVDyKRfyve+KoivkoNK92qw==","signatures":[{"sig":"MEUCIC7OruxqJrKqzQGQv0MMWSEy6iTboDoqRHZCd1KcZ/D/AiEA6zzK+yd1TkIIElUM6HOrPuousCFzJagkreWods8hAa4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2924039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcDyXCRA9TVsSAnZWagAAggkP/i5P8lpIQd6wgocLwpnu\nDzPVvLmCx+2fAQVcOn/SsrnXXzyq5T69SH3hE+cnst7lbAYPh4kGgmndgdDn\nlMueTQ1NxxFTyKxiTO3wFI4EW57w4APjoZn0/+fAwd5BgegknzuFsejtgPpv\nEYOYUL+pKfckvWKUGP9jz7op5scILJ9dECnr/JWxO18AS5QTQG+hjFKbfx4o\n7LUNAImNKQEvSO0KhovaZUSyYxT4MjlZXlPoqxIjzJk6Mvoh77eAiZHCw3JI\nj8DpwHdz3TW5uRlJgR4WHnOMjhv6rQlpy+laYoLPlTL0lzNkIFi5us4zZ5Gz\nnmHWvO/A2G4SbQYI9nTpbdCUW7OlB2Ba4HZaTk3TdUH5pVrqjUiW+CaaEatc\nZBPHZ2Q1fIYCktqvSLi31eGTw0SQk3SA94YuxZeuUGtVNu5dBotwAQDfrsKP\njbU7ZG+TJWWxVXu2JOFsmodrw+IJC1j7K99HTyd2KTuYxgwUmYjGOTIKDuMA\nU0TE5RfFR/80fnp2E7ou5fKSxowwQTucBwMNRS4t5mf9qrd88YxFeCbR7Ukx\n+2XSa3TWwCCYcHxlrhULmi6jytYqjyOxukXgBNL9+MJvJIzCskIukbBr5y6s\nbj/iCwh/y95DC7GIKn3UkEaZJxoqYXTQXMXu8UxAlEfzquTGG+zYwxf3rJo0\n4PmN\r\n=dnDQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"2a7a7277711764320e263e563a0ee7e2ac59f773","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0-qa.4_1617968278983_0.5103115442842121","host":"s3://npm-registry-packages"}},"1.1.0-qa.5":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0-qa.5","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0-qa.5","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"65a0c3016bb96020a5ed6d93179bb364e51465fc","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0-qa.5.tgz","fileCount":8,"integrity":"sha512-5ZmuKqtIa5soT3fs53DjN63zOfzbwitrrkK5fQkyq3AAplb/jJHULC1OR5lhFIblWWM3YR4KxlGqAiOzu27/IA==","signatures":[{"sig":"MEYCIQC3SsaPCTAY19mcO/mgSngf875Wbonb29pnQgOKdULpLgIhAPVSJfKGRAm/mt5Y4KSOvL+DnVSZl6qIJYkRze7oEhpM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2923316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgc+E3CRA9TVsSAnZWagAAqwUQAJ5LuJrN9pimsokR00pi\nwYkJ9x+xlkk/w+72BP7Cwn+tE6SFbRt+eUFTEwZIrgt66oFKfxIVRvSqs0EF\ngXutPQOp7Fai+piuo6daio4uygkuJFS1gXzjxh+1emfmcKe8pDJVMJdz8ONX\n/IhF6P3AWht4c9lUfpvDWd3T8RNcpS+z/O2dMQmDAZz4FEjv9xRiNSLeFRft\nVKI0wyYSJF4GU3LBGO7EgtmHqRi0cd9MVnO14ZcgBESMTuE3cwkFjmxJIGgI\nQQXILVr5NVwRph8tAqWeY6u9sUwAcKzCvCnwL3vLI6bHv09M/ZB+PKG51vRW\nL4hl666DMmgoWfuRRWL7l11LnI4rlavUjopV/Y7/g27ej10w8wO2IerW946C\nIRhdrxPOLCifAuID0q2qep2yzP370LkkcIa1mdESOBoFSJeHzgoEKbrgJxaS\n45+1ksNRJYzd0GQo3Rc7XvbtmTwBDil1GKrVNj0kjGhsDUMR7f5IUOU5yzTg\nnRVuLz2RCSvtW/GDmnuLKljnZU06dj7YfdcDZV0HCjsyq6/v006yiXsYomyW\nIyjuA/ACrXlz4X7Jf1qmFK0T+Dhz73Mn58hDKxSZsWg0K/pDhEDaY37wUm3X\n1NQATXvYyBhM/41WM9z8fEFSM9z0p0d3ZGXLgoUovLXvdNxRvFoUpwhAIOQg\nRe8X\r\n=dqlG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"1aed0116f15849f02c590a10d8a1a6aea4507b57","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0-qa.5_1618207030803_0.32880446901183924","host":"s3://npm-registry-packages"}},"1.1.0-qa.6":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0-qa.6","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0-qa.6","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"479dc9d3f7b22c3ee8a2ac47104d92e402ce6cb1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0-qa.6.tgz","fileCount":8,"integrity":"sha512-kkw305yXuuhiDLyKcbO0cOwz5ec7n6JfY/JfglKOanvbGQifJCI0nTdudJAB1CfUCBXUNV8hrp+nex+HA12gtA==","signatures":[{"sig":"MEYCIQD6fnmJxAcrzu+dqo5mIGXBGnE8+qYX019YM/7F5Q+ItQIhAI7VB3gWFmxyAQYLgA8MT9ReOAjquJjyfrDiOtAo0cnW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2923601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdS/ECRA9TVsSAnZWagAAXBYP/23I6iMdBuUfe1BCfwsx\nyltDxBIhzwt7yOy+oyBZzl91Yhyfl5++y6S6tfTwxBwysHbidBlGWqpR3KF7\nw0/tS8QHqsIWeQewvijnGj2XUKkoeGYtFh9Rt5bwVrPAvz2AvdRZ2j+Ooc+F\nDEahuuUweu1sSYJnsZQmZsDBo1330bBWBVTtS+jZ3x6wntRmCzp+4FQDLg43\noJmlT4ZHm/1Ayye1i/WWmPQ+kwCCAeOFlcGq0xWlv6CMm5edYFFjzPcjDJ5D\ngv8pDs83xPs5mB3MZSaXSczwa3jT5Qmz6QHmMyd8FqPkZaOq3u7qZ+Twc3pv\nok45mjxCdabp2uwwWmY8QzLCW/8rtLEcMaZNxuz/v+Du0NQkXeMj7t0mBasR\n+WloKmVG9MokOQZmUVyhgMco02FEl4xRiS1uachOSzO9ONKNE8B6jjfJALPT\ndy+NhdNpq/Q6M6mvoVuOrQ2CSLkcUf4Uw2nEGVuzlVgUJYGMupC6AcxNRTdB\nMyOwcsy0GYPm3FxzcdDFu/YR3Qa1crGde250HMpijL+gSkHdaPRDX87mSavL\nMc54h5rHOMjneWvJUX5gtYgOP1Nlu3+WRanndho4X+Lre8CbKjyab82iBXKR\nKCS0V2eDhOtZWw0SQrDdoTCyIu00RgtWB5fQRs4cI1sfCtzMBQdDXr0U4avR\n7Gr9\r\n=wp6T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"a34db852a32064e652da7b04cea2ff1a7f3e8f17","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0-qa.6_1618292676377_0.5087758045160042","host":"s3://npm-registry-packages"}},"1.1.0-qa.7":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0-qa.7","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0-qa.7","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"a26b24f04a56a839873e97d93572b2aa27ba3252","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0-qa.7.tgz","fileCount":8,"integrity":"sha512-jKas82fLo8sqpAfL/sZwkbDC087W0Dz06Lnzh5YzJLCI5gnLiELMrKcjeBZWBPtA53xZY383N92vfSEMsHXo0g==","signatures":[{"sig":"MEUCIC3aeFbSrLjUxI0Q2pU2WNh3tkkc7tFfpEIsF8/m07Z3AiEAqcTkpNt94Lrgnmg0owlm09SKyiiMDu565x5mEGWNvpw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2923781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggniGCRA9TVsSAnZWagAAwjsP/3jOvVubdG1c2N1a7g9S\nHqjtrVfQBR6ffGSng7Qe/naxu0rB+sXsLGZMWK4Z8yTGMToWnBQ3qhFI1GEk\ntdakNiHgec42wBCWM2RKUBQCZ8ZdYReSinSf281KVEnPoMrSIQI2tQyuiYe9\nvhm/gWw7R2Ql96wkn+FHev4jx8rcLxnuouYQWxbuyTS2HjoGlqU5hyU/sz76\n+VtIRdDM4yNco9IEMTgtrggxI8bBueB0BWmRtx4hKEfl+dSnTzgEb2E2fb7S\nxfh5ogp+TRHPBWly2GhlvCHEuaEqOS6fNloqdlekBDnLwqM1kJLEfPnFVz9v\nvZKT0KxTQf+qQhSDOmICkIfhB99lbgcNpkS1VNmEsQ3IND2dzOXxLXzThM8b\nhQfpE+jpJaWQbrOvMEOWgyjfznMsDp1Bx1F8v3fJwk5hro2cRL7+q7aF+xvh\nBuYvdDbrtHTKRDyHd1o580j9DcBztwKHczNrVCf9aclMk0oBUxh9HtQ8sBBf\nl3jLHMX8rRxF4ER3Gqz/V7mga21bTA/wbPQxOBCBEr4KzxYNaM1nmhzX78Li\nOrM9wxIn/fbTVWM8hLbNHXSM4822QU3DbUwHpAUtxysPnpJ9XtsC1mVXbooC\no+QWq3APMJlvwO8mwcnU0/hhPwmmCDZDHaaWKCv+nkZIFnG4VHv2vVdoNlr4\n4kXO\r\n=2DlF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"2af1e4aa345744d8204d01f5a468b4b4ac456a88","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0-qa.7_1619163270344_0.11122849371254051","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@goodgamestudios/cxf-runtime","version":"1.1.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.1.0","maintainers":[{"name":"fabiandarga","email":"kontakt@fabiandarga.de"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"ggs-zzhou","email":"zzhou@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"oaly-ggs","email":"oaly@goodgamestudios.com"},{"name":"sudobangbang","email":"605h4n@gmail.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"d7f61685d9f4cabbb723b9191c22f4702dfc094e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.1.0.tgz","fileCount":7,"integrity":"sha512-96T8TfJIVSP59iGnpftgedlJCpTTRyip19YaJWDNJmgHQoZ6QvtTC1Hv8+HbxBVP2aQGwWZClMxhsmQ0wDsUXw==","signatures":[{"sig":"MEUCIBmI5dswYz467tfkLJNAkSSr4xP2IoWRqXmkvsO+xA0lAiEAoss8rp/dyR3hNCj5e+3sIamT/dtGXi3LHt+gDpaUlFE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1222982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiV/2CRA9TVsSAnZWagAAzsIP/Rf5dK1DFzjncjbwfBr3\nhoaz6EcUXgqNLMX19qMjBNeHm9BX+SFNZ4042TNRSPlpGQ7oNui3w5KwWQJ2\nwrGo3lYOIlNxyigRG1hG/c8zbLbIXENg0RAcDKs7KqO5bWvJCn+FanFeyfkE\nGOsqrDemrxDtI+q7DH0/c+fxNaHNsuVzZykvTTzr/iupOu14rrCgbmZPIrNp\nwUUAEAwG++WtHy/XOafwRA+eO7vGT8Zpycq95N++VyrS3jIGKFxDQqaymJat\npcGPaJYKGuxSTc/lLzLi76VvAVO8rupkhfgw5/XOCbA8sHv5kABwGjl9vTrZ\ntmPOIjCXcCmSHSAn3Y/0hUD7SXq3G7DDQY1zCC6QGtvbURR3MnV9zMNqEXMc\ndVX9BdDMxEG2jLigm5VoDbp2WDGVRG2Ph49R3BCExLZD9C7edo/t92w0QHQH\nEETuNH12SCwAVKJr3i/wSGuDx1tBS54ikZBsPjAkKLYdPKzbyk2FQbQP3TrL\n/tR6pKoCWTBKKLy/1gHX4gzvkfezGctUwTEviE98tcQWpxrEE49GngOZ6vNZ\nzge1yEwCSPCWa5wbvolchs7s+mbBSwFuWPEVmLlf2bKYGEM0c+Gks7dm6YwN\nJyJ02SrVYgweIstU1phS4klEtklDOMiacNr2bRgenTjRNZ1UVJGghxWvew4B\nTuFA\r\n=Wn8r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"382894088ebcfd623863a937f0e3f753a5a60b4d","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"igorbabkin_ggs","email":"ibabkin@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.11","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"12.18.1","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.1.0_1619615733409_0.6578790971745347","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@goodgamestudios/cxf-runtime","version":"1.3.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.3.0","maintainers":[{"name":"abuhler_ggs","email":"abuhlerschuenemann@goodgamestudios.com"},{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},{"name":"tduman-ext-gg","email":"tduman-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"azeino-ggs","email":"azeino@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"5e4af71a3992d621c931b1cdb1ab3962dae58e79","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.3.0.tgz","fileCount":6,"integrity":"sha512-sRatCkTiVV0IuTtGQyP1YAupAThU7Rey1VlYPbSfM9uXLTgkhrR+qLpQhDl8auLby0RoaaXo8LVNnDRKSB6jhQ==","signatures":[{"sig":"MEUCIDHeZGyjr5nq+QN0s05e8QNSfSlMVF9LIuDEKX4SlJ2VAiEA7bZhVKG+d6dHvhJiUVXDP4zq7hvXiyBYNnHzamxfsYI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1193622,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKCtuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHLw/+ORmdDXx305Pgd9GDwVO7FqMPcDLsizZuKRZZpSoWwaJE4Fl6\r\nc+0Z67OE1KzmsQJ7evLfZudMCXu/7zLwCpCpj+U+wSXl7Pm9w2COfdBO4JKl\r\nxFB11amwmIh+Qdivoh3e0bHEONpXqOzoZaQc6SOmbEXQb//8lPZfaEyJlvMo\r\n7MOSjVR/ulnB8QjTs0+cjHiAbk6balgTfrlqBM+m1RwbidV3vcCSue/ntry+\r\nC99CzrJzcXUvfwM5wm2E78wRYPW24OxW709aw3FnxDI+B9J+R3L3iOU6K8DN\r\nPcAL8A7RjL5r27bvz0yK1k5NFAnOEyb8xxuA/HUW1GzvcB20EFdwsCO8pHMz\r\nXXcd1UG0diRF+IQV7UezAIEyiVdWSAITrPoXeV1J/b1oCOhkohCf6xVzk6oj\r\nG2s1NgIcoT3DmWFKVwY2C1YJmyBADtgEJsn11fkplumH6Mk/WUd2O055tu6M\r\nO5QvgwAXVcWV90AdgBLzhvLK9HFX4zGTgEPVdy3qO3tHmZi2ViIbY0WwPmHs\r\nvK9LUkZ8A5G/naFhsaDzgew4C/ibotoUCaomoSjQ3o+QtBo3pBbzNluv7Uyx\r\nuo7BseOW/OaVAmT3DOsyrPAIKrICy3aYdgBmrC9vT8c3A+hIYnoVhhseS73T\r\n/ToWa5F3q44WiJsCQGlB1vehA6ibJ3Yw21I=\r\n=S2Cc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\n====================================\n\n# Motivation\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\n\nDevelopers cans\n\n+ add UI Elements to a game (TBD)\n+ react to user inteactions with in-game UI elements\n+ react to Messages coming from a Game Server\n\n# Adding the CXF to a Game Integration Page\n\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\n\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\n\n### Using jsDelivr\n\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\n\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\n```\n\n## Supported Content Types\n\n+ HTML (without `<script>` tags)\n+ JavaScript URLs\n+ other Links (as iFrames)\n\n### HTML Tags\n\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\n\n### JavaScript URLs\n\nThis is likey the primary method of adding your code.\n\n### other Links\n\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\n\n## Adding a Plugin\n\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\n\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\n\nHere’s an example:\n\n```js\n[\n  \"<h1>Hello, world!</h1>\",\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\n  \"https://obamaself.com/\"\n]\n```\n\n# Development & Build Process\n\nThe build process uses parcel.\n\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\n\n## Development\n\n```sh\nnpm run dev\n```\n\n+ builds the product\n+ start the server\n+ watches and rebuilds on changes\n+ hot-reloads in the browser\n\n## Testing\n\n```sh\nnpm test\n```\n\n+ lints files with `xo`\n+ builds with `babel`\n\n## Production Build\n\nTo build:\n```sh\nnpm run build\n```\n\nTo publish a new version:\n```sh\nnpm run release\n```\n\n### Build Toolchain\n+ `xo` for linting\n+ `nyc` for coverage\n+ `ava` for unit testing\n+ `parcel` to build & bundle\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\n\n---\n\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\n","source":true,"gitHead":"29b25fdbba4903164cdea43f227e23e8ce904356","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"7.20.3","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"16.7.0","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.3.0_1663576941785_0.0771277740518106","host":"s3://npm-registry-packages"}},"1.2.0-qa.0":{"name":"@goodgamestudios/cxf-runtime","version":"1.2.0-qa.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.2.0-qa.0","maintainers":[{"name":"ntggs","email":"nturai@goodgamestudios.com"},{"name":"pverza-ggs","email":"pverza@goodgamestudios.com"},{"name":"prosenboom","email":"prosenboom@goodgamestudios.com"},{"name":"sashamat","email":"amatrosov@goodgamestudios.com"},{"name":"mbahri","email":"mlesanibahri@goodgamestudios.com"},{"name":"rtryputsko-ext-ggs","email":"rtryputsko-ext@goodgamestudios.com"},{"name":"abuhler_ggs","email":"abuhlerschuenemann@goodgamestudios.com"},{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"e0199ab2db2308a4bce84493c2160021a0924bb8","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.2.0-qa.0.tgz","fileCount":8,"integrity":"sha512-2vrep7CqnyU3zqWHVN9QTknwLjf2C6sf8vQrqHma5Orh+9VzxymhS87+8JX8Fn/N3hgrxYWr08fHKbX5csNj0A==","signatures":[{"sig":"MEQCIH49kGgMPVuQzBqcQ5112UzHhbACFpfRoE2WmcGTYV9uAiAt+yFAFR1TJCjAdFAmhuunkpG+dzh39c2MDo4vPjORMA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2927891},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"28ef4add7ac11801f9d6e519731f737df7b16187","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.18","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"14.21.3","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.2.0-qa.0_1714040289071_0.993291554044639","host":"s3://npm-registry-packages"}},"1.2.0-qa.1":{"name":"@goodgamestudios/cxf-runtime","version":"1.2.0-qa.1","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.2.0-qa.1","maintainers":[{"name":"ntggs","email":"nturai@goodgamestudios.com"},{"name":"pverza-ggs","email":"pverza@goodgamestudios.com"},{"name":"prosenboom","email":"prosenboom@goodgamestudios.com"},{"name":"sashamat","email":"amatrosov@goodgamestudios.com"},{"name":"mbahri","email":"mlesanibahri@goodgamestudios.com"},{"name":"rtryputsko-ext-ggs","email":"rtryputsko-ext@goodgamestudios.com"},{"name":"abuhler_ggs","email":"abuhlerschuenemann@goodgamestudios.com"},{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"234f8cc79478304409a5e41e9ea90f7ac429fb64","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.2.0-qa.1.tgz","fileCount":8,"integrity":"sha512-ClSqKZUpm/m4a/HuldzUy7eAnHRqd5/pUHlQWLzV1q/425zlJiLWra8caidVAke2BW4LcLFezpKlMBDo6XXAvw==","signatures":[{"sig":"MEUCIBrRd2nZNkE/BVj7Sej+SJB1VFmzCgjlfap/+R4qeXgbAiEAnRob7CZJU+beDMI6QSrnfFOP61/ciAHTjV13DnIBSP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2927876},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"39d0c1610d01d0bba1732a3f98cef873e7fb6fd8","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.18","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"14.21.3","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.2.0-qa.1_1714380375479_0.2726079211460113","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@goodgamestudios/cxf-runtime","version":"1.2.0","author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","_id":"@goodgamestudios/cxf-runtime@1.2.0","maintainers":[{"name":"ntggs","email":"nturai@goodgamestudios.com"},{"name":"pverza-ggs","email":"pverza@goodgamestudios.com"},{"name":"prosenboom","email":"prosenboom@goodgamestudios.com"},{"name":"sashamat","email":"amatrosov@goodgamestudios.com"},{"name":"mbahri","email":"mlesanibahri@goodgamestudios.com"},{"name":"rtryputsko-ext-ggs","email":"rtryputsko-ext@goodgamestudios.com"},{"name":"abuhler_ggs","email":"abuhlerschuenemann@goodgamestudios.com"},{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},{"name":"rschmidt-ggs","email":"rschmidt@goodgamestudios.com"},{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},{"name":"vtenekedzhiev-ggs","email":"vtenekedzhiev@goodgamestudios.com"},{"name":"tschrader-ggs","email":"tschrader@goodgamestudios.com"},{"name":"goodgame","email":"html5@goodgamestudios.com"},{"name":"jenkinshtml5migra","email":"boczujda@goodgamestudios.com"},{"name":"ddepaolis-ggs","email":"ddepaolis@goodgamestudios.com"},{"name":"boczujda_ggs","email":"boczujda@goodgamestudios.com"},{"name":"guest-ggs","email":"html5+guest@goodgamestudios.com"},{"name":"andreaspizsa","email":"hopster@gmail.com"},{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},{"name":"amartin-ggs","email":"amartin@goodgamestudios.com"},{"name":"mabdallah-ggs","email":"mabdallah@goodgamestudios.com"},{"name":"jenkinsempire-ggs","email":"jenkinsempire@goodgamestudios.com"},{"name":"chadestioco","email":"cestioco@goodgamestudios.com"},{"name":"evmoroz","email":"emorozov@goodgamestudios.com"},{"name":"ggs-skunkbot","email":"skunkbot@goodgamestudios.com"},{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},{"name":"it_office","email":"it-office@goodgamestudios.com"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"}],"contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"xo":{"env":["browser"],"space":true,"ignores":["*.d.ts"],"semicolon":false},"ava":{"require":["@babel/register","setup-browser-env"]},"dist":{"shasum":"b8bf791cb025cbae3145a7c0208a68e89829c7ca","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-runtime/-/cxf-runtime-1.2.0.tgz","fileCount":7,"integrity":"sha512-8AuaBuGAe4umzO7T71p5fIuL3hQNUurKw8TYQtF1vVx8GFLeEoWjoNVXPVs4GqSIPUggObaR/WJ0ArEQ47jdLQ==","signatures":[{"sig":"MEUCIAZzQT8tCFopK2UCD8l2ySxkwNPyiCqVN3LPbQmfhNKuAiEA93bLWskcQdzb8Tx/iUt581q/cfDQKF6zOfBb9OMjUQM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1228228},"main":"dist/cxf.js","babel":{"plugins":["@babel/plugin-transform-runtime"],"presets":[["@babel/preset-env",{"useBuiltIns":"entry","forceAllTransforms":true}]]},"husky":{"hooks":{"pre-push":"npm run lint && npm test","commitmsg":"commitlint -E HUSKY_GIT_PARAMS","pre-commit":"npm run lint && npm test"}},"types":"index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"Client Extension Framework API (CXF)\r\n====================================\r\n\r\n# Motivation\r\nThe Client Extension Framework enables developers to add functionality to exisiting Goodgame Games while they are running. It exposes an extremely lightweight API that provides the fundamental services for your Client Extension to interact with a game client.\r\n\r\nDevelopers cans\r\n\r\n+ add UI Elements to a game (TBD)\r\n+ react to user inteactions with in-game UI elements\r\n+ react to Messages coming from a Game Server\r\n\r\n# Adding the CXF to a Game Integration Page\r\n\r\nEach game is embedded in a so-called Game Integration Page. That’s a GGS-maintained HTML page that loads the Flash client as an SWFObject or an iframe in the case of HTML5 client.\r\n\r\nCXF is shipped as an npm package. As such, it can easily and safely be embedded from one of the many public CDNs.\r\n\r\n### Using jsDelivr\r\n\r\n> jsDelivr is a public, open-source CDN (Content Delivery Network) developed by ProspectOne, focused on performance, reliability, and security. It is free to use for everyone, with no bandwidth limits.\r\n\r\njsDelivr has [continuously demonstrated >99% uptime][jsDelivr Uptime], ranking #1 amongst strong contenders like Cloudflare, Google Cloud, Akamai, AWS Cloudfront.\r\n\r\n```html\r\n<script src=\"https://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-runtime@1/dist/cxf.min.js\"></script>\r\n```\r\n\r\n## Supported Content Types\r\n\r\n+ HTML (without `<script>` tags)\r\n+ JavaScript URLs\r\n+ other Links (as iFrames)\r\n\r\n### HTML Tags\r\n\r\nHTML can be inserted, but keep in mind that almost all browsers will **not** execute injected `<script>` tags for security reasons.\r\n\r\n### JavaScript URLs\r\n\r\nThis is likey the primary method of adding your code.\r\n\r\n### other Links\r\n\r\nAny other links will be inserted as iFrames and displayed immediately as a full-size overlay.\r\n\r\n## Adding a Plugin\r\n\r\n> ⚠️ CXF Runtime currently loads a list of plugins from a location set at build time. See the `CXF_PLUGINS_URL` environment variable.\r\n\r\nCXF Runtime loads a list of plugins from `CXF_PLUGINS_URL`. This must be an array of strings, where each string is one of the supported Content Types.\r\n\r\nHere’s an example:\r\n\r\n```js\r\n[\r\n  \"<h1>Hello, world!</h1>\",\r\n  \"https://jsdelivr.com/path/to/my/plugin.js\",\r\n  \"https://obamaself.com/\"\r\n]\r\n```\r\n\r\n# Development & Build Process\r\n\r\nThe build process uses parcel.\r\n\r\nParcel sets the `process.env.NODE_ENV` variable depending on the build _type_.\r\n\r\n## Development\r\n\r\n```sh\r\nnpm run dev\r\n```\r\n\r\n+ builds the product\r\n+ start the server\r\n+ watches and rebuilds on changes\r\n+ hot-reloads in the browser\r\n\r\n## Testing\r\n\r\n```sh\r\nnpm test\r\n```\r\n\r\n+ lints files with `xo`\r\n+ builds with `babel`\r\n\r\n## Production Build\r\n\r\nTo build:\r\n```sh\r\nnpm run build\r\n```\r\n\r\nTo publish a new version:\r\n```sh\r\nnpm run release\r\n```\r\n\r\n### Build Toolchain\r\n+ `xo` for linting\r\n+ `nyc` for coverage\r\n+ `ava` for unit testing\r\n+ `parcel` to build & bundle\r\n+  [`standard-version`](https://github.com/conventional-changelog/standard-version) to bump version & publish to npm\r\n\r\n---\r\n\r\n[jsDelivr Uptime]: https://www.cdnperf.com/#!rum\r\n","source":true,"gitHead":"b54c4cdf36e2c271a83e1d583956c584971e3fba","scripts":{"dev":"parcel --port 4001 --out-file index.html test/dev.html","lint":"xo","test":"nyc ava --verbose","build":"rimraf dist && cross-env parcel build --public-url . --no-cache src/cxf.js src/cxf-flash.js","commit":"git-cz","GO-LIVE":"npm run build:production && npm run release && npm publish --access public --tag production","QA-TEST":"npm run build:qatest && npm run release -- --prerelease qa && npm publish --access public --tag qa","release":"standard-version","lint:fix":"xo --fix","s3:upload":"cross-env-shell aws s3 cp dist/ s3://com.ggs.client-notification-runtime/$ENV/cxf  --recursive","GO-PRE-LIVE":"npm run build:production && npm run release -- --prerelease pre-production && npm publish --access public --tag pre-production","build:qatest":"cross-env NODE_ENV=test npm run build","build:devtest":"cross-env NODE_ENV=devtest npm run build","s3:upload:dev":"npm run build:devtest && cross-env ENV=dev npm run s3:upload","s3:upload:test":"npm run build:qatest && cross-env ENV=test npm run s3:upload","build:production":"cross-env NODE_ENV=production npm run build -- --no-source-maps","--- base scripts ---":"-------------------------------","--- deployment scripts --- ":" ----------------------"},"_npmUser":{"name":"cgeisler-ggs","email":"cgeisler@goodgamestudios.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"_npmVersion":"6.14.18","description":"Client Extension Framework Runtime","directories":{},"_nodeVersion":"14.21.3","browserslist":["extends @goodgamestudios/browserslist-config"],"dependencies":{"core-js":"^3.6.4","parcel-plugin-package-version":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.22.0","ava":"^0.25.0","nyc":"^15.1.0","husky":"^1.1.4","jquery":"^3.3.1","pubnub":"^4.21.6","rimraf":"^2.6.2","cross-env":"^5.2.0","dom-loaded":"^1.0.1","@babel/core":"^7.1.6","browser-env":"^3.2.5","whatwg-fetch":"^3.0.0","eventemitter3":"^3.1.0","parcel-bundler":"^1.12.4","@babel/polyfill":"^7.0.0","@babel/register":"^7.0.0","@commitlint/cli":"^7.1.1","promise-polyfill":"^8.1.0","standard-version":"^4.4.0","@babel/preset-env":"^7.1.6","setup-browser-env":"0.0.2","@segment/load-script":"^1.0.1","cz-conventional-changelog":"^3.1.0","@goodgamestudios/cxf-ready":"^1.0.7","@goodgamestudios/game-alias":"^0.2.11","@babel/plugin-transform-runtime":"^7.1.0","@commitlint/config-conventional":"^7.1.1","parcel-plugin-bundle-visualiser":"^1.2.0","@goodgamestudios/browserslist-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cxf-runtime_1.2.0_1714380620585_0.7653626558787234","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-11-13T11:06:29.048Z","modified":"2025-11-25T15:08:22.522Z","0.0.1":"2018-11-13T11:06:29.339Z","0.0.2":"2018-11-13T13:57:32.291Z","0.0.3-qa.1":"2018-11-13T14:17:08.257Z","0.0.3-qa.2":"2018-11-13T16:08:13.405Z","0.0.3-qa.3":"2018-11-14T07:52:57.208Z","0.0.3-prod.0":"2018-11-14T08:55:35.403Z","0.0.3-qa.4":"2018-11-14T12:14:01.852Z","0.1.0-qa.0":"2018-11-15T08:10:06.882Z","0.1.0":"2018-11-15T08:11:06.597Z","0.1.1-qa.0":"2018-11-15T10:03:20.874Z","0.1.1-qa.1":"2018-11-15T11:14:42.250Z","0.1.1-qa.2":"2018-11-15T11:16:20.884Z","0.1.1-qa.4":"2018-11-15T12:49:00.832Z","0.1.1":"2018-11-15T14:30:47.092Z","0.1.2-qa.0":"2018-11-19T10:32:36.832Z","0.1.2-qa.2":"2018-11-19T12:38:23.647Z","0.1.2-qa.3":"2018-11-19T12:42:24.657Z","0.1.2":"2018-11-19T13:00:06.802Z","0.1.3-qa.0":"2018-11-19T13:03:19.665Z","0.1.3-qa.1":"2018-11-20T08:54:00.537Z","0.1.3-qa.2":"2018-11-20T11:13:57.965Z","0.1.3-qa.3":"2018-11-20T15:20:44.824Z","0.1.3-qa.4":"2018-11-20T15:26:44.076Z","0.1.3-qa.5":"2018-11-22T15:06:48.095Z","0.1.3-qa.6":"2018-11-22T15:20:42.462Z","0.1.3-qa.7":"2018-11-22T15:51:06.660Z","0.1.3-qa.8":"2018-11-23T10:50:56.867Z","0.1.3":"2018-11-23T10:53:03.368Z","0.1.4":"2018-11-23T10:54:20.218Z","0.1.5":"2018-11-23T11:01:40.938Z","0.2.0-qa.0":"2018-11-26T13:50:29.138Z","0.2.0":"2018-11-29T17:38:13.307Z","0.2.1":"2018-11-29T17:42:43.838Z","0.2.2":"2018-11-29T17:43:39.189Z","0.2.3-qa.0":"2018-12-05T09:57:59.809Z","0.2.3-qa.1":"2019-08-05T11:11:51.161Z","0.2.3":"2019-08-06T09:28:39.880Z","0.2.3-qa.2":"2019-08-06T15:11:13.900Z","0.2.3-qa.3":"2019-08-06T17:02:16.336Z","0.2.3-qa.4":"2019-09-10T11:21:13.048Z","0.2.4":"2019-09-10T12:35:44.978Z","0.2.5-qa.0":"2019-09-11T16:01:39.286Z","0.2.5":"2019-09-12T08:35:46.535Z","0.2.5-qa.1":"2019-10-21T07:08:16.857Z","0.2.5-qa.2":"2019-10-21T07:56:08.840Z","0.2.5-qa.3":"2019-10-21T09:36:58.652Z","0.2.5-qa.4":"2019-11-01T08:51:07.190Z","0.2.5-qa.5":"2019-11-01T09:41:01.779Z","0.3.0-qa.0":"2020-01-27T15:07:21.625Z","0.3.0":"2020-01-27T15:13:55.696Z","0.3.1":"2020-01-27T15:25:59.917Z","0.2.5-qa.7":"2020-02-04T14:10:23.636Z","0.2.5-qa.6":"2020-02-04T14:30:26.194Z","0.3.0-qa.2":"2020-02-04T16:40:06.890Z","0.3.2":"2020-02-04T16:42:40.723Z","0.2.5-qa.8":"2020-02-04T18:04:20.428Z","0.3.3-qa.0":"2020-02-04T18:12:30.359Z","0.4.0-qa.0":"2020-02-04T18:15:18.276Z","0.4.0-qa.1":"2020-02-04T18:23:30.857Z","0.4.0-qa.2":"2020-02-04T18:32:41.180Z","0.4.0-qa.3":"2020-02-05T10:41:03.145Z","0.4.0-qa.4":"2020-02-05T10:44:05.233Z","0.4.0-qa.5":"2020-02-05T14:16:32.388Z","0.4.0-qa.6":"2020-02-05T14:29:59.219Z","0.4.0-qa.7":"2020-02-05T15:14:44.462Z","0.4.0-qa.8":"2020-02-05T15:37:25.333Z","0.4.0-qa.9":"2020-02-07T09:46:15.802Z","0.4.0-qa.11":"2020-02-07T13:31:08.148Z","0.4.0-qa.12":"2020-02-12T11:25:36.434Z","0.4.0-qa.13":"2020-02-12T12:37:54.387Z","0.4.0-qa.14":"2020-02-12T12:43:59.677Z","0.4.0":"2020-02-12T13:21:48.957Z","0.5.0-qa.0":"2020-02-12T15:27:13.639Z","0.5.0-qa.1":"2020-02-14T10:24:50.204Z","0.5.0-qa.4":"2020-02-17T12:28:16.346Z","0.5.1":"2020-02-18T11:03:49.172Z","0.5.0-qa.2":"2020-02-25T14:05:56.643Z","0.5.0-qa.3":"2020-02-25T14:43:31.061Z","0.5.0-qa.5":"2020-02-25T16:17:25.797Z","0.5.0":"2020-03-09T10:54:54.485Z","0.6.0":"2020-03-09T13:48:21.541Z","0.6.1":"2020-03-09T14:05:57.456Z","0.8.0":"2020-03-13T10:12:56.341Z","0.9.0-qa.0":"2020-03-20T09:27:04.129Z","0.9.0-pre-production.0":"2020-03-26T12:28:43.276Z","0.9.0":"2020-04-03T06:25:28.260Z","0.9.0-qa.1":"2020-04-03T11:49:52.230Z","0.9.0-qa.2":"2020-04-03T13:47:25.712Z","0.9.0-qa.3":"2020-04-03T13:48:12.696Z","0.9.0-qa.4":"2020-04-03T14:10:19.324Z","0.9.0-qa.5":"2020-04-06T12:20:09.935Z","0.9.0-qa.7":"2020-04-06T12:22:55.299Z","0.9.0-qa.9":"2020-04-06T12:46:42.099Z","0.9.0-qa.10":"2020-04-06T13:01:15.845Z","0.9.0-qa.11":"2020-04-06T13:18:49.113Z","0.9.0-qa.12":"2020-04-06T13:27:33.305Z","0.9.0-qa.13":"2020-04-06T13:28:53.540Z","0.10.0":"2020-04-07T06:20:37.439Z","0.11.0":"2020-04-07T07:11:52.288Z","0.11.1":"2020-04-07T08:04:16.922Z","0.11.2-qa.0":"2020-04-07T09:10:40.087Z","0.12.0":"2020-04-08T09:15:12.756Z","0.13.0-devtest.0":"2020-04-23T05:05:55.338Z","0.13.0":"2020-04-27T12:27:31.579Z","0.13.0-devtest.1":"2020-04-29T10:27:41.683Z","0.14.0-qa.0":"2020-05-18T12:01:05.119Z","0.14.0-qa.1":"2020-06-18T11:53:38.660Z","0.14.0":"2020-06-19T10:51:26.645Z","0.14.2":"2020-06-19T11:24:47.931Z","0.14.3":"2020-06-19T11:51:07.744Z","0.14.4":"2020-06-19T12:02:09.035Z","0.14.5-pre-production.0":"2020-07-06T12:33:26.695Z","0.14.5-pre-production.1":"2020-07-07T10:31:29.447Z","0.14.5-pre-production.2":"2020-07-07T10:52:58.902Z","0.14.5":"2020-07-07T11:07:48.194Z","0.14.6-qa.0":"2020-08-10T09:20:43.010Z","0.15.0-qa.0":"2020-08-10T09:41:00.258Z","0.15.0-qa.1":"2020-08-12T12:24:04.849Z","0.15.0-dev.0":"2020-08-12T13:11:56.338Z","0.15.0":"2020-08-14T09:41:55.909Z","1.1.0-qa.2":"2021-04-09T11:16:57.365Z","1.1.0-qa.3":"2021-04-09T11:25:39.307Z","1.1.0-qa.4":"2021-04-09T11:37:59.242Z","1.1.0-qa.5":"2021-04-12T05:57:11.088Z","1.1.0-qa.6":"2021-04-13T05:44:36.516Z","1.1.0-qa.7":"2021-04-23T07:34:30.504Z","1.1.0":"2021-04-28T13:15:33.697Z","1.3.0":"2022-09-19T08:42:21.973Z","1.2.0-qa.0":"2024-04-25T10:18:09.291Z","1.2.0-qa.1":"2024-04-29T08:46:15.775Z","1.2.0":"2024-04-29T08:50:20.805Z"},"author":{"url":"https://github.com/AndreasPizsa","name":"Andreas Pizsa","email":"hopster@gmail.com"},"license":"UNLICENSED","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf.js.git","type":"git"},"description":"Client Extension Framework Runtime","contributors":[{"name":"Davide de Paolis","email":"ddepaolis@goodgamestudios.com"}],"maintainers":[{"email":"rschmidt@goodgamestudios.com","name":"rschmidt-ggs"},{"email":"ssydorenko@goodgamestudios.com","name":"ssydorenko-ggs"},{"email":"tim.schrader@stillfront.com","name":"tschrader-ggs"},{"email":"html5@goodgamestudios.com","name":"goodgame"},{"email":"boczujda@goodgamestudios.com","name":"jenkinshtml5migra"},{"email":"html5+guest@goodgamestudios.com","name":"guest-ggs"},{"email":"hopster@gmail.com","name":"andreaspizsa"},{"email":"cgeisler@goodgamestudios.com","name":"cgeisler-ggs"},{"email":"anton.martin@stillfront.com","name":"amartin-ggs"},{"email":"jenkinsempire@goodgamestudios.com","name":"jenkinsempire-ggs"},{"email":"cestioco@goodgamestudios.com","name":"chadestioco"},{"email":"abuhlerschuenemann@goodgamestudios.com","name":"abuhler_ggs"},{"email":"emorozov@goodgamestudios.com","name":"evmoroz"},{"email":"skunkbot@goodgamestudios.com","name":"ggs-skunkbot"},{"email":"stp_engineering@goodgamestudios.com","name":"stp_ci_ggs"},{"email":"it-office@goodgamestudios.com","name":"it_office"},{"email":"sklyarenko@gmail.com","name":"iskliarenko"},{"email":"pverza@goodgamestudios.com","name":"pverza-ggs"},{"email":"rtryputsko-ext@goodgamestudios.com","name":"rtryputsko-ext-ggs"},{"email":"nturai@goodgamestudios.com","name":"ntggs"},{"email":"prosenboom@goodgamestudios.com","name":"prosenboom"},{"email":"amatrosov@goodgamestudios.com","name":"sashamat"},{"email":"mlesanibahri@goodgamestudios.com","name":"mbahri"},{"email":"mschmidt-ext@goodgamestudios.com","name":"mattiassch-gg"},{"email":"dviuranov@goodgamestudios.com","name":"dviuranov-ggs"},{"email":"nvrkic@goodgamestudios.com","name":"nvrkic"},{"email":"rpodlinov@gmail.com","name":"keep_it_simple"}],"readme":"","readmeFilename":""}