{"_id":"@goodgamestudios/cxf-ad-banner","_rev":"160-5893018186eab6ff0c08d62528a09448","name":"@goodgamestudios/cxf-ad-banner","dist-tags":{"latest":"1.7.6","dev":"1.19.0-dev.1","production":"1.21.0","qa":"1.21.1-qa.0"},"versions":{"1.1.0-dev.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"f9094bad5b3f32afbc8b4def45597b948592f615","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.1.tgz","fileCount":11,"integrity":"sha512-UN2lh0rUExaDUDx9WDmEpkgZ4AgFuiusg+P7QJC5/OOvdU+PU5YXD6Buc2+9MVyAVJLlWTgcuYOWTu1SMVJ2GA==","signatures":[{"sig":"MEQCIGWaJUSSjT5xwB6sgOsZhQyaTIbqdQtW4m4seEJnzEhLAiBR4vGdnaAXgTAVPLKHTFvG+b0dO02zqM+6kuSza8eN7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":128245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2yILCRA9TVsSAnZWagAAXGEP/0xzAy57r+i2KDam/vWC\nzcNIVeguJd23vxEFB8qNaox0ugwsWtLkKfbdQF7VyUULs5j8bPA6rjIrXAgn\nN7LJNcNcngshE9/5hOpxvWo5+hYWbUnzWi8Vdu8oNXs+o0HtmdwGW+lBuVZr\nk5GtPU1DNY+GppxQsMdXr9Xwk7JGYk+JEw4682wijytr8IDJbLuwggCAcZVY\nUc1fkDfpq4ebu63o33A8oRigUjoz8WcwlkLbwHXLvvyRtjo2vDQbElxkySjW\ntjiLgZgceF+v317gBzryoAMDwE6xVLBKlN6d2NeizZVkDtD/IGueruedvY0U\nCz08ORxPOS48hRnnF6LjAmdPuu1ibf+1N7fuvXoVGkfawFwPs56K+eVoksZX\n+GpHuzsba7H8yrx+i+gdpSY8/5Dy7X21PRJmFJmeyKRqa5/KhYz20pG8sA5D\nupidL01wl3LlmOywfU7S+nXqfCY87ku2aZbgEPEFoU4A2RR7a1nYIvroEguU\n9z/ZMOVOteaJMTxH+7tpEroQ1mHupX7840XrEajsrsrFAsK54hFXqs8H8rA7\nau8g80s7B85wXpT5/27+Pf22t+bvtFA14RNpWqEta7tsiONHk7FO5grO0lIa\nyr5Fl4o+diMiG8aHXpFzhlzfTRF5MU4+Ye+JTEsLIlrFkwYoMk9HASslXwPt\n5i2R\r\n=XWOn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"gitHead":"45905d2fd49107b6da3324d5a488a3fda250681f","scripts":{"xo":"xo","test":"jest --coverage","build":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access private --tag dev","---ci deployment---":"------------------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.1_1624973835471_0.3473753271496951","host":"s3://npm-registry-packages"}},"1.1.0-dev.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"ce07ef509315ccd63f529a52bb5e29dcfc560f5a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.2.tgz","fileCount":11,"integrity":"sha512-/eGARWFcyQaQb0cOI9/ztUalvSSD9GChQUWzpErdekNK9u66GtQl9UxX9P4nxDYfyaV8OH0Vv6xV3uCUXZ25iw==","signatures":[{"sig":"MEUCIQDPz+QGWD1O2vED+Uztt3WgXaYqgA93gqDqIXYkZzcbZAIgCdkJ9Z4fXvQA4fpvwtqlX3SrF4vYO/qktBbx38ET3dM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":128369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2yawCRA9TVsSAnZWagAACugP/iQasRZfK8o98PgpgAEL\nMhurbAzKzSC4jA9l5dR6RIygSgD2YNoPYZFIFwqpMmcFlB/j3yiyuQoME10Z\nzzBg3uclxaq7Ga+IGWMtRGJrJVqjOl/EEjEvw5qwbfZnECvKugwbaht1i283\n1RqV+Z4USHeOlIerPoUw4k/6SH8btDt9fdqQTN49/5GDLm8hfNHPGPAR8qLT\nGkYWdcGl0lMMXjm6Glb1bByFJZLCAm5j4AdohGKH0H7E8WDmZrqnR6X+HrDg\n0qadBwd0WqxP2bMrSjeAgHwTev/C9F63blCzpnJp3C0719dTpv3Boj7PqgLf\n4Ag92UANW/IkIgbmcFHCrE7/W217wrmn3rRLSXtownEu0yi8fjC6xWDokhVE\n8Ul2kWdGWqc1ENVJt+kyq8xjm51wYN59bdiAS5mryPfvz3qFxW74JC25thPt\nZXpfgoB30K2kMfGDrj0uRBPS5ng2EQC4gUCHlDprdq4avvFQ0nyQ1NG7Bwom\noFcuVFXaI5p9mrBuiRUbC83lXx2yu9Pf0RvLQi/Y0V0B8nP44RSRKS5uiDQP\n4tLf0rNhoRepVhf8Vi7Xha+yKghvDNuqbSCchkK/SuPue+/e86bAL9u+E2y8\nCUAMoL8y5EaJhqtFFYHr5Mdhj5YGJGvAEwD72+Ps96xgpm9DImopjlcqyMYR\nQcov\r\n=t0Us\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"afea324cde6b3866a954bbdaced3d2452ca79cb8","scripts":{"xo":"xo","test":"jest --coverage","build":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access restricted --tag dev","---ci deployment---":"------------------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.2_1624975024193_0.580028349841684","host":"s3://npm-registry-packages"}},"1.1.0-dev.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"053550b3e302c8d1558a0fe72d3af49c6ea9a396","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.3.tgz","fileCount":11,"integrity":"sha512-4r7zi3NkFKBoZFBvyG8J0rVwtBnNtG+Ugp7bWeeatTRn6KbjoFsLgRPn9aSS1Mllatn3d1cEvd+oX+NWgIjiTA==","signatures":[{"sig":"MEUCIQCUOMEZHIgbNfOGWoAEZa9qhGDEpgsoPh0Utf95pr27iQIgBq++4G1dPNfxh9c3h43qZsQ0avzTmtKdxqFwggFUJC0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":128486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3APlCRA9TVsSAnZWagAAXngP/0Irx3Wb7GSWDSra+uZX\nTKKjyIIOZNfftdnIVIx8AP9y8yLXKs4G8vv3FiCBq+XyVzW3hl2dSZCpqOpx\nW8h9fyDurgMa4GkfcLQACK+4Hhfu54vyvbm4A2/ioZLIpv6nGNW66asYgwXc\ntSwsFSlYqku1Fitt37LeEnUQtS2TS+27Yz8wo5Omdscig8RVmQczrBn4FrH5\nsyUTwIUyerKkPG81WNEP6sVJAqUxA/1r7jR4KX1VPFpVWYxA6p4oldWfru8U\nDs3vteSnuxXnlALGU8+WFUBRa7tsa4jz/7tdhPAdtp54+r2MCaMfLt571Hsv\nwsLM4UrA3BUJMYRbwgrLr5fNCra0KwgUV+wTttat8UbrzlbhcZ/Mlz3N2YeU\nTS4D0Sjp/LmMWxbOuV72Tfg3LIF2TvbBw77ii8YN7WsezwS1wWklLd/+xe2d\nZOqp0JF+E/zjvroNJPuoLBIC+7caWxoIpaDKgvDrhY+OaVK9xNAYHyb0Jgug\nc+Cq+lhW2Fc/TlXzB0uCIUXkC6go563Z+7HWoQugJdxS5314Q1Dh3zpAaEcY\nuaZROh07ET0FBrE8AtkOVk6mEGsnfOibyTOO6lyXL7nJIRHlffamO8PhBv4Q\nd4OMcgvRkBsgeIu79OizY9F1rRndgAbH/9INBoYEUCNVS058vjKjA4gXhzaj\nRSD+\r\n=hL2z\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"84cfc7590053fd8ef53b7349dfab3137a981dc16","scripts":{"xo":"xo","test":"jest --coverage","build":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access public --tag dev","---ci deployment---":"------------------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.3_1625031652684_0.43292903340856026","host":"s3://npm-registry-packages"}},"1.1.0-dev.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"55731a1fbc8dc8ced145973b1826e6000466043a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.4.tgz","fileCount":11,"integrity":"sha512-DLLvF7OTmWdP8VYXZ4lqZokhgkwMx6FZTGiesDeXpb9gsEimjjZuF65K6rO0eTYY73GnV835oXmwnHRfU431uw==","signatures":[{"sig":"MEQCIDeBa2F29RZoZYtgYfSThdEyxx4cKbSG+2gPjRi+AdjxAiBLoV/XJJThofAysm2ZAt5RJmdO1XJWizByOOfpvYYgIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":128744,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3A/LCRA9TVsSAnZWagAAb2MP+wZKUMwrhK8cr6K6JUem\nlrWo3SIflS0eIduW+SsxEM+wc+vI1eKM/XMeGSU/bET/EagJVuaH9Hfpxu50\nbgYk19wnxZECPyJwpMzO6hEYX7WDBIjPNo3rJSuuVmy6aM6GO/NKlXEzVd+5\nqkl8BxpdMIrlduIY2ucBDqcuClIRzSN7hFmmWCfLgnhLN8XMDlmmG0mtLFWp\n0oPVXk3cu29YK1vvlKU+WBJvp3cHewa2ppDR0UEVyCVCoJ3uradmrLjZ9SZE\n/XagJrBLtcdV/wzk/93gKk4U7pP7CDDavpgpjYy/ITH5u8qj1FlTshraDt1U\n8KREI7QZ/iFn6iRUZoLrc8trjrE58sRPxo6Opb8sUTvi6/smrRunOyjcetSL\nUnTlcwMEOuWoEXftZgTFMeY2i8sD+wgtlRg+N2ljsXC5nXXGG0iTOozBqYXb\nPfOH5zUTnbs5BqvVClIOpsa7nFkF7aeZPC/PiTZp8/3T1agQ3mwq1Tkc3Xe1\nbcm+2t/CfC9LrC6yIi2bOPPv/l7TNyaWYE2kNlMpahktKhFI9QGL0KWqCHsm\nUuQ76AgN9HYFFaECwlGB2HPlQVMw5BxOya46t0fZ6NAdJtFYoQCYoegAAuX2\nAE2zMIhzSghyf5BDe9l/0KlEArpc48pEs1fExnGaTC6rlZQncou47xxEL7gr\nsYUN\r\n=TYMC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"cc9ca745d44c26894477984c3c7d20eb0b7c7ec4","scripts":{"xo":"xo","test":"jest --coverage","build":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access public --tag dev","---ci deployment---":"------------------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.4_1625034699016_0.4734488344022154","host":"s3://npm-registry-packages"}},"1.1.0-dev.5":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.5","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"04d370358c40fcfb2ef05a53ba5d27640abbefa1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.5.tgz","fileCount":11,"integrity":"sha512-9JU5B3BGgZYbyNaTl0tXVdwdL8+WYigA0rPgr/pbGjBQ17L7l/MPVVjZyMH07ZNqPe//EpnJI7OfDC5P/gxOVA==","signatures":[{"sig":"MEUCIQDcFR98X2+ZQ0ue0NKX6FDz6CwKm84CEfWaBtgDvcheygIgaxIKjDqzyBmCVTaQAvxc9lxciwZrnu56cPJFlMSnZqY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3CIICRA9TVsSAnZWagAAfk0P/ApTq9b0EbNGYhqZaQ8y\nTJa55eE7AHO91kHttsAVcOncbOPDHm1GnxUvcYrR15A1uWVhYPaafsu8bIMX\nFgnzoGG6RS9P/CtKbK+T8AULcGmdql09Bsn2kytQ6fHXIjKtN1ybrgFUWJXz\najkgUeOGUenZx43KIaHywHbYg20Biv7mtV5ArVRrChZu59v2pQkl9VLYlHeb\n4BdHFXL9FjIkonL6EpMSL+aVb/F7jvtcnYsZ/Zf3HANqyHjOamnZTU7s/Rlk\nIA3uncKSFBAvPQxaXnR7JGdciXkem3vBLYhk6y1USX8/rknfrTIMGN9rSNU7\nTWva0HQp/1uNLUXUEAfvCEOCSX5j8UaVcpmnj7EFffcBe5arDNYkJzx/x5ic\nyMyZWoBkEoXUh3TcH3vOY9sGpmqETLIFLYftzQwJg9zTPRgMVV6S+q3B0a6i\nHXtdc/8xe+ABON7iz6DlATX6zRaQWwTHsfkTwwFC5Utc2sCEYbrqcXOvMjQn\nNoi2E8FIlo02CNQRujjMkgrG+6MsBLeUGtxB5SexT82FAebEUeGD8S2yYXrD\nhHrmZhu4sV2QYdjOeA3N9AVGBkrPBq7gU4/A+mAUuD1QP+XKIgB603ZmB169\ndg/txDqkv+0vqLxBDydKtTeYXe3lRpkhU/n7djUvk3UaVjEdwt9hPqzQl+UK\nXdl9\r\n=vzUh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"3d5e55b7d49afd38572aefcc358c2e5022fbba13","scripts":{"xo":"xo","test":"jest --coverage","build":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access public --tag dev","---ci deployment---":"------------------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.5_1625039367860_0.23121745750969502","host":"s3://npm-registry-packages"}},"1.1.0-dev.6":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.6","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"90e3e367feb1588e25b01441eda47a869b8aed33","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.6.tgz","fileCount":11,"integrity":"sha512-otCG12F8FOLq9hc0bc9FFI45NBiIMWWd/y1g2rDt/Z7ntt2sHYNuPNFz16Zr7g24qymUyyugpftZRVNLeOO0IQ==","signatures":[{"sig":"MEUCIQDrLX9/izJquT0twuHkEEATrQJ4BrDRnNCMMtiBUE1iCgIgRxpTGh3Z2D6H4YbRTImh5Sb11f2sG22iC/q/xKn4DbU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3CvqCRA9TVsSAnZWagAApTcP/1iM7FLmwAw3p8gA/cg8\nj3Hlw+5+8MJ4rEEmf5sAgknYmFLRFVB1mDadtzSzbVqodUrd7CjMntqCE2ct\nLDpN89KjdJqCO2MGvJp0k3U4sTF6Z0cDZ6+cZIVNHMwKMi8/TVqKfjG4QhR1\nFvxFjQ8oWsbFVntsIZ3NF5qHmHh0kh+/rlsHP3xJWn+yvIfa+V2n9GY+FFZx\nSocqpbfS7c7Bpu7d2VP2ENnzQ4LJQ47EoBJV8K7bSgAjPk1NDcqByh4tjcY2\nSWKJIytjqrCXkzMveIHhOuksUo/ZtV0D2XRrQ1rNoGTmvyLzPebRdQonWQPa\nuWGeYfNUScmrCNVbQ4+exeBRaSU26I7wDMdJkG+MW7QGU2MyzFHvDVISUsLR\nGlCNQSNFovFTq1BVGnhUHFvgAGGr2R9F12Hmm/8vu0w1AsUjhZB8bJHzq5AE\nujafUNAAhZzz+DEzNvZUk/L9OC2f/hQU/Sc29SzAIHqMJ+Piz290ZFnSjA/7\n/viUPRkTfo++Yy21urMbdKNjoGsKJ5c6bg5SXuPRR71DsPikMDZOblVbXarR\noIrnixOWQkEs9Z/DvZwCQlnNhci9fhc8JFon63NYH0RqrHwIOOR2Mk7vQutr\niGxyTMRUPWB9eNk4dbNOAlNaTOlz5XOdo2yERAY0LB4sIKVBFYAC8ozAXGGQ\n0f5S\r\n=6yVm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"b88652d925dc2d8edca2f5bb45a59082ab0d0f44","scripts":{"xo":"xo","test":"jest --coverage","build":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access public --tag dev","---ci deployment---":"------------------------------"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.6_1625041898299_0.8216168517794202","host":"s3://npm-registry-packages"}},"1.1.0-dev.7":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.7","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"beb8a20597e205c9d61d09338f1aae39e15abe98","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.7.tgz","fileCount":11,"integrity":"sha512-1XkZOf+k8I4l0Odp3ilA0RIDODwAPj2KYmPVYogmP9UV2Wi3/9+U2/1q7d1wRQSefYN6hUm4A0M1k7RHA5OjSw==","signatures":[{"sig":"MEUCIQDUdQW1gZl3/fOywc/CFhrFs7P/ULABCE0zwHZa+20SKQIgM0A+MTkJmy/vSnamcXOuW/2efu9rDMspTaVQ3D4mK+g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3ICfCRA9TVsSAnZWagAAXeMP/iU2ZFvowhWHOV5pLJqA\n7S88py5nX/Xl5+EQjxtnrU++MrGU7TSx9zHVbG391Cob5LEY1haNvZ5YJWsr\nHhs5ECp9jEtnHuAjNK5yraSf7EgK5+F8iM8bl4njPLtQ8bKwK2nqQrqj8KfP\nAzCp41A/fdN2UQtHcqIptO+698kdP9VyN/KjDXi8d9Wl0j08q15AXfGV9BpG\nSwSO+OpWlpnQvg3qVA64MXvxDUjZgUZmgEiJO9eCUyP4gk5ADQbORHq588FF\nBSqHeAqMBtA+GXOJFv9tQJ6B2OO6QYSOGhIaXl3Jv6NGCSzomOoQSOssI37+\nAdeSZ2JPT12C/2TvcIMuzJ3p+Xk46JI76A8qkR+j6fIzBXvSnfYLvkMdmDaw\n2PJ/pSxmgrklbe173RDNRFnYgrIr63PL55X2CaME0CGcbdLE5mTzc18dA0HJ\ndxW31XmYTCGH1OVtUdnNFMz9nRVXOMI4rrHykUSkqrKsLN2NlLJI+iVPP5U1\nWvDB0kAYfPdUGhd+8oIEPZOv3ZKPZDRwxsdB5z2gObSIsBDymMUg4YbbMrGj\niHwSaxfQd2+w72bNSJILissp70mkyrUUBizT7blIC9kQtu3r319vrrq9dutl\nQPiwOns9G5HHuti3NmP2jq+52WZUAeBEWrSt5SchAyYRDZZ8wfA5jTA4zGeu\n/sO+\r\n=uJdk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"ef3b310681b584c49e2b5a6780293ecb194b7b84","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.7_1625063582371_0.9406024772162307","host":"s3://npm-registry-packages"}},"1.1.0-dev.8":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.8","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.8","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"eeaba52b18e6b2c71ead05eb199a33b714e16494","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.8.tgz","fileCount":11,"integrity":"sha512-aKYU3SHquLhekYWW4iU5E82GpyqRKoVf9aogS13j2u2mekV6vlXXlL2k8y/4rVjTc2ZmHb1lHiZfikkDTN/OdQ==","signatures":[{"sig":"MEQCIFExJF7YzKhYPkdrAKeHyZfqFkITBDwAl0a2ee6lqOPYAiAVkrwC2zev+fcyfhNa/C3VMnGQw89XpzLjhn2VA787Wg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3IWICRA9TVsSAnZWagAApjcP/itXnnYzAc1xFqutg0DQ\nPS5xy9JG/zmXHoNbWnIWFWreizgUkBzxXSkAxglOjEoIfGzE3y7D6O7/PUPs\nyeRAh86QDQ61SGr0ajyvv6oEAQ7+1gy4qzuPSkABpI9ZU6JlixA6ujFKCWwB\nSw7PypYjxUXfYBwtnNm7BBnSZ3zZ/lfp6CfNTaZz61P9PRCroXIuv2E1NUyC\nPhdydjMMS6aS7HdXGNqmuusPxq738Vwm8hIHwt/eg31ZNcjopbFno19FHICN\n7WlaNv2Fe4wRu1ChSRo45i6yHtVZvu7+EGMl+KP7NRt+2E3hlRJL/FHQMuEC\nxcIJKWnZsS/CcjIAT+yp+v4NJaiYTIOaRSNXJy+Sw5CrrTR2LtmR6SI2W/9z\nWS/LhoH78BeTV10eNeBkURUPWBbcd/DLYJL5+gOd1s6XnEYBKuAxMuz0dcO5\no016EWuxOFzxJ44vvpWbDuC6tTfRirTIQOE3fkaEHhs2urnb28BwBiFnDsAT\nGKQkZjawMIx8ci2AerqtbjN3afr4Ee7rEtrUftnSkhc1Kl3TdWuRJV6WAKfZ\nRmNbhHiuV9qZCDvuM8NPVIOEqX+raG6aCXQYRJD56EW6QMFntZspEQ4fmyQJ\nHhhebl0rCt+deSGYj+booCxK7FWe2CECN9B2MUXiOIiHdBiv4rigoS2FvkOr\nboHM\r\n=LZyV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"6b5988d9c0740e0037ed1dd2e164c73ddb9bddfe","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.8_1625064840312_0.45246963173570887","host":"s3://npm-registry-packages"}},"1.1.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"922529f5fad0548f287df96bb49329daabb1e886","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.0.tgz","fileCount":11,"integrity":"sha512-FMVwTlYsHp208hS+7pSaE69MbBsBaSS8jNq1vpib3dFAfa51Kq7cs9Wp16uYlZxV1UZd1kT3EDflauBbk4x/xg==","signatures":[{"sig":"MEUCIQDZKQzGHGf0D8T9qfcTwIRIxAdtbi6bBRLR1iQ7dR5cYgIgDPaeleD2seaeFWsLHBMNb12C+x51GtVGx50Adu48TS4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3VUoCRA9TVsSAnZWagAAhg8P/RMmJE6zPz4W4ik2Yb1c\n5xSOdb1vRb5GqJvPd8AGpU3U1WNoSmaehoIFnF1dBGznQpDFUlZmMVnBjD0F\nMXz5U/WeXHZksxyebtjgT30TWSGeNCHr4TGI3BJDXAr6IOBSwbT1ho9NrlUx\n5MDzyeIPu3Iv6/VWatGMV+aVW2zrv5YkdFdoXvOQ0TZFkimIzR4QLLy+xsYn\nvdIsSR1pWBxabxcKyh4Zh4BP7rbo6XsEbUcRefnyC/I5Ql4ZeF79a+euxHuc\nqg96GQD1waWrpKuBQ1AAGM2vrbLUyDN3o9E+RceB1kfPpRLoAXNBKqLDr1q3\nhRdA/wKX489yfY+mcy8hKwmu5iqaWWTpixPb4lcAzxcxkh9WjVXzeKRjBCmX\n0CHxKOM/F3eNVOL+FG34q1aT6Il2tyWtAaTN5JCMYUP8cYVGtqpPAUCxNd96\nJED/9BTc34AqnSoCH/bUBvhfqncNxQ46n4DAtZMurIcBVFigzgfEjBuMvkFK\nxPbtUSZkoe6Fu/+VHqR9TXQckuwf2ioE+pMKsBrttNDOyrqVCA3+wZCjinsb\nFvOiPq41eif9upkOtHGuKt43DYk6zSx/z5UvPF8Di8DmQKV46ZL89YRbbOPp\nIaVdkoR/dt1gKiaQyR3m8UzMSC9d/EHftsHZTk4WA4UxQxPLGxN+9y8KeYET\n6P4A\r\n=t46y\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"f86c63cd4643bb70f70e621676ee53be8719b439","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.0_1625117992081_0.6293714356532385","host":"s3://npm-registry-packages"}},"1.1.0-dev.9":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.9","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.9","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"f1bb4c539174042c5de92ad2dfb0f2fe61a937f9","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.9.tgz","fileCount":11,"integrity":"sha512-XucqVN/OsM3lqTuXSCTwL0O2E1ru8ElIVBgMWgTdMRbBtQp6MUloerDEaCHrl2Joe0P2whNPfCQg4tf5YddBtg==","signatures":[{"sig":"MEUCIEqtc6YxmD0D4OUrdST1E0XspzC2+zKazvrc5fSiYuqvAiEAi5RVuilfflHaOKGGIpJN/zaoyxVXYAGSNftLOYvUISQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3WTVCRA9TVsSAnZWagAAUOcP/AsBH1pH2O7T3yBSYS0M\naVtl8nbtxUQDelR58OPxOzSi/VAfupBA0Vbr6XmqfIxL2jepib0PIDLkSOci\no9vAh5x81LM9W70Tx3zwdm0I2JShzFJrmwKmWMLNA8iNngHD31w6j/M/t0Bx\nCUP1R413S6pmusU0y6zgNSjG7mpEJlwzL5mOSOkMBejO5Eijm8hxtxMgozaN\nFErjo/fAaKLSwcu+GCs8qiTs9bHTeIMDXkYtioKNll4khYkkPvoF8hAzzKFj\nVLGyY7DZt5P5gtjmRJVoA9vM4USwd2Q4K94hdnah+owQub1UGabE5i6/FAd6\nREOSqh1AYOe9AZJC9YK447fZRwuWbyXIfqUnX7R9DD9tZVULMosPLC/ega5/\n2uA1TxkuTWPg1loA3ptLVHZmO3+kQ95jhPTfROJWxUUDvQd0S9DQ8yyVNPg2\nLIIVwFOD4vvosiFyJykkvmqJgtkMX8vYllIRg/e1KYJPhRbX5Fdh9k64o/Pt\n56tRJxzJHQ5k80fN1lVAbczvDp7dKvqJj5p/hbpuEjHhsGF1oxgo4vk1YLVI\ngQEPKi9ae+8bm024LHlA0IQcWUuyK1J+Lc8btVCPCjlua4sHwTcC2d108yV2\nPS+TpotHY9yz7u/SWZQYpFBuqbo/zpbndsdc4XvxJViaWX1uQ+aOhUD4pf31\nwee8\r\n=p0aD\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"8f19bf93fe68f75e5c40aaddacb95cbf3a3a84e5","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.9_1625122004612_0.8895465409703345","host":"s3://npm-registry-packages"}},"1.1.0-dev.10":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.10","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.10","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"94652c631d9eaeacaf2487e42d3ea6e672f7d6e1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.10.tgz","fileCount":11,"integrity":"sha512-S8hzJ0k24ixyOmxEBQb9BeJPPYarsRmwLYf2nlNHZUBnBluQXwsE78FkQv2waii41Y8cNFDFMz4SL/XY8rQWnQ==","signatures":[{"sig":"MEUCIQDmMIzbzK2kG0HmYHkpvdX0mX7e4zxOFKABqZw7OIAEEgIgeJ3j6/Av1W2aD34dIbgzqtQs9ZchI44nHuCVUMyri9Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3XFcCRA9TVsSAnZWagAA2+kP/2QKDVb/B5uSBAUcX+9h\nkY04HLv0hfQav1PGi4LBYT7H7XlBzDBv81V0w50HGdn37RtD2qrKcaJqcJS5\nqbG5gjh+48olM4KmNE+2MosJC56zEao57VREoKSAIBdNZTHMjaaweKOcRrxG\nhHfTr5EineBnfuKnfcKllwVP8UHCag8+Y0hmGCUHqcP7hsqi9cPTrqNjySqa\nXG9w7RD4CNmTXiHh9dYBTr+LC6RLRyHmyWNsW+UVtT0Yvte8i8EXMrgDXC6I\nb3W2ZuJkeH2RzyjCCSuXDfiY8e5cSAJcO6LJP/LQ6Ct9jJkchTvd5EdANYHo\nDDwdQnf5rLLsNkVzgPcO3B0vBY3R4hi5ShPjqeSW5GksZIWoKjdcOldi9sIV\nOM28uLuujVGp2ol8bfNGO+moPLm7EgnD4SHhummWyuDi+LN9pi7kziZhlZcV\nmcS6y/G+/osiKhVhNQhxl2FeGxW0DK8ZXnB82aJCvb561YiiojDBMp5ipjt3\nVHeOF33JKYbQLrQ5Vgq0ZAvuUbS7Jzs5JW8tWHqLs8WvXpiEsV2q3M85z+6l\n3Q+nPDXFycW32y0Q1UfG6vr7Bt+zXkIVcMhxCYdHH+Rpe1fYX26elKuahin3\nPnrtXC7QL9ujkSW9Wsfvj3MDTKZ+hfX1ZEIGaskplnqSnhKJAkbZk0PuKoEi\nPPSO\r\n=GRyQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"7cd526bc476ee0c7937246d1eabcbc416fc3e914","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.10_1625125212141_0.058252431541416794","host":"s3://npm-registry-packages"}},"1.1.0-dev.11":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.11","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.11","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"36c898d33879ce946dd5b681be308bdd48dc623d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.11.tgz","fileCount":11,"integrity":"sha512-SPYvstbH8TtDUVS4ti02fqNycWMVGKberwtnBMrIi+O6QRiPV++fN0tTwi8OqzyHkLJR3jLI4Te2aFbosG4qRg==","signatures":[{"sig":"MEUCIHpjiMpr+o/L+9VWBq6nlzMXBxx/ZPOVlBe6LjqCkUyPAiEAiJXRFMgp1wz0BNpEjgQst+02V77CyaBmt6qBb/Z/pvo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":132971,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3Xj5CRA9TVsSAnZWagAAiU8P/ij2VblYT1ioSZTvC0/W\nSeHHnTQt2zYn66xjMveW7WBX1wEzNgvRGlUdO3ZHiHBr5jW/tz+u8qcO1qHN\nLGepTK3n+gyTeY92xhkEWDI1tVjte5m+k7KlNd30tA4gwWIuYSvtN9nGBFqX\noCXTgyXwCiDEh+KsHnM3XX/oklokUezmvuwUMI0P1BJNX3kduBVCwXOxhrJI\nCRXDQJK6fTKJ/rukx/3N1LLND0g6/Z+vWOglSMrZcTzIoCbUNf0RFjedX+QA\n1zAnwnUB/jUT6hPtBeVEblx8TzE/ipitbPGPAzIeeRYfl/0mfSmNQRhjimZJ\nqpb2ldY7pKnQb9NcIVXF2T4pAk+PRa4oMs2tKguuuhGfjFmdmf9jHH4BDpbB\nhnqt1Pdtr0MXrHXUSajJLOi739ntTUt12TtHvFcwKFwrcpuTUGfVc3Nsw7xz\ntTAxB/JCE5PN+ASwSoP1vMysIsNe0KkEU6P7JKFc7xcE9T0OFFCFY8oGXyET\nNC4ADJGLNPoL7BdIFZP2C2AMtmoGzCtdLLPiyOodEfkTDbGfXOJsUvVpwDZs\ncjQxBnid/rWrI2KQdbsdvrd0DwhKqq8u8UW2ZJsCU63cJA8ztH8i22lZNrwm\nJbaZkwvN7rvCiXOXF6nIRRBgDzvBRTi4rDPpFqd0mPFipNt4K19oHXw1abWQ\nM/ZM\r\n=eZ52\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"7500f388eed2966f70222bd93bd4a2fc56d57f53","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.11_1625127161452_0.6729223137221618","host":"s3://npm-registry-packages"}},"1.1.0-dev.12":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.12","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.12","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"f4530778bd867c85688d164cf26e4cafb76663cb","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.12.tgz","fileCount":11,"integrity":"sha512-+H50u9oiaUkJj/x1/4h/xsTj09LusKxPNBJRXtjVoTOYGpyYqWsA8MBD4hgQrM0/XCDVwl15tl9toQvxuYxxLg==","signatures":[{"sig":"MEYCIQDmQ1biEfpkjsP0EPODcNfz8K0lDstn4ZOC1vLqmXx+bAIhAIv70IBNwPWBVn5AxWAPeJtLRHb4BP+jyznjwjubsekR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3XuzCRA9TVsSAnZWagAAWtIQAITanBvEzEEjpYH8y+FV\nys9XYr759BTSjHznriq31ob7fODOMyuzu3ffA5BVZizWNbkTPWToRXIFuEQn\nNedB9grN+xyhz1c9vjkc7DAoxyHFeS6Q9V/+VfBxSk/d31RkGIqn5qGRjZ+m\nXukrkKqR43N3rVB/zNSvv6iytQ67Q7pSowBjeuYhT9cHc0O5Y2U+0CBogH7C\nYxAVxKI8JUCkhtJOZ3MIbYJZw1i5APbf5esMPj1uPla9NtOkoDigtVLaoZp8\nXpkZ/Sj+yOa7y5FKG+V8Pzzrf2xSJ6BfuUjcelA37gIpr/hHky5dfC0EPmeQ\nI02jq0tKhYl9In949BcUl2+2fra73ijTD1PAT7jSIym1ZwW32Hied+9qSwKJ\njIlmWLAu8HomQvYAPV1fp7cAXvdTK68c+Nv8uMg2ZKg2FbnEk01kAVY+o3sH\nfSQJbw91cvpPW67u9QngPWAW0jFo7wIKgPhNHMkrz5AKo8NmdukqQwKdX/20\n3wss12rlloBTwP2o5CjbfIy635Sr/GB+8jlXyNlGiZWIHpS3HOpIoz9COZqY\n4xwW5lmtOXsA6iML+yxaKBNTqXTeo53HfOkT7G1X2BPYly6XbI8Yc2kRf+Xw\nkhdj0ayW+RYrB6glDhqleNZh7dHyP1tAyVO5iXSEd113AnkvCR5SMKyNySuh\nYc8N\r\n=8jj4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"5073ba02dee5cd5e8dfa55f6e7ef5f7114d098bd","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.12_1625127859086_0.8246619997279627","host":"s3://npm-registry-packages"}},"1.1.0-dev.13":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-dev.13","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-dev.13","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"b2693b5125f6a0fa9eb50762fa5aecc63ae68414","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-dev.13.tgz","fileCount":11,"integrity":"sha512-pvvqPdyXJkJQdXX8nUKznuKh1URRP6HPkSfPiMhWsn0sG9HXZ+drusO6i27QldOpqsoPjDYyEc4PmZTGIjfmoA==","signatures":[{"sig":"MEYCIQCLAxTO1gCwUoqlbMkfdJE3vqqVvHMFDd7Cj2DgFQWyCgIhALmL0WDwD54zd4IoV58ZitHUaY/98/snrHbEL/eAG45n","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3X+ACRA9TVsSAnZWagAAuUIQAIPlMMd9Ak94VcB1qKh4\nc6wQnmt6SzkXY8GD+CN7VNwlYI3ZwTqwHTG3TxKron00Dctt/LHiotfr6AGY\nvsY3Nj5zuTyhOZ9xlfXq4L6lzqAUWl9iAY+BRj53j66xEJ8htzSGTL9O40A4\nf3izwLWMxZWcs9FPxnn/oRhCsOKLdq23pRMZ8bwEKQS8wPjugbEdvnk2O1ul\nAytpzxCt7ZyvACsWac3T2GFWxUogWR12A7NJTHaGIF8RPX9uDTG6+YgDqo+i\nES/2yVrn0KGfD+UUH8Z/uLmRIkdUd+hTYL5DERN2gpW+diuWXQIPVO6fSyiz\nXTAGJCwDPJuvZJZQnmrgwfR8ZeziK0e1aJGkfSbn22x5zPjnhByOoPa2uYPB\nBMBnMZ4T8m4Mmc6m9pNI9t+8rF9lbA53iBpIHH6y9WZ9ZLAeIEHt7FwyS48x\nTjyQ3sOOMhT5GGgpwtRRpe/YHnsnOY0UNl1hOyZfEDDtokuQko2NXQ6xk9/P\njShXqYtNy/8WvCUs7KS1/tRVI1Kc3KYKkLKP1MP8jVtQVCrrGbnYxXQQwv/V\n8wF80C3bFIQ7Qe6HaSU1+4CSSTgfGfBFsUPGUG0DVhbaQPAi91gcJ16Aoq25\ni/bdrAIz4m1dIOoreftOW0L8+nfr6SxQPGR5xZD7dhsZPgLI5G9oHyPoLkkE\n+QrR\r\n=llWc\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"fe1aa5d04551bf58935de406b5dcc32dcd2e292a","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-dev.13_1625128832516_0.5133045364434343","host":"s3://npm-registry-packages"}},"1.1.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"2c92a74f1dd02d76d827576d8338e2a46ca2828d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.1.tgz","fileCount":11,"integrity":"sha512-v0B4E8OwL3ErCGoFlEF0gl3W6oFnVtc57Uwl+8HaLmyVMlnyTmkZN5og0/oEkSuegjZ/5gbnjoyP627S0G2ecQ==","signatures":[{"sig":"MEYCIQCAZVpDfhfSocXzuoVhIxWBpmirfy4uJuwXTZC7QVqiyQIhAKGkfBOccIRohFEFcH4ATo0Bx4ZL53R1m2ZNQ5C/lDf/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":70314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3YaWCRA9TVsSAnZWagAAyqMP/R3zrIqINw5NSXgDmmQT\nJnkgJYINIZ73a4HlzHE+cWdJUj/4aVHn/KP76DuceDbgdPloVPXTqIO913FD\nnJ5JtCghTd/lRnuRDdG7ajnDqE7pUdRHyo+EURs6+GVpR1O7ONJSSD+p3KKP\nKLKP+tuhOjyiQls0e9FiQuiNMWpxeQ4iz0tDjLmEVZDiwW60w6BdHoyahV4Q\nvQOl9IbckuGlCjJ9iiTPoMLonNEh0Sx0yTEto84rFaV0UcgxuYZzTo3lRmsm\nTX78Nl9218rEgPqN+/GRdGYMpm2bAnI757QS2dbRgic7+OeD3FV+6wRWr3Lm\nINQ5M+UCRcjxYsIBm4iZh6XTFoDc7cF17cd9ptRQCRrRNHybeMdtHsfsAr+C\nQlhPgIcLLlklJ2B1MOg9+1GwnjJsRU0Cu15y7CujGQr3rV+/zQcpwDKv28F9\n8pzp+Oa0SL4CKq9NVUXxhPaP2Tm2W71hKO+7xyXGUdTZyPdOXUrD2Pby1C9/\nXj5l/xbGOtdHCj7H4Tpm86Tj522uKz2b0JOyUYFIYbvnXSlJv4d8ed0PCZx0\nPqkfQ1/HnA75ywJwXnwJLjnX9zDR5KBweuPXcn4zR2N6LIh2oNz7mU1Ji3ni\nVYpb3/MNe1CAIRsQ/KEWOK9sb3F4lsaPvXvA+qMmVSvY9N4lfz8EKUDx6whG\ndRmi\r\n=W5Ew\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"ae31c66b5116dc2b9e976618e61ca7b2fb81474e","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.1_1625130646546_0.03784662608058609","host":"s3://npm-registry-packages"}},"1.1.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"a70f1e49e27d6734cdb06b84ad2ca3a75ca7a4a6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.2.tgz","fileCount":11,"integrity":"sha512-VMIj5plP5JpXswTwpCB3nqcCt9UX/Y/RMt8PBmhTbBkGD4Kz4MamhxNkULr6dueUW94PN302OnHkT424TbOlXg==","signatures":[{"sig":"MEQCIC3myDE4gC8tdSvYgHUj1txuDtZW5lzOhz4aS5zduZAdAiA03yVPC08KVKjAdlvTzOW43VfEPnrRSNHY51c01tWzuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3xnXCRA9TVsSAnZWagAAWYkQAJETB3bP8m8TevdvZnW6\nyCEGbtIBZkhYAVvXiGVHvI00eoG119kFhZ+eyWIxZA7bd6DGKmvGphZEGdij\nFJg+W6I8mgq06LzrXBbNTs4SNCKDfgkxUM22qm0MRzF9/vXN1BYuC1rS4e2r\nIShI7kVIWS88bDznnaxS2IOnKm/7Aj5+1Ky8ZmegUqjT+iF3+0GT4ix/exN5\niHBGKeTCiXji5d7hh1U2O+UXNsL2CSnEEp02jH6pN2lWVCi7M+sJDjHFz88u\nzL810E8xsGdqVRZvM4CjgCvG1u7BYT+B1ULVgtpEQeAWBD+rbmpBGZP2D2+S\nZYSZNbc15GtVBfWXlt1elBp4qvfactF1+CBeT/BGkEuTP4OeNLSjKpCYXdlh\nqKKY5KvJCME4lRAMAnr4TfvHCFjRx8lESGxrNIS5gEGMLbftFOoRG4i9DA3M\ndCxamGFepkUVYAPGvmA5ZR9R+CMQGh1xOsE6DhWMQBOKJRal7v0OZSQzI6bX\nv2j1zBvGe2wBKOofSwLcbFx7kzNln8oUpYfb9cgnFkvSmbROwiAGHA7uD38b\nOzIMtu17wmdE6iYC2f2kdUOarSiCXywQv1YzsS7HVviB9kme0VgKUQNPF4SG\nrIsooZB+8FrZd6+IqjDnSyeuFeNXp8iF3Mrms+BK6Wax02d0xf8T0oHrrOaS\nqY9q\r\n=/h2H\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"d5b17b04ba9e8ade481d0b4c8a585e12ce5d4291","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.2_1625233878692_0.31430768459879643","host":"s3://npm-registry-packages"}},"1.1.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"a93a34c469b5f8f45e234a26091ca6658607ceda","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.3.tgz","fileCount":11,"integrity":"sha512-ndWA/BCIPTk+Uuw9OqOENJrWxEHuL8VGFGAupzWcssD0Nm2PpTVTyT/N5VyOIklWLlLwcfiJ0gyyTqwfzFTWTA==","signatures":[{"sig":"MEUCIQDeUlJBkcwkYpMi0DbI+jpJvP11c4ChLhbuxgYK+jDr9AIgQd5iTN/rb9ygI2kWAXgp6VGbcMBUnr8znXUiV77kiUQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3x1NCRA9TVsSAnZWagAAUiUP/jgbwCC9aq1BZ/ERdOL4\n5x2mKwVruSvU11w+0OMbxgLtWAo0uxyS+TwSDd64c6toVJy8HF+1oFZYzRsx\nt5WNxI8VR9p0OK/ioxppRpSDf4EEraLaoxFznycsB61BtA83G/8HXcN9vwtC\n3WfxDbIxrqagJNG0PZpxYiwxEmrJbT/f5jWVdp47NiYS/kjPeWZHF1MfIJ2m\nyCCjQuF30/xS+8W1wYbTff9hGOopCwWCzDZWNpp/ABqimQqplQXN+mytBGpl\n8a5gRqnmlNhE61qho12k6H2Xi1Xx85GSVGFar7eCkZb3DO+gaKi6GomeXstx\nJaxAZc37IlozVfuplw15pLSiGr8VswISSxwR834j9ZDxxtMmtdItjZSL6DRi\nt28MwRlLq2P636z35cSSkYsaKE2kQirmsLlt76L73MbnawnnAR/mW75RL/ur\n06a4ZToRuk6/k5pbGGbROtEmTHkNw0mDyuU2ETQmQHnzvVwc1nU8nkrr6qRK\n035xwNSE6dmRDGjeeFEhYVbLKTNMsnBlzAogqEaBdHUomNfajTREcs1PHpSU\nuNY6asm49SwHD4CTsgo0GoofTiEFVO7q7amPt1KbQLlVWwxKUY/jAx2Qo+5j\nyKtATgjW+gM/PCwO1jGM89k/tlgQInuZux/v6/+XWfvmww7V3dN3TseVxqvQ\nTIQa\r\n=feZm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"7706c39d60b187c4942b0ee727158859dd79c69d","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.3_1625234764947_0.7539911818943545","host":"s3://npm-registry-packages"}},"1.1.0-qa.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"84574de1c02eb30ff5dd0f11c9aa4795ed68889a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.4.tgz","fileCount":11,"integrity":"sha512-WsC7QOk7sh14B+XbaJcASo1uVEqXIPdmZgnaAubA7jhlvISnfM1xdUduBoWbKjpSeZQ2f5HP8ShHRCqHjrQ6hA==","signatures":[{"sig":"MEQCIFAUyCon4fvc9r+gP2jN/JSrkyUmJPxSLVwbeCQgQLpiAiBH5Ub7+5mQ/xgIQomrFZJd8nAR/0wci+HI5VoIQigakQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":93626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4u8ECRA9TVsSAnZWagAAFEsP/248cYW25pnNicvoN7wj\ngwYv+daK1WXFkMrF8lfRh+0Pw4uRP9GHlIKd6kwp591BT3tQaMZNSL6FQJ/J\nRw7PWxw1RHwSWtQ0HR/Agjb+OikET3fos3/G1+Ncnsw6+VHhdZzfl0FxpS8Z\nGPoHWVOTfmO/dFJsQQC8c61TmrB1okjSeWoOwtqZ4qfeiBHjG8cEmE+OsDxr\nJhiGQHUiqHvUYPIQukDlOE3NqdgktQQKx8azhhEF2CzeFRkRz/hdJWAf4h4/\neNMLXbup8xxiDG1wy4VSu1bstK49Jp8MbZnj++Z4J7XMt3cry/lJGm1a6Vzw\nJCwC5O0JkdWgyyq92QvzeF7dXOUKEAQsEMtauUL87GzoMydygkn8B43rxgot\nfF/+E+1SIoNkCvxeCnWQjYTQcngO62bT7lOFcTWnfu9uNvk05FB6+qsv+zWW\nAGnLJgqhjNdjX9iwC6HptER0i1TTAH9bZfhn+SoZxgMXBzkFyOW1PjgXVbko\nraeP2E+oPLFBeVsLKYIqByH8ApJAC59QdIK6/BicTBFT9VejjIAl0KvAaBmF\nR2j3uJYGrGdsruITegvKrgkkW3ApgRc9LdZbgizhAPsV8w8NJg8fXjG4x9h/\nTCzl363YCvu2jA70lIxOzxpKu5DFL5d62Cv+afnlSt4RU2Ykhvg7Em5EEnDe\nyuDT\r\n=OYk9\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"91eb82b5f3333d138f5a3c9a497fdd22301d5fa5","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.4_1625485059984_0.46495623240421113","host":"s3://npm-registry-packages"}},"1.1.0-qa.5":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.5","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"0936f186e525a0a83166ae8d5554d9330a38169a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.5.tgz","fileCount":11,"integrity":"sha512-n288nVOFjRwDUqHjUK/0zOXj03yQSo4ShHB/5GbZXf4WZuDVXKwFc1cckbKCrz0rvsDX0JhX+LSn5H570ddwnw==","signatures":[{"sig":"MEYCIQCI0rilEf3GWRpwZYeh0iv7ab+ojVyI2q7xNhVwPgBCyQIhAPVUKyCkNVSspQuAQmTLa15vTPtf3IrgCt6qGTbUKmfi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":96565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5DkiCRA9TVsSAnZWagAARAcQAIwIl6qLf0MFTk+jZDWG\n6wALcMRtBcgXfOM3hKgr+5hSBs6AGB6rBNKELotjwoVqLNnmYOM0dC0IPPLI\n92lBk0TF0z4A1vZCaF2VnRIaZ2VRCVtrIARH2oCnFXcJY+XPKRr4OPleMslP\ntOssGHONfUkuRCLP900rwC1upCISS4+9oGlHk9ymRw7xbHNUbgwjNsVqRnXI\nHvYGHcF2H7kNSrSWg5ut79DgmEnT/h9hmdwf17N1JQI0HRYpCAaAcpbS7tgK\njGFM+qFDpw+qKxdai0t1dJqTC4+LsbSXqTdub8267JeWf1lfixMVvikm1OwO\nBeJgN49urWPOurChgZDSOwo2HUcDczXgWz8Rn9R/A98liMfOLf5PoI7lBC0r\nD6JWIMcsbBqpSNSTeCXmbTAmZlCQHXoGFABGvAuYRfvnEUsGxWaxnCi1JTh+\n3AB5StNpcQRNfksN5PSqU+tOcWdqSc3hmXEjBBVizp0YigBhQf+kXlqQcmd/\ndzF3udW4TcG0wOTBHoP9pr3stjUULtLDNqUeHX7ahDgz+BhZfATKMeESM2Lg\nxxi1d7PQuDljRnpX7nblAQ9XeGWvgSF/B4GTUhQqKE74p2XD+fJijR9Y0Td/\n43QJ4tvZp1Oku97/gzc9zTJe65D0s+PDyJiT5NPoY6RwohcfSgzcgO0a+aEN\n47Z2\r\n=5tW6\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"ade3d4a25bdcf293751292d71ba9db2aa12a91dd","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.5_1625569570073_0.476750750961485","host":"s3://npm-registry-packages"}},"1.1.0-qa.6":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.6","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"438a3b154db0869d5438a117c062e53c9e40b93c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.6.tgz","fileCount":11,"integrity":"sha512-MWtPM7zhLGOYGt5auY0NjQVqMnvH+PVoaI6gTPe3vrL6iiX06aJgZVPfg2gEqs4s8mO1KSQ6kbTtLAPBH4E3pw==","signatures":[{"sig":"MEQCIDBrQLN0uIdFMCI/wvZUwtA7Upm1Xz91/ah25lJLFC0RAiBSn8JSsoumSzWlsyFyClhIcLNgoHDjfNBOi3zsx3NvHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5GGSCRA9TVsSAnZWagAAlM4P/0Ul2IBkfZCuJsEx2yV9\nTUM+tQ+iiV9fDAmLCdEEJ7HLUm/Qoxi+B60XDhBs1ZWWTxAap2j09IxT4lcd\nUn6s+sufvTi31eGtvnreUS6P7S7OcZLFawWC1ik8zg4AXP7czpK663eEK75V\n6Hv/BYMTO1mkUtI/z7t8wxBr6/sVqfZsbJz51gsrc+Q90afWX7Y03JntwA1F\nRYDCit3xnkSLCJRHAjLg+HDsRKWCWc07wdLC+JUB1PtZxckhS0tb/6QGOtu2\nNlbQujleJZPdtHYT/nMjj3lAzlEw7OTvp05zxN+E+fmqCHHRqpP7dRPYZe4t\n3zhhcqLN7UGyxqTdEaogaXG49+t63EGR5yxXeHhlb2ik6k4sNkEc2LEqtvZR\nICSYVgMFT6cJEgZeC2CRG7+BSCeNGzCaK1xEeeLdIZtCSsKgG7Q0GsUSpwht\nlbVc8IA7ejMZBlcJFMOCyl/qnjeAnvqJTnG91lQvFtTHrujJzV2V1dTc0omg\nv7C1mhYEhY9JyCWpVEVD8HKIMjzvScNDb2yepZl6TDsTJbt8+gHl0iBAfiYk\n/7RU3PYF6SOvG5xsbEfsxrIqaeEctH9BenAk73JjgSiJjETa/7LEdLhDqII5\nDBYdOIaCQnlgQGb57vB11CMLux+48w0nl8qaSVH28zLZbvM4oKKpBL43NPxm\n4oWZ\r\n=pFaI\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"850ced630e97ff91658906a419f7c10c5d4d51d1","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.6_1625579922436_0.7415600276333976","host":"s3://npm-registry-packages"}},"1.1.0-qa.7":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.7","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"b92d1e2a2b177974abf919caa14cda7ecf46c318","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.7.tgz","fileCount":11,"integrity":"sha512-JBF+G2FKnYcXCL9C0dJbV49lUeZUVBXyfnlOnibGvKdpEAf2ZuQf9masUxuCY4cby3zvT9mGjf4kM7vHN9rF6w==","signatures":[{"sig":"MEQCIFfWXFBffT6KTLA6fYb221RM+wdGH5q8hYzJhQu8BMyOAiA5ckcTAoKKVVhZOKBcxhzrXT93MrhfAUM+Fp0v93N9Kw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":97501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5bmxCRA9TVsSAnZWagAAKpwQAKNYSsBi3jGkLM8r/aTY\nBM+qBZ7nRc059G28/FZwTJiHHu2JBXfXdFL4PDKhaYtgc7tYEYe1Cq/VhxMZ\nJA1KdFjROUvZro2MCo4ipIRhoP/nAZvp//d02ITXpIsTLcrCjOVjTJksmAAk\n0FZcXNBrjiJ/3Kg1NGr7cxM31w5uzounTiAXv5R4DQ2mZM8L89kkQbIwJ5Vi\n0mHdxRYFG325IE+EWsPEi2wMKn7sVfP4zXypCBN2jDaeQ93Te9ACpCVs6HBe\nRt3dbr2XAaRgCRgP+DZmYJ2fZ3aQE6RmgPd4lzWyJgT5MoHSWkdTUOQmC3Vv\n1qBhtjw9qlNDz/1/XVRauZb6jhFUBUp9DyvVa2iobxufqfalubPo+A/LTsR3\nFBK6jYs0njGXbnM3ptnb8hEWZnNsJCKMYz2x9DLlvtpK1UejutdqlbZEa8z1\n3QbDZRnA62FKFiBPWNp/2v9ULBqfsR19ZjNM9YPz8BpU0pAqbyDt+YjPffbl\n/98b5L5+nO1my1YUp9TZNMmHVlsF7qmTlJx1dZsVbLNlvGnXpbzuc6Vnz1Z3\nIiTl9/d6QPJ5zPNf4ANiWajMcL4TGmZqSYVK+RcwaR85vKeskKiy8/IKAC1J\nHDgxr++xBc4NC5cHNzAgkLu6P1cjMi9kXotWuvsVOdL6XQmoreT0rh7dpGPZ\n+T1A\r\n=A42B\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"9fb247268c8ffea6f8a70ac94ff4062cfcaee477","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.7_1625668016645_0.09709658859107284","host":"s3://npm-registry-packages"}},"1.1.0-qa.8":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0-qa.8","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.1.0-qa.8","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"624f6e0b1466ebe4cc7aafb38606e5aac7372c88","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0-qa.8.tgz","fileCount":13,"integrity":"sha512-mkWMhHXegRK4MW8H8y66JVFW5GbU80B+U6toTOv6gf+nY4HNkMXZEI9Ti3/Xy+IBye1IOl2mrgdyt1qC4ny0vQ==","signatures":[{"sig":"MEYCIQCz54CDQjMm3ybn0ezV9iVbzqsgylKZw6T3Q0F+tIYH5gIhAITPVVbos4+uB6XJb95nV68uD9euq7y/jitUfREsxNlF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5qXICRA9TVsSAnZWagAAuJ4P/0IdM6s9NzaqAgXPhCxI\n4sHSPZmGo8HRPyxM8lp6oyCDlMEPuNAmy9FRlCvcVriPUB1VEVWmFTLPITT3\nPwIL+Vr2rdcLNjRDxgup9/zRkDIRDQUbmslqgT3l5eJJxs41sDg/al1FnoOq\nAcleu0WxROUBwYjPCewU7AmIcrVWJNePTbyFieZQbzHkzGGW90dHserHofcF\n7ra9Hvt/LPL9DKwx0S25ucXfFNmovT1uXc7iR/8CURgsSJsS2Z5aLAwUsXG2\nwDBnY03Ymr+lyloCVjuhxyTaQmV0L3dnw8xeTYxJOdnD0NWSXiNe5fptADGO\n2Bu4Tz5RjCgUgcjJBkNS1JlGNQug00hvh6o9938PEiWb3f3Vqmf0lBdWjgOT\nLM6nTF6oSasYik74MWXsj/c/B1KwqYIgNyS7N89NCus+8Wkrlr4+3rttqR+k\nI5oJ09PvbLJl60m0841FD0Vba3IWgUsbnHLkS5uPFa5AwHDjptWvcjnZi9Cj\nqYi96ubd6OedC4ytoh0OHIxXYonL9DctnkixPmsvBDIYhsPBT0U43Sx1Y3VD\n11pvb1dyxFCUUfrEX91HpGdKGqGFLJBoP1a6E2al/O821UOtH57q5b8jyhQ+\nzWhoEVxiJfHdediqyRg8cAix2hrlBVv6pBF8PGvKiFK+Of4kaIp9BIev5q9c\nUWjT\r\n=6ESx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"03d314c9558e29b47293d8484fa9fa48ff3b71aa","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0-qa.8_1625728456358_0.5227358999152538","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.1.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"e2435fa20e516ed5556040994d62f48c5c29111e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.1.0.tgz","fileCount":13,"integrity":"sha512-d9G0bBOAucjP1jTYqCT6DeDosOMLYxngdDR1PcdkX9N03rLuKSPPqedIQhwzNX/35xo/Seq3uefk5v26H3T2Cw==","signatures":[{"sig":"MEUCIQCktZHrx0eIg9dysZE8rgjTJR7hSWhHD/zeDpAyg0WHrAIgHNPYvhIe3Is+vg3mplUER/UPGEtj5IhsOKkBR2uoVoU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5qkeCRA9TVsSAnZWagAAcrUP/R9RQLfI+fj5L9E2rpkb\nls0vY4Ko07qKQBhCL6Q9jc9v8FleCBR2UKrVM3b3mCXFybsTmERl21xE28CE\nd0l+V8hwI/6yyMEBWi22qgu8BAKE2egUyga6nOILWcTVbdgLfA3QaaYTyKyq\nwMNms3K9vY9Hu6JW2CPRrMLen0qqEpNypisj7uKALeyS32iSCSdIH14SJKjd\nBvLj0+PN7XFDsU9ZidUwiIUynH1aEn7+isvUaGSTge3njMBFCaK/WHpln9Ja\nkARtb3p8pNk1HE0HzFaKlmHP9OaOurG3jJLeRsOCrIZg/NoYZ7u3Z3jJzwDi\nnVsiQycknAvMemQ/hQpuukygRniAFCecEDfb/s0f6dum+xOpBydbT9jtsAIC\ng3siikRg0whzLpd0R+jbT4Q/jSssZgGCZSPB+6b+ORE8A2rMX1J7HuRGn+1j\nz8lRTwLeArtYJ4uKOWAUKQWcMdxH1vCuftZCb2kroYBdlharsEBzKZocTZdg\nGN+pREiQ52kaV4SYCExQ/3K97fSohj2hpHG/m1ht3JwYUJQogeaXAGZLZ4Uu\nFuQLoXvxI79Ee/+iaEZf9JtjJk6t8eqNNdYiyZ7x9Q5cQztAptnp6z3sC5ve\nIyQoMNuHlHBPybDtIVwpmPZ/Cekn5+2CvSlXoF051HoeKwyu/RKuXJPgFWeG\nglWO\r\n=i1o3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"e37044bb3ecc7641477c75b1e67ec7cb54634dee","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.1.0_1625729310287_0.19664808109254106","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.2.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.2.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"85a91de2516545672c57b400ba434f7cdc45094e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.2.0.tgz","fileCount":13,"integrity":"sha512-ILk103ACLLD+TYFJTnWqXZ/0vzFubC+oyowUBBwbSZ9I0RE8k/GJ49UZEshK8kvQ3U92QYpEp07Yot8jRRpmKw==","signatures":[{"sig":"MEUCIQC7DamGdV9NH57HUbpalHkBRr/6gypoWWisH5OPcr1P6gIgM5/eCfLuMsUyV/9FhW9lpP4HiUqhGzOt+GGnQ2fv67k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5taRCRA9TVsSAnZWagAAeTYQAJnxcoK4I8ALn0bk2xya\nEF790e+AANHWjwLKKA0UJBJmattEeZ7Koce72EFRM8fUSfOGIh+Cbx246u0s\nDNRU20XNGuHDxBEQ+C+NMexH3owWQyoy5+sbm3PBZrwQJovf7Rt92W1RgnwX\nuAJp4tMV5BenZ26DOA1UiK/U2jg/56EDCzzthNPIF/OHsCmf4LTCnx+DIqIS\nbUJLna8cSnCi9Ftc48iyz9HCKz8e5ZYl793+uGGXfSXbqYpPpCVV/7fpvXDh\noRMMVOOw2pjPcOnGWqUnBtCka9EPPgANantwS2DDkbv30mm9V+wwms4IsjaT\n4UMivH7e35+Op2MraCSa7izEtkIO/KxPVK1g0OZRG2ZiYE/ZBbXbYWwocliF\nAma552wCrx2KPxKFurs6BVzb01/O8T9CKtciRrPVeaD1eVV/ZhVPHjhUOtEw\n1oYfwTdlK5gtzbzBN1vopQg/4+Q4XbFiYuVJmfqlcVBGSIck0X7jrhOUJPDo\nIIUuEJKmopPxZulxYyITQTY6A1ROif+MIs5AXsd/OnPxPFk90arkNm4EPPPx\nDc7sN7bgWxClZCwck9Se3cu6oQHKE0uJvc8qkV66ehvqHgoPKuOPB/NAcKjA\nyegWSWbQSYmzVx8dIlrHPVA6qkGv419Xr//A0ezqNk24RiXrhehI3rLa6Iry\nNf5m\r\n=IgjA\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"dcb17e62efd7495e33ceabdae9a9ee9dee9c89ef","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.2.0_1625740945396_0.4939187236348803","host":"s3://npm-registry-packages"}},"1.2.1-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.2.1-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.2.1-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"291cf3e41858c010375df41aa5fbc830db7a85e4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.2.1-qa.0.tgz","fileCount":13,"integrity":"sha512-XFqVZsK8IgCpYWcULKO1FTll809OBP1tEIiu6MH+a2p7QLi2EdGjMTFGICirL5VLKyxA+b7YTWe1zG/mfeNjZg==","signatures":[{"sig":"MEYCIQDIZ4dmQKGbpOpw4gz6kfy2Iifre+f7Ag7mn6thcJeZyAIhALescBcmiqOtJk+SG7Ul56kXRcx/6TvUPV57W9bgIMV5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5wnNCRA9TVsSAnZWagAAuDoQAJW377Zg7BlbPb7UJo8L\n/h0EZr0NWTRJZXMLBldVAYitT0I3HlG+0gq4K/jTYX8EVTpO+80Lhy48nrNl\nhEele7KB6BndKLW3BxpAO+tPVLyK/hW38wQ9Z1AYjoN5yUjcOGV6wdiAqiRa\nb955+rDZedMUmRZhkqd60rqi6VdIjJq2q4WgmimDUECUn6cV7s6QcH4+HfoY\nUNW+Klzd6CkdUL8/IuftwABCNwSkWZVoQaDR1yoRXethulOXLy8evotef2k/\n8ot7m8dgn7ppNNLXrapBBiAkx6mEFBtjSrfL/wMpSqzZmOoRY9yvwUkv0eyT\na769Iec8n048w2qHP/ES/npaHxWIfCrJYtOCU+bma2OpWE0JL+jO+Ndhd4vA\ns2cLr9joGWFbxl3gI/0lxZ3DUXSrweRLdfbX+I5ve8egAfCE4nMKdHUqUeJF\nzNwg2pWycT9y0qCG7JbtnizKk4OUtebHtrGyKblQYxUpv0UwB1UAbkCyBxwd\nbwg1s8PxFrhwQwH/WeSlt2fUomTPntVJOBe3Nyi3VmOURzxf17Q7QiBCz/e9\nmmqcs+wrpozq6UtDFkMEOP11e1N0XwqudVQ6eMP1PQiEwKCvZT4Zqi348EQ3\nN5WgZMJtUKHRMsbeE6j8MO2GSUPfuHgevp2YUpPIMyw8j/U6Bsihoaq8ooed\nCf/z\r\n=Wtdb\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"e95ff9cbb4b9d44d2a6d9bfbed820155922d13f0","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.2.1-qa.0_1625754061072_0.04076311314958114","host":"s3://npm-registry-packages"}},"1.2.1-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.2.1-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.2.1-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"fae3193c4fc29193fe0e5d21411a8aa98711eb9a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.2.1-qa.1.tgz","fileCount":13,"integrity":"sha512-zCpaKhIFMzMttZxYqbu/lIqApdWiPOmw2qvZJ7jtIEy87SOJVwRM1cZOXmyXxOXuLpeA/XJ3UelQeLMa8cEOSw==","signatures":[{"sig":"MEUCIQC638IGPoCOffPtC+wpQma5po+skwE1iz3WRgO1zNaOrwIgA/A+DreHoHm/SNqCOfZB3G3lJyAFMX+YLKCdoBvRZBo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7sE5CRA9TVsSAnZWagAAq+oP/2A9Dl6dF2zL6LeWvT5m\n+9Dl1Od4xC/EDMbzO7I6wdlGvLS5qAtgcfWKFNNJylk2r2PqIaT0H435XApB\nu1Totxr97J7tKSYvKqEfVQISppSIMMqDDJaB+0W3ZMrZ875ThiawjrF8aC7o\nGjLHPJ7S8zvhKzyIUQ/cYj3knGMQBBf+WvD0yWaWObOCfUrgw5n++G4Nsr1a\nFZLQskDI8VsaG++gDO8a6kATSEJR3E4WWXteCItD4B/HTCI3/V2hzquB6q+d\nwralpAzCOBivGzIONCMJElN0gWZ9W3rga7GcaqD3KPBqVOEdoj6kzZHyMBq3\nJ9FG78PyYUSYTZn6l1KLVs97DouCApnbkHXC7Strb4czXnm+2FsnZ4XpoFzj\n/CVqX0yO3BSrrzf44j+EybKgvpDtUnBg15u9d7wNLApqrZhjyVErth2ghWjR\nrCfyWmSo31oam/puhBsfDkkOWRGzcIo55bxTBWo45qUPTi5zgt/J0d0ILlUp\nDXS5RmE79J3H9IiSc+154JdVS0CtiX5tQN2YHpMbOrmv0m7RvfZ9Qp+urPVL\n42kZQGSVsESyN6MgjijKdN7C+YOsW5iLVthyLSS9wtnQ0qnFZJxLlbr9Pz8k\nPcmqs2lPPbyY3epN/pm3CLjGdhC0gHo1vtaXGKjyqQPBM0pxamG8O6T3vOZe\ni9mM\r\n=V1ge\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"5ac4df287e99b516d83b4bfd3ceb3110dc68d988","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.2.1-qa.1_1626259769286_0.044487944225502396","host":"s3://npm-registry-packages"}},"1.2.1-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.2.1-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.2.1-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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"123ba97a6be52951c5f651099733a1d037c2e4c5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.2.1-qa.2.tgz","fileCount":13,"integrity":"sha512-4C4ssV4WxcbIE9/k3x44SXYCtCgwS8LA83aedvgOS/fT2GODlmm9bLbdhrvUAFST51vb9XCp/QKZaw0Rl29hnA==","signatures":[{"sig":"MEQCIApsPA70k346wb19JII66alIfJlFjmdX7G63SoQIXfHZAiBYCZFgHJwQPgKLgm+7VhlFAVG6t503IChHTmkybtCXig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7uKfCRA9TVsSAnZWagAA2HwQAIfuZUDiHZMEHQRLtxMw\nBKYhqJOcib5RLh3IO2HeZyiiLiP3rBKqjUTkmjsb6Kt4WUoo8HJgNKN+fsW4\nBB8VR1+9pYrz2lvFGs4yocsm2MTaaY3sI5l2jJu8pzhiUPHeHTib7efO9RIk\nZbhHLJ2xiCb1mASITZgBJqUQm76WMdTluCCEV16UvEb+dJdhaDUdsxeaDJ0r\nTJ5HNDy7qxYxxGI0SUODQ/F66f/Y8z/OnihN3jST6adQkf1DbhXsh6Ogm5t3\n7twaRjrHmDePNRkbd+er97jlayW7Gy9NwcakbMi1x611wUUXjhPKAP24GUpq\ntioq3aBuUt6wCvMs36rK9xvUmpI8jt8t+nTpvAStZ3MZWo/It9dTgbBYFjV+\nwTKS933WJA8qh3wP+Wnr0JJqyPmrtiSuhYeEyIXSde5FKPPY3iYkGFnAHUVQ\n94+RMXxT3zLt9TdaCnIQhlIHWOB5AGh0qvQnaNMwCMnZ5v8XjpEqKZLAqCEn\ntbtG6QBg+/o7vBhUVZUyQ3KxgjK7jADULSo/AQ9z2C0I12BMQkNueBabWqWZ\n9peWYe6gmUf1IEbeQaAJXlBCrePKnzMrbtDIIq3MPBp2n7ns+EkR83NQoWFI\ndWEFnswmHYaj006OEvRNrgkViLhCKguUh1259qH+cL/VZRtvjy1fH7Im4TlO\nNYcg\r\n=SNqn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"261054b2eff2cef56f1dcb6eb098b9c6ef1faf12","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.2.1-qa.2_1626268318767_0.01913337839253737","host":"s3://npm-registry-packages"}},"1.3.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.3.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.3.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"42b923bc988e065683f74cf0b2e54f587aa531e0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.3.0-qa.0.tgz","fileCount":13,"integrity":"sha512-RuiozAMHe2WZiugEb8BbberOzv2dr/TSigcU94YvuB3yn07THOaVZrBouzFO1u6IfDlU0uCYejlMm1oJwtIKgA==","signatures":[{"sig":"MEYCIQDQt91A4ScvO0DckpvbCKbBGZE2l/mCi1v0DPU+8C+pfwIhAPrzfwRpoG2ZO/UvbQqRFTYU0Q10qIyqxu52tjrPDD4B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":119651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8Ax0CRA9TVsSAnZWagAAU1QP/35Kr3WCD2OI+vSJGDfR\n4V+QtFAQTnfWcJ9kIZR1W8jwMJ1ALLCrbW8u9OP+Lnb7Zh/vLFaXCKT2zo1W\nuXSHAc6HoOXZbkHCF6NixZ9etkkYR/d9OKwsQEwme5oxk+4cac50+oN0zjVB\noPL2J35iETY0CVOrgbJ8vEm4MrrPH/0fDbm7eJEMC7u62fTXvw4ieu3Dmt7a\nrVZGONQsGVktZLt47Es2bwxR1LW8of85wF5n5c7Neg6Vw14Ttti+Mse8kXNl\nJ79uK6Yj31PHLE872VmDJ2bs2sFFBaSIaep0l7EvRzQD760Wn0eOD2eajaeK\nhfo2vN6lyYBijBSBW8XZBLNryWPSrYXWrmK2wmDihkJvhfLaeDcz+ITyI1P9\n4T1hnbsBj2MrbZG5bA6LhRdlSR+rwA6DMuUjObSfQe/LILUsu4U1a7Pa5dX7\npBa6lf2a2MrHaXP4Z2mRqImRRTKAgkJgAg8NPCeaIVpAPqBPXVHygs4PAvtH\nN04xoK4YhCKFpKRJzTbpE3TIEONIYYWL5XWBr8Uf7+6kW1a3C79Tq3KE9HES\nAan1mZosvyU6VEGcPYowrSbauC1062RdAv143GJ0gEzcncujSLh4jmXn9tie\nG0vhozDBHmjanzDHpfgR/L+pZrCISIfR/x7kMS/JAORcu9X9hdXU43YJteqh\nVjgr\r\n=LNmo\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"de5dc8f4d004e94efa327ccf3cf094f99d17da00","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.3.0-qa.0_1626344564670_0.4788426027223669","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.3.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.3.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"57085a0e3960cca763dbb70bdda80df0c98f8f0e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.3.0.tgz","fileCount":13,"integrity":"sha512-Xz5ZQ1SodtrdL+ungsIVrXVaSclDibv38/H2aWrCkfrHXXLZP7WJlwc7a0LDDsURuxr8SEN64DSAcdqRzs6GqA==","signatures":[{"sig":"MEYCIQCIHI+zh9BUPWlZ6Xw//IxDOylTViFkdjcJqFOnJ45JtgIhAM6a2EqSnFpp6mTo3p5Uh5PsG6traK8fUe5J3iYcFCQq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":116348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8CwLCRA9TVsSAnZWagAAU8AP/1HnZW165pCVmRvpRYZO\naHZcyW2c0+eTNyqnyKC2K+AMHJ47uX0MyLvoxbwwzAfEsLcYoMqgFPtc6pYP\nCEx4c+/8z4xSDUgM9mPPpG8EqUd4OY95CRwERyls58oHir4AlWflOyS8u/Im\nLmSQH24nbSLaryOI0xxuW6GQUQUsqQ7K208smJMwSfTB1AvEBcHYPiWmpp05\nbKaR+DHaA6dBjkU+SFRcbntFuQhrCnKF7wSdKu7ACPovsQ+zgTLqnXDG6N2r\ngmRvdirPV2DxJwK5mRlYaiET/rAs+Jl4FzrmKI1hG5O+XST/grxuxYW+hEsR\nnsS9DqhKVL1LqOZ3A01NU3ePfd/7x33OkXo6Ph9SzRHSYRmHxoVS0//rfoWS\nx4VxScIqSOiRHMWzXvD4whhWM+QSEsu3QqhR3AYVt/KQYItT3rLaKzLfpOTI\nnwNdKvVdBZ+N95FgIupK/1yq2HymjBQre2nOFLWEJj+l03oEcQaqMscITFf5\noAiYOvU+fwIaTbRF1nQVKnbw89KgKgfNr9PKc5HGZjGJTrywBkbsQZPKgBdu\nAQBRIycSstq/BSR5L4oPsOjgWmZeWt7wURycyTkUo2ILquLjeEbPIi1wF8Gk\niW6sOsvDN26AUnGZ2W53O2W7sRGJDMES1/Aj3nJe2ZlgL5xpBivuAaYfTAOs\nYBrl\r\n=9Y1o\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"a6a2d91cdccf8401b44afd35d6aa8ac5f5b01879","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.3.0_1626352651592_0.7351084846967775","host":"s3://npm-registry-packages"}},"1.4.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.4.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.4.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"262d8af431b60d6cc2866f5bb7817a073504fcef","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.4.0-qa.0.tgz","fileCount":13,"integrity":"sha512-9u79Q6VSctuQq0uJqsCDJ0S9ipIPF7W0HH8RiMsWItJZsLFUbn22G7aTnrV6/9scYgidzMDwL6dNVvyiGMRLCQ==","signatures":[{"sig":"MEYCIQDr4Sleg/e1T76jmLAGSKkXnQ8E9V5o0uUyS7CVbLa85wIhAKxNYOc9c8a/P+6gNy03XEfQQj/zB49FozwANael2ndp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9WhcCRA9TVsSAnZWagAAO7cP/jhPIozIRhZuGEejCH1O\n56uPV1iCsxYBmgvOrIAZGA5NQrMX1c0CiFUiXD/eWeApzkU3ZnIbGAQG/xP0\n7W9Tdgdl5QgKc0zZ/9lx3K+eAcXfaU/fvMvMuDrogrnSktO7P5ZRnwzzi0l5\nmBa5FksoyY2s8ul6pA2f9eFhlYlUF/fQd/NUFrQuQeEsPOpCp/h9j9puByYC\nJ7wuLAPkne9KYx+CF6q0gu3euC4Cu5ZxfuQ7BPYPGplWL8N/sjPSkKMeHG2p\n366/hWVqdsv+TrBUt+v777XXZv+5BRT0UM1ozYttJznxpQOeI95tfTXdzmAz\nnqoI3UkQtiRrfqvPANN7E8SbeAESermMKP6hj7njWSvSbZn1gnlta0iIUhJb\nao6CEDU7iUyz2TYIOby0183bdlXsn5Im7bmB5WY+Nragix4WBKzjOH/5tA3/\nnST3spVLLsNfvHLn0dp1C0qFPvLBhGvBazNFK4BmDHTInFNLe0wTmbgFqZ9A\nMUa3VMy/n9f1BkwUbXQfYdhdDW8iy0VViLaI4Y9ZWQ8fmq1+G3ZxuHON75/X\ncEhKE66bL/SoZ1Y58MM1kgUtE5P1H1S5ouyMvzCh+syjzY0O9fIXabjul/17\nsQ6+4o6VWyzyoaXClKFG4d+N/GqZ0YOyH4Hmx9tP9S6xKIvBDRkrgv5DKBSJ\nyWdl\r\n=kCc4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"a6b59cf825465741087e040cea4d079982413efe","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.4.0-qa.0_1626695772225_0.20721042874605122","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.4.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.4.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"1bd52a1d37544fd4df8b2241f2b8794b1118c0d1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.4.0.tgz","fileCount":13,"integrity":"sha512-uutWJbw/tbNQCo7xn9/G73Hd8/0NW+H6aYMy4HtFsTDjpNFuogYrQ8qX44CUUKPUxHjFa2L7kcLLcIf3c6n6+g==","signatures":[{"sig":"MEYCIQDlfFTvl/Tp2sBPOg2NffHZFiHfxLd2DY1cyXbKwuadeAIhAJuQm+TvkPRE+i0O2YTsT1H/x8C5tKCHF0kgc9xo8kuR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9W+/CRA9TVsSAnZWagAAOY4P/1k55ZsC7hZ4lY3pZkSL\naGpKeu/5lg1z7uuzUlW1ghKbuB4zVZT3lK5YjpWU8f3bKLtRspY3ek1QmR4g\nWDwO1rE0bo57/qYmHJz1/0sjgPXGV51pt+V21E4haK9AaSNutupNS2cgoyq7\n9YZrwV5/+6gEaPQCz/v7gc0eGhpHXJLcdtQYpN7D5HBUVbcOLe3+MKivAucs\nJoZLVKz8VdE5UkCBizIUSIJ6anczIfyPfJgOnR8zvAOq6KbUj6m7Gx+JdG0L\nsfVYc4U8y6fS6hir07GwdoyuVWKV98z6upj1L64X2F8U4KkX+EonSbDaPnGl\ne7njx1WBEmOtJ6BJbdQjDSz67bJtuelnPLkU0JbOfhQERpef6RtiGBW9RIe9\nTyfl0w6AgSV5nkjBNLiB9qQmv3kaRy1cuS33MyzL/rgJXAAsxvp2uTyvhYcd\nbFoOAOCwUX/4FvZYtsSAgA1ZTvBKziy9UwAUxPnvu2xqLiDP4pSYyLxN1NzS\nS1xhdi8C0/aE+OtTR5YSdKfdfAQaoi016RCBfaPXZFzEv6YkmXlfblfey+VF\nCOoH1W5Vb2yCM4vwC3gvRvuAlOL4uXankqdQB51n1PUbqZLKdPYn/9J4u2yt\nIGADms6INkjxpUkLxpyessxm3dIQPeUgKzT8xPoIC5+V2wYUC9wv2N3CMhS/\nVUsA\r\n=C/UA\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"be028a50fc26022fb844fea24edcbbe42623819e","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"ssydorenko-ggs","email":"ssydorenko@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.0","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.4.0_1626697663081_0.6846085746580597","host":"s3://npm-registry-packages"}},"1.5.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.5.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.5.0-qa.0","maintainers":[{"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"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"fabiandarga","email":"kontakt@fabiandarga.de"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"de082fad74cf663c465a52731a58ab2a4311f4c2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.5.0-qa.0.tgz","fileCount":13,"integrity":"sha512-AV7bs2vTjGC217wrNAbyqxCack/PZcCOVZKf2dxTg61UoetZXfzHmD7aW9nzf4P65YMloyR/QQH7UKE0mQq1pw==","signatures":[{"sig":"MEUCIQCSCWIj+qAqrMVSe8n6qTPGpffGftI46G2dkXhewgY1XAIgdeiHbOj5QV1QwQhrJjrPADxkxFLeILRNuwlYvQwE3Xk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAO3DCRA9TVsSAnZWagAAN0UP/3yoUUIQmhrmreA3hc9N\n+HJ4V2TizQOaXAb+ofWMD4pdh+MEufJuw0SyLCvEp3zCTQd769Rh9ZNY6cmB\nPgspyejeJ9p2BQBUvizGMgChhRnQLOabX2mYeim76ilXIk0UxKy/IhP6fxvw\n0eN5jkegmPbZ10Nc1zMaFp/n3Bteu2nl4+uVe5tDuMLXmZHPfcizszpuC9zd\niaDdGhZ7G4vvn/mgy8GuJbtQn6Pfhtd5Jji3a1JKIX892PXaD9uiCHiPexTw\num9TrcIYVAONopBINJGyuduuqvFpPLLa3eQpELVfVWwGa8eXLK8iuXDnrF/G\nv66TIDFplXfOLXBgKXJyiiJPWCYMBVVehfitfHaSD3s2dWTaSje4TCUkxZ6d\nzRCRad4xtKCec8N1g3BWYrMqZWoO4OTXkKapFZ5e9t23M7m55TjpHaCK4cGa\nSdOEk5nBlvgqkUpgZabaLhOzGDRKof26FxJyp2wgAgAn8G8jTetBoyLvLWCC\ng5O4dBxsSUYDmerqQCQbs9geew6xstNCDTGlztq7RGjlThF9oGnlUN8dQBgW\nUKyGa/jjhm5gX2rFCQ1U35JCkfZL/WUXY72Iy6B/n56fz1U9NaQ748fDi2Ji\nY5UJAJrLEHgYf35LS0V8oXz/syW7Bie7HXaWdmvD+BhoI/JhKvUsvWt4vDoA\ne16b\r\n=9+9z\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"01f6ea0837156565d49c09b303b34bf3ae7e2e4c","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.12","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.16.1","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.5.0-qa.0_1627450819139_0.0540264248484259","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.5.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.5.0","maintainers":[{"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"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"fabiandarga","email":"kontakt@fabiandarga.de"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"6e6d3038dd31d21fd83024a534991caba18e3de1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.5.0.tgz","fileCount":13,"integrity":"sha512-xPp9nFqeb/WN06sKy4DwljAzjfLIBNggjYNfBZLB4gCssiQWCztFzh5JOouEhEyJY7Mq05PjnSavYnFQE1KaTw==","signatures":[{"sig":"MEUCIQC4cHeBeSTz6QdBFgxOlo5dRAC8orqQv5s94KBTcg2ZYwIgdqvEzv7AmwdBjgBgHOPvZ034FFFYomk9Hr0izZIa4jQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAQ40CRA9TVsSAnZWagAAZ90P/0fmEZa+3+/Bvi+WEt8f\nelhYwDEsOBl8Ts9F4NR4SJLZxyCEhqpsL7gL7JBuLMGCoPAMDbbh/meFNXLq\nxU6hkxAt5zW+aHw8evm9QMIh7poEofMH2cv2PCkrgyDzK81O16YgXc56weLh\nw0jCmqZlRmUUBvwSG29nCwF6+iZqfQF4qfM5HVWQIiL0o186puCVFUQRDIHX\nIjSkqvbYjZu5K6xNesmIOQzVAxX0Dha/iGP9ecWwVx+N5JvuDqHx0O5R8qh4\nSdoxYuaPnwTjqXv+TBIwN+L9F8yxPS/KCQldwoWgf3woYCjJEFLx4XM0u1Ne\nnmOpvFbu7onuGsIbxphQH1dLZpOPtPyU42CCD/9+/mLXcSal0uC/taaKheGT\nxMlMGm9fMw/XOc9W32PDIeBPbwLYj3qFaRau918Gj+e3tjZDcCxp/LdwxQot\nIwkOxXTTyCHlSaGfOLaOTyA8cs/mpJ1CufbVUeJN6DKC7/fnlUn5YLT82PPB\nWKXMzT2zVNJwtSgq9kx8DKPaifqWy13tJ/MRAOXnQIPHGVO3RRmHjuWgv4X9\nQjwh4H+Opzx6hY4IBTtXocr3kw9r9seV6SmEvJtW6t9SlhzSiyLrKHXYPO1K\nfCWU05asZvBcnmjOKr+OPMdF08ESQlksvo7k16lHNDLOhqNLr8hmmkGSjFkX\nqCzq\r\n=2Afs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```","gitHead":"5e4cd22081051779e05dcdff29778c394d741109","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.12","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.16.1","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.5.0_1627459124027_0.3557640757149607","host":"s3://npm-registry-packages"}},"1.6.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.6.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.6.0-qa.0","maintainers":[{"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"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"fabiandarga","email":"kontakt@fabiandarga.de"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"89246b5b51a4661240067c4e023c85d28c2a8815","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.6.0-qa.0.tgz","fileCount":14,"integrity":"sha512-1iiqJuCSKPyYzbBUHcDAzdgk2IHHydyWjIQ3ziwYgJA5p0gTKu4k+bgjRlDQD0ejbqOCsDw5dWAmCqzXb5tPhQ==","signatures":[{"sig":"MEYCIQDMbinicDZLaO6uHcOneU7lLQb+per0Ljy5z6673Mdi+QIhAK2Zywlw7cg7CtPn5pocQ4257QXPPVl1ZnOz6KkJnmuh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":358291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhB/JVCRA9TVsSAnZWagAAG8gP/3b88SBcQo56wvSZY+J/\nxCkMa13ilkT2rRSU9z9Spz/dkQbXMJBWacffbJH7sc7HBBkikKCf38kLUJDd\nJJ4RWk4KMY6C5hPzOlXDxMVnOF8F17pRDcjOZD8Q0cb/M/X2TceG41o6SxN0\nHEoNJA+/yoiCFZSN7b6f0xUOWjb60zZjFEnB1BsH+XzqdVeLSaf/lzhL9+Jo\npRDaF7PFRpKSwScUQne54J7dy42HAwtpmWwy99tYONBkQu4eE0fN+fxv1SzQ\naSZvnDC9u22qSyWi7l61nuNlOvMKQ1TTJv9viGrHYBQx/DNtcpVhV4Hnhu/s\noiBf90S9PiViUc+FtibueJqwHHxx6A0kRjF5rYPFJ5FD2uYnL5zh5YOKtZvD\nPWRUcVlMhzbAfYtxERDP77F0Ibmk1DafCCqU+9MxehPNOzsjZktR+So68eGP\n0lRmJZEM66zk0k7+IEtmRG7jT9asxY49lNtIuVmqJceweeAZGHR+hfbSxPZq\nzLn9TEYd0062cBjUlq6VjiINBcGxxAh7w5aP/cA3h6bOx5F8ZRkXk5cJYeuL\nO/XxVhEv87cSrZBTCHY9KGEX/ULJ+s+t6xLoDXznanIE0MA4hmoJDVk6TEAa\nZoDDptKuRSV7m2KAzvlqz3T3ZHFhpwt8dSJbZhx/nObzoAu5mUnNEhYYKjSR\n6FRt\r\n=M1jv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```\n\n","gitHead":"f29bbe30a7cb1bfd1a718f91f12101dd6b77aac7","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.14","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.4","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.6.0-qa.0_1627910741364_0.07399306029401442","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.6.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.6.0","maintainers":[{"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"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"fabiandarga","email":"kontakt@fabiandarga.de"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"f7055d925b81c6737ac705c1c06eeca208eece2f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.6.0.tgz","fileCount":14,"integrity":"sha512-70+kGEzTA6GW6dKzXKLdwP/7LL5EcGst+7kr1EzlRi38DO2/aQhxEb+KUPkzkq1IG/12Jxf4pm5UpntU7Sz+uA==","signatures":[{"sig":"MEYCIQDPFGT1lTBOF9MJB0ukBjVZWJe6lfnzIzAQWVb17i9xkAIhALDzXl3Q247pNsObRLigX2PMC28VQSLO2tLSm9/RYoea","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":355203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhELBYCRA9TVsSAnZWagAALEIP+wdzWmsDxXqgbEVIvxKf\nsAAGAJnDstYqLothg40wmaITItxPZ7rd9cmyDenZ7J4+2Wvx9vXVPvnEX7ic\nbxF5yzCkB42v56ZEw5cE5d5KgQ+HZGso5i/K4UUQdjGpdv3AvCLN5M/whGgx\n77xxv8SYgyjWKItl3E+fKvq7ra2VvXFE4WhuMia17dyvr/Nho44vfFA/gsO+\nTkn3ilC2sACTtAe43VgNqHzB4wZbv2cb5JMXqGc4ck9ofIti52CRz9zdMIg0\ni5BbkiAbasGCxDSkH+3587xLpB2wu4N8CDna28oXZU6p/D35zR/0ot6Xca+z\nNiPHLfpJqKTPuvJNHT03nZomzGoi7BLUOQ4+zJqAiWQOvLrMHSNU+2f0kfYm\nQyjGQD6nI/TB7BMV4o/Wgt2v5/0N/bNV7Gh6+UwGNBRyZVoJP/4nnweDPasb\neaH3m11SazehV+iOYWxtTmjGtGaXyHg1FWeIRGCAfaTVQ2Q2La8FWJVxGQc/\nbf2WEP5x0GIxyLfC3s0GAkk8qMMJRm4q4xWkpD3Y1dMyeJE5JKahJIQQkUgx\ngehW4YLipUUlI+Zj9/Cn8IPhl2TbCV/lInEThbWl3/D1E8RQyQUG/Nq5cJ9i\nQR6DRfOwfRfV7U2c6PxL5DY5JlPRkutOUe+625iWKYWdqxNzXAXY25Hm8tho\n0+s7\r\n=UWuk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```\n\n","gitHead":"87e108029216bb3a009dfce6014dd86414a1cad9","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.14","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.4","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.6.0_1628483672758_0.23746099675983712","host":"s3://npm-registry-packages"}},"1.7.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.7.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.7.0-qa.0","maintainers":[{"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"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"fabiandarga","email":"kontakt@fabiandarga.de"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"d502a3f215ac5d414636dd57ac417385a84538e5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.7.0-qa.0.tgz","fileCount":14,"integrity":"sha512-o/8qahwH9EyBdqMhW5fdtl8PmVxxT5DTCrHb2brOItSdjRO/5DuXcT6Q+cZP9woZjkj7nY6p+NWfissLRCIBig==","signatures":[{"sig":"MEQCICDIk8umA7TIRzgC2gsMjrvoEoDV5qbm+Y/BuAMsgq9fAiAyrZFx1jbZ8/O8tHAcXytRT6G6ofzzBi132CuTgZqJtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":358788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE9k4CRA9TVsSAnZWagAAmwEP/2Vd2DyWCr5dsvSxXdCP\nBFWKjD/D3Ksf6Lx4LK2KmFaSwE0a+2o2BSrsnL2OVPEuZbwCtBFblTrAqbJZ\nltCpfjJOacws8sk9tmE2rJSIC6wXNc5PFUlHnQSrD2XFwoCQFM0yzg76vsjc\nCNiuKtGnjclKMJns0XvgBv/oOL1zDj1Fix2SUdD3Vz0IGIrnaksbrGB+Rt+h\n8tQXDdqKaoIkEwVsvpYS0IfcjLJa8os5PtXpMEsSKhmaGi0zYLnCImktVfcw\nA2kU3v5E7Kj+qOLhb81uGBmD+jq4JPxms9u/CX4zpMHyU1czULQedvNQiv6k\ng4RzEix99W7mRDc4JMfcYMjuigHb9a3/abW35ChNtfq1nhEDobXk1g4LI+d/\nATaGzbXi95CayjSucKatUq98enPXXJx96k+wi9/SoLTiW8L8e0b8nbRHdiaq\nlX6sDEQmtYwfHEuyWV74Q33pC03CSOn/CAlb9BEtPpDGGgdfrVxExyfSfJ3/\n1zd/hF4j/zZZ6xrY/OP1/34/Z9gHFZbJ8m22NcXNlBNKijQvnPavB7ejxwab\nqbXiSalmHR8JK04ECk2xclnpy8MtlOgz80w+aZ0/lsCySV+QGrKYhc7M3P06\nTIFO2VU4EfgOwYUKezWDqsCRf3P+yN1O2KFpvPFqx8twEK8+6TpQdKflcKUR\nu0f5\r\n=nFOz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```\n\n","gitHead":"4fcad8cb4dba76da5501deecae09357841d8040f","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.14","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.4","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.7.0-qa.0_1628690744082_0.5273391524039874","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.7.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.7.0","maintainers":[{"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"},{"name":"iskliarenko","email":"sklyarenko@gmail.com"},{"name":"crosburg","email":"chris@virtual-blue.com"},{"name":"fabiandarga","email":"kontakt@fabiandarga.de"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"5d57250f38868ebc99540a7908e8172f7c53a758","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.7.0.tgz","fileCount":14,"integrity":"sha512-DChqi7tfn2FwDcXG17bu2Wb4O4/XhSMeamuQ+ZlBFA9o9xskaR1fRGeQ7PsO+mW97RTb/WGNEWerqtJ3eBE4JA==","signatures":[{"sig":"MEQCIBFiUECeYwkQ66IIugGTfW1KTzr3Q1Wp+e1gcpZlTc3UAiBSMeQNMtCyVAV1ucUdOH5mSkjXwPX0ArYzuOEOCCeHZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":355481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhE90eCRA9TVsSAnZWagAAbWEP/1R5UijJkOgkoR0cLycv\ntUqXpq55uTldJEcDDvDPBc/i3dPrH0ytH/dC8zb9uY3zAcP+uJ+lMVNNox6u\nFRxNMX98CDhefljbSy2E7Rq6gFRrgLRTMeJBAnIWFR8gmtejlazaPzuwf0ds\n26fLT17RRPezLD8AmwdiF1Nk+h/P5DR8fq9JW+k7wIXLNvqgJOGVTSj/ohv0\nVu9lGQeZ6eBa9XwYWbHDo4kor/Ctrwz4gvQLQ9e/Ub7toyk/xD4Gk+fIwFiY\niFY2P0I09do/jbIWoPhir2Wnrim4YxohYKLGaqrVeBYWsXI7EAsl2DleGwXp\ngyht6l1cFaZzvNsIQKBddzMuPRJuLZkVzlawMjStQk5Brdy6kyOC214etdVL\nOtKKUNefqFHqIizkSjdlqapIfh5N0BdcKsi+TWuuNn2HD/hDoBjKfQ0GAw74\nQJBY+ZtwYI6SwOlKKhBbL+GUDcfbNjk7RVvsxpTcVyX2NKcmjanVSq9xaPof\nyQdCINEFl5krQJMa7oyaOcoKlz4kKNENk337vTnx+xPjuUAHvLPgVpooei+G\noCePf6U/duluy6OL0JXPLgEdxV9swI9PZD5enYw2a2CnGt+DKTPKD8Yn+ytO\nDv/vblxflca7R7phopiBjsreFIAfOXv5cWi/LqqXCTmesIv7/QUMOmheF8Uc\nMcrh\r\n=N4PG\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```\n\n","gitHead":"e92b6c56d1437cf0293eaa1f23541fd9f5643ccc","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.14","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.4","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.7.0_1628691742160_0.4858478260584336","host":"s3://npm-registry-packages"}},"1.7.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.7.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.7.2","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"ce73947e8b8b29cd5b10bb3f8afd59da3df51f87","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.7.2.tgz","fileCount":14,"integrity":"sha512-HJyrwF8k1ITf7hJR4+GG2axyR6miO6VNQZKP3cBOZ/tdmROiYJ9i4AbOugDeLOfS0u1wB60+xlCkulWF80f8yw==","signatures":[{"sig":"MEUCIQCo6QuULlV5Uh758HmM5BQRBBPedz4wCtC/KhKVyLo+7gIgNtg/qQuWvRYmEvfJ2vAB+aWqP2YHE3kvHnHPFu41w+4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":356151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwEkYCRA9TVsSAnZWagAANqYQAKTSh9O636oGdtgxQneB\nGag2eb2qQILL++mAYal5+5GVIJYfQ5snj4NVx8eSVJbao0ALn5XId5/fWbLi\n5h2Viis04HRvEM0JRy9ibZgIxUTSOl6zmRqicU+aVr3t4TBi2tUFPewJoF8E\nYMoDW/nNJpj8l0ajD3ptWOLX9ZL+RIhHE3uK7Rn6j99iJd6sJJWp0X/90oL+\n9CeOcICAAbg8+IixDL1xJRb9d4S+DfLRFP4x26vbwYkvRbrzInGFPTixQ7H1\n+3i6mvPA15g452rY4u87mS/7hisgJpZuE9+NFgvBLHzIncQO9R90zRfKDQmh\naaVkvX0JatQhC1kLFfFpXoVrJ6m+dEiR7rj+DaK20pgI0XDTBb+Sdc80Txdx\nY0jtpbIRVf3ZBHJs3RQxkC6nCd80E6svezSvB4Z6IH2DkT7RzrbmfWoYKDx/\nnUXUIfDigusH7G9KB8tE3AuozK7ZKTNbjT3GwbBT05s5r2Dk76xtUzafDmA/\nzxF0SRkyUOef03hZW2sf++Nxbp02GzZNLMObuBCEvd/WbEHMvujuyPKop59R\nEQ1gpu0xIGAiE7rGBUeqMAbLqvbAjDumPioM0ynx20UVEMFvkUkjA+MCC6YR\nC5fpb9E2AVTBjxd+GofssOMNCJKzFhYeM3WTZfXtPlPhovyZa1U7NGpgOBfX\n+BjF\r\n=v28K\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### add husky hook\n\nAdd a pre-commit hook:\n\n``` bash \nnpx husky add .husky/pre-commit \"npm test\"\n```\n\n","gitHead":"7154912d25e4fe5a0cc89c9285635b558c8d7470","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.2","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.7.2_1639991576578_0.030142802484060427","host":"s3://npm-registry-packages"}},"1.7.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.7.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.7.3","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"be7edaec97d040e04c9154a5c0601bad88ae9368","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.7.3.tgz","fileCount":14,"integrity":"sha512-2I/NIJDfcFmBIpfDV5vcer6bUDNX9nIGNO76ZfcpP79/MiiYlEqEPl1Wk7gvU/IE+bpqEkxaVo0w9v6Oykbzng==","signatures":[{"sig":"MEUCIQDsBqx+fo/ICISKxUMY/IhK+w/unD7cn5sZUgooIeubSAIgOzSyLXMkRL2UabXgEsMRL44fx/Lk1C4TULj/C5GpMqM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":356268,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwE1RCRA9TVsSAnZWagAACnEQAJaMX1SssW/LR82qRTJP\nHeMwm5cSAMSWvQw1E22kd8kZm4bDNdlq8xNbdk/n7rEYYpt2l4C6uFLsrm+i\nttYBHyGFRW8kcFEDBvg48yjuDDNfNc/V5d/AsXPIZCZcei+M15zB+PNUXFIn\nFKvwywMU/v40Qdex0MMIZWddPlUFgAegGL9Xj1wAEUHP+s9HcM0bGW87QEjZ\n404DAlkX62NnoP0YpGLRMfPpndl3EhPaNH93L+V1Oupm9NKAGPP9BB6/Lv+A\njFzXaLHGiISO8kxgpmAJotHhFEZWa2nZA2B0SBL28DPrmaVNOdl8uBS+9Rtb\nIR7CbmuHh4ygqAaKWiNZKDoObJL+dQDNZW3oi3IoZk67sJZHn0cc/AiZoGxO\nEYSTBBJTZiH4hE+C1KgM6fyDXohsp0i94lSsP1Ixq5TDEksCIior+UisXbou\nTfhEABLUZzJGAzjoQShECiYSNz/dto6eXCPTVj+8XJoP0YMhigtwuuYswxMO\nvpUZC8w70M19fvKdM2mqwUw4bHQ/zUp2NDiYjH5BJNcLJGvhw7dNb9qnWM/C\n1rDhOHXx83506MZx6p8Y/xkclTXt8Ax/0iW3gQLVIIvk6UqH55XFXm5QXCMm\nRP6sOWHEak4x99CWQuCcnNAkv3lJPgbJ+m7vx4/oY6SU4+b1twl9bDsamKxf\n5sNI\r\n=S/8K\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"gitHead":"369b04d55d843b73818a78fc9f3d6fd299306a34","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production --tag latest"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"6.14.13","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.2","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.7.3_1639992657556_0.5143670766584396","host":"s3://npm-registry-packages"}},"1.7.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.7.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.7.4","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"7be61cec3dc9c3b360a4068662a48929fefe72a3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.7.4.tgz","fileCount":14,"integrity":"sha512-yRhxwoznS/U1ponjtIdB7KWkA54AsvU6mSW5ie7ELNsOJhd+HeMjKFXs+TbFFC8ql01/AzvPVVtXatb0VHMumQ==","signatures":[{"sig":"MEYCIQDRwrkNEBcuClgWKE8yeYBzDVAl6QAGiJpr2YMShIUT6QIhAIK3fo/E1MDwKfLJ/qQcZDcYWuCiAMHCtbAchyzDnLOU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":356050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwbGxCRA9TVsSAnZWagAA0VQP/1qUyf5jjz5Sb/OEhNRs\n0NHuJAQUS6DBw4cuLRXMqAWZrcj9bu66YuxdZ6EUv3K5TuyftAFJmTdwjnnW\nZy3AHE1lHK0C/KuIeW7ZLneHfKBJ3qQitMULa0rJpWYB60kWiaZzdr0bph0N\ni5vsbBaCSfHE2yUW1A0kud721Ue2WHiVrHkrHWsQWfCgnrOxs9YUn6lYrV+x\nCVPbjFti3wSQJViJAR36nmSJMz1wseHvAYW42SwkU9Poy28ZsHW5NtsvS9lH\nO1Dl+6/55aWYSi1xXvRyT8XXJZ2Y1wCZPjQP7MXHtvgXRPug/yj3Le/q9xvV\ngQwkU5mE/MGvA2rXDoOYaXcj4BpgDjsSxil1RKYghyi0Y4vmnoPff48hGC6q\n59eM63Sq+o0E6YrASSZPhxjdc+67Dt6S7/unGYm7i3M6ZUI5A1pHEx4ZCynv\nL0bJobv+ZjByKkhAOv22jB94WDlSc782/M/+374YKz84DTAoeQZqwa6wGoko\n3hc3c0lMosmGSOL/wW4GcQVx+7SK3/skuqupi5p0zfQRyFx73pW7+3NQXqwq\nPEN5B/imHUCCf9bNR6NUzekLnRWJT71pj/qoixsOcR3ZDpHfs4YMefOXqs4k\nzv07zi073YaJqlDV1kZdI+8BxUJf0+RoqNc0p1QPPXhmYcEC69pEz9miVV9a\nyVtT\r\n=gnaJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"gitHead":"4a636e3137c7b0d2c059f03906c66ab3091668c2","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production --tag latest"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.7.4_1640083889433_0.4230053931965505","host":"s3://npm-registry-packages"}},"1.7.6":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.7.6","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.7.6","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"e28e1a9d18f2900f255437bff7a4d3ea96eef810","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.7.6.tgz","fileCount":14,"integrity":"sha512-BYJMH2RQCN72M2vr9yXgSKR2SYHOag6fjAR7nj2SbKRfDDL3UPVzXy68bdSQBS+oNA51q94AYNHMGCHPAIGRDA==","signatures":[{"sig":"MEYCIQCXNGwdKMxvM3UenxLbUADPfZKfQKzr4u7w0fYe+HQvswIhANQ074nTHvRHKqqcKsPAtTH8eoJmi/oRSuu4ABWJAg6T","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":358149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwej4CRA9TVsSAnZWagAAmMkP/2qqhOBBc0kz2LVDlGC6\njBe1Uwk79q0Ihzp+s8/sawpy7Wo6ZoPboTumM5aNxnLHSUr6JfJqE/Teg3l0\nu9xakyIFqvAGcVPU76WewtKgJZVJh77J4gKfVw2MBEW7L7VKhsmB1BWM3u/1\nGGQ9HexAV4ApQRg7iftF3jXuQXWom9IvtnvCfMJcxAnV4g4hjVwuFrqdg6CA\ndsjTfqfRhLwVR23mczAY3SGc3ddxfe2kHuRl7n2Fc27uj6FQyEGj2bKe63Sr\n7SbWxDEHUhrNDx2ARCCk0xrHGP13LGhb4bjTEWGrEpyPySc2uIiqn2cbzyzt\nUVzUt58da1KmSfM/MgGxjZMWCQGOJ6+3mJ1ynJ/C6HoPQW3WAauy73igHtgm\n7HK2wWp1kPPYPDp15/wOq+MZiUwzWdVNjdBpmlWTyRDO40Hu7E/huOTOgh8/\naTs1TFJA+RM1elHiVnoNkXUb4gyAI+ofHmQ8M+VGZt0S5J6KN5/TGQies8YO\nP13RMtfRqFXVS438x58g6Muw/oyHj7b9EkVYmp8BsTgCMHJf0JHveG8kCrZt\nzH8BZMlfzyQsnKPHrjJobgFRrw8GcO8pQtASivDCBcSNoRk4bPzThAOvb8ws\n2mORI5Cw2nDdHjk/Sz218/A2BTZwx6fP17Hx2NnpRRYyVQAT4Zr3iKyIjwDr\nrynL\r\n=tw/b\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"gitHead":"512d555cf10122e53c40bd7edd9e200d8ff69928","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.40.3","jest":"^27.0.5","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.7.6_1640098039889_0.9069045980769106","host":"s3://npm-registry-packages"}},"1.8.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.0","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"88a4f50fd01aee10664d3fbe379db4a42c47ab55","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.0.tgz","fileCount":14,"integrity":"sha512-ZzJhhOpNHIovd/udDhdgQWicw54VP9cA50LIHDsElqCEicZ5bXtpsdlTnP4C8EeJ718rAXFnpbh/HoNjG/UwtA==","signatures":[{"sig":"MEUCIQD5nYrv15GmiZpAUNc8WJJGdglEjmpbvJxnVjhvPEo7iwIgB+ocvV26Cp4HOmr67nDs/ObnDKHvvfNEcK1OKDd7WjA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":477362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3ppTCRA9TVsSAnZWagAA8f8P+wc7WMuCpVoAQktjzR0P\nMkKRCVbND05pB1QVLCt7Zl3FAmmRNrfX4xLHCHDfcnjAS2vgxuMYeVY57ljc\n1XZ0/Qz9yOk3F0nn9ju30Nt+8RfJi187NZlTtKPnumgt8XPixC9n2yF8d7iL\n0A4b9zmMzaGvhXMeUaGd3zw7WlbpETEpj8sRzrYUd16kjIoq8gUf0soYPWMa\nt/XyoPIDkWhQBbN7I4hY+LrEKM4lDyi014uAm1PDt3XTTJYSVwpQIlND/EHu\ns6MM6pjy7bXOtqoQA90uVBZ03BKGgrkBXuRtZptEwWkK3QJ5GMSeTZBuylJF\nSSojGnjpmpB8E+2ba0WGzsdulGM4FjYfisNS8apucxSn1GfErRwAjBSyZ6cC\nMMMQ7EbXDYoOeysJHW4N/06ZMTKq0ByImpUyHSepQ0kOU9TOsSxEzqtN3E4y\nmg6lgYqJaSsUuz3gTTN5op05FF6yPRXr+GdAS8KcKZ9PB+ckm/1ZcYzNNCQz\nmGoR58jdqJLthD0DwOaGuOEd5G7epZhxOeYnKO2cKHXURQJP0BQ5jMP6piRF\nwGcESWke0xIx45pMFGfa+rq9U5U38F9aLtggeYnULbb0iaKXiUoJS83Jc5ga\n7P/HG4EBhtAk3MzikGb1l6jMhgdtWiTkBMxyeDWEiNxcJNtnf+RJs11ahoC9\nAayd\r\n=iUaL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n","gitHead":"b1a9648ce815318dcd64fae0bcd431abe1d33223","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.0_1641978451277_0.953982974728669","host":"s3://npm-registry-packages"}},"1.8.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.2","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"00d14dc026c8a40a4e8aea647aa61326000d2d2f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.2.tgz","fileCount":14,"integrity":"sha512-UxtjWWzc9llpxmNP8Gvw5uyvU4eL9a22dpBC+objy9drDoJUH354CmBaUbPG45mThYjlNUe42sZTNvbfIjic+g==","signatures":[{"sig":"MEQCIH/YsWH6xRk7Nj+xZ2mLT/RWDDz7yEX3XiSiElGzWGsuAiBrranNqjOTWO0xa2p++IJMqx5A9NhHFqKf9MeFAzZbEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":477760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh39NKCRA9TVsSAnZWagAA9/EP/0XhD5xbKGYxAiAA3qsB\nwGwHu1IG6O9P5dKqHA1BeI4aKnTrgbzkkqbeLivLcEWmcb6DgomyNWq2EJ5E\nIJwUfyJjEXI4APqCwFsxuigMc+sZgkjMAeF89rCSF2Jfo5K84DLlPYvDGJK3\niZCjFkwE8gJEmNY8gH9cOhx0sSfVrApvXG55gowNQh4vhiAmeL+sAA6V4XK8\n4aMJHF9b1Ozbu4PuUDfFzwZMBzKwQj29evpI77PsDt3jHfa3auJTdfhJtR0g\nJTuVGYRxtQfSp5WAjcVfigVW+nbOWLLamAR+Gr/N4tEETcMWPa42ILz1GNv6\nT3jUFGKhlW/kkb3yatynD1uIMiq3P0lMESs9AZ1bm4bk2yJnhiwYIjLIsqwd\nnQUIsw0d7MqW+jcYko22CJ+6Cju8ZD//Gx7YXO38GfCafPJU1aWtpIpjj+F0\nNRfFzv0oP1Qzg5KpB++j7Gf6jxbciVpvMlxvDQ1T/tiYMiaRfxwGtw+AgJwA\nSCQuyu0VfUawVfAxXUxkZ3O/WXQgwGmLAObrpSz0gPamHX4WOJ9mC69ZO74g\nzAYg+3z6jHLiMSiUZkCVB4mAo/3WAWmXv05NrTMSswEUAb4xsICdmo//SD1s\nMiVZxuyDv3Wq7KtLRlnQ2y3STXkNEvkLrH3CuiEpr3avC1lkOmU2iPN+MRp8\nRaAY\r\n=FQST\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n","gitHead":"af59a530e5bde0b2280aa82f34d54a4885acd340","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.2_1642058570536_0.19521315816620377","host":"s3://npm-registry-packages"}},"1.8.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.3","maintainers":[{"name":"lsetton-ext","email":"lsetton-ext@goodgamestudios.com"},{"name":"keep_it_simple","email":"rpodlinov@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":"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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"f68d7cfc810cd37baf345b2c85cb224921ff2d2c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.3.tgz","fileCount":14,"integrity":"sha512-2ILtdrrTLiv/hCHtuJpS9HaKa8sky9YcZdo/150mGp7RUJqxqanBmVfDAlOgq11yfFLKkQPKvbvpXfLpxmkN/A==","signatures":[{"sig":"MEUCIGoAj/0u2HxO+8MvQJxdouc5S5zl6PlPr8/YbHAookkXAiEAlDzhfBGg6HXAGcZwFssO/2CwM+MFxo2eXgvI+BXLwDY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":477864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3+C0CRA9TVsSAnZWagAA+/4QAInQT/QHp2A6AnBPbZqI\nIGzLLF+/FwKgc914qmeHyUJljCoE/06B/TIUPBpcsMqD2R0YIqa4t88jWuBN\npZHlgO+Mde9XSgzmMSRwZLH0MCkA0Nf1UA4DB0kil6EZTdiUDPS07W7zpUgB\ne6TOek0aZQ1k1dOjK0vHLI0Zx+pWElKGKcEACMTc0WM+wp/mM6gtOXdnEHO9\nuYn3ZEfHhK6ArFQdjkd1/hu9EpbtRpzeF6VGL4QM6+qDhbNgh5DUfzVENkOu\ngDlGMQFLOEyUTROkz9yfEGS8ALqhWIRssiFMukS4MTf6Zpr6VAy3AGVlnBPd\nFCo4zwVFJjQiS4jHqIS9X3zVmRe4RVIsI8zKoYUNY7D3/OHtfY7qCM8PoDvj\nHMt5IVp03pNTV8cXHLaMcaXOWPZ4VNOMbfBYzWYOYi1R/FaZ1T5WBKnumGhf\nASFxCXY11mYRdyZPtxuD1wPeqanGMGjX/Y5kr4ar7E29hL8Qua4tqlNfleuB\n3JgjiIi9d2eVpKWEZ8T5G6gvV9BPbJyTpBTIfSzrhgV9zEBztYUEdQBOoDN6\nHTD77V4BgUhkuXJXhCJ96LNrRD4zyK+vM0utXx1bwP6M7cxesa+zJhPRmu9k\nUkw21KXgnKVWoU1f8+JamBIKE35J8U3Rz12EIlLREfvLWH6JT+rGybD3vpnh\nB7PE\r\n=P93w\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n","gitHead":"c157dd45bd3039240f21f934e070fc8893f1de8b","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.3_1642062004764_0.19127807277018904","host":"s3://npm-registry-packages"}},"1.8.0-qa.6":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.6","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.6","maintainers":[{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},{"name":"rbarthwal","email":"rahul.barthwal01@nagarro.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"43d59d5ab4e4e36befd072fd9a050a2c913464ca","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.6.tgz","fileCount":14,"integrity":"sha512-4oPtH9ImEAeXqwPnoXQ30iN9eiduxOzXOva17BP/GDGqk1WSKz7a/CgLHVnY6YI0+Va5Z8DQKOWsHNkKWWftzg==","signatures":[{"sig":"MEUCIQChMGBywleQ2pPIHkQDtZhBoah85XEwNKi4y94KiVvTOQIgF3We2+JXVqQrLIUZ1Hfb9YKFVj4MF++Gdawzc51+4mY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":478443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4E2SCRA9TVsSAnZWagAAhIgP/2AGtBbqXjMCmzQ2QaPz\n3UrGlTlpEOBqgA05ywwFcFMWZMzLgNUJzAHfc2tDoIIWdTnlubHH8QoRU2nH\nqzzCSO5TkULzj18nluEYwK9lDSZtiq88bh+2khY/4RXohw7tFFgSqvfiuScK\nbS4UyHmxP9EsmQskCUoiBcY1vL2HULcloaF9LKBcKdvZddN8AaVNgX2yBlqU\nEyYNH+MMba08qHBKTysSL80aBmWzJTVgfZtcaIOOkkdhGEAMU+72BGrjwEuv\nnRosiD4H388YyPRyuFDOzVxBmcY13Wh43KGTKWX2jHsqVsPmz1wznoAbvSLG\nTBwHl4f0SYjKsK9aBNmR+ysZaKxP9E8QT0RQj1P9TzUxbRir9S8+Fvzaa+ES\nHyh6QJeIJnYVfnbCAmmNd4p/eIptfRGggddj9dXzgGyYoQ3lpSviT0DIpB2Q\nkwruJMiu3nwA2gcByyrjPF+GMcJI0LSOLIFsuMGOWs7OaXDlYth02gq5VFiV\nEdYqRvAlIItw44BEQnvmW+lMVuUXjGOU5GDeUS5ItStKWZVGPqFDfXAeokq0\neEuoub3C/u+Uedig2EKYNdPNFwUaFheW8QNIKbkv3LYWfCmxBJ0MkJAx4ttY\ndh7Lqa1SnYCnj4tZ+CIZrfbDJNVuygGA7KQZsZ/aWnnaOvSyAwR+Zf5yyKZb\nOfqN\r\n=/Qgk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n","gitHead":"c73e1255ce39be79734b7136ab4d681c412d4a13","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.6_1642089874488_0.2883177987866421","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0","maintainers":[{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},{"name":"rbarthwal","email":"rahul.barthwal01@nagarro.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"79dd2ff4f2a49bd750048b21618d9a97cd181fd3","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0.tgz","fileCount":14,"integrity":"sha512-UTrLDb+pbmuZ3KXaEDpJf1etS2TxlmNzqkoKcxrF0LnLCROGWPcdeGWcGNCrngP+WnuWEz0z1EVpiRi8XYhKvg==","signatures":[{"sig":"MEQCIGRLWc0gmWTTi2scbzOYqFcFCkw1QHeC1xJBEA/Iik9+AiBT8C7vfgJZBVfVYVAcZaLMe3JQGE50G1YpFbRMmG6rtQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":476873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh98lFCRA9TVsSAnZWagAAKZoP/2rbd6lAztKYvPBKxcpN\nyaNg7jy00F/YRzoTnnJytqnr5URZ7fxQK7UqqF0lQ0HrpH/7df5gsCHf+ekq\nHDpGBav3z7cKrDxKQRAvJl9gehAqR0vr+10DFmZInQ4rQ5dUqzoBKsnVcvBP\nQ+KBVykt+v1mDKdrslJt+jJOJhDGB13wG/57vXH4wqRrq/uaIJAd1VtxLZew\nUndVe85ZG2M5OL5/IARbhPx83l+Ulu1l9UKlwmm3Kn9OERo+G2G77NSndfl9\nYqNvdYKo1qmWeGx8xsn5dfsgL3N6ZdU30xoK7Wo/KBaEWGolSZ/JobsQlH6r\nAXS7MuTBmuULzgxQGoyiD6CcesblQMomXN5EKrd/vaHxr+/ssyHBeXgUHoH3\nxXISuicDEdiQwrc+WKoR9HINIuUia7XX2UO4EOXZEpUPlTdERYXInJY/yjtR\n9xQv87FX6BcUZsd8fI0MAG5cWPZ1igxsZEsFOvyxyy6v8WSq8Lb28E92GhEV\n5Agczg8ay5+AfcT2GJzdbb73Y0ww8lx16XndKgk4cmUDJ8cUhzuWsoI5R6Zn\nb6LNpUm4s2+f1p1IGSE4v+WYppevrwjLJ1QkTYm8g1r2dwZAIS5YagWrgivA\ngYQJ9IjswLSH5zaP74ZT1qPO9YCCF9Fdt72UZ05h2GRSic5tZaOMwvxdEzC2\n+wrR\r\n=+r+0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n![alt text](readme/tracking.png \"Tracking logic\")\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n","gitHead":"e09c100bdc8894df15bf8e14b5982e11237b4565","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.1.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.17.5","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0_1643628868899_0.3901712975766958","host":"s3://npm-registry-packages"}},"1.8.0-qa.7":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.7","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.7","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"740e36d7c5c2b2305c3e7b4edf830f5dde4cff06","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.7.tgz","fileCount":14,"integrity":"sha512-P27RV2tzYfabXfLENf6bI4f1zlpguHQAAqROHuOvdN8g5iHfP213zgPejphaBXK44bLR8YUmqEcYWpaZqRO+Xg==","signatures":[{"sig":"MEYCIQDTDbbZWCwXZVYmCpgFBpk1aAzRGhvn3FFAwCPeWo2s0gIhAPFQf1HA7o+iK0lqTaCSFLT5MmDpb03LnB1puU1ZkooP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":480918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixBbLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrbLQ/+N1i559anxhdtJZXEHMVdO81TgTlAvi76f2YZ3dfD6b9BNBQK\r\n9BfzR64nyB4ohWAX1DsGXWq6e+vewoVavGl9gJPwd0g/0CIjZ+DE5vXLAS1I\r\n7CHdDhpFMoAjRxPwbiWBt55F9RX3YDybZkoXtkSbTOV2vhi7IjcjfxcusJpq\r\nqntkaK/aM071zLEhYEV95gVhCAQfoq4mMu//hmaPbuBZDIVpUeuP7tklCn+C\r\n2C8Uc+kjKiXMXeAQniCARktfPZyXOcWBtPU0NlJpLdrs0Rb8cBKvqqocFPac\r\n1z9jC5c17/ym+3JcJuO76q1frTNrmLo484cERNQ2jgkCadMb5ia4eM/pZcs9\r\nhItqHNiP9LpWQ+LBSs3gKP7Ypn+VlIuosCgBa1vqeZLYgJhVGEku6wSJ1hMQ\r\nJboreleUQFHLHBE0gTYIoKRX2JxaoHL3L6OpGXED2F9SZcWeAqJAuvD1u+UQ\r\nyy9U24VjyXesxFym0jg3SJ0T4LSabgFC2EO8plpDkpWMVcKi+4y/8qLE5Nsa\r\nkGnc/yw8ccoJVaT9H6Jw3XkL9LdgsVJOliPnP7xN4eV7OITNYh0zh5E6b4ON\r\n4P7TEoSnLotQSkwu6Wp27C/iK0Qact5cY93c+W9HMnEh0t6f2R2m3+hm6606\r\nQrbTp/uNohuD5cbiUgDD4I7CYGK3tDN31Xw=\r\n=xgTn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"b55ac94b0b5629a0a64958cfa7fbffd3ed280b87","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.7_1657018059727_0.36462364524765345","host":"s3://npm-registry-packages"}},"1.8.0-qa.8":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.8","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.8","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"0fd30acad02893fd3fad7f96ea54ebc103bb09b5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.8.tgz","fileCount":14,"integrity":"sha512-4o4sRPkM9VaPoo68ehzRbNbVhRiQYF+Ok94Hl3ER4FO1ZEmIxLZz9y94/2lYAOeD3fD6rT/sIx4/nHyzPEBUmw==","signatures":[{"sig":"MEUCIQC1wo7v17hkrFAWzc7XMU8bq+SXP2cY66AU6Slo1zg7vAIgKT6PVF1Ui/7OhwmJ1rVLawwLosXRtEuBZ6iJL9BB6LU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":481706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixBqCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoI3g/8DE9Yso6oyzifOoPUMnhNWVty6PzjK4hgDXT9oHIhDncIBqNp\r\n3mG4aBhDuT1WYywBHq7lfOv8rBGfN1n6bpbkWdLRiYhFuviY0bYRFEU01coO\r\nLJXugkGND/DRRzCW6lNULB/ckT+b10pCu2RxqbLXitY1mvNHUyy+I0Ds5oOd\r\ndS8PVr/1z0Qa5AEWVZBfgg7fS1WuQUYHuiKL2Um3h9FXF+nYYLdfaN/yjJfg\r\npey4UCbnmnetbnsu/cVdL8DIfOwYmNcc7GJ/xN1vkZxkxm/ytrN7r+sLJCAZ\r\nU0gugxCaQ6aFHoknEqbEjFqehkfwhUuIXiL0+dYKSJS68rgnTsJG/tft4+oY\r\nD/qcxrS3WBxLB7gPE2tMWXvr50N2g+PoHGzmnaBBHuTTNA6bl4Qd+2ujVGKJ\r\nV20UeLlwis9vUSgLJl/MjOq9VxxYgkyJOTPOBLYQhXP2/0Vkls9V9b3V/lUD\r\nS3WE5q8/Wm5lVNeGQh6vz/8w+prd8/jr4J8sMD89JlyeWwCTtbPXae9NlyVm\r\n6e6Z9768HHuFCdg1Im9A0lMnvEi9eS98aeF6wGBvYis8ArSza0VTHx9pAxQF\r\nfQRf0r4EitcBjOAyySC3XPv6M4SV3kcyLOBn/iLG+GuEcFYYBm39U7+YjM8C\r\nd2O+7JoRCgbB1C2KI+812Df59wzDHMaIY2w=\r\n=Inzg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"4fed530852893c7758d73f800db73a46a2ca6560","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.8_1657019010214_0.7398922368921932","host":"s3://npm-registry-packages"}},"1.8.0-qa.9":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.0-qa.9","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.0-qa.9","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"9d18b5b23e528a0d7ac020ed3c76157fdcc74c7d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.0-qa.9.tgz","fileCount":14,"integrity":"sha512-rAE8TlpLi4icjL2Le4JDU5u5UZUXm0/KPC5EIGzBldrXAsbjN00WqT83EhEIVWqGgt6vVLJ/8rEXnWq8E8mrLw==","signatures":[{"sig":"MEQCIDJ6ealu93WjszrhEUR6MtyvGBTp2+/Ic82g+Ti4r+oxAiBTQbSDd5K0AwqfBkDLzsJyX/13iiyDq6Sdh49yQeLdiA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":485422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixGKJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+ow/+Np9uDVhjye+vuIt64a7cN75GE9o+5iq6SqAtSUOjyWPWAA40\r\n8eJFywagm7jQ64aSy3Uk/hKNAZshpkEPtYiJ0rBhvp4lnf3Ktg31YYTn7b5M\r\ngRlTfvJ5ru1dvvTjSURxfTYytVgVqLFYUzrtP7EoKqlRORvuLHIXgschDDxC\r\nhYgggIemWNzThfibGL7oN9bSWkimSJZaZSa974nFenXX6dtS9CZy3+aAXs1W\r\nSXL+4J1Wl0Z6hHxMAVkvyZrtGGb3SH7oeN1ke2PJUCTJZrUQzdwZB6Lc0yux\r\n4GGzY6RyANRDKLyzMOSYHQ77y8TO/iz5E+o5zoQTSNAnQL95PT9o1E3aiwWq\r\nPcz2JVk5YfgjPt0FClad9aMqqcryuXUNSZDJsrYnqC6VtO3IJCUHsJVy16Sn\r\n7w8iIqKbRIZnjbKGd6JAS8ay1E02ql5AAn6k38BX5M6qVPDskMw7Kxaxc+MK\r\nRoIXHihv+8V7sTr+l4MtMCRM9dz5JWt3qrD5IuXyPuqxfupG1I7jTiqI6jBo\r\nKXYYmMy+tU+f1AJimPx8d9ea3vIFadiFFsP7i/isuLoD26rRQPtRQ4T/KL68\r\ny+mz0oR2LNKwc0/94Ka8URCg7JnLvHeqFX18tKENXgnKazRptwAKF2HZkJqo\r\nlg5gWqzFrcXIbYDTc9Il+Yn1T+ulssYVQBk=\r\n=n4ot\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"6c25a13be5afef88364f1a521ac26b267550eefc","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.0-qa.9_1657037449457_0.05225930348126995","host":"s3://npm-registry-packages"}},"1.8.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.2","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"697b912532a10dd40bd7347c46bea0519038d276","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.2.tgz","fileCount":14,"integrity":"sha512-i73X1kPU4z71E1eBaQeFDXMMluqMFyNwSl4LAc62QaDayD1/APs++9TsGKMOD7y+dfMfniO95uaurIdCVrn2rw==","signatures":[{"sig":"MEUCIQCN6le6K0kkUms/KebDzZ7Zlbm/p8fZ//o3IZ/OrzX/SgIgK/qQuSPLejhxilc+35gAp4ky39u5XXvUjyGkzwInAbo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":481745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixt2pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoI3xAAgH88g0gwZBpxNGCro+POMb8zrWU8NDgb1TGWQFDyqQ3jGxUO\r\ncZqK2dPSRMh+l4UQ0MT71Feyzk5ikzwtedbULrgHS93vvrJNc3IuXUjQ2lib\r\n9jOa0N24sbvg9Bh4pyIQcKLz+uYvRGzDpQeKy10gaKk92mETa26nk58FEQH7\r\n/lytXRZurvtWayF97jS8CuqeXrNr86WH9qlkJFmwlqiuI3QgLKCTFbM13Lzr\r\ngRN+EjQt5KaYbkaghL1N/Imz7i4efQ40yOBBYbQj0otg9pZF3JMKmvtMUpbj\r\ntM0m7kc2xqNaggsquUDIgdFFCvEAg/zn6ERqRtwzEiFXnJEiNbYU033BMGOQ\r\n46FLad3Hmsc1fgWOASCLaUsPXXavBokdY572bn/jZYhFBcs1Ki4oMPhppz8e\r\n/o6/sYyIS54CuebJ14OLAuQFeHz4Y74WToTr1pQmGDh0qDfGvQau4vrTh4cR\r\nEQbWgNQSoW0Wh2Yk+NakQZDyn8xmMZyhBM+d7CvNPYikqUaB8+gy3fbh+6XM\r\n90pnfz/+3lqnqB2rWqlYw0HlImaCwpWpimb/jBeIs8p7Oq5xXmXjKiZWbmAY\r\nXAGSG2VpupDiF4hx5cOAVH069kvJNbulX6J/6eYxYQJL1amVtk3soeS0IBQR\r\nQ01iQum28HVtB3pmNtekLWXVuhe91P4gWnI=\r\n=opAS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"efebda900d1990f98e6ffcd109e98fc36f05bccb","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.2_1657200041154_0.30466179668101967","host":"s3://npm-registry-packages"}},"1.8.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.3","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"a8247ccd9330c506f6b71ce5af1dd8a5183134fb","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.3.tgz","fileCount":14,"integrity":"sha512-TjJuCZjV0JKTFJyWRPFaGRR7GMyieie1EcVwQYKhU0cq3J4MCXROPYv9sR04DqOuqpyddpm85UcOth43BrLwzQ==","signatures":[{"sig":"MEUCIQCj1utILzzIm3N+OSRpwOGife0AkeWfadKepmn41JAv4AIgF3PfY1Q2jzH/dTAPJ3Pk4BeTvtrcsSZ8hzzTRYp2bxE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":485323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixuuiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCCg/+Mnkn8OGkeDlhbLqaB2/ZGTuBegfPFlw0VSWv43rC4c0c8xVB\r\nLN8N84V2x0O8UZWW2MtKViwnGqzYwX1YtZiR4GZOsmpBHjopDgtKLDKkDSR1\r\nlK4jN8hmVxSaFtQEqFcCYmI6KpDBve4xt7EaiROtdlEjE9smAIzWfrXaUOYw\r\ndp78rqQY3rkKCZTutB+G8HHcHyCEP4g5FR5D6TDArPSUbtgvzhpuDAETRGts\r\nIyht3VPpZgE54cwQI7pIZTd/Aty4sVgbKpJo9YXYXTMZLPF/cNskxV13s2kI\r\nCh7h3NI46rScLlBeQkJELUu4/VYlceiMFUqKFAY9tNtWCfy1hO7do71iuteP\r\nW3yRf7SGaGzmAdymMeBwfLCI3os+aQOMXGqc7nVK1o/A6w4+q2bPYp+BKQYZ\r\nu58pPjZ1x8WSHhYmVx6eAhwn4hkcWEEOvd7zJkrTRSAO8z/6bfIdVXZOldGf\r\nvEu2VQE5kh/GzosPJPoawExbFLkT+JMtqnh2yK+/p4Cg2jByA9AfJjFnztFw\r\nWAG/AU9P6ZcIT85SSzGHYwyuzJRhqGBbl22FHVAjzyvN9fxIkR97OBUc8FSI\r\naOflRmZwNlptySpVAIWBArhOwXfw0Cxh70rx0TnsWoUxod3YIJyloPiVCIf6\r\nCfPIAkN2T+YmctNCKNPm3z7IEQ49U7/nwOo=\r\n=a9Aq\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"7d798d7e2a39a3dd3335444866870325b597a3ac","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.3_1657203618069_0.7641422534150628","host":"s3://npm-registry-packages"}},"1.8.4-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.4-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.4-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"99609bdf414a02556132f3ddca89ccad7ca4b373","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.4-qa.0.tgz","fileCount":14,"integrity":"sha512-E2nwYgCKJMrDiDCgJBlFMS8rIG24R98sB4wywOhCjgUpvh+X6p6Uh89zXqErchPh9SGiynbiR8E02y9zvvqM+Q==","signatures":[{"sig":"MEUCIQDpJwuFiTrwxgT6VYL26PzAbkIOhzi2hG6Y0vHOXgmlLwIgU9+Ow3JlzIN+pCrKitJhpkAp80w0YVLqnTxPRQQuPpI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":485916,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6AvjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwRhAAmgwo0HQHexe6I4gg5VsPhHOnWNc4YW5yDPqFcUP0awytKD7O\r\nALpqpFZoH4OG+xK2F94rVmVUQ7RwCNZ9/xI74uKauFlJjsoVB1dN72eOOp2O\r\n1TFET89MpdBJ7dGTdcCWcNvIiHIaN3OIEiL+pPPuycbWslnTbQQ6u7RMo1xR\r\nsh7k07WoGjJpO5sXxTMXCUIQLP5HXzNjHQVbtd3sOzdZRwSNq3UguM9WZ36D\r\ny5b7vEkGW93+y/KujJ/m3zauut1hfKF36cOJZ7HXIDQ670cLkmch5UqKL9AS\r\njWvbm6LpqpnvA1H/d3QHX72JFX/1YkbTRuaPJ/1Q1v9o2e0D4wBt2k8LVKYr\r\nsQopkVpbaoV585puHCqpIY9TAGM7JIc/aDYN5UNwKpF+s812afKUnCQsPm2f\r\nPPx0KH5oOdjPc4x4I/XwSCtE0uBfGdYrrHejBIoKZOKKR0x1kpt5OhzvzTFn\r\nE23E9n2J6TqkA9Zivp2nftzMr41avesRKbNHrqE0OfF3uB6ZtwcoX5u/ioU5\r\n7kHQb8Jw7H1CeDs1u85945samSOsLCu36YBG2c0REU/SXKwFCuoBJ7q9JMot\r\nYTR3oKgol0aiIa3ZP7x+1UuVBMdR5OcPaJQYbRMBqC3WmQ33AyOZik3/igxt\r\nRdrSlN4b4pINuukxjwtI53+eqLR25TtCAvE=\r\n=uX1d\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"316754ec6b9fbbb2e91aed1d9d14ad37e962d4a7","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.4-qa.0_1659374563475_0.3289484717389264","host":"s3://npm-registry-packages"}},"1.9.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"f59fa710d7799c103b6e936ad2030c13b000465f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.0-qa.0.tgz","fileCount":14,"integrity":"sha512-pTP2MPIpKVJLTpzXDdWX4Hg0V8FQr0Zxuz5nK/eiARbWeV1DxVfuGXUaK9AD010kDSKvLu3U5WAjilEbWxqR6A==","signatures":[{"sig":"MEYCIQCICVDUhDUxkkdO1uUB2hiMeHtGecuDaw2CuwdPaCa1cgIhAIdG+b2y/xQG1HJWiNp9HsLzmk8k96S0KQLPeaBhOETS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":486869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6CWrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqmkw//aYkZahnPZF37n7nLmuvUmpc800pSY6zfPBZHOlPNZZ64z2HY\r\nls7S9SmBqOUbugt3YjVGOhtpW8Y69qnoK8wFjoIQZ/+NWMnFbbztKPlu12p2\r\n+pUfi3lSelLgCP2FqN9YMrEqusEpGYioH+2MEcRcqIVLbLQpf9Ph6EyzOoGE\r\npMwPUnIZ5pAJFNRSdAbniQi016/TRESWkr3jxROJC0A8fBFHz0LfIoR2sb8o\r\n5bK3ARWHySByuLKvCHiTLkCwdtUktzKr5CB9nHaOMt6uk4r0VnccshZzOmD9\r\nIUA9jiidVq+vu0r9UXZ6qTuDJ/stvSVw8npYQftYZj7J4imL7jKWMiTGh2/d\r\nddbbaacePjPg91JPRSPtks8IZ6idrAOinDWufay8C7AFyE3OS0/+dA2jksQq\r\nD19Tnd5U4uxzoqU4XtrPzqY2m/F9zPsV81Dv6X2v68+GwO8Vsy2vs00UE3Ro\r\nRhw7s6NNXYoiIVj05k9oImHQ9AlRFI3ib6vr9lruBwVWodHPfUXh3WsCIYlT\r\n4rmbpWaXjRgjoAijoNhPz5gjb7AIVRKtZxn1X2EHQLcg5YpIEwj3F/E7wnOm\r\nWAQ3Ggp59iFbygdPccFGduavSFOLWverLxSWMUywqT1ytyNP4Tbnqmy8lKV9\r\nZDzfxiF/LdzVhFtuh2ZLM4ZLrMmqFmAsIZA=\r\n=++jO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://unpkg.com/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"cc278fecc3948f941cc77e2f2369ef08088ef7e2","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.0-qa.0_1659381163666_0.5828642200571423","host":"s3://npm-registry-packages"}},"1.9.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.0-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"569e9ea7157b61c7c0a67b5eaf277a0ea259d865","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.0-qa.1.tgz","fileCount":14,"integrity":"sha512-IxCalGuUQWeTGKFVvAaMN2+ivztJRVLY47qUvYzE8jqMjgI0BRE91Ms1EIY3p8N54/TWyvqzPNHtCaGgzPIZlw==","signatures":[{"sig":"MEQCIDWfBaRVeQbxdVghyJ47Qqa9USF61kriHMZ1ikSkkCw9AiBaoRIWC+tBPXpU82Zy52ycq+QyS8FHkC+Go/TuEBuabw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":506723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi65/GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEDg//ZnMR5sJW8oRS9sZoEN2gUiJ/VBHodqFTrUQsU6xH7y3a/wx9\r\n2cVuyU5j9oAhRKNuSnApdFUiCHnRR+DdRRs7K2TTr5uMwmKo08nPI+mGl+W/\r\nkRXP1RwhluH41VYWaFZrgB95ldMPIVL5oBvRrQ8GOwjnJ84SOgpDqGRwgYF/\r\nmqDDmUjls2oPS0i9FzvvHvOFlGnYAAoJhaIw+0u+RwBwGRVP+P1xT1xxiKiB\r\n0UaXzIpT6isBs/ev17/1l95VWRdJjKe7ovSFzLKfxN2ttBiOVIp47tCkS162\r\nWt45fQppUZDc/dZm/LTfvI8BF4MEO4kmj0b8bDyhvJPU4DEFq1c6zfChH5nE\r\nC8qz00iBeUduyD2PF5hUNbuklLgwcezhYksXMmocCtpf7RURrZPSl6QFE4Ku\r\nYomdq65Vg6Me6jlLwVAGFpBmjnIuU+e6YBRPBk2W1TF8dzfgh1Yx1uaC1zVY\r\nTZ9A1SpSUd+fvdY4Se6LcdlLiPYUkBgSCcag0s0ynQsIgkVzpFV0M1nCoEzP\r\nF9nwA4Ivk7p//31WUK2uaqN/N8/hUvE3uOAkMcMDFhy7E521CvzJZLQMpT8f\r\nN2grUOCGTVahy1A7BsKzQyNQkc/b3ygaGWJHbqpFHdBG8xHVF8T3QX1MFe4m\r\nbOuvRTQDL4myTDDJZz+UezhFRV+fy6+wmVU=\r\n=rC3G\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://unpkg.com/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"d1fa9bf2a9c92be09ecbb30be3a3fb9b4ddc26d8","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.0-qa.1_1659609030418_0.14136304986467318","host":"s3://npm-registry-packages"}},"1.8.4-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.8.4-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.8.4-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"06e7e60cf27f39b65cc078f9f9b064b280330db6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.8.4-qa.1.tgz","fileCount":14,"integrity":"sha512-EunQFMO2XNOc1bviY9TGSnwtOtcRC0kAzbwyeiaSEMu9RljUiWZkk2SBaN6PJIYQrkPqPrileiU049X1Y/63ow==","signatures":[{"sig":"MEQCIDRbQD1g0CSeDJIYC45UvkmM8bZ0iEEIzZBDCbgCOuosAiA+s1JompdeY92rCepe28dxAPLj9yIU0MAxh/WkZkxm4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":486035,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7VeqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmppew//eBqo6vXgtYRAmx1RYHn0jgidPAY3DdPUTcRQ5VUTECR0nhPg\r\n4bKR6JbAF2ArnPGyqhASZVt30aZtaclUFkuCItlft+H/wzoiQ7H6+z8Mbt1k\r\n3JdcJBMMv11B8lecmGibycDe09055O6lX/CjvF+wOKkyu6iNTWqkcvpr2dS5\r\n6SvODgqOhHA+AAoPFj/qXN0wnI0Z6rfv7FEqQ5vXjjmkT+bDmcMouAscmPUP\r\nqJ3As1clsrlSP6K671lP88NZ5aw5E5SkG6jvrzHd9oPVnblw4XGMpadIQHWI\r\nk5E2ZnirZkwybRWqsrb74+nANZ9zXOCyqOCzc2CStgxXGyiofnFycZ/4oX6R\r\nZXfFUlTYVMGwpcPtW6p6FzLNReHj+J/6UJ/odUsJxTV3eIg339ToSI589AjI\r\nM7bN44xwLlqoCFogI3tN4rZh8hfN/rCwLUCGsHaqVm6q9TbdIciHjlF2gO6Q\r\nSr9HAoIdI5X1jwxRzB0zosPajS6ju+OqZ+ji+qLFNpfwrnDpmB6NnjEp5Ivx\r\nrFDjOhDrLj/1A8O1acY2WByqiTEA5H3KTIOftEULK6HntU3h8J7j9x9V0Fm1\r\nOc2/QXHw2CuznEPEIWaEjzRBimx1JTw0vv6joRj7Nk9SXVEk4TBh+UgHqTzi\r\nnWB4AwFNfY/njEZAKr5ib3JNQRPZ2GxLq5g=\r\n=Sn1j\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"}},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nthe cxf plugin for displaying ad banners.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\" \n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end    \n  \n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n        \n        subgraph paymentHandler\n            userPaid{validatePayment}\n        \n        end\n        \n    end\n  \n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n    \n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n    \n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n    \n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag} \n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n        \n        \n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n        \n        disableAd\n    end\n    \n    subgraph htmlManager\n        addBannerDiv\n    end \n    \n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n    \n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n    \n    \n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js \nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n","gitHead":"17262f0b6cc7de6572a485a4243870b88d116e1e","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.8.4-qa.1_1659721641719_0.19175421348285582","host":"s3://npm-registry-packages"}},"1.9.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.0-qa.2","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"45b67e5f66350b615d290e97f8c3f22223f15552","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.0-qa.2.tgz","fileCount":14,"integrity":"sha512-ZcgGWSeSSxDalIiXewWWwNLwzswrdNLpU4Ei6WOlJaHA0P12dCi4mMk+6TP+aHnLf1ZmbuktF4vmBu8A0nrtuA==","signatures":[{"sig":"MEUCIGYSKT3uc1Np9wKK7OzDvb7H1C5y7EkI++UpfrWcuPd8AiEAreb9O/OpkGEKIAktvGGFgFlEhcZ8jTuYi93wpysb4bM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":505087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7VsZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9XQ/+PrLh5Bo1AdbhTcSs+h44ykuY984b3s79RkX5UnHWS91bWR3P\r\n+XC+cbpi33KypvJNPty4a4PptIoBGWQ0xzYyCQOukI9vsZkH+Lo5AaMNF32E\r\nNSVpdhf76Y4U+XwgBJjMh1hoTFjsPFe/XoaTfkSbWGzXRroCNbASxHEJiTI8\r\npQc8OyqEE1BANb5N/II9y/aSAQidyTe6w7vxbKT7bvBukvDzsLESXcwuG5lP\r\nDBpOP+roftwxZ10eBE/N58DtjoXu+LPBSChXjrfmqTBumQT//rvWAEBc3mKN\r\nWw8yQCivXNCRaGyccZ+fC81Kv3dhCQH8BQ/2rObohnVuUFpbFLYziPhA2SnP\r\nO5BD+d3kQlfM9WfLQWCUHmnAc2tQ1pIVzKcFjQn4K5FU9D35MRpFkXBc7F17\r\nfcbUspjS7DgBHO8HGW/LVgADaJWbxRdHe7xSTAIhjsc+887FX1f5bcaV1bDE\r\numLaTzIon5TFTYCLWTwDs15yDRJVfhHz1H04iMQ92WIAW2OxJqVAcGp+V+em\r\n5T6iL2MQPjCvq8arE7EczjPGYtQnmQvnlkwYIfx2guUt7MVkMqs8PEN6vfrV\r\nNJtqMvtjt8JnyEQ1NwGjFrMWm4hS3020xCeamK8RTkZd1qk6kFJfR7WBIYTR\r\n0zucPOpfySbXUy6fxCJk6zrRE/jCntg1mPc=\r\n=7DiG\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://unpkg.com/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"968a78ae2adf0f1620c9ec155cb6d5a20dfaf4fc","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.0-qa.2_1659722521443_0.48855663941933236","host":"s3://npm-registry-packages"}},"1.9.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.0-qa.3","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"6cdbebb19a1f626e2ce592c65f34a811fa34f33b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.0-qa.3.tgz","fileCount":14,"integrity":"sha512-9dXaB4FbfsjeUd9kAvDBaiUK4jw15Mx4qVw7z90aRG5jVb7JH/niaGZoSm1vo0qC4zezAUrZnCf0yvsCxihOLQ==","signatures":[{"sig":"MEUCIQDKZgKwK4G5FWzV5KqFYuJC8dQGoLr7+tgC0nknjQ5qIgIgZVahkKGyf0RPqo7nAZY+b3RjW8bWGcOsmG9By/JkM1c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":505205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8UhrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMtw/9Gh5GAtDwu+4tT3yw1KGzYnvaLL8G/619J/FqscARNkClo0gN\r\nNw6uJeiXNBY9dcIJ7LglnM10Eqmw9JQc3AcY9N1+O1sVZQT9wz0r+HGlzGF2\r\ncAEXMp8wiPpDspFmxiNPaoG02wsIxImtZrHhLSBXalxvt0nz/LuMDRUwetF2\r\n/ZyhArfGQ3oVwLantEw6Hpid8d1POYDFs1plJpdzuHMl5PPK/EKeSjanGi0s\r\nAfAOH2oTcVHDkftaoI6qLTAVhSNQ6SXXuj19VYgZ7LA9aHoiPrfWQTelms8A\r\nkphjtQynNjIgY7GhYtOK/WicUtW+X2CPmyTnuwU2+pL2SFNHinAn1Uqa7KfY\r\n/XA7NhfNICKEo8ws89dQker+E/GowKV4mw7oFtpMqrc1W7mxRHf+Upy1Ie9d\r\n+BZfV6KoB/DiV04tM7el+Prl7Tgp4xx2AINYKotlnAXHkN+7m9U+dydeCObr\r\n4H9gpj3sMYwvxDu8V/PNoPUCrkQXUcCizOBSCO6T6v5r3v5DwbEVfJDHni8s\r\nbheGTRLUzZrAd6XFAWxrQDV0wQR1mC7yByOi5Kmdb2u7CcOlMEbHLKtF/TOI\r\nTkg/yarwfsQbf4ae3WI2xYrAUnW/pFYFM9qo1X4oTIz7zDsir4YM7NlwvCL9\r\n/YPu5lXwjwIToeaOW75eVu/7kCvlq84896Q=\r\n=3Egl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://unpkg.com/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f1daf576e08e767f3e87a546a43ff3535e1729f0","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.0-qa.3_1659979883296_0.30089743627079035","host":"s3://npm-registry-packages"}},"1.9.0-qa.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.0-qa.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.0-qa.4","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"14254e15007a349222577d2d544d0520ac6145d6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.0-qa.4.tgz","fileCount":14,"integrity":"sha512-1gRdJCJ2H3MVU7fVONimVVVg5UQJZeX7DFJgyeIbQOL9hN3MN9pdC0HnLhQBu8HHT5W547spQUwhB1BMR1q8uA==","signatures":[{"sig":"MEUCIF8Lwx05fF+PYqgZh22b0iJcY8nbLahtzqBWJUsklET4AiEAmLhuV3udo7H511PrR16R5rkOVKwHcHd1teaSy0IHIzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":506382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8o12ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsAw/9FQahaybtIS+iqmQ/4CtpP2JxjjWtMvq/pnGdpa+RCIRc1ci9\r\nsONoslv8z2FHXSCwpedlubnjtQ1zXgedZPMmM+SaM5geu18F3h1hQG5yg/mA\r\nwmnbQL4RMdrle/GOpdAFFZeU/5NrcduYT1lbLw8hB7zAiKCLlYSqYxtZucEZ\r\nI1+VUx3rq+Si+NhCTwqwXEAIuzc280QwoCrOgbs6QuSW+2z492vRcyVe2nRy\r\nldqbFiu7vfm+FIJfsQ4Be1F6sDIxzItiXnXy+s9JkMtwzDKjMgm/eENA3I9H\r\n9qpc7XbNfgste3Ad1ZVdrHQaKalWzlHrybXXwwaZjoBbyOk3rDJnXR819A+5\r\nWjlkPHXgSFScHN3KDkcBxTZ8EU6kJcX075YKh21z3Yasb+mxePKFI9SToVWe\r\nytzquTjYJxpX3dboZ1abX9lTpVCbdMF0rDxTes5fy4V99K9HWaeTJVNr6yyS\r\nUIU/QG3QFS/po1pDZiB3TePkCCX+Pi4epPy/QgRWx+CrSifbbdNbc1ST1/Yt\r\nAVjx/xv2OXZoK57g0wcB73AJCvE0YMHnyyBYYHZ1AKjLMH+r0Nke32Irb8Tj\r\niv6BPjNGLVHZtu1laX7jx0uXvR/B3Mrpa6BVaFTkBEdEU224oYjRA0ddqxtw\r\nF84VxOY8sw/5hfnsx/RKKwigIySAOkMPf9I=\r\n=q2hn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://unpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://unpkg.com/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"53ca451fcf49d7e3d618d65443aece74181ce441","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.0-qa.4_1660063093786_0.5093421350585006","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"8f22497a04c1e0e16334c0c8cff2f0bb5aee40e5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.0.tgz","fileCount":14,"integrity":"sha512-Vw+PBCMPl/PwYQqYv1V3zi4SYXiSRHDitKdZpFnLGnCePvftBeQ5lrqr6msP+0Y7KmJaOo9qZV6rBS4+ikQblA==","signatures":[{"sig":"MEYCIQCJddxHFHzbhhRTqDNhse52+4rF5RndDSEqcMp5ebiljgIhAIP/MKghA5eaNfOYoiOy9ClLxUqheUtTL6MtJdi6gL8X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":506901,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi84sQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9Hg//VGtDl5njlYAQV81BBABqYCin0Z5n1KPFpfyE0d3/qXbpg3dP\r\nwIbGYx2TAaENmvxd006/RR1bMCvUZ855As+P2Vn2wSYImV/aPdLCUzqmPaQ3\r\n0Un6bo7dbm28R3Sf5HLamgpbWCjf3hk2E5iIZ+gqm8T7+Gie8UYk1ynqDmBK\r\nc/LyTkR8eQf73bj/S9ALBtxpO01/qucD+mkqfsGA8fiIkaZeEKNcU+RfSWlX\r\n7KsWDNPO0t0nVoOYWe1k4XXRIhfIHRzyoICVVMrGJljKlPbWIxqOfn2ie+eY\r\n/Ed65loFSgCCu2skQbxfqYZoaSQeoo6YS/giUxaWckRzZq9tC79dwuVIPKeV\r\nD96ck1K+dWxk8UrYVeSrGJJsxKnSLdPm/59gWV+DyvqemRakV/eWZQj0O+7q\r\nN0yuizbl89wOvi5+BNkoNby07nono3QDnAqe9o9NunRfFK5qtyzsrebUfxve\r\nGLFS1j6ebaXZeEXS6uIMZ5RwGGykVEAdZH3DVFmj5RYjPQZ+rs4rAxIJpMc9\r\nEfyoEzIjvpNnOrO+PAHfRu1Q+KVTqUujYZlvl00eQzbWdedriQc5Ak5jdc/b\r\nhAaY8CZFRMUEY5Rh5o59SLImSYpv1Z2+Z7PVCBm+iNmo//6jI+fbZuh9/v0C\r\naaLFjYanPvz0vKzD82BTcf3qdrDTtcZ5nmU=\r\n=WKfE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"815ccf2208c91697cedde86d8be9f576e8795292","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.0_1660128016619_0.922978265701865","host":"s3://npm-registry-packages"}},"1.9.1-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"a8b383fcfd2f1c9aace905267a2f0825cd0aa705","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1-qa.0.tgz","fileCount":14,"integrity":"sha512-U5SloXdJBqmLxCRClBifHae8nEg5+TjM9cFbgHxSCwv0YcwfSmHWckfFyMPinKgVjjMeuvQJ/WamKNPGDAhIjQ==","signatures":[{"sig":"MEYCIQCP/k4S/4TaAuKKmxps1eP4fkj/5sgWeOi817L5kIBqcAIhAO4WGKQrehHxD30wFpq5MP0W9wJAZOAeQE1JqQBjy/Nq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":507434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9O4QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNvg/8DXEYCa9SiOAode/FBvMvAjtR8syT74VXPn4k9MUn29CSSGuh\r\n3Nq4lJzootcWnPjr/j3aGOf5qpHy/BfDHtV6VGjfQFFCek0pywsnClWkrtHn\r\ni52cM9tonpYrAw35FjAPiswYnQc/Fj9Im8H0a36XiS1l0NEtIVw3iLzMo60E\r\nCoY0sKML5zfjambtuL3V5IStj47k2HxclyuVmYHK2yFU8Z88GiWHDcsvPGIV\r\nKhUr1DCeMMDYmLZ6jLLvKpzG5HoZ8iYsR/u6HL8lQddNdhSfEOfDNAkGzQcs\r\ntsK0XGOuc0QDykxect7IAV5vFUY9uWHO95RwgAMKdNIRhooF34kCXtZ4J5iC\r\npSXrRMoHuO23uruUx/IpYW8s+NgrdCa37Gg/+IfiisaGk4WPM84qdsfvhguX\r\nLTNyXeB7kp9nfQWnBRsMZdvMeY9+l22rTCPGisod44YhvFn5TEkrX8iOEdNU\r\n+Pc9n/d5eixzkAm5kAfWtzGU0FnUm5eUU2lnFVymJ/t+mJpLbPDIuSeHQAyo\r\n6ZwRfWTsjQB+zM3LIIFMOPYXC6fzPa55AIFaHv5xkwHCGH/OXxQxb/8vf5tJ\r\nU+mzm2qnjSlWWNYZ/Jpmk9R2PJh/qjnbZm2G9ke8yBF7EZghN+hdDgESuqar\r\n1oBV6k4GYKzeUUsBGFCh20vhPv28l1d/q3E=\r\n=9iNB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"791434376d4e6cda2807273be8f78b0221dbec7a","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1-qa.0_1660218895653_0.5651014405719463","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"88d42c6f5ea728f75c9b47ac218586f450470690","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1.tgz","fileCount":14,"integrity":"sha512-Uc1YORTH09Uocdbf9sYuKKkwTNu8P1FxcRRsXjcYwbSMMVIHp8O5YAtAK4epYFBoKLLIuDx4twt2STVmp16ZMw==","signatures":[{"sig":"MEQCIErrPOs66FkJ+Dew0smBwTdV3S024B4/Rp5570p5JnMIAiAc7BMxZQb2k1DEHHBWefsPVvBZy0+J8dny0ugpynl7xg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":507305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9QEAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqBLg/9GWzFddjcAPeidzEXfGiIIPc0KicJtXz1KjV/4KZAaDh24PEL\r\nmJNoC94sBKANWJy1+9pIHcoPOHGSiR9T68D1rtJTjXIYk6ZUUEblYbj4ezVW\r\n4Yg1b5qBFNiIVIDc+qORZCGHMQzEovWQCZOcjDIliFn2Nr7+L3w2KPa0qoN1\r\n5ee7pV4WRoF6ZwiAyA4leMfGPnYupDz9wPy/YwbWcQR4rp2/7o89vq91kWwG\r\nAQEJ3lKuzcUpGlWqm3G4QzHHxnNFNxk1qeDiK3CwaiMFuDxer2zK4eDxuCd4\r\npVY4SHvQkt2LRNdpFaOeELkldyDmvaoL20sV9PJ1EJM3EhS2QB7uyIZ8dlMH\r\nUnX6pOastJiceLvoMPH778wdhUNhxJ4xbLiI25IZPmymizAfCFdklr7b8fSF\r\nKlUyw48Re+KWY1oYvNVPzlbPOei0X0Pb2BlCHGHNvyAEZF7Ow1tGVdz1YyfW\r\nmT5HoG5MKD2tTJLeT1OxJY1ehfK5d0DYzXi7szIXz0NZoiYcBpZeYlEBhCV7\r\nBm+qMbeIpm+UaZSKoIs7i0EBpqX1cGwf+VI5rsSahmTnTXFKfVSfn1Zr0SPl\r\nGLOEQFA0gg0BHzZ5ggCB8ytvcR7N1ligDkEFHssfKPhT2PUFmIRtcuMvaT1/\r\n5zU1lixvkoCszLpOA906XDYTTgpgUC+sUK4=\r\n=Fmvf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"2f296e112845290e6955e2ab561deafeee9c56c8","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1_1660223744366_0.6089811452236091","host":"s3://npm-registry-packages"}},"1.9.1-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"772e6867bd73ea388c01fdea0da530a22876c186","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1-qa.1.tgz","fileCount":14,"integrity":"sha512-LpYoL6dPhIOAh/kakSdi/UGPgtoDw6Ip3gSmZ+iyYN4CFvwjQZZ3iKw38j/1/cnix01a0l7yv2S4WuOekMyYhQ==","signatures":[{"sig":"MEUCIH0+Ex3Ty/kIuJ58piPgECwsmjvVzywd3D9OhxwEK4FWAiEAjK+jWyNIkdVzxh92blUBsl/hyJgW9uKLxzGO+mH222Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":507156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9R8UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmonqg/+J6rN8t/NDNvmVcxS+LefdDNbVKLJPFr4U9pF5Wm3B2yW5x4+\r\nL647sR+vkyLCM7DGszmqYlEI+qII90rtJml/pNXapUP2og+3evSmkN4Y0+Y5\r\nh00r72z3YMdSGpXvJouZKuhq10MnAMePMUhX0Ac421nD383wYrk6JwVx60iF\r\nmwHlqrUqK5RiOzbXhZP+HJw3mzhIT4lXyoYMKx92pVE+IZ9MSzjsnCESwH+r\r\n3eJD5ri6qr2ZXHWwdV2BeIraZWL1kUWpv+NVhkm2e8xCYh0mdi/a3Da+28vx\r\nS5PBtOy2+oj0sPLVHQXGqYJVYMYVqjoXxJGmi7U9/AQtqqYZLHgXR6sNiMPh\r\ngyVlDFc5SMb1c1pTwgTob1bpYStt+JLL6eWm/BbXdgY1TMi9StOgRgo5Nt3A\r\nY7U5uVXj8d+sA5uSO7hI3AagHp6y6wkoC1dLNTYnZZuEI6m1/b6UXlRonWXu\r\nJ3Lt3X+mDvrqZOEdw9FkuJItzLFTHbVXQzeCxgfxmcWxrnp80g72wFqlFks+\r\n/qf+97VpI5yMsyT2Y1mLPTzIgTLwsaeqM5mfonkJPP7CqZk8K5LDiBRTWxQg\r\nyIdTahZ9n/WxqieV/9YrWuEJakOu7cNSK4CsXQEySQMd9w8c4UesaQkgHPnH\r\nK3c/YtBBxHxZxnJdfNwh2Z8r2PXXIwg1goU=\r\n=MZzD\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"3c9952f8d745c2676a8689c800e40eb0c5c04f2b","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1-qa.1_1660231444170_0.26350697836406733","host":"s3://npm-registry-packages"}},"1.9.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.2","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"38b79d46f52b824d2741b5acdfec8c34c2f3063c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.2.tgz","fileCount":14,"integrity":"sha512-QBfQyMogluK1wsnLu+Pdq+2tfnxCGrqVqAPDLZud3+HWoPVHm8z5LmfJxi9lnsCIv3/gGhHBKhWLMGLz4SrqAg==","signatures":[{"sig":"MEYCIQDexIDAcO8+JEv57DqVf9WoiFyBGJ2iVtcLaAzDYdCFZAIhAJwnlf2ol3eIjrCZqw4QQMG+BchcrAaNFKywCIHcqJ5y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":507245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9SdRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWZw/7BHpShon+6WLh6t2w/u0xFkt935c6zbw+WqSOPDVv5gMjCIL6\r\nOtjcSp1TInYAMCBY/jTGHmwYvsyN3UHJIDR6GSoGRov90pnZDts/2+BRQJPx\r\nqcLLT028zhfjlaI/3pq6y7QWTajUOZC4Du/KfR1CPc43kMCFm/wT8q0gphwx\r\nx4alD9fVTrb7S4mrZGtJ0la1lIuNVilXomaKIY1uTMXFscTglBm9HDp3zivi\r\nV7tfvHW34Qz8A/TfgUctbQaSbnk9qq1YWD+l+83xMcP6WsV9wnglo3TRFz1k\r\nPbEdIvz0/Ww6iAdW7/oQF2tIprW+p4R160mNHJraSBwArzF0djz+bZ9ad1bC\r\n5qR/tgOWr0z+weWhXgCJskMCyojS2pT8tEDOE6KOqmyWbQalI+MhrrJrB7tz\r\nnh0ST0SmAzSVdTA7Oud2BxlvYLM6tFVMozuvVUvt8/qzGfgrLztOMJ114HW+\r\ntPw9YmNwrQ73Gkut5Yx1wlQcyj5Tg1UYvaphmW+VNEafAYJAhNv1vEq8HCBX\r\nQ+F2TjkreyJsecmirmnJ4JdpyX9bNCe4F11xLDEFHKe7Xc5qvbH9+ybMCfvq\r\nV9LUdThLIXmaGDciy/f923vaD88G7rQLwrgUbU66EQ4xifh9E9AExi5yCIdj\r\niOURZ1XLJlc6D7sAzQXY976q9W3TkFVS+ic=\r\n=YBlQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"293943e0852351d1c76a27018412cb0218910386","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.2_1660233553041_0.03885743168465994","host":"s3://npm-registry-packages"}},"1.9.1-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1-qa.3","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"b42ec5151bee5ccb120c621a339b19814482a1fa","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1-qa.3.tgz","fileCount":14,"integrity":"sha512-z6PngBMMWrKo4tthG+ea5eLuMq4hrZD5JVaDSzqK4CF3xWnZzjNpr0hyR23B6WihqIhuU0QlyWkALMARE7flMQ==","signatures":[{"sig":"MEQCIHDv3zKTtXYoiyI4i8MF7Nh7iqBvpge7mt6WpAEU6Ab5AiBb2D9I+qlvydBZBOlvMLZsi6UoNB5FzdsYttFl+5TEdQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":509750,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9h5EACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6/w/9FSoROq8OybsHDLBb1NM4iPWgrvbXhzc24dM+/EM7cj1Uh+Zt\r\nbr+PqDj4CgzOkN0okBSKs6yWQ26/kRcAhnzdVrldxoXCNnotPeqsXeARSoZi\r\nP3XzDI8V24unnYUkbnJsgIpqLYoFvgfh+BinKI5Xk3F3c941nn+pBC+GuPGs\r\nY3MAfPN0jF6BoKk+L6rtp9XgkfQrlj4LKbcYEQnXUZTUnZBRpfxdtVnqRCaW\r\nJ0HrajUFc8qVT9H6swTWGjQzF/WdptO6tWMKaw3RpS5HJDGq4ttQryWU8VB8\r\nv/5WsnwfAps/PH4D0zu4LkJqJT9guwXgacRHBaw66Z2iDQ1bD7FwZOswYvFY\r\nmOyFHFFZnIguAMfjeER1GTony0quXggcd6pJbq2mGpo+YcqtCeHmHEWWMEQQ\r\nXYjeeuzIrB7uKoSa/fEGkYsck75UyFRC/mbZtxwsOFkPbWrGgaSJI6o15mLQ\r\nmYugf296k4IjRLyW00eutgf9trEPX7Lg3TnMXED74a+xTMrDrGEsSkSxo5SN\r\nZDcPzqYN8XX1i35JEBr3h8HMAUXB1YiJTnhXQe1wpVTKwIgBIs7BFP2g7Hbs\r\n/pyQcA+Hp3NXKGhwk6RwEUeErMaQsu+vEHpLR8FwgRhwLzEQGmozAvPztbeO\r\nsE1lFEicf34Vdc/Z/uG8OZ8PfNYMhkRLZcY=\r\n=oWG0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"7b7721a453c31de301d3b5879fffb21953967c51","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1-qa.3_1660296771771_0.7239971643308627","host":"s3://npm-registry-packages"}},"1.9.1-qa.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1-qa.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1-qa.4","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"68f5e8046cfb775542e9e12cb046326632365bfe","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1-qa.4.tgz","fileCount":14,"integrity":"sha512-t29y/1CFhtSZgsXutMtIutIzLV+zUA/Sudwz3IFbh6hhdjCmreYX/38/1Oer1cyu2D+jGvk/fLkI4e31NX+W1g==","signatures":[{"sig":"MEQCIBFOFl9XALK3kLCe6TUIGtZNS3VJYmTePinXUcr3+nvkAiB3/g7//vOZd8XLqDb0bH1WrUgY49smh0MlMfmUZ6E69Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":509869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9iryACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7+BAAjtbZmCXgQyhzxKyW+uY11ftmRTr2nQwLZ/RiiuAZNX87VcvO\r\nUIZlqF8uRTtkGkd7JUZpEiO2reO9funJyJXLTo6zx7cAMBqxenKOfoIsw21t\r\njw6gEUAGGOvks0RyWzw0zCYAoEcohrk981FAvoERuc0HizydHlejNbKpgn74\r\nvqlNT0yLBe5FX0QGAxNY5L18+rUcPoNns/+4lz9nvjEyQP9AX5TH5jKIENa4\r\nJUMBsg5QXMN0TSc+RGSMB9+/KVsdSZRxcHC7Da0VRMHagL0gLNK5gagCf6/Y\r\nK7m85TJSNIv99+8VeMqxoaEpScbnuooZEyqKNm+0QIROXHSWEhP4Ni+gCJ2F\r\n34mNMlBcA6Fe9mCFI4HrGAOvtRA8hkC7zWME5+oo/O2pwf89i6ocw5GwswRN\r\nLLPtbgqBfjORaie4vOX6RJUW4h0PLM1cOQbGQVwFcFy6LfFN+U31aJkmw8PD\r\nqiHTLFc0tSSc/NpaWVJsDaXRliiO1IkbaU3NvGoKdvTfEcMjejes8ygCa5o3\r\nH7d+1gEoONfPT1DaAlbsu3pxOm8P1wjRz6e8DNj4De36ghVRwWxkQJWx5p5q\r\nzaDHAKuJI4eqZn5Xm3mMmpOIUdCs9sIHgxZoFsKotrH9UOnV5sVvJkdG2uYJ\r\n1hzKQDdf88BepafFnK2QV1mq6dD7AmxM3yQ=\r\n=ufs+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"7f9d5e198bde7325150f1e398b71045b24703b6d","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1-qa.4_1660300018269_0.7789562946019106","host":"s3://npm-registry-packages"}},"1.9.1-qa.5":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1-qa.5","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1-qa.5","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"ba255ea519eaedd1b0752a77e70529f2f299171e","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1-qa.5.tgz","fileCount":14,"integrity":"sha512-Rd8uwD8/C5tgVETzwF6VwYU+tb3oN859RdPs7b1t4ro/PrXjmwixpXPlRAFlcGObk5krJrpbrVjH6TKgSOBoVQ==","signatures":[{"sig":"MEUCIE6/v8H6j+8Dgd6thmZJKSFx9b5e4p8JV4lpFpcdVCHHAiEA2gndqFneO+16k+UUqPqdxntI0vEZKq6JB2bAWwUaVBA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9i7GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2dw/+P8vAynah9D5T3yXODQEpYKtody/Sc4rq9rPVj0i54i2SXWu3\r\nu350rfh2fwzlRQrvf8NBHgnI8bGZFBEi2gO0/Hp6+7iy3qZPS4r0RFYK9Wg4\r\nMFW2dbaFcOy2MPIFXrMkk1T3UNUCKyllqfhYdbYIJHclIoBNEwqAozCpotkX\r\nfiqPDv1SbA1/jWcynG3OFXIiqltk2Ui/V8A0rlCIA1BpO/LH5ofBhQusaaiY\r\nfhbIKhQ+E/6LxU1DgKz3V/WBWaAW0IIWFULmqQep8tchi05itInkMNOs13Mz\r\nS/Irb1nM7ovBaCpYR2Cs6rFUk1l4IhGQhc1NA9ZtewPZNGDFDjzH4M2bz3uB\r\nulEcgDxQqQmwqP312FRYHKO0ZcfVLHILq6gQmQu9ecY9Hcfe2l5ZIvIOnVOb\r\npvgTdGePFFULT3owp/azh388529fKX7L38V0QRrIBjwNMvO5H9J9sLX9bCEe\r\npH4JwH/2js3C4tO7z1+mbp0dJLdOsoXvHm9BrVhia0qns0m2v3MvkDDAxrds\r\n4CvA28w4yWOhvnNJAD/Cm0+ZDCWaVuCAZut9O8JnlC6yqU+QbEkfc/TUv/3d\r\ndh2l8SoFEZtZCZZQMPsdk6rWnZ9PjD6pJAuKmcNOJ4F82RFY0zZB9VAk37Dx\r\nG7Yj+R/lM6shQXm6id0qIhqm9sBJcVHTSWg=\r\n=cj1V\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"9eee8e7defed756dee48ec8627d0eb869492eaaf","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1-qa.5_1660300998608_0.4240075076982033","host":"s3://npm-registry-packages"}},"1.9.1-qa.6":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.1-qa.6","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.1-qa.6","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"26716ac1f7dc778e75f36d6b0cf47b6230bbea8a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.1-qa.6.tgz","fileCount":14,"integrity":"sha512-dXkAZf2vSGenp4rYbQTAop75rlakdktbdYa7lfw33Z/HsJKg1yeWQXTDUh5IGPknQjWsov+1tWbkrgvDjk5N9A==","signatures":[{"sig":"MEYCIQC89ysKR9y0LAxAGDT10LNZrP1QbVzq7GzOij7KQNWuhAIhAMP7KwhibDce+ZehflgBIuT+CRQBoSEyYNn7iNyjyW0q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9jY/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrq9A/+IKqXZwlaBrSsXaCxf8rIjUV3efRqQwzttcANqE/dP3i95mZl\r\nGu9lB4y0E9snMW9PnQrzrR2OQEonpYP8LEq/PEF2CQ2JUAR4BlV7s0KnxQZF\r\ne+izbfFwUWLaWmnCimNbJ8cZl4I2jKUXKKRXWwOiPc0CMFPFQTwmjnobS6vs\r\nQvPMGPMgWW3CbCvcIEZ6VTnRZRr2qksSiTk4NCvm5VpPh3GVbwc4pXMccMM+\r\nKiUqjbsh0OYlR7nZd1D8oqZMQ1dyI85VpU7BJa0po0Kd/phS3zBZAWS0bywF\r\no0pC6lXf/yAuSVJ6dK25vEQvYied1ifobCsLblu+mCxdd34zjorOaAf6OQSn\r\nKBfg49auOHtMnVOsU/KzTBgxfE+MTW5m8znHwT7dyoNBz34WtPGwhIacbRsa\r\nlUgEVPXAgnzHP1N5gSboY5+PhjTgmL+nW5/azwx3vRoMRw0z6n6KKPL/An3b\r\nA7OguoFI0NsXDMQ9NIDydVXMXMNOFQ1uAH+hMRTmRgcf+16FZ2mP4zk3mcoP\r\ncQDM3XTiLoTHurHCKbjfD1845FXBqjXgThrqi2X4eSLU3twNnSRWGry51k2F\r\nbM17ciYL1CYH3wY8ZJNlsjbQJVxbm2PNNshOz0AcxP9QtSovbTOD1z96Bi8b\r\nkmLDD4WM3CzTQC6Uqxf6iAkDWZHQTRjt3Lk=\r\n=9ybJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"77d60a29d8e024335f35b3da26cce5c8eb13303d","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.1-qa.6_1660302911330_0.7512928822171459","host":"s3://npm-registry-packages"}},"1.9.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.3","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"007f20475a8b605779331ac1819d705239bc481c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.3.tgz","fileCount":14,"integrity":"sha512-s7D31z83RaP13ZmyQZ0U8tT0Zg5br8H8agn/GZYypiMj5csPhcZ/VNDnRvEtCnrnI0tAWa+5D4zJ1020xrx13g==","signatures":[{"sig":"MEUCIGoTcdojIcy+6klQkC91UZS4LsGLdJ4pIk6uOslYvEzMAiEAs2XwGsJ2ElboRRRTLPgbL4MTy++U1FiMSaCM8G7HDko=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511512,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9kdwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpETw//bCkuwf/MFt2jGPtdkNxB8Cy2dKDZScql47vLwB4sTNJsx8qr\r\nzzdZX7YMq+EsAibRMG6p7UEwkrQLF5Uh+sze67oq+/KGpQ7PPRHBQRJL1eqc\r\nJLexlqXo1KRwrU04J4B4iaTNyZ44zTxivmIx5EIazwBhNktz3H1nZWijcQNM\r\nXROhpUzj2lV2vCZk81CXNjIol71VfjsiHc2PpEx0vvr/+z1x9xk1bX8gkFiJ\r\nmeqSq6Gy9R4V1rwLICnH8UU6Mig1re4E8g/dGCi+bw+yOod0tGPCu7xACkLy\r\nFo6JuazvBUwitqjqUqUHSUWSvYtQHnKyvjoOOuo3jOZMt82bP/uqHcvyjU3W\r\nsgxO8jT+DjmQPTAUlZwup+nTTBbPXbheI35obOoDR8MZpDdRhaAwcIiGdkIS\r\n9gHpehZC6ocMoPaFvLzSQIshKQVrywXoFAC6EAkkqhy/3UuJBgj9Vze7S7Y0\r\nQ8ArbXOSB3sCLNi0Ocl35Or1okzn9cfRUF4COvocSNZ6Ye9tz9J9ISH3bbg2\r\n/dhDcSOuiTlAmmXmQAwSMVpbV45aYdD3Ep6ChNTUD1nBZjkei6UFObct0rr1\r\nalquEOt9u0Dl+cZCT3LlDjzScs5rQh9Ia+9iHRf/DOp/lP5eC011kJ4V9EZz\r\nWq1m2YNZc9ZstOdpZkr5m2VP+JtDYa15tvM=\r\n=a9Nb\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"821135933476496708b994182acfaafb573fc601","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.3_1660307312138_0.603533155807529","host":"s3://npm-registry-packages"}},"1.9.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.9.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.9.4","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"12f92fb4e910ad8e3e333134957f8d9cccabef95","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.9.4.tgz","fileCount":14,"integrity":"sha512-k3eZTrZIkwfgwljc/nrYqOdnJMrYh2yQhonzLR6wN5enGkqrvy8bjict8fC/Kra18bh+5hKez80JMtpTxhM/Pg==","signatures":[{"sig":"MEUCIBYGfSM4A6L5WuQvbGXhcpzWdUY5lq+W4n3HS+DVza2AAiEA/nraqhGXLdoJ3mP7RQq5U5q7gLLmqzh/+2LVMQCmr/M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":511616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+jIqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdKA/+NaZ98LoMJ2BPtSuP1qiJdv+wxZe8cp9EH2bEzJuzm8rY9g20\r\ncWNlHTMdMlYoaobeoxbvYe8S6QroQmvHeek915Fau/eTh7gheeqbWi5v50B3\r\nw42PfQBBW96pEdwuI5guvdvEyQEnEzdZhrbklwdfeAITeUC82+MHJX/4SeZZ\r\nuta+tHrpIbR/6NmgvMmZcz4vXbYbjiCcnRPWWCKqpPq+mJ0s66P8CuqyjcjT\r\nSI0wYl5BvguHIJPrWs6zI36oNBY6czDK8NLZHivCG3Bn5bFGp0Ua3VN+fnhn\r\no8Ca2MyNOvhiFnot2MK+A4zkCVLML6VE4pi3a+OrV61Wf6aZvX6DXhn4jdXM\r\n0/CSwRlYC80TN59TGp5wDb4Ysoma4FKRX80OYkEDLh9LUZfLwq1Ps/JlvQIo\r\nvMN1TAHJNix2pFvqfMCDekVklSCKd9ZWTWUc46ysa+5kWgOaah29YsHVNIma\r\nRvxad3VYWMclsB1Pl6wqtcB5LJjQXmVx1/zDWOLmOce7vhXR2owwQa4x161s\r\nA2+whTdyOPI3i57C0atltCb8wymPz+i+2hFRs0zzIGLt/bWyhiaZry8qluGo\r\nTowy3Dg0Wn6hbZvd8f2jr42zUWajYZilV8yUbqp0V9SxVq82jBJgEeDwlZB5\r\nTQ9cXnkF2TXqPBiznu5/lXjVmET+oVfJZqg=\r\n=RiZz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"8f83f11c3a29e48adddea33ba1f971bececbcd3c","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"keep_it_simple","email":"rpodlinov@gmail.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.3.1","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"16.14.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.9.4_1660564010180_0.027727568374980693","host":"s3://npm-registry-packages"}},"1.10.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.10.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.10.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"9dd7b550ada8e5a55a573afefc0c124c8de6c12a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.10.0.tgz","fileCount":14,"integrity":"sha512-SQqm6zZOMOyis6lLaLDs9UBULPfv8SmxA1y/4bFBH8TqOpnRpyhlfs6KRJbLGN6V0GGx/UP1kRciT/qX+61F+w==","signatures":[{"sig":"MEUCIQCxb2riOXwrrhiSpxXGO5QQaUfd3x/h89iWxOxBALnjpAIgDz0YZwMmIqOov9Ykili2cjbqPvdO0o4/evNYuPFA3ww=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":512073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+24ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTnQ//flGbVl2PDvB9qL+rjZP33i9upaPCR6XuS9eRelKz8L9HbG7U\r\nhbUAM6INCzRve8iEMbt5SQmErkseDM5pPRtCnklawQCYgxOMbSUkFQCaA7mA\r\n+HhFiUNZHiWidQjULem8n1BToH0YPAv0WGQltI+FLmJMzZ2fQ9ZL8eXuQN4o\r\nu6QZR9nJ6c9WAcuzrTdk0yhmIsKDgOXyGmZqEB7tyLlme7Sd8ohxSdCRl+gc\r\nASEhrbLfVnjEnI6+2FSaB+wsu4Ox/OLGV3N9TWkosfP6Olr7ace09dQZS0kB\r\ns994RaXjM/2O17+ZRZxURkXuckBscXbxkK+qTn9Xe0plG61NQkNuwf8EDSA2\r\nVqQoblUfJ9uHIeV54Ycudck9ZhW2PTeyKKil1C16g9HAtHCZf7qqFlJec/Ah\r\nB4Un5TERFHZd05mE0X80o9lg2rwUxiYlPK2koRfkgI9gubIuaWpVxwiGdIGx\r\nHgpqwHlMjxvGwsxp/z8g0ondeA3VJv+uuHTBki+8F/cCdpzqs1K8BE9mf64Z\r\nfiVr9fKKW6Dl7nYNIh0TqM7IULiHovShoitf/QuAMftNBDP9SZ5I7OlHkSwm\r\nTHt71Sy+y+UG8/CAOlBdruNtf/TAVybtR5KfIc7fyhsgfS1w7pz+g/aT5yu4\r\nvra1MDj1c9zV3B+CNFojiKT9G/9+a0nNhHA=\r\n=YUYY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"a4766e3a61f25fa034aa6bfdb80ea054f693089b","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.10.0_1660644889168_0.46140061779269304","host":"s3://npm-registry-packages"}},"1.10.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.10.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.10.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"ce6359d5abe599eaf4d5bf984d51318723427f12","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.10.0-qa.0.tgz","fileCount":14,"integrity":"sha512-zPPvjHXZbAwuEN0M/2NvIx/hY7SgJmnpp5V9VSIquQ1c7HSnSgVrmRBO3ic7iuWfJr45WywyPU2+PSaYyG2nkg==","signatures":[{"sig":"MEUCIAy/NQsS2q6352RwYWlikvMJAx5n8KXhQX1Dq3+1DnRwAiEAqUYb1xJ9eITMVoX9OWc6466ZOS3YozNGt8wUwGyiHUc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":512161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/mEbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpWkhAAom2PLwGJzbYe1aRv6tJBo8vZG2bKOmbxPXfqr3a7Y5HvcdGn\r\nLTWaRAUR4K4dmPHm2s3CrcZyI2Rs7sTipyJaiAWaPQ4SQeUTgogJuZ758zrZ\r\ndNSFOBzOuVDOl8K+soABgM6njloC9VlPYA6/pNFU8ybvDx6zG03FTPgDodu1\r\nvQ/+shoP7R0VLK9vkKfa8tnWihvwn133lpH5CF8YYGcqmEK5TyuiLhrci9Yd\r\nMbTifZaJu5wXhneNhu70ItWO48WM9IK+lvPQuoaLEipAPO/FlfCrwP8rzcFg\r\njYHq1sDAI/GOGZehv7+t7KHpj0PEZgg+1diOmh2cO/iWVCTE/N2HrhDRaanU\r\n9zDgPYPAitFIMAni05M+smPNxOJTsT8mSGDemx87lX1ZGP7gHM6CR4aPkB88\r\n52UmZh2iA/n85MOHRUgpJPqnS/iDH5mTucxg9xQTl55JipCsD6AsdelnoaVd\r\n5xxWDdJ5wl1W15M3GyHicKWPEENX9U8is/tSKofGsan04Am1f9X+1NqvDxUI\r\nC/N6agxI3gHF4nfvFRZ+ubDRmyIE9cT856gW3J1pFMD+txu8Y+rA6eHahVSG\r\nnJhfF3DvHZOm6m4Bvb+AH95C0I8fDKTwG0GZed5M3hTkULKMjUjBm5TJL0WM\r\nEcf92WxmQTGYw+t7CxCLXQXvEGYzLU1FEpY=\r\n=8Vgd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"997d9fcb34bd0f1f3faac76c50e5543f608e0740","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.10.0-qa.0_1660838170703_0.04685899096389545","host":"s3://npm-registry-packages"}},"1.10.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.10.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.10.0-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"6cc0c1d34947ff446c77a6c2169511a138b0e2a4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.10.0-qa.1.tgz","fileCount":14,"integrity":"sha512-7bWInBbE42E/CLQr7NGEKV/5hJW4JjIgqvdasdw9lpQyq3V1b98L8Mza3DnZJdUFxIZ6vHOenE/1XCdbPeMDdw==","signatures":[{"sig":"MEUCIQCogur5o/k60/jImPoziPFSU4CcUAD7Ua28a1x0OgoFFgIgOktfhUeVy9M2k/TYID3p4QDb0Se6xO0sLzO1RaNvYSc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":512681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA1evACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4Gg//cwoqe3RAPLYIiS6gZJl9juL1Iu/dxVUyZ27yvaM6xhq3VllD\r\nFSFhoM08ZcRKydHm26PolxQxpJXm/3hEOsYOo0u1vupHO4/Q19g1HOapU9aZ\r\n7+/uBG9Kgo+QOFNoPgHEF51ylxHpNIgrJbngrUAc3SvDERNnLPh1OIarrPLK\r\nWDeR6551p/FVWBGCWI8quwA7ZMlBkyqEqqFSEowcM4/kzvokVqfvvL8F9W57\r\n8FIqPCw6C92RxiIlsvRraatBOxPaBlyuxIOli1QqQEDN43l+7bXm6nQepgJL\r\nky3I1NPJQT5vQyp0ObyS0LGUCw2i3unAOMTiumCjXBvzf+QUmV2gxktkbCTu\r\nCf6UZ8SRuoJyQGp6CZuYQJZPEbcCCjIFemncaDIt3zuWNkVmpYhzE1FEnlI6\r\nydYX9K66jKRb2Fc7kZeTzsLMPOKhO3nvc6qVOTp1weUOhjyB5Tmf0LTCjs6s\r\ntDZSJxd4rDa7u+D5S6mVTC8rY2zkKvLV7X/mhB+ipz+STonkFTFee2oD0uhk\r\nPlXsL7shabIEpvmYnf5I7veXehMdg4F4zp9wAcn3UNiZ5dOrohTlCrQ7xZsv\r\nXf75UgM5pUhXj8BgA4SYWGitp3zBpaXYtAd6GQJWqvJCGOuBV9WbOC0HMZVY\r\n+FbcWcbWWpWqd/Ykt1mxpMbqpVXno+AFy/8=\r\n=AbVb\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"bc65e4c045f125b84de1ccaefcf5eea5f70ea5ad","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.10.0-qa.1_1661163438675_0.3159267811438833","host":"s3://npm-registry-packages"}},"1.11.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.11.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.11.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"564cb7592a995a16185b04fb323b2ce7366357b6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.11.0.tgz","fileCount":14,"integrity":"sha512-c7fcjd60CfEF9MfQ8knCVN11XmL3+MMusk8hYzYF+YKFUOOtaOKeHdis38wYfpujijRDS5a2vWGyv+MOKAL6dw==","signatures":[{"sig":"MEYCIQDeofe9v8+gAqDffGY3sDnApWqTvj2IoqvntWX/aT3f/AIhANdNe/aHo9LEuiSBIVZw7YPAer4UckvHsoW5uMAoAXLD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":512968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBgQnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSUA//VhTTC2FdUnEXnenlqGrtnoyWSJBhpajApQpgAp8LmJ1XBUdw\r\nmIrdL6ZXaFRGZsKvpEnDSHovbtWkLnKduvqZf5WfTEJS8ig3uUyuJmKdKgyw\r\nypPcNLMv86eFyNIGIui2eo7EuL6w6Hn+ZS7CkrQEPnU8orUllRBFaWQnCusM\r\n2zItaXTh5bOyzemyHrCWqrLpKj8Yv7cXQ+3hF4lFHk/VSR0QjU/TtbNTt1gF\r\n9wMOW9qMvdbzotB8FuvxzIL+U4+wVTue+X+hyf/O239t+ElYyUeRodPOE6F/\r\nxiNIpkjpD4GdoZUbzhydap9G+1SMpzzYb9ZmZ6uCiwt+aPIaxhIKA4hj1K2E\r\n0uQizLLEcDZyP2ViKyBIOK0Qvroe5kjMBjDUaz2wYPw0VOKg0+pcrr/65A2V\r\nLpAVqeCwGFiZox8papk8/IdzrcyAhH39P5QHaeZJvI5yUc7j+TKhwdPXFPQC\r\nkjMRburGMGD47nrR+RQhf8NI6Dbx+sX45vf8ZtnR+UF2ubTfAAshgwIuY4py\r\nq1SYbY2mE71U/ATJciKtA3YSJvjx7i6MqwaBbQn4pOwW5Xvxcpce7fcN7pTN\r\nTn4BJkBRn1gYkOOEiExkngZTblThcJaJ8Sui2W8QRh/clhJ5Ec1oA2GZbhp9\r\nR0QuPKj0S3UVBr3Wg5WFbB6lXqZRnaaaLiE=\r\n=J52X\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"86f79c2310312291246dc255e2c6e9332501abad","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.11.0_1661338663253_0.6986420391622252","host":"s3://npm-registry-packages"}},"1.12.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"1e72397b888fb5734f3167fb5dc63918aded7525","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.0-qa.0.tgz","fileCount":14,"integrity":"sha512-H6tZ+u5KVXKV5mviiYzUU6dcKS3UV1phm9KLomSFysgNbr5dnqDjRP+DnQP39zx8J6BhWzKG+f/GMvlNRucy7Q==","signatures":[{"sig":"MEQCIFBTWJfYDknckDvJ67WDeH6MpfsNWsQORS3UfXejgeAUAiB+5asd+K2oB7mWltyeVc4O23ZJkipMrDzTn4lSGoaZBg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":518115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGkrHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+Iw//ZRWwbD55MfMoNeHFaTCHfMByCUvMVT+mVgRbdg540QQWv5o8\r\nbR/0z2xGE8yVpzmlTUDQdAKOZw8yYglzlQz6nrOLBUn09rRXR76KOvkE3ph+\r\nYwYHUD6IABGiQrlygbqUeJNXMAr7OvNi6vmrpGgy37zHDBpq0nP4UOlbazgc\r\nauEkeh1BiEyGiY94S8RAxhJKOGUdR+dgM404M/sK64iWJgFgMBSvC6CYxm+V\r\npU3NveF8o/ATBFlWZMpkzS62sxYcplafOWPFZAslNe9y+y6hmmoOUldDbMQW\r\nyMamlgRUdK7kiZXJma6/KUJXF3uVVT6WV09HjKYoRX1z5NKbJsliDS/hPIkG\r\nvMtvtIyEMpRR5MFmMHM75KBsUGxy6XG5j1SUgkR+99reFSI6arn7ELLY3GHe\r\nQuz5iqWX9q4nS06rCz6rRLKRathzb6FqaeGi35z0KJH4xiRGnrGDiN6ba5yc\r\nb3kRRgJw/VomU2+QTkbw5lAYZ/sUtek+ViVTyV/IX67TfZxg4lfXu5PicdgN\r\nU7rLdiUk3OtiFJ/XmpnAbZOxSeUFhq8umqKWoduTdJp+pS3U6szG/vvfRmFr\r\n4TId8pQneg5s5jNjC67Bv1wGpIXp3Yy7SpfN6LUnhsrLE3Cnsg1Ii9Sp8rQz\r\nIShfs/D+BUwC6aMP0OMzDjDcdFFnZABarTk=\r\n=nZoG\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"2933dea0017a0ab73243877208108ebd57245661","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.0-qa.0_1662667463207_0.6039263426714727","host":"s3://npm-registry-packages"}},"1.12.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.0-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"86fdb82c8d8bb699070cc21d5a304ed756126760","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.0-qa.1.tgz","fileCount":14,"integrity":"sha512-+h3Q40yHvZeztsaogG3/ywccQeMnJH1VSNqVav041AvAp1lyBRX1a3596mdSFRjc66oVMbEGeq9Uc5ObmMKpAw==","signatures":[{"sig":"MEUCIEjHaJPzgpeGu5Xxc8QqMR7JoPOxRDVP+w6/p85SGbatAiEAoB2q1CghwRqDmUaI5luqDiB03jUBIowS8g1tGrFn0zE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":518735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKHBJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzzA/+OU5hiMOodkl64SvhhCmXV1II3DeEIdQPeQlCZPRivFBmtkYu\r\nRtx4uxQZuJhLzSz+mUiL51E/y9NRl4Rcef4dl1N8eqcATfKFZrVEYJ1dpB8H\r\ncr4R+anmOA8k25eVzCdmidgsW1i7kPXBMGtme/M2DDyrmKLR+GC/uZkjaKBC\r\nWDT1v/SDyguZNbuUkXemW/9Q62dzMHGKqGSWmfzPxInd1Gv0JMHMVCUacVGg\r\ng4oX2KmcJ4pTpkq/FGHELCfPvjey7l2tiQ/luooH4Z6B/Gspe7W4EoBMv+D/\r\nlI5RxpVutC7L+1JrvjApw7F3WwHmg7PF/tVmHIX+yUa7uSk7MxZM8CVTO8wi\r\n/6zs+U9mRncw9YI/2dAtIFkxu6ufh35fh6I3daQldx1Q4O+iGwoLM+PUjCtn\r\n6Zxtdyw34xFGbq+5owolyjs8+/qvhQd9yWyeEMi/TVNTs0pydzotz3pjCYp/\r\nU4zuGySoUC3V4KQp62zRPWSd0qZ5jIkCzIQMbkcX8N3GECsvI0xKcaUX8EFx\r\n96/HaLz2tIKUs6Gwvc8JDEdV34dlefgFrTaDaTj9M4EPK06fI1OzSt67i12m\r\nTkbzamRZC2YfSwbcxSbzLOKSQD3a9aa8KBg4pKvS3mRcw+INTwTFkBGEiK8a\r\nR5p9rCG900MmcKhe5A07AOHjsIeI76ILRBE=\r\n=BNpC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"e21bcd9ea496558e7f8debe781bf4d55f214e652","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.0-qa.1_1663594569039_0.7130062773482084","host":"s3://npm-registry-packages"}},"1.12.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.0-qa.2","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"d84f4381459feb676fe31c359def002e9e2ebca5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.0-qa.2.tgz","fileCount":14,"integrity":"sha512-sLka51aGzdXvsI9kmxys7Su39MoVAuSuthLdeb02lzavGNJA0aYIhVbKdiINnZRJqx2wsfFoz5Af+eMadTFYIw==","signatures":[{"sig":"MEUCIQCl8KKmjhQvdbYmfI/3l4NK3sA8/Fiip9/EUBGIsYgGoAIgDZ7DYDgL48CWyl+hgrjmGdA7JvQtcV1xvbCs3ou0I8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":517069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKa6PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowMQ//U33g0YlRr/yUlhM3YQKRUbkG4yk3+j6r5+whctE5wvcTi752\r\nYEIK11TGLwuh67PdTOKpkTJt81A4rMrkhUEBzdC1WKPtkW3ydxXnEHI8YAUf\r\nCZdPZwJTKxPKqzlkG+7wzGkn44z57cGIMuf8nn+QGBQTlfy9v79RVtxo3oWK\r\nqmCxwu6XEP0AYzyS2xCAjal3Ak57KX8gRJdcc9FclHZoK/iIuCTSG1zAw5uf\r\n0Ur0R4BJR0runRKBzGvGyVI2y4PY+H2oq1vv3si6inKt4MxUu7zMxFRDRMOI\r\nNT/0WDIIWjkHaamVVP4j9lgCMYp1zgvlHYnfRXhnEvcSgnWZ34obIH1zjmyX\r\nbtHYtQQUHdh7sZNYb7cRMTVV8XIE+4xyvKgedbO46sdPFxwXAHXeMl0iHPd6\r\nK2Vmf1Ss9YlWlvO+qtoJYvCNxNSXJUaiV7veP8WqPRW8jHt9Phr5rVFGwa6f\r\nff+IAbA3CpMBc4wOX7FX89o+5ITz3Ozw0yXLijfOoiOnQXTXGp0lQycWzWNo\r\nrwdkHnPVlEuIp/SWfzg0JeDzlvlQAvzQh3tydYZ9oS5ignndWGbCI2pXhISO\r\nlBh28e3MgaMLkerikhTAqPvDlJxZUtZdU7EdbVFLih1Wmz/wlidGrstHZ4tk\r\n7xVDWx/Z4CpSkPLe84FxCWU/966JZyP5AcM=\r\n=g5r1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"7a46aad1229f3eba5f0a82541d9a21acad4588b2","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.0-qa.2_1663676046792_0.39046197669684","host":"s3://npm-registry-packages"}},"1.12.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.0-qa.3","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"dd51b047678d8bd636362830a911355dd6bb52fc","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.0-qa.3.tgz","fileCount":14,"integrity":"sha512-S/2JFnnY4vBDVo2gRevVYFNf+Uk+CcVQlgUwx9TJXrYYyx1BP0qASQlE9Uph4VLUeuPSQqc2P6dqjHIebDUrfw==","signatures":[{"sig":"MEQCIGNBmiZgaPNQn2+XOIBr2g0Nr72ZLT/Jws+oeQjgluYpAiATK/AMAzOkhjKiGOF6M4QIIv5u84is2nTTinxOAz56Jw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":517460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKa+qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDFQ/+Nu6/9l4oOG8zJN8b6qOhIZkKUeKfkhEjNieuwctljf91KzFC\r\nWSQ8VWlH3ETQrcc1vsOfeHZxt3DD3VKNAqHbdBWPJnx+Xd3uq3z4PSLVuwgL\r\nP0ITKy3Amx61vhldH1+2ryXzKWd81LstCgKH54w2YYiF37Mi9neUT/NR5gi6\r\nc+qBbxon+lNi3SEGqCTYLgYW6ksR7XyNOVNyZA7SMLN0HQ40spQHtOXL8Y7G\r\ncnNuV2Qch1DNv0C4u6yUzBBb835rUEBLnd4FMBrwFU6S64QepjbJ1d/NDkSV\r\nhZILLyzTbkza5ZzAR7a7eD7wBSe683qZsCYLqUiM73IHQAuV7fWDZwPBDqdB\r\nBplrpji558fN6ZaWWbL2/TJWSOa2ZIyhvd3zx4nU4eBzcWoLleePVPzXPCca\r\n+ZMSf/WqJLYlA2Rjpz+AQ8NX0OmLrTSE9aiMehpdeU26dqClqHpfrpa30Z1e\r\nG5gJQnlbA1N7WFWzK+AxBsfuqOokyCm6lrxLK1VrdndDzpVCDy2N/zw0jzJm\r\nTHAfc2kPDUvkIFkKwpQciZUYMuRUuxqxTOHYBrBWQqmoVPqSUm8hc0Sh0VrG\r\nQFB9X757Y+vMUR5z3+4SkumiGASast+w+C6CAjZ+drsHosUqJ6KOILgCNN70\r\nxbFHPsx/hy/ZrM7i/W3Udy6vVd6DavtvYz0=\r\n=z2ft\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"8c6f9b29a98c409f9502bb711e44c55d36de6fac","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.0-qa.3_1663676329958_0.3021848138863068","host":"s3://npm-registry-packages"}},"1.12.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"ae7118a7e95743ac83cbb9dc928f17e1a9db63fe","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.0.tgz","fileCount":14,"integrity":"sha512-X4cv74+MqSvio6JrbN6LSQBlcurydlfd85ZFFYvi4Pi40y3uAq9h9gjyQ/N+qRpCvmN/8HmE1pSodfq7/KWWtw==","signatures":[{"sig":"MEUCIQDg5Ncr3/EA6nztMshcLi+YxN/Oe9SzrADjX6ZIJc7z9wIgGpfimJAK0N2exTwyjBqjcOd4CtObfOuckcbCT2CMZXQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":517996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKtTLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrirw/+LYnhfqP/mzuTbU/TLVAJW2W/RgAHAk2GgwdffZgxxzltF47e\r\njjPz4y0icwv0KTmCvALUUJSmu5nxeIN6hPl4Q5aZg2wtZNcnF+Iw8nwbdATf\r\nwfY8SRks6bkwMGfpB6fBvQ5zkdv09k+lHU0ZwHdNakytfYOqNq/gGhZixfBR\r\n4f2c2HyR1s8rBFCm2z95ae3koijDtReugDyC1fKhLrgTQQ0h/aYUu81k0NVD\r\nWs/LzJOyggUMCzfZdFFH8BKi/+0J0SUl1od35EZ4wpV+LvSwBhQwpLUGs8Tx\r\nwo3g72rVs0EPs/GnSDLlCWoUJep//2z72/vz4sCEK9kFl9Ch71/UoFSRsU9/\r\n6Z8CqlzGDG8J8u07MB9g3pzA6HP3/Rg7/dCoIZPXA3YTfW3oYG0PSEoCkw2R\r\nQeUSJ89cIkHO7/k+AASr8EyPlmAIydKNUzJf7A6kFpPmIKGoNWlX0xafHgfC\r\ne/xg7XZ26AaI7Va8zt9harQLB5H+h6ijilaMfyMkAQPetPZYh153sBegJufu\r\ngBMHKKyZ7BZDyQqC9wcF6HFcTroVg8BznXi2j3chwOHX9N8E3V0sLHrp8NS9\r\njTi1OOfNOZ8hG2VNfUQWO5U5rRM2AOXjJlOismfEyD9nXZVZfrEHkK5riJAW\r\nrpFbJ0JrJEPAW0YvqjWiqYEUI2RJaVVC+o4=\r\n=23YP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"e3903d7b382284101197f3c0f206cf87eb768fdb","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.0_1663751370942_0.9976545653320996","host":"s3://npm-registry-packages"}},"1.12.0-qa.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.0-qa.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.0-qa.4","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"c0bec393c24e67fe421a9faea1c3fac8da5582a1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.0-qa.4.tgz","fileCount":14,"integrity":"sha512-OpcUWyKckQ61uEch3IlycReJl5lnOSJihA6qdDopayIyqxfaWFxA4fQh3fnIAaA1sNdytnpp9IlfEDsjDagdVQ==","signatures":[{"sig":"MEQCIHJUPNDfe7NuvE+v6sRgz72XBrBB3eyjFTEd9HgnU8inAiBM6N3Ckc9eAyA3wFY2WWHoIGZ1QJ5yJgSdssqDyHbpKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":519319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMwA1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9uA//SUENYzj0z7JAQflaQSWZO3n1eJeiq/RDU8se4M1gFMVoGTKu\r\n9raz07sXGnNDiym7S60guqme5WoTQu4FKASq7BKd00BPUxet8jLjHV1d9hfI\r\n0Aodf0jjPEyr0tuTeeIS5f30eZLXe25MtUlMiQwcoZOczAHRPPcsUdlSHLZb\r\nsLaobDVgwL5UJOVF06Mi4jXXHE12Trn8GAd+/HkYrLSYKN+kZ7ruitT3gemw\r\nys9jghmZriJHJIIeyEbqfteUtbjqEREJTczg/1T1dd7fo3LcntUOdeCKua1t\r\nu2Tdi2AH1RnFhroXUC5vd/UM5RQoFmRpV1/UJvJjefNRZAHSDRBOgNissAIY\r\nYO+YoqE23RzhuaCfinGDx7YgovEcfEWTCaaVa9amNnzRZFsQVjK6L3lsO5Tn\r\nYSNDAvREdaAgZDQoxm76QH8Ctzsc9XLsIrvKruZxwvVQHdWMC8DNQW2Ta+JB\r\nnmSX8ctB/84BkgH2SAuz7banif6yN3Kv7eLPdQliLKNbqxMQbz0NMCBaFtfk\r\nfM+BoAFuvm4mqntj7wgw/Sjq0YsmX1zF0PuMarSB0Yt2hUZkvPAkDBr/LRyn\r\narVSVMqUcPnUv9UjkAvNQMaaG+lvS8dOsWorA+JgpXSB6EBsagRKB6Y5Hs4B\r\nKrY8hggBnZRPiHOA6Q63t7lC7n/7FmxRCNE=\r\n=Gk6i\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f75fd186bbd7cea5d61861a0f293ba813b1738a3","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.0-qa.4_1664286773655_0.9386849223897014","host":"s3://npm-registry-packages"}},"1.12.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.12.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.12.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"d0c0ca1deea1f278c5389898133c496d783ff856","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.12.1.tgz","fileCount":14,"integrity":"sha512-11SOb8Cn+FeuEDwxBBa/psS79dKtCKgRWD8RifJUu9T+7GEiHS+trBilZXTr4yhO76nEnCCKW+AE7AOGKoVD1Q==","signatures":[{"sig":"MEUCICfbAtzJY0XoMTuP0Q8hZ63VOAjYGf2vByur9fB+gt2RAiEA2I30Q1tU1di57W2C5Dx9MjJcf1NE6Ju+8ejhuwZaPAA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":519404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMxFHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovCw/8CnuZ6PE+ZS0Fk9r1mWHpQB8ndwKvaHrcD5+l86Bih0BffwBS\r\nCqWy9PxRuzwXPvOpfHEcAjujGkJK1SFHxCO27UWEgZlnW6Omds1en2AX/KqE\r\nCXpOi4r3Gs1wMt4g5lAlhh3vsSVNUz/Uz/7ZRzfnplZeMYEB2PD3M9iyN3tJ\r\nkrb7FI5bBiFZvjLedYXV+g/zOmS4Zl/vdKB/xCaz7RRMcWO1yQTXPRmVX/Hr\r\n0/g0gG0ysYNv8T9Dnp7wzxkfyC2sumKlmP+8vGicfHyRcH2o9JNlYz8ikLA3\r\nxPpntmfkxC/znaKI00sSmO7KGz5SCwNPLRkxyllyFXYi5v4zBB3NZIIVSelm\r\neT/CV2PiAjP4EDj9sEkzAWbnVJS7qJqWm/j7wyTg5+3Dwo+8maGzc3u7bWCo\r\n9YI2GGjAoTnFtmVnVzi8o7YZKaqFbjsEXeRQ3CWx+L/Uoe5cNplliONVeP25\r\nlxPdw9aN5m7ZABJRlFcT3wL9uOJ7ywSWvPB4SP2gMNPbOCV0Vn3OCGEbqBN6\r\nm315Jg/TTnwUivG1nIuZqqDoaTrFKb5hheHNTPkAGOcWY2qqSRfiGdmbMT1/\r\nyGrI3pBL7BNGgmBWVgOZbXmDTJlVkA900lZa/qpQkFt9bDca+HqXA413UVXw\r\n7YBwrn5RN6jy2fpVyM8wUqXug/5U9Dm+33Y=\r\n=Sstg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"ff86414702818e1344084f22ad31c216ea2ea0b7","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.12.1_1664291142791_0.5326890151156032","host":"s3://npm-registry-packages"}},"1.13.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.13.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.13.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"970a9165fb5e38d16f4046aaed72a324cd348eef","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.13.0-qa.0.tgz","fileCount":14,"integrity":"sha512-yvujcjNgfyaOlvK61KulF2l2T9udxSArezsrNhfoc8LVQE5+HWIh6bKMxD5Z5ZvcY3NMukoz1lazTkkhFR3uiw==","signatures":[{"sig":"MEUCIBlfy3UmBoDV8FSS6O5TSkdG6rifYMPePPOCIiJdYcLvAiEAvG8XEuGHiAghSzMx4OkS98rPZyjk9G7w7vYfb8HFYPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":520153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPCxrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7Xw/+N2shh3MH/KH3QhGUhviq/3QAH/4hBK7ZSst1EMvSPFYE/CzK\r\n8c06ZL9QZZRlyHINIjxrmk+cK0Ducgm1ovXKOwz6I/qPJzSDAdU3x1/3CFVC\r\nJlY5OsjI6meZ5BYmFHMwPa50KljRnHsWFhIOsNy5lRd5ZOdkkZV5Oq3BgWP+\r\nsNsAgRCZMifNWXRuQoOsmbufAxySZt5LeWjkTtet9kMKGq3CFc+3i9jCtOEg\r\nC/7Smhq6DLwnS0DTuiTIyikUdLrhLPxsJRwBa7Z9u13Y1dZ8fbK4JyFlJJt5\r\nLI6ZIVIevhvsK9x+fvmB6iyb3Zl0yFRhIO0kKKwvyWSZ9nRVStSMrN08/hJ0\r\nKPCrU00VzOUKqXSdh8HaRD113yqaiLJpUM6XcoUtEe7nStBJgbEoHRk0y+SI\r\nsSkVyzLSw1MEpytMDja8FICluWYM5qNyuCFTEcPcPVv6LM6FKORcI20+0mc4\r\n9Hbd0MWTvOjaRrN2whOA6UpyKF3/3WdxAf18kWGnw5I+bAEEtinTfDcr/Fea\r\nNDYDWNMDaQdUtDSLxMd9KWMszbEKP6bcg9biI24LKnSe9edMdEk3p5HKCHPZ\r\n77Is/H5h1DjVCIQZgXsH/uFKlZZaH1lSNFepFMcHj17zVdAV06aiOC/4dm7T\r\niSjsgCx1sO3izul/6ZOMHOrRds2OLJq63PM=\r\n=5lrU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"e0eece8ce1a399e63bd6a9baaf702367e628f570","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.5.3","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.13.0-qa.0_1664887915035_0.44170909990959895","host":"s3://npm-registry-packages"}},"1.13.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.13.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.13.0-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"7f0e2d9f06b0cbd9fc34f8fb26f7aea96c55264d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.13.0-qa.1.tgz","fileCount":14,"integrity":"sha512-38rRAXVIWVD7j3T+/LX/yikTVOXi2sCYS/ePFh0NnTY5qzI2dUGXnZLXXHEMHBHsiswy1Nt1yHsPg+Nh/tqRVw==","signatures":[{"sig":"MEUCIDX4yVbU1cAz9Pq8VixuXStCDaGYsmiZdc5/OU1irvz3AiEAnxznhRinBgvugYNgQCOzXcoGHwT8bN6P+zOLcM0eFeo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":520690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRqjtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2Dg//anFBUVLt2cHn+RMvYoiPGAzBviZFUu0Ydeu2Dyw5SSf0g2nX\r\naXdvWUJCcDBIfZyrf6HaIkUkWF0wszaj/p+P+L7rvRKXBcn4TKg/rVx3ikHS\r\noaugEXs7eU6I2BFBN9cHpSD9TW7WegPS1O+tcRoOz0k8KKMqV5pBPjheOcQ0\r\nnHn/sEnM/tTqS+6MjoOjSwGsL8grcCzFaEYp/O+4LhTkDjv+iwiFi04pvIIA\r\nMUA4/uAFN36xA6Me80oZgqChYvFCN1N+uSVcEGHO5lfB2mOflj94mQ2p61Fu\r\nLjaGv9I1SlRYf6bDd8eCwXdDrDfPYdEKUWuJKUKD+tPK9/DB/9bU6bcC1JXP\r\nPMpGGo3O6l6ElAXf+XXWMWYfE+2NNT3NlQuoH47GCIxXZHbw0AseiQ/Wuzsp\r\nYVIAN7PeD5EdplWiyLyGfP/PZ1enR5YRybSP3VdmnACYrr81VvCKa/4beEph\r\nrpgLjmVfn9RISfoFxRGpRrExSCdt31LoDli5eX9dul9gW1/ulGWpNmSUR+bl\r\n/Y4dZAzNUJg/13Vy0+GxYP3YMpCYtunUgglxnk1g7k5xxvxopxb5/1v23SE1\r\nCmsezKmSZLJsN0kXh3Cb7zdqgBoaMRn13GYiSMOcZfKbUOxNfCO9XDolbR17\r\n3nesXCTcshtDSrJoRgR9JHHZnG0WHt3tJ5Q=\r\n=dfum\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f6659eb067655a7ab92b2f6f9f62588ce2444241","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.13.0-qa.1_1665575149518_0.6507819416975806","host":"s3://npm-registry-packages"}},"1.13.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.13.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.13.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"9a6abac6bf15992444548ee27cab54e599c5671f","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.13.0.tgz","fileCount":14,"integrity":"sha512-/W0XRcOR9REQPP2uCln10vua6420r0H4gsTFy2vC8leHqCRaEQPDDv7y4tuaU2onmuZk9ubjva3lYJ/xU1Y6Hg==","signatures":[{"sig":"MEUCIQCn1OD52vqm5ycVB3kVTq4G982YKr/Pw2AiLsIC5k5VwgIgPEsuBv2XlLw3P9odVAO4p/p8MulQ1I5/uIwvCUngrYg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":520939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRvPlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqx2BAAi2VypJd8bNvEmoj0pDNqorRvdLBfLnWzjyI25zx8v1qfxltc\r\nB9pZsPjEqLv5nFJHfyxOEbdgGjp9rSMhZAs0pA7wDqKTPKkZqkx8JsOe09El\r\nqnjHcsLk6sGit/dlHeU2JMMeTFCNiVhtTtZ9ltSFVMVboFAmXRZDqkTq+yYZ\r\nyIQv+kE8n918YLCc//IC2cen903DpDtUc81enQhs74PCmYLUSFZRi73ORbN0\r\nUQHdf/1cQbQtldetLfc8vrkUNxKZlJ9ADi0BQoVFDYxNWMIQ+3mnfwuxIkwU\r\njQq/lPAxpE+NXpoDbwshOgq41U5UgoegFkvRWx7uzH3RFFCMv26iLLR2o2Fm\r\nUrmVHqnBYZs0KEPLz6K5JHX7Yvx3t1hwpxyPW15RCDLzTg9x7Guc4YOU97YX\r\nHKQVJ1nqF/MNe0g799NmlFLwoj5J4Z8JMSa5vZ6KPKhtpC+TIC5F/paMH0VC\r\nqqJnEZoFNjkJMKfjLDKTk8+eyBP07ndayj+VQw5gkoOj2jTWW7TMSOjfgNjW\r\nbGjpXkIwXxYzUzUa1ChcZkreLkIEv2UfPcPfCCUmpyfKFtPyL5BCe8oBKRXb\r\n8Zn9Cg9IV6LK5yeh51DfaN42DzmWjjJPcMLMFkwCdnX5OcGImgBfbaFv8TlL\r\nymBx6JSO05gXRxy1A2IQrCTk4RAnRDW30Tg=\r\n=PGYk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f6fb150f22d0978732f05e26581b5008d3189554","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.13.0_1665594340893_0.9827848992221269","host":"s3://npm-registry-packages"}},"1.14.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"1b45e481b2b358ba421cdfaeb502c688eb362ae0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.0.tgz","fileCount":18,"integrity":"sha512-80EEaG3U0z+zfJeGhReYRrqUAjHEtnwpQ7IDCyOy01+DtOnHYaEbzBiYQNRaHTIoTk3seWXBiTw1zYnMzGCrKg==","signatures":[{"sig":"MEYCIQC6AO+WopFnvbu0AOLV+jNMPYldzp2TBBY4HJNyDbZF+AIhAM0Pj8xgMC6nDitCgdKSVHQisETDDgrOoHx4yUJHJLQ1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":567475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVfgdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKVBAAgmHnbYkolIvam2SmqPSe3XMMeitJLlNBl1OcjCvWf/nElw9V\r\nA5XYYPNMsIZNyu39eXoAMgpG3YL3lJOdXDfS0a1erAU1OGmZpD0KfNmx4hfE\r\nM5MuXLxpLhWmytJxJcXa+eqMfjnnOmLq2r4huQr6RL/p+lOhhn6RAcMMosMJ\r\nQcvn8F39oh2QLhzJqjQFLvHDT3AMPyx25JCEyV4JR0i5lfJ8EI+kjxTUkOSC\r\nFF61GIxBskjL/UpT4LNCOfVZ6rDPW2Foq6W6ZmIMWlh/LIEZkrPEnaX/ms5+\r\nuge50+0c56QSObNOC3Sqn/TGCQ09dvYhgBZ0OQEwkITB6Axz76JPKs1lZZzZ\r\nK45UKldgbg73yBIGWMvGB8Okma5BKWz+qG1opOG7O6PP4CJbW6gOVTpJiKhK\r\n+e6TUzdRhAKlt9mkNqhxaoSbsonIPa5uLa0/oKiYNAD1Ys1F+PIPneiMd+4a\r\n6Bm4ApiyHHKSD89qoXjnRynzQNUI1ALaDMW1gAi3R75k+YfIX03GSyI4Peiy\r\nZJwYfwD7bj2qgtBSltXxGTashP7Y5LP+teJvJQTBHHJuoPRdp6oxXNdYKAMn\r\nHBsAmsM7SjhY3VpoOEvx4ntlPdjaCVjnxxEiW8oIsQHvg3l/sK1RErd2d70r\r\nX4HbKP+jD6IqSsWzTJ1mMOJluouXrL7Q1bw=\r\n=zl/a\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"180fa0ddf98dd9fec6aa29fd65fb304b3fe5542e","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.0_1666578461535_0.10204108669321554","host":"s3://npm-registry-packages"}},"1.14.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"577fff029549abc2f08375ae44540cf732f1a97d","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.1.tgz","fileCount":18,"integrity":"sha512-kgp6gciqmeXJceayJ1QhRPB0KgCT9YYtXgz+Pl5nDvb7iqNqJ6oHlMSVosUDEam088huWVmWJScnXgpm81RTLA==","signatures":[{"sig":"MEUCIQCjI5U2kk4hGYjdTGGXJqJhh2lHeut3Jul2ESvo9o5bMwIgA/fgFoFh5+O3yhre0A37YNIRgViK+x/vM0iFngLeOK4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVqJVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoXQ//ZhhEfa9L8JKqQj0m4PVyGZ/pgC6s4NzhFnIk3LRdzGGEc0PH\r\nnj8s67HK/vjCtqQ54NAHmoaxzTtZ9+33Lfchz03pnZiztDUUTlgJViyHO7gX\r\nUxMZyOe94pgXEg8JHgj450+NwA2frVLw9v8K6amJ2vqBLRfj/MOm6GxWG3SX\r\nQUyzA7hkausolqT/mOlJgA2bijjG/VclNtL7IyVYpzMtv1bLKTJ3UpQsGA1k\r\nMD+eGk9P6ER0i0w4AFtSPh5LXn7+qk1Qb7hQgnts802U78zVFKtJMofRHeac\r\nfq+BDqvnQtBss66hsKPZewEXZG8sW8XofnppKP+H6ykIzK4W8YnBaKAUZ2wy\r\nMJ2UheN2Suwlj6BJWV6CCZp/BMv9KHPWKeLwpEPARJcqAeheoM3Kncz2Rdba\r\nn613KfonbGgwG6xc+CHNhEb2Qn0eKP2GZC+UHP1auYFVs+Q/8jR0+Gq2Y60I\r\n1rF0g6NeV5VcIPEqHzBvQHwzQqiF2vJQmfWp7fdkADYj6lFPVwaP6OuxePHj\r\nZt8vHCvM4F9SL8jl+Wf44GsuuzhbyI+xJReNKps/yo3GQtTUPupT/z7V+fqy\r\n7javbD45Zyj4YNerowxH3rMmR0BV08QnGqa/qTCoydSCUjwAwI98LPxtmMD7\r\nBVd37lbNBZoek9CNNzFf6TTMu0DdkN25noY=\r\n=kAB1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"bc88facda625c2e0cc51bfc9bf9ab537d18af2e0","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.1_1666622037545_0.8467068019847455","host":"s3://npm-registry-packages"}},"1.14.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.2","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"7c259cd619b2aee6cb045df24bc1cb44856a4f05","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.2.tgz","fileCount":18,"integrity":"sha512-MoDymGeBVIybaMQLffxMd4vgTMCSmbRYhUw8cKDZv6Un2xkPX0rPCLy42PDUmAh3JN7ki7arTK0TU9QLJKxcXA==","signatures":[{"sig":"MEQCICFWI7yOU9Lpe0ZnzaKcXHZ+Ya1MdjuoWYwP56V+Z8chAiB612Z1wLYpkYtCXYaizbYWoHyR/xG3cSfjQcjC0m/GQw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":568666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVqq2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrkcg//cziDBr0Ol4/HDCo+lCjFuPVI1K4Qbgxt4pILgIvzTvuPY2Jc\r\naRc4svyEnE61uA3CE8Mnt8U+WLMZfyL80Q1AACaWwVZ3z904GQSBl+E9Zc8Y\r\n7SVqUKOp3OFvNHpICYoLsZRYtgzP5ISoNuzsszRKoI7hNvdhJtKQVhrVSSds\r\npnCsFMdHDAZRK3Wj5mVIXAjSiRzFyhtTP3auGunZk4hqQVAcy/6E+D1Pku+9\r\nxI25f+/7cpRGkhpk7WsBnagwnu1r5sdn4fxeDqTfFZX9rY1swbB0eJwZncc/\r\n29+xyNl2Bnouz9h7w74icMBKQaERlFNIxTMjyr5FGZSOE8pgcCAsVZMTKif9\r\nKhhHK0P87cCNH3jl4At+DULCjKmma2pJA9lO1FGrrALDd/cRBrMNMbAd1mCX\r\nAKulL6YWhKu/wIh0x4CSQfBXeG9tsH1WqF17iEhJGQ3dg+s5DcrVEyOSBnll\r\n8TimPqE+QSkZQk6XpF9YHPnZzDCkHr23bvukSoJydobIVopeusNl+nAOKpE+\r\niOaxg8hqnKJfi+hL+U6NRI4xURjBYkK9m2Jmd/1sQTr0qo5FBI9WLvQ8VGth\r\ngX6LZ7yFDu9clAK+SSCWWOPhFVeeShs0D4CF1T9ezx1FTyMMOfZmVFXesFpY\r\nVVfdrObTpPDumvh/TBq6STCRnu8rgLJOT8E=\r\n=HrS4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"b0841d5e23580b0ff14e7aa8d637d54a99058190","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.2_1666624182687_0.012599765490546533","host":"s3://npm-registry-packages"}},"1.14.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.3","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"a51f3ec68852ae58a3ebcf0bf0b6b1c2d92f4c75","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.3.tgz","fileCount":18,"integrity":"sha512-szTgXXd9FOn4jgwjHLs1WjbafQycKRiWsEFNhNhUuCPkBlMGuIiKWgMmDtQ4VD3Q9F7lDkIKYrCb5+9QvlD3vA==","signatures":[{"sig":"MEUCIQDfOhyvImQ5yKU5DNS/IJ4l8q2whOvbXyLruiwYzaVKNgIgF880vJ+XkyBgJjdZX8cKPAMEAYAZu5cW5ILhxLOHxuk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":570796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjVwbjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKIA//WjqtklSeSCnh6vZheL1QsaNAfsI+5rKw8DurCTCYk5cZDy9V\r\nS4QWFUZgVBQyJ0QUnrhjh7QFAM1OcKFtseAy9N7YqTsgmD7Sz6eMjy/b1JDy\r\nNdhMCL73Cn/jZOnvWALDxlXvNPnU6O9SVx33kjCUaezfJyokCl4r50JXpWCM\r\nzbLvfA93QTHVbmC0TsMqKbXIgBZWSscUy68Gnt9DRLRrO0wXCgdRsc9bPLfA\r\n/wI/U+zlc4B4NrmVDvBQr3HoQbzolqsDErLw6m/qrIXUm6LCQ9KTeGs+e4rn\r\nI0Fg/WlMUmcI4BkrO/fD6tCy4JJhKNJOiN8CGJNKaKO4xKQE44LXe5QyjbCi\r\nnSZtTIRJ0Z2WaVJcV6K5gDlXSPVfv7i4uNgSEX993g2NaWBMtnqOk4SRDU6z\r\nrDMgXdqxWWlqXo308fdhLfeNw2MKeiVVm5FezTyLQ+O80i+T76oZe6o1tejE\r\nXK+kt52ir0ZpMb5p6iABwX8x+Hp9pZomWpK/4cMnvMTlHuL3cc4IDw5OXPur\r\nYbU/WJw3vjIf4SoH7Mj+l0MlORdfFVSS73K0i4VkaroR6eXQwtiYFPWkuBJn\r\nimEvONuNd9Z487WPOMoEQwuNEteznNkGlEn5ev1nwYDREOcSipVQoftxKBn3\r\njeAKfrKCJ8pr1AiOHy+TMvMDRfw+6Fcrt+M=\r\n=3F4y\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"42b9b3750b74910d0a4b916dcd8c2578478196a9","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.3_1666647778766_0.153998776669515","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"535146679c0c3f7f9d74555b03335fbb1a79a260","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0.tgz","fileCount":18,"integrity":"sha512-w0CMNPqa0GPoFvu4WjnGEkosncCt+Da+6G+1qgJuBAS+VtshweP7w7A6zLqqdHN+jFlFu1in8QH13z3bFiPz8g==","signatures":[{"sig":"MEYCIQDq4XT6HYlvK2+hcZ/VhMUO+TfgtAADI5sUK0879uJhLwIhAOryzTaNN5QN7u1nihJvNJVC7fl7btlbrUDIfm5sJJxM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":570407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV8H8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCnA//R9V0J4cMK44O9onNh3UDsDcsgYkNWnqh2bo9qPYQ9Stpf9wh\r\npdGNYTSQnyBrC7uMfWWv9BRIERcmwRe47mOKLKYBcFmPgMPC7uc8oGLlrKTh\r\nQEpjjLMetunFDLxXW5ZPzhXY19frzA/Zk56+cDVoIrJpUWmURImlJcHkbudk\r\nGljjLPCGczR8NickVaz8MK8AzHvh+m+dY4Nm6pj90aDE131D6aD2vGzu5r3Z\r\njR/b8AYNH5lIyWAZ0dEKnf6R6WdddVR7w/xem3a9k6gisYOPfnAhV76Z03Vg\r\nHk+N2GlWO+QS3NMpjWXavrpe8YOGVP6Ba3u15zPaYyeXXC7aKIF1Zsabu6s1\r\nWMyFTrcdB5mPjnPgcicupt2kBhxHQTFg+YqtzHowbML51rg4INbMRs/kQBzR\r\nQQ5Xj4MWZxzV61PNIf5ygULrvRBGNNU1beZw+YymKYk/QUTOzjs1yXFJfBB2\r\n8jVVM1qIGae6DPJr8fE/EB0fLRIvluTQ/fMyQuanR0LTXET4hGUlPeVCglmB\r\nOmr5bpdq6J59hICoeqnWLA/tdRff1NplTAst8NQ18ZCmFO132Vm66Fbc2TR7\r\nBicMSVGygrkeI/Tnot1IHGKLHgrMR19U6Lr01A7PZOd927oA1/VI0xhbTKa0\r\n6xrDBGf46InihLw8UBmhWYenqcGpWj80qdE=\r\n=aO2j\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"36388bf0466ab4fb9968e9d78858ac7a423f01a6","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.18.1","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0_1666695676539_0.9410912432276866","host":"s3://npm-registry-packages"}},"1.14.0-qa.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.4","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"901175eead765e0dbe2aa239e31ee8888faabca4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.4.tgz","fileCount":18,"integrity":"sha512-upobpO2J0zvpWVWwnSLnXWmVIB5oVSRBPEF8Wfwl8J/SgwMbaC/UuQsvULIk4CzBI46z/XXniA7o6PHF8wtc5Q==","signatures":[{"sig":"MEMCIFrSWjHfnq/mYWaJUemnIGc26d1vf+wiCD46MOlwjPCFAh92Y4ZPXWSxE1HgPvzbavQpGKW8fpz/DLH/cU5r56BR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":570528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjY9dzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUIhAAhqet53uEH0wEQ9FaJnOYTBJPDvOgEPaRszwc44DyBPajEkM1\r\nwn5gkXFKW8eoJbWim0gn/Ilc4xss1LOKBvW5MQD9z94vaukp/61qNjJMMurU\r\nuJtb+WexYyDLzfaag3HrjZ0LJ/EM7mrguSy9ihlDyYL3Z1w51NcD/C7hXP/A\r\naAGY3ONG1rCJ3uioPbv0UitooWHfohUwWddB/EQMWP9EaPgITP0jinvMtETq\r\njQ9clDNpyGQ2NFbCrQod3vfmGoBQcrY5VeAotBMvxollx3P5u2E6ZfjqCHd0\r\nfqZvDQu8HuNY0eN22UzsJCAKSRzmrvz7dsmluOF5CkrZIiscMTGyV6FJ/RuC\r\nV9SutOMjWXis7B8iCL5RRjmnSEuo0gVgMYTXOjybFVwu3jHxmHi7mUmGL/qw\r\nELhfuSS2itdW2wk5VUzAOkCKR0Eb8UTNqcz3OCljMWPNZhCMFRtto9hMf5Yf\r\nw0rIEsFD+/bIkD6/han3x8MKLFcBiK6CzUAC0Aob7N9RcYj9uD2M0izZXpBU\r\nvYi7RVj8IVRekhRd/jcV3fpxFUMnWbeGYtdCSzbc5CdxAkeboXQcdRx7dyPi\r\nAkgciLW/HAfeh8VX4w/By5RWgAsfGIJHqv0JEJtDSVhbjD30IbMnTjIiaP9F\r\n9dkXDHG7q6Ep5uaWTPW/5Kfp8jB02AQSnCQ=\r\n=58FK\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"cbde7cdb68023fe55b2ce9cba46048ab146b151c","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.4_1667487602877_0.2297734137491081","host":"s3://npm-registry-packages"}},"1.14.0-qa.5":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.5","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.5","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"7cec246f059da652c1ae0abe70cdd018e1478de6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.5.tgz","fileCount":18,"integrity":"sha512-SjiQRPR1s91rdIGbLhzCpn5cmIB3UrPyoXhJeD1QRswBXD/3h93RzqSBCb1INFTQHx6NZwKgEDXhOZzsgRSqtw==","signatures":[{"sig":"MEYCIQClfO8v9Nsv8tZmNGZzyTSRAIMCvn/z1BXh9PShAwdUYgIhAKdoF4Rp2qjYPRpvIa5lkAHhqq3lwTz2bbYk8nGTgRYc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":575370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaX5nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoErw/9EzFVba0NU+uYpqEiOCWaUGZJB4KPbrceAt9DDWM43xdjSELb\r\nveqhMTtU4eKlY+WbTLKdCpcZMrdjd9vGT/bLvFRAVpy0VeS5nohgevPHeiXU\r\n6JDsZ/t0WbbDQOk4tcQsu3mdG6mzqlTq0CpYBzTLiFSSo5XY15S2gZlxkhDz\r\nfw0R1lAD2qP/1EH15Jz6K7tbIFCfBpF4jekB79OHLlqrVUxnfd7sElcbxNL1\r\nrFqgYGfnh5PbGlIzFcWpEPIlOmSwGyRG3Bk3S/K5KqxWZarCY6NR1kvtjm3d\r\nZjou36yZs452XLgV49SfeXt7GCLlkkqo2x3oLLOEmGLGjbIakamP3NKegOEE\r\nQwLRBrnfbk3JN2BtMZ7+LL8p4XOJX5T6n0NqPIQxLJJKXcierXeHdq6ctdK+\r\nKUzi1AEIUR7UsL3EkZCI5EhlgQGy4J2e/pPRojviAoc8xeNQ9QK2xNZVH1OU\r\nd2wuFLUvwPmgJvIlMONKSU0ovb60fi9qwt6U2I5bYnM0vl2umyMpbygy/2AY\r\nvDMA+DIEevYjamJk/U7jyP8dYL0xTihsTfOQyRoHssstu1tBhQJe/02h5M7r\r\nr80t9ubK1FeJ8kyhT3dKOU2fvTfsH48/BccHXXi7PRcYkZKyVCJB2wn39pjf\r\ndkFoTonWyF3TEaqhmFV88Doe5jLsT3JvsnM=\r\n=m97j\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"62c7fd0c15c55dabd882ed7f7ef0efa0fc988820","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.5_1667858022863_0.6177537937353805","host":"s3://npm-registry-packages"}},"1.14.0-qa.7":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.7","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.7","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"a627a6e5ee67d92df4764cec734fd40c5986beb6","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.7.tgz","fileCount":18,"integrity":"sha512-xfgU4wmyPraFl8iRaZxCqGx2F942jlr4wd6ObM1uoSzJU4nFQlt/D1y6m5T7Yo3mxxKoHmY/Hu82ZDCt1tMudw==","signatures":[{"sig":"MEQCIE+u3EIeowe21Ukt8B7dk80Yy5tPu983ThiZqIhKFOjUAiBGkFEo6usba2VL13moWh39wBIIJNo1WFQl/EACCcPbIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":578461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjajBGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorFQ/8D82XkaaSQJlSRhcAF1LhP0wG40EjqSgVDWWAsfipKnf8icEb\r\njuBt7nE7gJXuvQC2LFnrR6aOJjYAD8mLtYya5YMdMBEAxPGjpegel4MQLOrb\r\n3U9XLAIDr7wYCnxd2YW+JqS1HQoHftlpoIONoSk0OZ4EocscJx2FZQ4pdRoD\r\nBnAytfOW26kjBl1xph1MqTOfR93wea7IVelQ6od0TUzlGxbeqKtJLIIfaBfo\r\nn5IpvKXX6/aJyrLOCirqw8btb+TKF4tcm2z7HsQBc4uXbnAWcYMYc7jQ8XlS\r\nApbaCNN35DoaUzQoOjWY1/Pxpba4hxeIn2b+5Hzqzci5fmUvHKiI8UAILP77\r\nyjRRHi+Z2dZ437tHrv1v9KC+uEiE2XeFaQJ7BUcBujE2ugm8pSVuKM6zxVvJ\r\nRZPeq7aOVM+98bjrFG5iVw/Pgn9orsKRHagowEF6Heg+aaSfO5bkrvXy329x\r\nlqkGfCj5mKfpOwC+c8iy6IHdiPb2RnWhJjVOmaVOt7ZJ5mNotbN8JlFLOoPP\r\nZBj7BmLhzSNdmXT6lN6DqI4fJKIL3wFdlBs3A8FeE4/8uWiMJG/jTYjluwVl\r\n7HI7OmpaDn8TE4WizBxImdyGCGZT2iMWlmaT2IAdHPZBjOUeCtLbrScup3Ax\r\niaP6BYzXTacbSLZF1BFKiBfzgCwU33lqLgA=\r\n=vVyq\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"0851e94a8091bf9a72bd224896c8835b1163423f","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.7_1667903558595_0.6869110704349082","host":"s3://npm-registry-packages"}},"1.14.0-qa.8":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.8","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.8","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"df07296c99a5a03a8344535c05b95f48c0160d71","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.8.tgz","fileCount":18,"integrity":"sha512-zFqv6vIyLUghHAjn31U3hPa7ZLF8hOfJWM0Np3eq6NjhspRCA3wddNrZml/NDR893bq363ohRrfzfL+MXSQSsw==","signatures":[{"sig":"MEQCICr56VI3DC0NlyKRmF0tHy2gdPIIgIm0owRrF3FUBD0sAiAw37Tq3U3OuD2RcKmKl/PMKD33gRC5Lg3ZMvaxJ+BckQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":578448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaj5XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroLg//XjGrQmbhXbADL3ifxF1OrMnGtOx0NYcbpByOWmFNUksL6B8K\r\nSQQuXcOmZgAj7hfFA6c97GCy/pOKjFN6ShAiklTOkqwpq0na1NQMcyLdx8vK\r\ntfKpDEhzpQJ8k57kC0Hs435yulJfasc025q3wRygtIlWBaR/jXRAz5fAUlo9\r\nVU8FYnwHiN+1j+4YxkIR6dPOtcpXocUW+3CIX2e0fQyitSCj7AL2en8rae/D\r\nF+4vyYRSq8BLzkC7OEdz/VVKprL6mEXAU2sg2Xp4i+WpVOwj9cL80Qbrt+Hl\r\nQ8yTviYIYWmhgqYsr02tqerhzEPepi8Djs2OFPNI2qBD9X1lHOQPQm0an/3G\r\nZiySyP70Hq3M35zqxHQUnDxMhCbp0oLgqoD3iGynDF/89w2zLwprxbkOEneQ\r\n+XKXdd8mRrasjobhecLUddSnOoU/INMKIE1CC9HtLkVFu6j7EWPk3jGhQxDt\r\n7UbOrsgg2d/4jjxzlPK5PYa46e3T5En17Hf9x7Hd3wZZK2N+6nzJ8LXIhs/R\r\nWchGisoyPBwEGhQFnKUhIwzKN8YTJWsuYD8pxCeq9vvNna7S54BNoh5xW7HH\r\nEhy7Nmb5IMsGbm6DvxUCRibK2o+aLUNPaSBVIuqFgVmCLX49vTf4eXyypiyP\r\nqYVgJqWxru3x5+wZGwmhl/rXERg1AlW2tBw=\r\n=IrWi\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"ba90b8286463d5bac1fd3d6b8d02dd9150f85886","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.8_1667907159232_0.6331569959481815","host":"s3://npm-registry-packages"}},"1.14.0-qa.9":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.9","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.9","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"8281d273464d9d29dbda0cbba194f19b67647fb5","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.9.tgz","fileCount":18,"integrity":"sha512-XgbOZC3RtW1O9CERHp9WMwugxTPd8C5L3KwMheZKXrgzOM16c3aZIdTjh8RZ2X4bvSe8J80rol0VVafNhL/gXw==","signatures":[{"sig":"MEYCIQCiPb+6pxz6b0v0fGkBTlvMgfPwCk+Fx94DyIYku6aeTgIhALOj/PGZLM8/d6RMPGZXhzNOXGQik82Scz4xSShoKTtL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":577907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjakFDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYKRAAldkjqHCVMM07M1AIzLdc71A+mbo0XbQnJsGlxD2cHG/+mH1m\r\nxHmNdJ9UoNIUNe423oXTmN4jCx4K/CYn0npzMtYYnQIuKZ442sS5d1oaNoKt\r\n2AzHrQt/POd5TiSKCRWfd8PmeY1BgO6inhfgVqD5DU3sqfiGqfnIOPN9ZboQ\r\nYstbTNrdEYb7aCQV1Q6YRoofsISGRrt3o9ajdzhQUUkyU5ZL7FmHoRW+TbMy\r\ncHH93X4Ibj5dyp6PkohprH/YtjCj3DwSpjbdYUZcFXySZjmnOGKMmo8TfoN9\r\nf+oyTkorQX9QVM5MZvkEsaR1JlKOV3OW9G46DNAFbWR0D+M6QaT55+AjXOmD\r\n2rif70YRECReKcD/UgO5ILfVPJ9MLcdzyAnep5P+qiKDqj4Iiea0OOGRBtD4\r\nTQTYPay6Hv2EUW6VBL3prnv24/PSQFiWfGJAjr0X1PnyCHId7r1E+uDzhAGx\r\nrsS8+ZbS7FxmK24f9O5VA0jntNl5pMyygiblMPy98OWpyf0/BSYFBt1r1ZGT\r\nqAp3ZNb+IMyJm6icG0TxHo0NaNr801nW+mrsrhCommvHtfgssSpBS7q05/kw\r\nZ8lfrxqcwBqser9U5Rq0Qi693llG620aWc4tDdyPApL867k6fLsFQIpVgDnM\r\njXdqqeZnfhy/6s9Wt2rv9A09+rnVeZYvhUk=\r\n=UO03\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"c0eeaeb3065efbace011692faa2fb86cce3c1a29","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.9_1667907907649_0.6329931414650556","host":"s3://npm-registry-packages"}},"1.14.0-qa.10":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.0-qa.10","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.0-qa.10","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"372019ae3afa2643acf986c1ecefdd44404138fa","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.0-qa.10.tgz","fileCount":18,"integrity":"sha512-5nZ3zpYoSHEIKFkMCEJsX7WIu7R4BTjbd8MfBLB9MpQhVpv2JI9zN7di4pcKYeVC8Arad2Mr3l7MzE0oE85ZnA==","signatures":[{"sig":"MEUCIQDX0ym5lmppBBTsMB1riyu4tEKaybMi/ANDhSPyor11iQIgM/ge9pQ714A3r4xWO7s5WU1OrevrguY8nslkzRYoYyM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":621467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcxm9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2uw//cZl9Tv7IkKCdQ1RPVNmYvu5EKvpUXLyzQDOhgJ/NFAnMY99a\r\n4SyE3TZBetavY7XtfaN+LPAW0ZGRTevnAr+8UIpMic/WkTAtoyY9R4HmDDZ1\r\nZr/drwL9X457NT3yNllKnSvVx68bYBIscAZ4/ztwZEcXo/HdHCWBR3WeDyfs\r\nnPloykpJQccLrmN74UNYJVZtl7ndRDE/gC9/RIaWHytPGPRMhbIK3HHGWn4S\r\n0dsPnELxUg5SsplGjB9/n4sUd64zn07tYeyIOSRVV2UBYzBLR6vVTzDfOern\r\n27y61CWobAn+q283cctymVvdg5yUm6kf/U51xLPmvVj/vSEoRx9zJRjOOItf\r\n06XEUXLEd+C30cEyk01z7iRhaaLhg6BfviI+t20LmxikqMWSaDg+dI8yfNpq\r\nHEoEKl0fZvlrhGU4xO6Xcu1a7N0haHztBNaQzy60fGmJiF1NJyBxhyQtqWhk\r\nIcrt8XYRpEvPUeT3pRaozFrsc8fYes7qNrrEnKsvSQ+7NvCiMxEJnsSStmga\r\nuzp9IrTmVrUN1uCiyCl7NDAq0nJXNr6UKVgRqdGsNz8vpMT+/jBJsIB0p1hg\r\nAtt76I/MiC9/BFECDtMaBY3gQCJGCbdpdKhDd2HHRkelnRbhlozi03Yar9Rh\r\n7cmyq2t7eD9swB5X42ENRLnqg7A//wzsAHo=\r\n=UPuv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"d0539fb0289ec6595d685dc6444d45b4b4e36d59","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.0-qa.10_1668487613406_0.40066670940416405","host":"s3://npm-registry-packages"}},"1.14.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.14.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.14.1","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"}],"xo":{"env":["browser","jquery","jest"],"rules":{"capitalized-comments":0,"unicorn/no-console-spaces":0,"unicorn/numeric-separators-style":0,"unicorn/no-abusive-eslint-disable":0},"space":4,"ignores":[],"prettier":true,"semicolon":false},"dist":{"shasum":"4ede08e05e0be38d4e39203032945e74e754cc28","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.14.1.tgz","fileCount":18,"integrity":"sha512-FkLlD5JdV+UINL16O4qpTmSz4eUfd4eqMduXbZ0UlGPFyfxmWbHPdseodmtv0yHpCCczeDHRQyRsV7cTEk1ZeA==","signatures":[{"sig":"MEUCIQCO6xAyEuFnfaeTWvN7alr2dgzK0toZJ0fuUNPQ+kWrtgIgZWcX56kqGbb7NOK6WXCygvSp05Bbt7vV4HO7aSu7OXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":622034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjc3ntACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryeQ//Szvd5mYXT1SPERSY3P3fN6CQa2HA/MNr7QF2Q0+8qar5HO4B\r\nubFgGbBXemUG2bNTTVJfv/ARliaZjLo/q4JNzivVDo++bcQRbXqKQsrbgZFO\r\n+h49X8Za7T8Ct3Mrg7gPMyB0H3/ATQ9agpTvZigeQwimFFMARq3nUm0oZ3Ea\r\n0iq2fY/CCzJnYEIyrkYqzlUA0Kp5ej1VcpFcKYSqLYGPOlyip/WJ06yh36M1\r\njWctYagkp6zyYwLWtgIPUF/ipHDSXxtGbPRTgwGEpBGEoDpbsDTJtQj6XMvP\r\nOF4lyQEG9qG9lCh7vemTyGn/fx9YudMFNI4aupQKxQ/aFMkM0LFd9U21wpQs\r\nmjKS1AhwnRxSOhwNqVAdiBz9CV6WD7wdaHOKatiQ4h4OZOUUvweEC7xnwHS/\r\n3AWms7aSEW4fa3EpE0I3DEpWgAxK1pv/28zgbL4x3QcV3jEOx37AhoUw9sBP\r\npGThNYdx4PWRKG3mTWJAGOx+8zGbe7GuCti1JNJzGapTqL5MTFZZ0t+oAc8e\r\nExYOQtvaL1LTLEp2/OgM/mvvgIt2b423OLNhwe4CjdA9OkXmGuS7d4vmUPe/\r\nBrKwvres/TwgNvoXlJLKlD2Ncc8f2hhiaQZ0jk3igIFeulqDPkPUbxQ1CpAi\r\n749HMnlQWaB8JNMHzd5HZ/vznmH7QIw8roY=\r\n=jxsa\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"bd345591fc97a69fd92ab228545ea9e449a10f05","scripts":{"xo":"xo","test":"jest --coverage","serve":"NODE_ENV=development parcel ./src/**.* --port 4005","xo-fix":"xo --fix","prepare":"husky install","build:dev":"rimraf dist && NODE_ENV=dev parcel build ./src/**.* --no-cache --detailed-report","build:staging":"rimraf dist && NODE_ENV=qa parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:dev":"npm run build:dev && standard-version --prerelease dev && npm publish --access public --tag dev","build:production":"rimraf dist && NODE_ENV=production parcel build ./src/**.* --no-cache --detailed-report","ci:deploy:staging":"npm run build:staging && standard-version --prerelease qa && npm publish --access public --tag qa","reset:dependencies":"rm -rf ./node_modules && npm ci","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && standard-version && npm publish --access public --tag production"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"xo":"^0.40.3","jest":"^27.4.7","husky":"^6.0.0","jsdom":"20.0.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","babel-jest":"^27.0.5","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.14.1_1668512236981_0.15894492958778894","host":"s3://npm-registry-packages"}},"1.15.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.15.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.15.0-qa.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"}],"dist":{"shasum":"e165896a38a6ffbad218ff4545bb71432780b545","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.15.0-qa.0.tgz","fileCount":23,"integrity":"sha512-pRIsCOW61Sr6rYXFInwOtWueR9CNUJhdnAbkhBHoZaX/2lB4glz6CbGVFrGmp7QLMLDTq7LsIY+vSreCsXS/FQ==","signatures":[{"sig":"MEYCIQDCLRzE4tSDDLldJ5IL9E+Y5ln6ZtoSEswiQyH/0wElZAIhAIKek+RbuYfOzMp/auh7JHF4Ll0yTBvrXguMG9paqAXk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1699282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiKS7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6RA//XBxwlK3lM77go9Rf4guK4P7BOn7EmiDgRsF9AIKb07MOBLuE\r\nb+JnGCiQKlX5MNKpbrcsCtu/GKjZ5oqh0kwtyFhffR3/G5pjtEF0cQANUrWy\r\nDAMJqPzLzQKEuXxXbU3vGwcNrqG+6/5YQU0n9/PhBujp2XkEXGb75TCryImj\r\n/x3Hk+0S4BrHpPuGg2jg7mv5QEdZHQsliQ49oJlnjs3Z/qq0aidL6mwLMqc4\r\nFwWhZgLL7/WiTAjUk2WYmtdPc082+DTtRE9Sg4h4jIy2hwn7D7TUPn+izJcz\r\nbHAndCZ0jI/UpbvH5HdWm8adleDz7/tOIqRrIZCl6nAuL3SgROKJdM1WfyVx\r\nC5dqi1M3diW9fx+P8U+H8fA7XPsHkkyNr/SJfXhOl+kuYEDEbXcb5EFOdO5j\r\nTrD5e/XoGF/ca+Xho+muTGJP/vOyKHiHnuQ3wP+CmzNLXdCUJGCK6yhGWugV\r\ny4NqgWYTDOHWrOo8dlHBpb3zoOU4SnUvPJ4zRNhtsjJ/BVombOuQEGkg3Fhp\r\nNjRA1uBjyAm8EU0XRTtiR8riXsO5bAo1JMfKxHJ45tW0xETiiUwy9n0CA7be\r\nphLl1ixEbeyme5c3HCmtgf0fzYvS7kldM3FsPqWg2AHgYgcJ2NswGeQm/aSq\r\n0W//w7dOhVayQFU33Cw7ZJ0kmZ8uuosAhPs=\r\n=Fbue\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"b9ac49726f85ea8875eb208b68f88dce98c661c9","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js src/preview-page/index.html --public-url ../ --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"cross-env ENV=production npm run deploy","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{ts,js}":["npm run prettier:fix","npm run lint:fix","git add"]},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.0.5","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.15.0-qa.0_1669899451079_0.6014709644242409","host":"s3://npm-registry-packages"}},"1.15.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.15.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.15.0-qa.1","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"}],"dist":{"shasum":"26de5d8dd684742571a239795aa1cee7905990f1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.15.0-qa.1.tgz","fileCount":14,"integrity":"sha512-s1pS3yb43sSDsvdMS9v+fzLNjY0P75AYcLJtpqysV7UNDa0msPJZaiaL5A56mbelOtYgOkikr1XvmVrztoHHiQ==","signatures":[{"sig":"MEUCIQDki+inxL/1T1iJKLPcaMXOhzbwi9kj0d7+MMcohN2YPgIgZaj2i0rirBtQ9PlxZRPa2cTTeyj18B2kIRuZ9HErCiY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":468316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjgTLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriNw//bkDaF40JP+ndJhkf8PCWbSVbkfwgfnajnFhisaQMwl75Qwtq\r\nQJKCZoecDXADA7B2s+qM+spXd8TQOaFCNMNBQQ0iCJjwrMf4AzVdY6fSiMc0\r\nVA8Tb6PzXVt8BU0FhZVEWJYKLimPPdsrPrAMucBpQ1PJXrYr0KfzwWVIn45b\r\n/Oao8E7XCRHAtEujHUbc1Qi3qtBOFcYg4K+JkhPrns/Wi+7g542L8a7dfcmB\r\n2WGv/RrnPolqegYZDs7KD9ix7b8bMZTOKC//YOFBB80Kz6M+qdtwxZvewi0g\r\nglpEhXCRKVZIBnl0Kf9V0sTLWZu1Z99O8CK+J5g6G83PtPBqV5XnWP6p1g+X\r\nYJ3/osytoay9h6kK/XG7cg7+ouupaNey1KCv6ET+shVc69V1ER+3ia9rTYJV\r\nDCgIE3VWgWFfE9Dz9muXf72M0PEby30gxwAh6LtfDchKmW0WUcYfCbpfcK85\r\nWvrI43e+cmFoPud98f7SD1kmQTxVA9zKZcf0j66hdWCOIndzAIZf/fjzJMPX\r\ndsKGBJ8ApDTn9FaY5TUoBWeT8j99npvZnSl5OCFIv3g83NxRDipBofMwIFj8\r\nBscggW8i+vQD0jNQUkfnIFHOysFwqfRy2evKg3cjaD3671f3Ehe92LOjdqdi\r\nk0JO0TGGvLVkP0NDd7vgFQ3egd2hachM50A=\r\n=9rQd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"0c6af883f5f360b23a0595aea0331de35d128104","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . src/index.js --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"cross-env ENV=production npm run deploy","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{ts,js}":["npm run prettier:fix","npm run lint:fix","git add"]},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.0.5","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.15.0-qa.1_1670251722986_0.5000839196741864","host":"s3://npm-registry-packages"}},"1.15.0-production.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.15.0-production.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.15.0-production.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"}],"dist":{"shasum":"c38022b611bc4158a8ca7fcb8e83f5967202fd51","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.15.0-production.0.tgz","fileCount":13,"integrity":"sha512-JIQ7sZNIXYLeo47Bc7gJvYM3ACC5ONKo3CXlWFVaB9dfVPXXYwfrpnJ0gN60L4oTvqmH7qGYzOjI85gQf91NDA==","signatures":[{"sig":"MEUCIFNKovrZ+/b4QX0px921b11aAm32lG+tq2fB+GEItOBaAiEA9NwKvYVpfY6hJDjRCwfyYmUf6A/8LgMk59DAE7lNvOU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":469754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjyCRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2pg//ZEAsFn7PI23/GKuJPXJqM55iS+eFWBlcPhtk+UD0+qZ5+Q2d\r\nZIoFUGW2ijnEYMNt/1TQI3fdGvGxVp8TuNA5nRDry7FEW2AVxxhnFX8WwpGo\r\nR8yT3wpRDLgBodJoWZKHHDMnJoMRMY+tT2vywH365Zwye7giHAuKQkrAGYGG\r\ns+4ubCaBKqkYklq+2keQ17b3dz7pGc95GBlHidI8y7fFv0fZR2Tuu6wZbqLv\r\nx+S1Srb4FnMNHiodMZ9ngMi4Wk+NsP8Vehv8uKIQ49u2bxt5De+6LuRm5ARV\r\no3cfw2gY51vBj5uWWT9AVhtFnvXdYNC+OzS5k90zIxBTwvQYoOEnSnHtXBiG\r\nzuhPgVLz5oGDr68mOAXFStPQBxKHkpIL/31rXYYVyt/6KqcJJYkY5w7MzIdu\r\ndcX8+bhYcB/Iaz+P2mbALc8S/QxVz4iQdFxtms/pWVI2M0CEFid2VX2HiS17\r\nnOtNpsCzbNOMBj/aa9q0u3kD0QGk48ZwfieEN1/0fardG5z30izYJwbwL+tU\r\ng8HqFGCnAZW/w0pfdtM1J46R0LFtzdGa7dALtZG+UdU+L4GKs4Sq06PkbiCL\r\nu4lEdQLMzTm6Nor38xMFq4PD9YPiUZctPAOo2xlHltXJT1i8vZG061lQm19b\r\norEpg2gixKlJAPX1iGqCzzNjiNUCFB3QWEE=\r\n=qR/8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"755a8dea9ddcb03746a61484fc6526ee9a294f49","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . src/index.js --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"cross-env ENV=production npm run deploy","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{ts,js}":["npm run prettier:fix","npm run lint:fix","git add"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.0.5","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.15.0-production.0_1670324368936_0.8563714896784245","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.15.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.15.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"}],"dist":{"shasum":"1df8559a9937e65cf72a68b94c4ee6a2fe2e4d2c","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.15.0.tgz","fileCount":14,"integrity":"sha512-O0SVxliSmd6yEK1FCdvj07WamINQAYZiNe8EsjwMY4hz8whz0se952ytAJEMOyZ0vWiRTFfk3WlQ5q1rQsRwcA==","signatures":[{"sig":"MEUCIQCR/0mT/+RSZ1kHYJHLCNMaBoML7yOxaZb6Jjeknq4UQwIgEf0swzZkwjQadNZFRwLDONewHonmJF2zuhz15HKAYcs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":470080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjyRqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqsA/+IcFQKsHLaH3FDMdI3JOGXQ+8p32sYThFGkUUWjbecNyl3rkA\r\ndf9F3CM/rq6ym3jHEUVW1W1Mmzx9ZBEe+RcFK0mMHZ23b6DmcuHHCv3K3gHt\r\nUA1OCGt8XnWVU9i4bivx/mGSZsPaH74LDhFZMSnlyUtQ0uZ6Cm5PAi/LR0oX\r\nk5gDz2cD5jgwRVJZ0rizQE2P9aOQT2CexnAEXhaWM6ospr+Je52F73VmmzUj\r\nuDUch80pJyha5zIKTtrOM/F6Y58pn8zh0YEDelXe1ZicXxtluSGkOLbFeyBd\r\nRqqbOQ3qYFnrdRy9Wr226tTNuSz3Ou0zOXKCZ8tZ+yYNmng+Gp5fnrvSgUr/\r\nz9I4DEOBY1mAS9/vIb1EGoTHS9iQThWSAP5rTqErogg3+Y4+Y6nBicFl75fV\r\nLneBeX0zck/kaBWqotH/PuGOKBVzgHFlqqItpBmEzFy0nMU3Tfmg2DPG76c5\r\nQ3sFV3AxuAC+PpHKYKipgD/v2Y/o6bP7eAYmyUWR7Gz8rGQMI7yf0fCw+Fb9\r\nXouItE5sQpfu0uDOuWTriUhQemqKLKqjf6otuJrHv2R8AkuW7+2qUpVE2rTC\r\nYFRyhlgA5vrH7ZmG5PIAiqFx7qCvB9W1p1eLj+KKIRQ1LCT7oFEukn6fo7FP\r\nTzsX1hgvu5RG+rWuirQtFf+21WxReJRku2M=\r\n=9Bjl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"2082bcceec78ecbfd07b12863adf0ee868da11c9","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . src/index.js --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","//deploy:production":"cross-env ENV=production npm run deploy","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{ts,js}":["npm run prettier:fix","npm run lint:fix","git add"]},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.0.5","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.15.0_1670325354143_0.35438770577534706","host":"s3://npm-registry-packages"}},"1.16.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.16.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.16.0-qa.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"}],"dist":{"shasum":"e53518dd5cad097f98721c65cfdd45e37c0b6147","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.16.0-qa.0.tgz","fileCount":18,"integrity":"sha512-qiC5wzC/xB9ATFrp1JnJ0HGQZXggVGw4WKDKk9hvjFJ6wyqRuGZ0A48/JPGGcW0hxGKeO3PSjTk7m3zKWpnYBA==","signatures":[{"sig":"MEQCIAoZi5KR4Wv9Vw7Mc9XrYUoTZTbUAn14/vBjr78QsGPmAiBFO8TSONOZWZ63gq7nkEUzN+gQuiARTF+evJUVqrWeVg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1502069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmbnTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqesg//VP+eFatQpwuc8YQiu6ZaTqGVwiOicCw8WhMjSfabaKLxoYGu\r\nyahA8Wdz61vzjENC/5fUHkRN0Ve3kz3HJhW9CqPT9ilPusuG4lnAfQae+n2t\r\nQhoj8ia29jQgokv12t4DPBwA3fKGyxepizzJjG3eBZs5c5NvEO9ZK6kFYVXW\r\ndnfBtuOh9DFtkNrEpvgitonTAIIEZkPp1xhw2h0Mwuas/kiMXLTKb28BYIlz\r\nVh0oM/60vIm4hkpZDFrRMaXvnD1o8PtUfAemfb9QaDKj/Efm+Zad+2L02GAj\r\nC78FnRrF1u0Fw1nom1YXOEFCqyBQO9ZuXjRoXvOVmUoAwof6OcJT4kekWaMg\r\n0Xsy6gsGRa4tk6XxXeSSffUL7/1b4hIW+YEY6puwCJUvxm90ekGwiJ9nLpKC\r\n1i7wjsHhzvvqZvTtWAu9XDemtQN36FB3dPX3iPYpxy6kynjR4fTGfk2w2DVH\r\nbv5hLytZj2L3VBxUIaxyOpPgj4Jsn8LvSPm+sIqHwJWPTWzwM3QC5973+XCG\r\ndXzSjMrNgsRZhNGPDrUvpBX7kzlk1nXT5sFNyUbE4de6KHq2VCYYp2BOyy4y\r\nswK/12klh2zH0H7XxY7hUCeoR7LC2N3qjQzmO+Ublnlnp3UMe5QqncTxmJCm\r\nBabrNNOheiokgw7x+Q9OYZUTvSXMgTp2JpA=\r\n=uZN/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f332bf34ad7d58db6ce9d28edb754dc175f284e2","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{ts,js}":["npm run prettier:fix","npm run lint:fix","git add"]},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.0.5","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.16.0-qa.0_1671018963507_0.9299360898216427","host":"s3://npm-registry-packages"}},"1.16.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.16.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.16.0-qa.1","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"}],"dist":{"shasum":"55737267aeb0472b134e915498966f1a8d8b2e68","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.16.0-qa.1.tgz","fileCount":18,"integrity":"sha512-kUe+7EEoLvO2enpLfgAg2jReQwXOgea77++EwqJsu18n5lU+t64CHEwYIOkxrWIlKHMcXYgOIw4HvT8V3ELrKA==","signatures":[{"sig":"MEUCIQDW0LrCl3cYkc7KyGF0zyo0PG8UMzCSPq4DSDldeOyACAIgSh7zk12ZnKAbR/VMIQzV6DTA4iHxMtcva8cg5VZ5CSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1502431,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmcVQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJ7A/9G2l53RUfw0t6w4AM5lUlzK7j68JlTA5s6BDsaCI6h/xdpR/q\r\ntCH6VVmH6kRce4yDa+brPjbrTvernahEXSoR2G6JloEWHL5BQMY8rvGDMDXX\r\npIC+str+ARO55/b4IsU333zAXxWjr5iYHanBVok2shTqpRYvTo68XMZmIDqW\r\nlVHxc+lf88uWy6/z5GatZ6vhahhLcFs8jLFgmzEHABRwyFy7XNpohYYmbvuK\r\nRW/2C3vY2incucq3isyhDYrgcwVsvB/1WFlajlpFjscAH5cQxSMjHnMJBmbL\r\nVjb+XGv6ZPtO5NYFhztVu/YKovOKWpsHgaiCyo648clw+6PPHUoODl3hLGZ0\r\nd9wV6hzyjEtxZnCza9PEGKy3dds6NJkEEf4N9JSxeWmIqTVYbrbu8bO6q2hn\r\nTAqkQhsTikHC5CTki+n+VvFKT+gBUYk1dyD+Lh2RoxaQCcDudm7JF3wfr98U\r\nJAahoaHT3uR0stvDXVYWOFt/JhuuT/HBdb/BHXaBn4XosZWebAcDYFtxE9aS\r\n5YpiV0NO+z8ScTcemEZL1tRiijTck/MOYU7rM3l4E8XUq1yUTSgao7CBmlnJ\r\nvE2UjAQFKUPPdpph7Pre36Bukx8i4NKWujJvE4MIV0H6aQn9XFq8G/QJNp+/\r\noz8722OsnNbZJ9FDHiPxfvijGNeSN8AC7Qs=\r\n=obXp\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"32d42c09ac647060c38f2cb0d52baaa9caded4c1","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{ts,js}":["npm run prettier:fix","npm run lint:fix","git add"]},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.0.5","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.14.7","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.16.0-qa.1_1671021904574_0.7456934911909634","host":"s3://npm-registry-packages"}},"1.16.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.16.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.16.0-qa.2","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"}],"dist":{"shasum":"811437a8adc1f20ab8fc6faf98dc57d0f912fe95","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.16.0-qa.2.tgz","fileCount":18,"integrity":"sha512-dNJj6tvb3gCTAdUesjfaVdRDeo828AP9o+MCbuZY9K5wqac9BJA7WcrCmbuMxVQWOPq793Ap3fI9dk+VPfWn+Q==","signatures":[{"sig":"MEYCIQCGTPQj4achmoqvfIOrijBjGLonU+NSezho8YIv9JNHBwIhAI9mHeiKZCz73G+Njr7V/ZpNPX85r9zjQcAQ3H1wmshW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1503222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmyB+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsOA//RsVoO1GgZHP7kikRw2HPB/D/1keK33AWAaBapqT7JdjStLxt\r\nv6mwS1cBHs51TgEqjT0faBCJAAv2BfwkRlT0NmSefXMMapXu4DvAJ8ttQ7+K\r\nCxqOSBU4XypeSfuGdmFRCSk84Tb2A0dN9E9pmykn1/pGm30VK4fxYUwyNYVu\r\n7kb8RQmoDqpWyKmf7UoodtW0gV/tVFEUm4POoDs376ZhwHP9Dv+yk/Vc+LNd\r\nt6TqxYf2hmIbEXx/MYNnFODwToveaZDrLHR1bkklzF3GpApqVaOwQk72Uufn\r\ncTTOjm6M88spxWB/PR0ryoYhz43qG/disfaLG12QJ8CweoU4/LWrtjtXci/9\r\nLGkpuf36W6u0Uf/RVrTFztENhlWBvW4J/pPiEaXXbmlezrsMH6fnmg0U6qZ2\r\nDPNDEt0uB8aixsXCCETACUOW+oZLkMAQCEPp7G00P2GestYCm0c+cpGdIqWU\r\nsr44GxAC3DFrQYAUltVjgJSVf27ytdnc0o7RznMy3B9WuFipgBppYKOwTjqb\r\nVRG4oyEXmm0mQIrg2lXq3SG1CewgdxjEhEgCfN4pi6KcxJE2oPNnvQTx5wBS\r\n+wbagzGB3Gzqcixu6/3xfURlLIkEk5xu7ePDo9GxkdGE4UX8PTUknQLE0GhY\r\nhmY3ZnpQiHxE1nhuO1kWGwqZFsTCU7h585M=\r\n=OMMv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"396c617fd111320fa72cb0666720aa253887c8a5","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.2","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{md}":["npm run prettier:fix"],"*.{ts,js}":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.19.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.5.1","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.16.0-qa.2_1671110782700_0.9575849774794309","host":"s3://npm-registry-packages"}},"1.16.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.16.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.16.0-qa.3","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"}],"dist":{"shasum":"99a4fb8dc7340e83dc59ca88aee4cb42cb6fce08","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.16.0-qa.3.tgz","fileCount":17,"integrity":"sha512-AYsVxY2hn8BLKvTSzmhtxDQm5XuNLmg+acBXRRk4VaJ2Q/jwqpjgHIQns1/T13TIO4AEW5f5RVgSnJ1/3Aemow==","signatures":[{"sig":"MEUCIA2ogTJ8QtnPb+wV3H3DVQXoPV32oU2TUZfTpAnLEkwfAiEAwKkev0peBAgNPeUTSms66HSUWuUevTlUGaRleYdmsC8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1504852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjm32PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmouzhAAi9MGAVkZjKftI3QPEVX7XuZVfgk5RthNXvQ/oswjuyZ1Z6q9\r\nTj05wXOaYzd1ahlN8Vif3OOEQ+NZpPBsMKUvv0OzgsxgACPterrXCiJsae9A\r\nD0pnA4b6n1lkLPYiQwU8gQwrrILVeKvEKqn/+k6rmZ7yXTCgVO6i4n2+UALv\r\n8/Xv//+Z0WliZS2UYJ9l1KDXtLs2rq7CGxvkDOp0Q+CKWh35TGo1WBCeobYL\r\nqpHWJCwckXim7QitfOR06Dj8ejzL2daSI5t3eS/uxcK//t9pFRswogqsfeJQ\r\nMYHh5u5QuDrzjALhvnZBLZtU85iaI9dJx2aHGkQYZnMF6y0jkxoSAHOwbbZG\r\nkxVY3sydcCVbuqQfkJH7ho3RtZnE6Ap+rHeNd1BWXfHoK1qH9ExZbOMO/4nP\r\n8mDrHb+g8vE+GyNSEYxbWvUvDeaYx/v6+ThzHpU+/6ha4cOg24b5Lh7836Xd\r\nD/GhlyVIGvjlntM0U2D403zonjOBsEmVFUiCWUZjUAm23alyHlSJwkPE2g/i\r\nx8ljwACPNVa9XH/qnWvFInARku9Web0SlrUIR2Z40soFo0AvRU2pr3220rgv\r\nBUjIGhYzkBYqYt3FYmlBUX3+Qq4Aw2pF/J+dji7hN8O8uOrkgo9fORNnTFLR\r\n9uJ3y4lPe7axT/vkvmoMVbmSdR3xN59xWQ4=\r\n=xVqh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"755a8e4f62bab839f05ede4ad2fc764972fc4ffb","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.{md}":["npm run prettier:fix"],"*.{ts,js}":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.5.1","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.16.0-qa.3_1671134607136_0.9400373114575244","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.16.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.16.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"}],"dist":{"shasum":"06fe1297219cad2c4a30ea8f0663eaff9df89359","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.16.0.tgz","fileCount":17,"integrity":"sha512-strD56MvmzmcyL0c7IH72qxll+hvxynUG2ZugRGoCmgerpi88RId8W3Sk63a0ltKqS6Z5Vs3LUgWMcJS5nTSHg==","signatures":[{"sig":"MEUCIQC3TlGWKLQ8MURHegSsNczl2jZnNf+OTxRXDmTEF94mCwIgKfjx3noIIYcX8YxU5sdhv/s0WpV3Ph3KYly3LvkYKuc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1505173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoHYSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFcBAAm/nZtZeHNBE3IF7Xvs+9lf5+FwMZSiHfX2vkoB/X9T4MstLE\r\nYRNweVQy3j6yJ6xJ2l0Yr65Jx/pB8GRmMMK7BUc2dMDPQhjH+QLnA53wHksn\r\nM8dUKBUPpv3ln5U8Ah3EPlrylt8P/kxO/feT0EMZrTsfw6NjPN3NnebiUQOl\r\nBZHMWXRwY8tnM9Als8rnkbhE9X7V+2GY0MAHO/OZPcMpF8sD+ODHLi/1CxnC\r\n956FQpHhrY2V75AhZJ49z7WiXW7N0d0JX/ZgjNNNvISwTgehBlAV4rKD/OVz\r\naFHsPwTOR1WFW+0P/ovKrAIuZoEUPTQ8klkbpbrd2sg0W2uc2s2Ji3ff3gNu\r\nPE8O3gE3NxOAhXYRAQvQMKFXkaGpUhk0QP03ffIKHBPelaL33vJhIAjGiEnR\r\nHY4l6UYX71YakWAKFqIsrakCBtVGz9ycmtV8TmAxvA+1EhLFLbTZQb3dAK63\r\nGCTRkfXbZuytU+8u4sp/PkLOVhsxpj5HMSEj/KauuuymYUuZs6KZ4do4rEmO\r\nC+mP2EsTLX10xE4QnzPftMRCmW4jhcgtZANYZNBN5r3OcMCv1oSvCmCWH/vF\r\nqSw7kv+iq2Q4wmkXp03Z/Gw4pPby59Vx8qa2A382VMjx8EU27uy7mWSHmooi\r\nhGgGiUNED0MNuhuMUB981DHySk6x6ifxR08=\r\n=leLE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.js"],"transform":{"^.+\\.jsx?$":"babel-jest"},"setupFiles":["<rootDir>/tests/browser-mock.js"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"50c9e8b4df58283d05bec904f20150a161d409dc","scripts":{"lint":"eslint './src/**/*.js'","test":"jest --coverage","build":"parcel build --no-cache src/index.js --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.js --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.{ts,js}":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^27.4.7","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","cross-env":"^7.0.3","babel-jest":"^27.5.1","lint-staged":"^13.0.3","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.42.1","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.16.0_1671460370416_0.3131845305457466","host":"s3://npm-registry-packages"}},"1.17.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.17.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.17.0-qa.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"3a6fea1db988ec3f052bfad696d1007213daa470","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.17.0-qa.0.tgz","fileCount":19,"integrity":"sha512-SaTje5SKe4hLodX6d/6crlZJQJ9mDKYSHT0xGcc7nlqn24wzSwlQ52BH8wwk3nqIWuWkGZ8Z9L1IPpPzTWpmjA==","signatures":[{"sig":"MEYCIQCvbI+eag/i8zrwAVK1wJ/7F+NfWnolWOPHza6EJOheegIhAPjRY/hhq5YICOatXmjw5aErEOJEnj+ocGvDyDYHzSUA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1516955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtzM2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoqLw//VA4CuABdDnM/jiCLAdu2m7mdd4357vZLxmn9hfwG1ET4U8Ve\r\nfgcTKBl8C+n3uPl5EC3NxbTMyTWmGCRPbGwACdZWi8WOretY4xbrNaOuvkO1\r\nPL6SsBJCk8zI1AQKHUnZI3sRh4uJIRVLpOP8EcFIzF/YZ+2s/sU3hcWxbraD\r\nyQoGvahlm7vIcCO40JLEFHOI0h0oHQnaJZ/kymxv5mKB75PiwZJTbf3WknbM\r\nQPhiprxiGctNzcwBDfkOffXosck61jAxyuUhSvAbhyJlYG4x6wW8czBBds7r\r\n/zxytWdDFFR0vXYkpHxIG9uf1uix+y/zMAUYxgqIwS6iucD4p6IBEcEYuK+P\r\nrTeZCzES+xujmvstW5/kxKgihF+IQaNufNlgkuqYGWTaPoovkFzh7ygI2Waw\r\nIjAnXhYa24rZ6979wRNu7y0ZUidNWOmtHevNKrplJaWkVbObCqJLp9Q6PNP4\r\nzDJOTisET8diTreX34Nri6R7E6PwcFY+kUF0LiVBmrPdC92BHzfqiemcxyW9\r\nM/7VmuDG45drkdqOdkEO275YsENCoPlHa4EjfRFof4tJr8RYIm6cQBb0thF8\r\nWxTStk8zNFaBOfMzM4w6mDHeGcWXpx6OPjaLq6tux6cZ9GByAbOm1Vou/mAY\r\nrT0tu0wBiAkT33jWclOjNmCrq6giSjW5Dcg=\r\n=IhxL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"0f1e63d32dd26b2434349b70c6c6e096893e7a6b","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.17.0-qa.0_1672950581847_0.7488124644607719","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.17.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.17.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"eb76394803efd549e99e2cfd78ab93d1e5c93a1a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.17.0.tgz","fileCount":19,"integrity":"sha512-cA2tmNZ1jr3FMKyjzSKPFroxPh7Ly/5WH43NV4dIIlUzVCICRdNocf1Zd5kInUvibja1R+5W3/U7LjKQ3Y469g==","signatures":[{"sig":"MEUCIHACXfbzCRUAPde/fXA/iijoxwb7s13yzJIMQcBFnkcyAiEApK05s1DptvHDQAxOvQMr8WhPIGt1HYtmCJV2eYdc0mA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1517056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvUTRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqXBAAoGH3zYLeTcYc9Y2KrkCqo9/sERs9UZYakXBfmlEoNcyaHnan\r\nGdgOkIOaXVpYbWHTsTKWfSzr4o1vGm3fVKhWYjTNv83UxKSs6yqfVSwEsaT7\r\nbnxaCx/7l+qp2iZa1USY1DvCsYQ8Ux/i6PHl8N08xwqGMXrE1vUe3Kz+wDto\r\ncVSEhssAHtwKI/aKUuJFSIUkc+RyUWiHT27Xj7DNFsZL1gldk3GKHomBcD7A\r\nAgOsvCpuWLLqAZgnwTmVNb8EgItSH1t/5cH6WGE/I3jGxX5wEgz8DATWMP/r\r\n/6F/QI03L14PBTISWgOIometc+QYW9cPRl6nDgHUOL70opjve+IOSZZXuWpM\r\nE/mwo+dlv/aHK38ayXFEkzCbYpwIYN56JUnhPhbNh/0VTg8d7C+/BXbpmDPR\r\nHHilf7YirdFOSh4XXs7XJ03KHA73q/+ie4/TiF5wzxMk5Q6QK2F+howux/c7\r\n85/YM103+cp7eMiwQq0BB9ZsOjSl4ZWP9wOD9ek6Lvf2Jdfu2zeZyzhGbW35\r\nGwz8Auu5LTLfVNFb42YJZd2Ga70qD7xcvPREaSx4P0UImfRpKml8Qwedx5Ig\r\nUpyzunUvsFxWHSvnMPQwNRK6UK00DpmKznw3i6dZ/6vbjwoJLVFusD+j6NCv\r\nuDwR1nowiCgipYOFh/5ozg1CMI3IzAOYVhQ=\r\n=BbJN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"70843c3c8e9499259a99aa0735cbabcf5b9e824a","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.17.0_1673348305530_0.5342491962555131","host":"s3://npm-registry-packages"}},"1.18.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.18.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.18.0-qa.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"bb12584a0ce394a5f073dabac9d7adccffe1e9c0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.18.0-qa.0.tgz","fileCount":19,"integrity":"sha512-7LLpgpZ7Pi/ghyGsnp669Km0PvO1zErpCd+9il3hzX5GA3Xc2Q5LRAkZpfS/qujoFZsV4/oQxgeq4HypvJkStQ==","signatures":[{"sig":"MEQCIErYDtMipKI4hNZqnhoy/Iv8e8i9bXYxXnML5j1mI1koAiBqRhFCb0Vx2gjoENkBEzAF2ftn0eO4TJW7/yH0zbVd8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1519278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0e6GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr08RAAkhU8tMV3cr4vR+uBFxPo9xcW7KwGiusUoJijKvMJZwQMjm4k\r\nMZimhsmBJ9zRIvtN3KF+COlbzS5N0+zVCBWcvRXbCaWjH1NcHV5yanifcK2h\r\n5Ag93IjSd5IkknVxVPr54vJlv1+lGiegxdkOW9+MbZSAh73EPVtEtqHiIhGh\r\nC9pYS4OE7hWJrPgvkLGi3cHRL+j3Qbws8wfD2eRXpJtEYUbbGW3qTpm02qOj\r\n7toTE9UBmK+s1xVuxYWrzZ1vw2iFKI4vFB/vTbcbEYrkGQEnSyvdv6bYDtej\r\nVqlluW9zF4SR/0nt4MFUp2dEUmIDhJ0hoJnnH6Utpo2fQ7dSYrdWykYoK5Cu\r\nkKKE12ZwgKKcxFI3vqhy+IH7YnzQhDdGJMnfmlb562sLwAwJGwr1bkfTfP6z\r\nQLLp3AUGkkkH5FtTxDmYJAJm+sxb+gAWPzBkuDy7hhO/vUNlczQGK1Tjcg6s\r\nLBpoYO0BOheIILf/kRxQIl+UKlzFd1csFMXGHWiWMShfCiCw/uW5CPaWTOQy\r\n9llaGFPDoKXfBkov8Q6/6jsMnTej3MJa9q5p1MY7/iKyiMWKqUNcfrKoPUd2\r\nWKNA8eLpbv0tLXvCm2J54NbMW/vRERUEDqJrateUhshobYVe9gqDWmw5WQFB\r\nEkmXnfv0QjtYPsT5ZFClfWilRMXx40KRNJc=\r\n=pDkR\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"ba67601b8b9a055986914a70a421fa339566fc7b","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.18.0-qa.0_1674702470210_0.878949330740352","host":"s3://npm-registry-packages"}},"1.18.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.18.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.18.0-qa.1","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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"c27279310a3d29dcb2b1be2646c57edcec9756f0","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.18.0-qa.1.tgz","fileCount":19,"integrity":"sha512-f5esC12SuV+EuP4gJ00ttpZDGgdqvcsHkOGxxuM8VsoaalmbJjAPiXPpG2gPxh8T2QKuDeT1NhJ45Hr6XYAvvg==","signatures":[{"sig":"MEUCIQDmndMbgrSU0lpMAu0bW6CXrJCMKBqJkMV0MvtbO4akGgIgBA/Zdy4VCNKkNIie7qMXi2pvRSJ5XVL+8w4TjB/vg40=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1519586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj07b7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1Hw//QUv//ucrVi8nenWzmePNSclS5PprE/GvUV6GfmR1CYtc0OOr\r\ngY4mon7oTdEe3pHju3y7k2Tj4/axZD6etwYCVneVjHN4ExTeKMYROKzVkqvI\r\n58hcXwfopdRuaWfAhEXaXdgNL1xib7+MK7pzKPw58/bR68/cDkTPlrSYvyLO\r\nIvNAaDqnTq8WPeUJRHk46jbommZJNpnFD8KFPM9Qz86hcWYiNIqZ21W8ZOOz\r\nGNGOKV7yiKTRj7VJ5u1aGbXvIqA2dTSBsqMChGI6wNdODiRfcy4BIfFfvndS\r\nC24DOXagkpiE5QTGfUsNCvlklGXIw7ko0F02IPeknIMBhcvzIOSru+6MppjD\r\nan3jDYsUWXkZpuc8bjoTLj/HD+C/SBD52d5PabsNW7yMfyLRYnKOczkNwrP4\r\nMQwkXuGsex0s0HuFjHjXf+bolVCGBdyB7Uy4G9KMF7U151BTnhqq7jTWHWfD\r\n0PWy0ZRO5WxgQeAC+4pokBhbpkMMemH8HDcsIPVP3xhN54ej+DgVDg11l+dx\r\n1ViYvEWrC14PSA3BoYGvtdA56HAGfKbkgvTwsJL+Mpb1cqpqM0JGXdjSt0vj\r\nUgSSPuD3g5mAjR0XMX+P80zFGNQ+RM4/qsAIw7tNLe0bLU25kJhJGNXWLO7k\r\n4RVZwCzeG5oBxntbmwybtCG0erIwoWEVc4U=\r\n=RXvy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"dc76f8be58285765cb0370c3d9ede29819c1c315","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.18.0-qa.1_1674819323403_0.013544824896623231","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.18.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.18.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"3c8693f2beb1904cf154eea080f134b27cf53346","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.18.0.tgz","fileCount":19,"integrity":"sha512-kgIe5tVyheCT8SCa0bgv/4aF1dsOUsn8qhvImq4ENmFSVeQCOaldmp6tVkgD/8U3bPjMbsbI+JFj+UNnv217Fg==","signatures":[{"sig":"MEQCIHics/fmvCwy5O0WTKvoOrEl7QmVZnKFCGypyzDqGcwIAiBFwrLCHhnNUUFFbthBvCleHJUCdcdeipkc5ZAvzuL6fQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1519687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj17GtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqdvg//TLOXQXz9EGJQzQeQZwuAASZKBoVdcJDr1BTCpVu5T1oUqvof\r\ntPBYBeFuHEL4+lPI3JD9A03no0ThsXV0faImm8tWeDiCMH9esH/l3jfo4rGd\r\nSvYGYWRRj0R0hEZIU8s6RbVGbVH6AiwkzP1yi9Sfia6fPYx3NfIWip2jRMzR\r\nQZawgeUegyc+fE7lKekNfaSQtpwzO3aI6m+r++c4oiORXP1nbslyPAWKNuV4\r\n3C7M0h3EIRX4Pc96FBYNig9zXUq5KurdyJEaMIllQEXl3tLiOz/XbcnuHimW\r\nOabeHvzzVC6csN7rqs21L6pXM7LvgN65pMepRKbVo7ZM5Hn4skrMAkYxYHFm\r\nVCM+xSv1YhnBkv3gkYjwtH8oI6/KOXYdo6wjg8I9X757I3idxNcg6m6II1KB\r\nnPxhCMkDyapJRcWSlj+dJwHuDnwPTHM3vgS/4cTlZiTvlavgi9nzG0q1Ci9H\r\nEyPFHRvccvriay3i49+DrBdv9BJeeXjsZbmeB1uNGYAYdHAcwExhOudGvAUE\r\n3dfSDvggvCOLPVA/8fhVvXl3yo6E8ZECHj68U+nZS+UuFPk0CmM3rtx0O0QQ\r\nvl+HqSEysGihMH/enaj+HZ2W14Ip2+asKwgxU9oejxMjweF/64B3novprbMB\r\nQMI4aPt9L299PulDaB0TGSU4sui1gp5eWhM=\r\n=Nm3Y\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"5f5f618531dd352af7c37840ff21165f0043a328","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.18.0_1675080109698_0.4342924816939209","host":"s3://npm-registry-packages"}},"1.18.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.18.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.18.0-qa.2","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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"22c64f79b29595241c9b4f0098d4ae614e850072","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.18.0-qa.2.tgz","fileCount":19,"integrity":"sha512-uhZGWzJ78CvCbYx9YEVtZjqahU0dUJt8sCsEi2mhKdOFfhs5ZF4Hz/CZzy5joYKSZc52ZS8tRZIX5w5/GS+Hww==","signatures":[{"sig":"MEUCIQCuPucFYnIESYCfNFItxWS3bS6CDxabwOMnSrv0CB3lpAIgdJnFE6GpS9st1I9Lft2Kmf4j/1zPosK8bzHPsyC5mDw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1519995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7gnNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqv9Q//crYtojxZIs7QkhPn8oNqP7eClHvYame5H+Ibtp30t8Nm1pp5\r\n5mHAYkCOp/CP+AAn8pFzyh3pHCU+LDzHXDckyo8j5zLexuCXcTsApRWv886G\r\nykLeTUErHBVbu8yAoYNV9As5ARdFudcqrKb9M3m2YdwJrswvKSYiVrkb5I5v\r\n8p5Ylpt2YyUAClTshN1yk5VmXfa02++jjyEB7zQgZdXre1uyzn01Kc1rSBbd\r\nQm6eLIi+pdaihVuk3OQX6nNWK20o2WSRykRPXHrbsHU+5hq53tYwIogm89BT\r\nGIIDnDxVEOdiisH2A/KbYwQoyaOG0j7q87TZdf/2JHiXxzYBFqDPnyZ/n7iZ\r\nVIIeP+LcTBXJPxEDB4IFFeocsL5msWyekY2tTaBPpHY9zJMpvVgePaN7t72x\r\n24/SsG/Pht6Q7Z3vld1tgy+yEcc7fzP4X//Z+W6/0E48ZOSQsulypbejkct3\r\nEAU+JsFZQvLlWIvxvnDBM0xxSOU7UkHpx/MRl0atoX0VbTTfBwp4TFvm0Nxm\r\nqD3ha/ksSKK7VtCR8+92XOAUbnG/xsGPw98jha9/YiK4TTRZUgxOGNPtlmR/\r\nmm6/nfHJSrH/VW6icYym1JmKqC+1YZf4JwukMfYn6A3vzYbX643jQT9Wwmc8\r\nFGb2nVq0CvDKIANR0LDhXUv/AdGVfOKlbrY=\r\n=YPxJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"1294e02405f432ada1f8cb60134879dd317bb93a","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.18.0-qa.2_1676544460825_0.7292323754716323","host":"s3://npm-registry-packages"}},"1.18.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.18.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.18.1","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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"5c16336f46d484b90aebb66de771849753a5bd18","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.18.1.tgz","fileCount":19,"integrity":"sha512-+mMr2zlnU9yIdT5GkLfQtZ6PAVNoPGzsLSrDyl1ZdV4Jw/QdjXmmhcyhcGtsvjeZpXQO2vpiTk9FaOHSCjHkrg==","signatures":[{"sig":"MEQCIDhFOu2vJeVe+Juqj0spYbRV14mAujsHyVVqomUcLoyjAiB+Aqh7lDSlUbVHMhbNHf8lTnyz73+ZTArTjnCleNxrQw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1520375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7kRsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrD3Q//SyBREwh/S+dgoQAcFVwF5uS/+hwcyGX/Y0jqCF+c24rGXWIL\r\n4tS5LoVgOx0tg3EFBRc4TqnV5/WLV09iL8ywTQctDwcfz+lTA7Lq9McC+pFC\r\njyansPHZPzgNM5xY36GJilyi9zrNmGvVN21Zs31IsIEvKmwVxmvkrfWgRE1t\r\nIR+pzamlOn2rsS+JeeAQ4d1XwnH6PGeD8RMCdW9kP62TGy3mcTCGJFzc22iR\r\nfO85RE0F1HS89VXkcTWnv4Nnm91OasD4CR1rY0yP+WGDOmhh+kYDIVGnf6qa\r\nvzIUrvp4LgSXkikJ9IhjhDbxWwt6KQ1sreIyXKECdFnuQryUWxAVw3YJx7u9\r\n3siQGt44DS9dx4H/LFqoxCsJWH8nzWSOYLsenXQJa1mYJzJUQgbL+d3LEjQ0\r\nIE71g86c94CZeluUkurWwUnlutmNmF8d7mnXvbUXDCZ39FW409JesIdVB4Tz\r\nGboR5EuSJXEIkaRF6A/CLURESKONDNSpjR1gyBsGK7W1rWcI1SEg1mqqRXUE\r\n34+2z4iOWUd769rK6aroZJKWwQhardH5Tir9ldW/r2r6m8xu3qI8wZIuItX+\r\nQ++zoy5XtVVwT42Yt7wf/xv5ncMpXnGfGsdLW5ehcLleM7E8Be/v1NpiAkq6\r\nrokS7WQoC+E4+vLapdRg2g6IG/hiHr0ltFI=\r\n=vULO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f17e3fa1c3c598427f685b138cb564e06e13d3a3","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.18.1_1676559468358_0.5750071918036006","host":"s3://npm-registry-packages"}},"1.19.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.0-qa.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"2e09d0addeef5fb61c153f30e863d35ba99c3af9","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0-qa.0.tgz","fileCount":19,"integrity":"sha512-lgbzCgnj8Aa3MXcF3SOL67KfsJjWjt991kfv/Dz/MeV8UNi0Hl4+3ilqrrlZbfvzm+amO9E4cEZeeoLr1W/6Ig==","signatures":[{"sig":"MEUCIQCc/wD/CJnHtV7hI8DtLukb4z9lc7YHVy5M4VI0Rjj5TgIgMrFjoT4kkmOSUC54VftdhNodfKaBmtUq6oYqGN8lkLs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1521050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj84sAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHsA/+O0vlK2O/RmFZ9lFz84gohY2WbNap407A5iaUWQVTJSXDeTVR\r\nYq6Gqfn3bllmMO5YnH6ZWCveXDe6V4BdYNmnXKg1IAuKHBQEdT63y4T05fM8\r\n6qZ0Gqi40Y0/cbHVQu9Cd9JnDclRNp1KDyXoizJSySQhvoPpEfNDBXUFDn52\r\nqft34LjF3gDk++O8IcAAB0kc9Ka2eoVjxjv9pIevFvVNNpoU/tffrFdnYn7s\r\nR/bIlzKUy0RGHx32cOKSvJ1Vbpbj6sXuXuTqNQkIQqSWAZcwnzSUK8aDAPgW\r\nSvK1bN1AFgbrSVnO/MEu+OLOFhNwM++j9535Ce84RI3Td+lwCHADWYIWIBs8\r\n7i4gqsaCaT1SSqJRtepJs6Ns15kLw5V949c6hhHq1EpPZ+XXoSV6Avqv9GEI\r\nIK6WbSOl9ivrPDG+S1cxghKC7w3Mjo8qdUiDRxSOXeiJqNkbmuQ+fOp3IUKN\r\niT/ow/uWfJZzIodD7bv3E02j/qaWLw7Go7wJrviLhBHASdpangOuFISRf9v9\r\nsWblinbrlHKf9EMBbIPwU9HYVhfycUtpBL0Uk34/IyEyQupmw6IG3Esdp1V4\r\nGJEHyVRxFHRxSfa38wPLXvcEZDL7+yOp0eIAzri6OfNmWYFvT93mpy4ruFwM\r\nvrjiTeynBbnW+VtXEXUDJ0qVE0Lz9uQmHI8=\r\n=R6Wu\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"b88097b19fdc35dfc457e3425b46caf92fe21d87","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0-qa.0_1676905215914_0.8116685308246627","host":"s3://npm-registry-packages"}},"1.19.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"c8c8d314b0e88ab3abd07a897f252466b73e927a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0.tgz","fileCount":19,"integrity":"sha512-pl1tkNVTiRu4tzZsmKcjjQv0q8IZvrGdfKvk2akHY2ShEDUQkHaubwc/TVs3KdEavfFPFWe2xdyjSACz+935HQ==","signatures":[{"sig":"MEYCIQDy4VgXsN3+ye+MDY0bfmHDjGinQeax41OnJ5ncXxDu5QIhAJ5+pYJq3XZBdsr5lKgtOrkoOJmfW6tYUuwcBp5+SMXP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1521030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj84t0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqOQ/+MNqn/Hwr7QpPqBUDqbEMiCdP/FJjAExdX2Lr9QIiUDBIvSHT\r\nZ3DXa0mPTtcOLckqJdfQNNBKqhUQiwZuX3R9HsBv9FUviWv7/Mfu/BdJrBzy\r\nUPBZuLRMir7u7L2XXDWJBCXDSHCf91tuWBOvq3n0zmwNCEA6kNm/1LAZIYiT\r\nfFLh2E3PtZqvGA/Wr9mXfQfer1qi9pnm/FerSiedykZYySeTowmR7XRp8Jqn\r\nVH0CJcIqaRIKU4hGb+ujZBSZCRpN7hgWzCwF0C6LYD1unJ8Ki9knF+gplMpF\r\nOqenmg5ZSAYVcFrqtScs23pk9WuojiWxVe/rS9CY1Lh+XhOO7iwW7duxnArH\r\n1/rqML+7hnHpXkQi298JE8Qjyq1i8r7umlQYpRtxahWewvugBfWlZdyC1B7B\r\n9M8LaM2gAu+gxISaZmy8k6lYYJUfexX0bafzSYQ6JUQqB508sXMASX69mKyh\r\nTzbWCMV2lxNPDQRQ3VxWfZ2H2Put11OlKpNkIPGDLwKtF9piIT8CzEqj/OFS\r\nOnkCS4XribErVb1dv6veiIrZREbxr4nbrTvS1udyhMBoalsZNZxpkYHTOeFj\r\nbzG/K33eBh/Y/uPF4hab4Z779TOgpr/XiT1fa8tdf61HYxZ8Dde1uOwsa0R8\r\nVml0s3INfJOE38M09jBCoiZww2yc94uLSRs=\r\n=hBZ6\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"cb3f0682d3de1bd62e985f0af5ae06c834355ceb","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0_1676905331768_0.6624919278923105","host":"s3://npm-registry-packages"}},"1.19.0-dev.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0-dev.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.0-dev.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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"adaf0a98ca25d98023dd2ff65eb614450d5ff5b4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0-dev.0.tgz","fileCount":22,"integrity":"sha512-1GWYM7jX+EhF7qrKiC3DyOj85JUBxHSVjCQPo1UVmx8xSUSf0uMLVVI+M6iox4stJ7QOO4WdUY96abUDSRA7xQ==","signatures":[{"sig":"MEQCIBtgJzutok/wKolCd3S+4TRLJPIsHqIVCaV2W+PlC8vJAiAWcO/Sfw2uJhW9UejB6bAsb4Jc+xXd0S1Aru6VAu37VA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1608708,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9MZfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrB1g//S2HUtdDbu6aW9q/j7DyjcBQuL0m3xN4hG6hCGvmi+5aqdHv/\r\n8WmhvQ0FoLCXOeO3iQmzKqFmFEFFPJ3zX2yJaLyCmYF87iyOXwFOAZgC/NQv\r\nbPg8aJ86sJ0981EEx7EItb6z4ZdLPSXZccDySdFErB7bvMsO3gNegnDoED/9\r\nzCeRhD5nt/73Ip1yn33CeOjxTraQLhtXCGspQuGO9mmJjARaq+NqHncvF6s6\r\nXA0entW1zAVTmTjJzUq/AUfhAr6O5NzXQiejskRJYMIRFQMY8BPh2o2S/g1D\r\n1ofHB/kFzGuRRn4UFRI+tjzwITfTSb12948D7f/iv1ekVYrkCcJEB5cM9wRD\r\n65TsCQS1QaDkfYcCcUoDTdB8jlmkiwDB9XkvZ6fks8Dm6HjB6tvQDB13CH6c\r\nWA2muMVXA5ma4ztSXdKj1hHO933HPyWbqla8JJz6iCNBI73vW6iBFcRFpjyk\r\nDM8mLkF2LffE+ivGcVKPNrSPkIoKy9tkJ1BTPh3xEDVzDVNEwkuyWG1ZJm7W\r\nMyQX99XktDh51UIQvMpOqPXsWWg4Kc3W8THH0EU0BYX2YM91TNK7aOBNpbR6\r\nPeD/Zlvu8uZFrJ12mtasoZHKZatsSuOHDauf8QUSoHnPJw/8wPJ+GIz2XCaU\r\nafYP/rUOzlOojD3Zi2NUTJAtvQ+4SmW2lUI=\r\n=pfdF\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"2e56e4c96f62dd5f3f7c18630105d6e3057a1a9d","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts src/rules.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts src/rules.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.3","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"18.13.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0-dev.0_1676985950938_0.04302145837295979","host":"s3://npm-registry-packages"}},"1.19.0-dev.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0-dev.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.0-dev.1","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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"1cae4e78b15e59e8ab3e9b982ddc5f09bfea7a4a","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0-dev.1.tgz","fileCount":22,"integrity":"sha512-pwUYQhYgN1pz1E24YnUvssHTPdKIPNURd1TZhgFNsN/XUhoLQRTxq7+KmnZUHMuM5usf7xgd6DuEpOZTqbycpA==","signatures":[{"sig":"MEUCIAeKjnKDpmZ5MRUr9FSsuyNo+Cg5UDb9UhfYJKjJrm8xAiEA5z66ey9rwjJvYLXtYXq+X7UhcS+vCXIXFXzHumd3MG0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1608885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9QNSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmphXBAAinCfKyeCTaARIdRqXYDcRKdOSGl/UfhKH2/m1Vme4k/aBF35\r\nZBmD4NzXU6C1A8p+/feXX2QAT0gM5xdsz99oR43XJFzNZgEoSoDIhYDy4/dz\r\niCxORV2P9WWDFLz/lYLZoHkBII+WiJS6b006/6f+7PINxf5v+Siol5ctQT8f\r\nEiFwsi5+ZqPjbHoKmh+Bedf1bw4SpAUt+qxPRrqyJqALDWtnumSEJPphBuUz\r\n9IyK4cQozul/3pdIvduMve5XPr7dmfMwQdWqep9vX5/AXidmyPAGfVXIXDlJ\r\nY5+2HWKF14scjSIxwDUm1qvzetfMmdoe//Xfp0R1lU9BIdjk29ukbdidQ4fF\r\nVhXni1vT07/JmoffUfbP21TDWTs3NgwJJOhH7I8M3WdbGGFn5gwUdxEbtigb\r\nMjaA3Wrk6SE+/pKAJGbEpCnCsXyEi359jOXjQYrixA2AmM67Ay7KmbrNoo2R\r\nym9aH1jtrjNqab5lzrhrNBCYqCyU5ysIjvPFPpp22U8g+ALXDmwy+kbfnc8+\r\nvLXFhhegyW4PmcoWrWjvTqzk39ZIZ7pLrSxABveaZlxWiamg9klKDVIDTHCH\r\niC3PlEIZZ3fate1Q/3uC/PMProne59dx4WbPO2ZeBKt+kRklZEYgZaJ/Ndps\r\nNgR5QF7Z+rZsqXBxwJtjHRPtI8DzjK0Ut6E=\r\n=14c+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","exports":{"./rules":"./dist/rules.js"},"gitHead":"d3aec9af18ed57c277c9e5a8df9fa1d61043879e","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts src/rules.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts src/rules.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"jonasbraga-ggs","email":"jbraga-ext@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"8.19.3","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"18.13.0","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0-dev.1_1677001554683_0.2788320961853943","host":"s3://npm-registry-packages"}},"1.19.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.0-qa.1","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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"67a56d96939e0d11e5c280e3069bf4eca3d50720","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0-qa.1.tgz","fileCount":19,"integrity":"sha512-GjA/um26dXO/MDEAjdArJ9KEGJWfZcec7mllgPz55+3k56frDGrVzfOJ+5boNkc7iJOvM3vyxruH1ea1z0gL+g==","signatures":[{"sig":"MEUCID/WvSyst4Qqnt4Fd5OqVHHVus4XZtxWySg3ohQC5rnLAiEAtTWHJXeWR3icCOfWYjOVZOXU3atAMmbXoNtZEgL6H7M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1522887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9ukaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMJg//XNowfl903BUvvTHQrL9SY6acEx0MoZIFe+kOA85OkOAKvb7e\r\n9hBuLsna316h6sR8dz4S/KTo0Ah+tEdrM0SIoj1QqW/cuJ2ef+6a2yBmeokr\r\nrS35ykjz28ryfEdFpAGCNFmlgXWgnBkuN0aOv4nJBvjL5xSMNqVQyP1M+oUX\r\n022Bpc8pd1D7Yncas6jTL2r8G/9oPMur1nbKeeeYl8tSeT0GWapxtN92qOxX\r\n0ZEPuy3ZhAwobwc5tLcFy0UzMAwZhiH6bu/mJfTpVsmS4brqpZSPD5qcUToL\r\nFO0JN7IViTK/4OJTVA46Lh/O6ipA5J4mImi24bYiBZk54IEjl5kx/sA7BZ83\r\npaDuCgtwXy5IjsobHV0we4/qhpQLDDbA0bikV+B61jbSB9pKmwyFDJtE4vcT\r\nxoo5GI+Sj7fQi2NQ5QufQMPWaC9fzlsNVjZtUNJr8HV0me1DPTWnPZsYUVyw\r\n9GDwiwOhX6k8EjLeJtp36ehQXbn463mL4tml8UuAf2nGShN9zYQlOn56kK22\r\nb3yWXD86LWtzFHRJqtmd44QQwMXiMME1v/sREswTStS3UaCqhJbhhedZcVJs\r\nKChyS37CjA/ZsqMUB3loPxOJ/X+QFNyc961e7cSwYQg+sznX9FGbY0hEKFU7\r\n+W+wkAWeUUo8H/CWQJno1bWu65vxo8/XH40=\r\n=82TU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"1c93f07c31cb0383c8307a6cb70d2d19bd03a7b5","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0-qa.1_1677125913742_0.5684148467253636","host":"s3://npm-registry-packages"}},"1.19.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.0-qa.2","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"5d53217c2b19fcc7714e2444ad69810a6de8e0f9","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0-qa.2.tgz","fileCount":19,"integrity":"sha512-/PcnuulHOCkz5jaX9oRqZrWipM8jSaysr0SubjmPMN18/cxmD7oNF8gjJ2cOn7Qqk4qeQ+zZsw0ERzgh/YZKXg==","signatures":[{"sig":"MEQCIAd4qTvPL5/8rbaVISlmV/hlC9cGfBOE0wVdjO9/QXiiAiAPYluedUqGmvvS150jvK31uk5EVlZZcgOKM2nLbwHesg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1523438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCH/7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpD5Q//W1fTPApgUXruGop34ZdpA61Pn9lbvv22hXcZsDIDA/C+fC1C\r\n+kig8IT38J/C3TqjnS08FRaXGheD8RqloL5TI2T34fc9cf4DH0Gf0wJlSeP3\r\ndDIPToFz+ar3nxKDWXxhr7iV0iQRuanuQ9TqmoC0rZgdZhHshH9+C26JSyAh\r\n1YFcCPlL6BrRGCVaC88EQWKzkNjYzpnf6nuiLqdtA6lAONAKCbKSucnGQOKV\r\nB05747+AWLfnK1U6OmOnKWPttklpWt8bb0yx1VDzQtvi8fhmSg/1tcURRxrc\r\njqkXmZaSw4rOCZSuWIlb7N0wjSgvvEpUuv0hx3ZORdNdsynB9Uvf7+KMh/7e\r\nyiHtvt80hIJ0h26OFTOmotOI1aFHi5cYKnHN8R2s4qUItdXtqlj6Pn+vnnCK\r\n34H1OsvLsdW/xTpPHwQP1Tfv4DTbgGuo6MSew4deAzRqXzsNed/lyiJGeEca\r\n6/e2Ob5Kc9coECYo4ZAF/NLX2w5gz+evzQIfA4SmA/m0sv4EiwwPPemHpkrW\r\nXpZ0XRzm5RTUb8zLGwMERpXWjQAmC3CVlu2PLR3pFiIKZvyJANSC1glHMs6V\r\ngSn2xP+BODnEghqySnGOXKV0Ch+2V3wDstqfyBx/wg+T1rDla2rNra+VfUBF\r\nEfV+gUmNBVHyUNQAZ7qQqQps6/tDZZtF5S8=\r\n=EN1Y\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"d5a2497e8b6ac6d55501bb2f054bcb92a85ade19","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0-qa.2_1678278651641_0.9022005637231405","host":"s3://npm-registry-packages"}},"1.19.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.0-qa.3","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"47183fe03960df29b0e65e973b875f7d78af309b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.0-qa.3.tgz","fileCount":19,"integrity":"sha512-FJ6/OyuKrugkyOUs9Err/tBaMqbVKNuA3Gu81LCiTNvr2vg4gWq149wrC7/Uib1QjDl3Y6+i62WTR7IaCL9TkA==","signatures":[{"sig":"MEUCIANySLRE+nhEGUHurWHZt0wC9nPYyEjDvNTg9PgTICBMAiEA/8/rR/RJ5SH3YQ0GNvF4wyYOqsFv2b3d3JuUTgZ8Nzc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1523559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCUpzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodCBAAg8UDvTjrN1zEA6hG7pCmQRz7N7wrsq2yV2IC5frWd+6uLl0D\r\nsDknifkMWDOEuidk9ld3kyqLO5P49tmbCw0bQGRa3keS3X/q2F5BTaq2b4+p\r\nMlGbFCghtSHktRAdDpyqJ6BsIt3KkYhbbHJ2FpVa0aYgy87shYGTDPoru4sM\r\nbH484JlKnZKXc9Vp1fm4SmQAKJ8b+mb3qROkqEF1K0FSLrqi3rMKC8Bbo2bL\r\nQPI9x3T0myxBUVa2meIqL2/XiWFl4Se1QYq2fAZ6VKGw1x3ymbYfVJc7BnR1\r\nLUs8a2fR5Gay2fWjg1mn5Ns0TK6R+z8hFEHYv/fVC/dWEciAEp4d5I65z52Q\r\nvs7ij4IkbpULGginpBpz5L/bVVmpGEKyo+t5CsYMYuoXmu7iG5AYHREvMRYP\r\nbvQCGh5U78a9UsljzvSfDT22MxU8KVqjw84nBKoYLJ47pA7VB4NRmlrij6+a\r\nZCu8eLsQftx6TLe3l9gY8mMkBIVLwnHcNWQsCy9bn7VlqBI1WTsqxuUYqipm\r\nSrV0tEl0g+9S7kyoezZb0SjpVpaO/YzDVotQyx0b/wSgF0pI/ZbV1Jl031if\r\n7dX5q98J5X8Aq8g2R42bk5rwCOwRyryrFP7EkmDLj1ibtUyr0Gg4hQHhsEhA\r\ngea38leUVuSA4BiGgomJTE37gHdcj7RNAaI=\r\n=jiJN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"8af47f402594028e12c41d96c2d23a142eca2839","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.0-qa.3_1678330482999_0.731130988960979","host":"s3://npm-registry-packages"}},"1.20.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.20.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.20.0-qa.0","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"b83af055a8f220b669ca5dfe8d26a4f34249e163","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.20.0-qa.0.tgz","fileCount":19,"integrity":"sha512-d21oYTPx0p98Tkr+YrjkHZIO6GvuZfNyZ0bd31RewXczO5JREV5fzuNPYlnoQX1W63Cog5hgfgDaPI1ibpMV8w==","signatures":[{"sig":"MEUCIEfFB2iVkJd82m7wZDHO1waz6nD7fbzoWmTrNAd63SZlAiEAggc9z723JuPSdXDEC/mMzZ9FGp7xey3UTgIy/QA0poY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1527818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCU49ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1Fg/9G4flltmKl9bEzhaJZCkESJ6ateuFr94QmBkXLgBiHvuFMA+4\r\n406z4GrZDAv1YD1yykq2LiS40pVnhWLdTx8OuJ8aNG1Bd0HNttiMlF5biNXW\r\ni4uDLrrba+931TiNBWnuJTHbIugc5EScUzmumXMMKqZUqai215gr2z6ZJfjT\r\n2DY82k93HYktkP06EtC5lS9n55Ss+JUeTxQz8Xg4a6hWU4CmH4J7ejnW54qO\r\ndazNSIhX6hUU/+nQskXUabMf7C3IatMNxTGyKMDHMANLOEbbWYOpT/Bey+0n\r\n5ZmrsGSl8hFHdo3OwSaKM664QnLfQGih0eYH7huZyCOwv6Q35eDShZlK3L1J\r\nDmiEvsKMkP5f3nyr+GTaoxbgrlvQAOVt4pc6nOPEeHlgX1jwfiC0FltRQDgD\r\nolYUqMTT7uUZ89ukmgXz8npdnOra4RVQll/fDaj/YQ9bGIgsM9ZmLatvIXgk\r\nUVdWXzynHSUGhOE9XuSJezPqqZuTPp0u7cav/Y8e4gAG2bwowjgDfCCN3ReA\r\nqm6V836hqGjMQO24rB7P+Qhym6js248oG/5R1eRWopuYHosLIgMqCH8+gwc2\r\nbRkveXLk08Emyfrya51H80KtAd5Zju+FHpc1ZTl1NkroDW85+EYlb731bTWT\r\nwSTN+qH4Ex0WRVtDPRkkyopLr7dpqDCiQvw=\r\n=LSrP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"dc15f4a4282538589ca609c94bb312875cadcc91","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.20.0-qa.0_1678331453026_0.9865879138165721","host":"s3://npm-registry-packages"}},"1.19.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.19.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.19.2","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"d82c2e8ba4ff3daa9c562e0e6936fe21dc607a21","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.19.2.tgz","fileCount":19,"integrity":"sha512-B2KKCi6KzMKLiNckQKM45xoGs8EDSMrlVEtNjg45nBo14C5ksWa0mjTckiaFG+JgYcVUavBLlWa2MMTm1op2Ng==","signatures":[{"sig":"MEUCIQDnqUGA+l7h3aezs1pj+3S+qmYq2MPTdh7vF9wqLSdgGAIgcOdwipT1DQtWQZXGatOoT5n2XgER/lS5yXOze4WU31g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1524048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCgmuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+6w/+JnK3KYDFzd2th8QXCNdGGcEDa3H1epmvESOvD0auDBBmseLy\r\nXqxZkwHY1+T68zUqZlVBSwuwvB32Y7+JlJV2RsyE4D8Cs1028Bndo1toh3Y9\r\npYY564f8skUmpFhSiaRfSp09Q94eK84IB4ik0/w1EdVj+8JhbTMkQpSSNck/\r\nZzaatG0eFLbBwy/KapHFmnAv0Jw+ZrMv2GUqXdBG38zVZJDOkdVbwvvNuTsa\r\nS01dehwV5Rgqo5sXFTSATNZ4OPPWOUll8ZXvc754MKoOVjvuUDZjfZOEomOL\r\nuh71pMtm0hKeM5TNnAyI3IP63V5YiGlCWlqsuBI32ZdcqC6KUVbRcR7E3fm9\r\no01MAz69VTiMUVU+B7DA3BAn9fDVt1J9weiGVTvPQ2bS8d9Zj6WGBhj+uEcA\r\n09TUehwsUI916NOLFO0Ju21AmGwYymUOBPuYkLwk9VEars+3nGahbnBMx8pf\r\noa11wnm9x6k6yWmegH/iPHMov7Ezfg+LeVKqsbVxS7v6WZGg4704q8n0TUUi\r\nNCouLMySZZtyDL072Ms/TB+C1ZLyWfOwUPeis8XEqZKiFBPIo7V7pDGk1vQR\r\nHjLOrsJ9dtoccHHakTOyFxuQaH9EIRobnuB5W1kMNkiyKME7xtneNnzRADrf\r\nFktQE8Iq4g1aNuKTyFbXih6nV+W6VSXH+fU=\r\n=CqVM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### Disable ads flag\n\nWhen entering the game, use the ```?w=12345``` query param in the link to disable all the ad banners (w stands for websiteID)\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"28f034d1aaf2d4f723ac9937f19c4143478b7b49","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.19.2_1678379437825_0.19636819575163833","host":"s3://npm-registry-packages"}},"1.20.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.20.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.20.0-qa.1","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"a9af4a01b310ae9e1aa3e9a3e8051422bff2bb5b","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.20.0-qa.1.tgz","fileCount":19,"integrity":"sha512-Gi2fGjVQTrfQuyOPVjvIt1QLY4CVeZZKBzwlv3y7SumLy+sdwMfF+kdtBDHDj2yBYoizwlG2Jf6tLeue2aXjgQ==","signatures":[{"sig":"MEUCIQCrjqvEZO03SWncSYaotSnVTrGecRgH24S5MrM8wD8PWQIgWSx2KcAfRc35z7ys2fq4uG7gkcZf6iipqD/78/Omzv8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1529872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEIfmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQBBAAopGLfz2oljada2gm1C5zmXXvb7xNfHvHpcTplH4mXYkLUVgQ\r\nqVIz4ji6aK29gomZYiOQMihKQLoECoIzP8QlI0haGDcmgFcbUaxdqLmCRUWI\r\nqUJhnbNZs40gRDbHY7GVSm1orZfd7smWk3Y9BghnRs+ezA2fibCrt3hj+GIE\r\nwCAORwGYsVAR4L7hzbfnNLLhOlx60XeaXgkuj+ZtPxeWTEjNYZzNyFMj6uH3\r\nxKtqk5+bwpxhRKW0pU4MnXszrEl9szDhRDRM9pO7pJQ6KQgjnfUTgwTB9MO4\r\n+b3fj7N9zso0W71bOCBz+Xo+pra+NfK5B68F6R9R02eHMffmfS/Q9qI3bxc4\r\noxD+vAVGXGvCFGIMXhnyjv7eGsO3QJyGFtvjXGOmS6GA9hHM7PpjC99Lzt0H\r\n3WFp4naoOCUAeVrYk2k8nd3FI+BLfFcL5PcSADyaC17vZ56vEfIZFTOSI5DX\r\nuR35bv3U3ItuwUipZo6MNQ1hmwi1jva15mIJvIW13MTq5K9xmfNQ8oitLe5p\r\nUhla7e0bnOqOnjZj+S498UDWpyGx9bpv86BUwqgst9j4XHmhKGS0H7YfwVEt\r\nPQzZEQeVD5o1BLMRh04HsGHaxwrVuc/0y7t5nlYa7QXVQhd1o00R2rh1l4s9\r\nLODwVKD6zp+DoWLJqnzmVtZpmVoTuZ+YgXQ=\r\n=Xi1l\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"f5858274ca42bd8ddf6a034e2d43204abb032f0d","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.20.0-qa.1_1678804966246_0.22333014381866412","host":"s3://npm-registry-packages"}},"1.20.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.20.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.20.0-qa.2","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"38345113084be73776d4f348fcacb877b0545be9","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.20.0-qa.2.tgz","fileCount":19,"integrity":"sha512-1r9cKT9hsKcALSUJXKONvsuHXOOxWq9wAyl+1daIv6a1UBm1bHffxx7w2AlrZKcRapVCtqKFu0bKrTopkBhlAA==","signatures":[{"sig":"MEQCICfUn037sodRw2kyMtt0sGb7TsdsRPi1E/JjC2HnH7V1AiAxLULik5h90tbGeR/C6Hgtto1x/9++tLcoR8QylcMahQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1529247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEcLpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNMQ//YpKLXZj02IAQ3skJgiQsBtk+5976OVMfX4BRHOidF0X0N0g3\r\nlxMoAa1cWv+/XW9ZHmsINj+ZDoYN2mwL8bdlyoV43VrtYIKK9vCyej9xzeoj\r\n64BaKkfkSn8otYffpLGp9lkQnOuZuehGrXDYjTbB0uwQDqh3zWiDNEQ33kUv\r\nWRDiYI8do8K4VQ2THMcz5uaC/Lhwj2RENDqHnx9Iu3WX973UOf6enMT81wdn\r\ndKe7ZiOPZ8O9JIsG4uWEsEHnl9Fw5ahVvhR+VoPWUvg1hNw5JbDlOnd6yiqH\r\nVKHXXbhZ1+tOuQpna8xhDok2pxzWUCzoYBEK9PrsC5krQYwdLK06NPJWnsj4\r\nC5Ltcz76OHmWJ1I+TkbL/118938OZIBenGjCwO1vZHLvRLMzcqEabxjCeSDj\r\n902zIS8pHRxGxGw0mexF8rqh288KQ0VTnOJSRse5J8+ZvJaqBl8BeG9jI9+J\r\netek5ntzy49w2QcWbs/+wGBJZ0Mu4AkpV14NYqqwyGdJQYUlTIpahc13pHDG\r\ntP5LLXi8NFIUdLN8ZgT/mcrZ9Gy1OUsUZdYNaNzBlM6DmSs+UCJsJvIP6o0g\r\nRyKtq7eBGCIt+a1GPHfx8UvSwRGlqGfjJy5T5bbC0kahQHEPfZQxbOlCSLL1\r\nNGXH2Dog2n9EwW57dJP7NkP4xRAEl+rtt84=\r\n=1r5E\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"e00b17a4617bced60483ae3aedb88f16ca0cb6bf","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.20.0-qa.2_1678885608612_0.5683919784827403","host":"s3://npm-registry-packages"}},"1.20.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.20.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.20.0","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"01b3c384e3e820daa0b73bc7d42fb6d6c369a0d2","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.20.0.tgz","fileCount":19,"integrity":"sha512-FHOJIB0yw1hV3jJyOeL0dvbEPqBCWFXROPbkJGNI0BBCjgD1/fRGhH4mPqawXDDdC39a6ert4AQRsS7LdpywQA==","signatures":[{"sig":"MEUCIF+4ZAsz6/aAc1YxPmXh91689ox7UtmB4S874zz9VuxXAiEAyYQrhOK67KqhGeRf4qxQksSU57CYvONLacTPpSHXgL4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1529348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEdN1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSSQ/+IigGMkOGCPGn/eIn00VK9zIZS6FcyOyIoa//Uk7SvUeMJZMI\r\n5tc3FFs/ZhRTO99HC6khj9mEjGkGif3BtQ+OHXFbhE6M2uSyCWAAxKnD04To\r\n9JGUmDFpYmxd/6tzOTsZdzWJ775fzuOBjmFVyEzAvEpzdbJbOnMpvARJ3Q6n\r\nvJC3J8DEFdIdnYPOM7IeT4DxWESMvfo8cCbZw4/9+V7GjRQAHP+zKWtEgoz5\r\nQBOLfEdrazrzAbx657LVNxyuFwyYAkBAaQbCCsFh63zXJs/fIWB3K7DAezW4\r\nNf8m3ZYhCaF2jJf8BIn/nug8e66spssQiMScA2BY5LUY2YVzH0WqHEe+EMgF\r\neLTO28xYYLxifTU2EHB2F3xZj3HVrjrWC0Ld3LXVTJ97D7c5jzWyiRGGZmmc\r\nig3saDL3k8TDmewHUcgYrONTUO0xrsCxQXJmGjQujYs+MdHkBMWxbNM5A/Ir\r\nCCluPZczligIc4plQ9vfpYw5AKQgBfHcTt64OYm9W3I9q5Pm7hita2mGqAzB\r\njFGZSjS45Mu5zjULlmxFimoUINfjbPCdDKnMjYquJBhs0JfvVKru4FyWbVd1\r\nMujyBPKDTwX4KVnUg0mg0ZXzGuiSmbNIxzI4MSIZV/shJbURmktjeeYMuOxP\r\n9FGRUGXvNqpxXXoP2LntDJwNBAmisJ8/VPk=\r\n=10aQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"8c9ee074bb11c18b5c076f05299489104c4c235f","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.0.0-beta.2","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.20.0_1678889845667_0.05278950594658971","host":"s3://npm-registry-packages"}},"1.21.0-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.0-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.0-qa.0","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"451a7f52cdb7e3684138794346a3d63a555ebac8","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.0-qa.0.tgz","fileCount":19,"integrity":"sha512-YDEVxd1JQR+64uj8St3t1B58jxLXlCGqF5AaPAiiJW71BuTru2vI1k+6lWpDab0qO7XhSC4aQ2dxuT/eHw8u5A==","signatures":[{"sig":"MEYCIQDRZFX7v+oAXavK4YMzPUAu2PlIYViqYhpcSgX19YLQ0gIhAPO/GgeYbm5H4f74K0hkh0Z+1VkI4e0LCEi0q/hhme5K","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1518796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGce3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVfg//e7e1jIEH47MbNxqkV1sHIlzeeaPuBeuo5rCks8VdUxi823Si\r\nAJwyODAyCD70z3H8pxlkyPC2OyEQ0WXlnQU3uzT5ua4s8uOv9+PqO7+AoHyJ\r\n4fSU7K+VbuzHkiOBBQjCl+MHh4SQKmlaABNuW2lIeQLdYSnjY8QjGC/zszJ1\r\n9sDwidNMLuLo5Nkf6mvPI2SyEc+Y+1C4i32rc2jxtDLq8+shLqjCQ7+IK0KB\r\nDQWC0l6Wxwy6jO8eWf8cJeG3Z27Xr9L4t3DBUIMdZm2TQxKNbOXsIuGyB0Ll\r\n6tUsJEgx57Cj8NZMpjOoCKVmkbETLwtqNgwRpbuZPjY+LZsA26YnY1Xa937v\r\n3m7EWcUnF0UYpRoRanWMt4VDGBYMkqkCDVP3s3dnacTaMrW7oPzQ5q20FYPH\r\nMBx0LMgmGNDp+Kp9qiCoACFnBpIODWvVJBWSnakdRyJPPnOp4HP61Uqumxws\r\n/ZFevfDt36Q2ACky35GTBUGNnT2d76j83LnVrG62lJ2Qv2gI0OFOJEEZsA0W\r\nJG6JCGlzkTIByiAtNLBvyMe8ONX3Du3gV5BGW67sZZPuWOh4WeMZ9xc3E2Vw\r\ntX2kXUbMlsp9aTGRTKP+Ew0W+xQk+FaESHejw6VSs+bUaJlRYKuZXqBYSpzE\r\nYElew5wsu0I6eW/C/4fQGPccgfta7Dr+UFU=\r\n=nLGI\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"288b292cf50a0ad01012e8ba7d885be415bd111b","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.0-qa.0_1679411127422_0.3756275652485752","host":"s3://npm-registry-packages"}},"1.21.0-qa.1":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.0-qa.1","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.0-qa.1","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"67277a0e3b30e4afaeda9ee0369bc79cab05ad11","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.0-qa.1.tgz","fileCount":19,"integrity":"sha512-XgFByiFMLAXGv4oswDuVjnOBGx+g2pHNhXjhBuqYQKN24DkTP0wIGa/U6NXkcRb9TbikKTmTTF1qNyPmxMDkdA==","signatures":[{"sig":"MEUCIQD3KG7SIMF9xh9/kl7/CSsaHWhncHoHkDASOFxylpyKWAIgQc8bfXJV6AHRsR/iWbbxHUXwYRcz2+Eqx+93qmb4GcA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1520309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGxOvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE2xAAg7sXbFPT8mbQ3uQFjUkrNdxCXZckAM8eyR+kQTn54KUBTJnR\r\nsOCTSkV8tGBnfmXeb5m6nRF5Dl2ybbBZ0ReiuM+b9i/8+rPhrI2J+5smWIDr\r\n59GJQjpcLVgRYdi0EOSuYGhMIlzSysrLtA3+1gupKOqz8ToRrng0XYVAWADm\r\nyyNogWWa6BrIbrW9080uu1Cb2lIGBMI/HwGDqF8qgS65lFRURW8W9Df5Q7ka\r\nuZwOiLg11y0nyrlQPRS8OHzW3agsO09mgj/mS6irVeu6e3+LNh74aORrW72S\r\nnhLUit/DSTxlKcbaYZ1zs8WXXfH3C/E35n/I+pORr39lNejNb5KQ6+z3eiGw\r\nIoU2MOMHDArKMn0IpHO3gR2YvpUnka0XjqHiEJaVRdfJao2lo2sExpgiq6o+\r\n33qYEQ+YHHwLBpu0nRbbPlZY1cq8zRz/qme6EBELnBXEw+3Cauz5g3Z6TF+G\r\nAIkQyP7nAXvoC6QaJcELXDAzKREdjXXtcqZu5J79j+AYtFbQG+xOYPwfgGRQ\r\nJctBGj86CoFOBPaLSapGHgZ8Wb8IGn7n03iDp16ZPQfsx9icwaP50kZ+i9nz\r\nL6yrQT3tLYM6hFsce7pl/m3xTx4cClKQ2zW7/JSEkD7tUPij2eDtNvk2qVDj\r\nGg8VBIxM+sanaaRERSqfMyzE1ZLnIYaBTAs=\r\n=0CQz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"c1b32d2efa74301f8e0a784dcb1d60180411d73f","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.0-qa.1_1679496111078_0.23745630405268203","host":"s3://npm-registry-packages"}},"1.21.0-qa.2":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.0-qa.2","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.0-qa.2","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"c38f03682bd7aa184d02bbb863868e13496a95e1","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.0-qa.2.tgz","fileCount":19,"integrity":"sha512-/VFsfY0zHZJHdScRFISISg/Qai5elmFt+Mdfg8itgp6YkOs1QMuMNWKy29bBiLQJqbONQ8TJ+qE83TfJWOaGYA==","signatures":[{"sig":"MEUCIGV7tN9gnU2G1X+tcMbDMIMkFB3rLKyX7ts00Bbmuy2wAiEAlWEOaRW5QBDjy+tu/+xmbx6YnZ3p2G2ek6kmNYvDy7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1522656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIXJXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrAshAAkPpHEwS8+0GUHkvNu3thS1jsAfvZkKEvOpUx08hdPtsWl+j3\r\n7KKO8IOKFmhTLe5a058BhgA/Msm/Af4SuzDqBqF+jUXIcpNfrD87wicXp6zz\r\naTl+xtbufvc9hwboc5v8F5dT102MU6sbaAztT9aTo59AWMbztbvTjZlYe5Ki\r\nPmMnh0HJpnR400W3SxpGACdPnCmiGwHlEcRSsWA4i25PBRuGz15gfYn8jjw7\r\nRHwxfVGr1MPcLr9eiuXMEstZHD1oTblzeTYFdLxs+a6eeI2KUIfhJ+Y8WkBk\r\n89HeIF2c5Z/4GjoazxP0jQvKtinGvJfvZOGHzM2hwiVrtBk6bQy2AlMsghHj\r\ns+rVd2Bjk6OIorN235N1hUANTKb7ZmbJSmeaaVDmwgIJQGaRybMoYZ3yIyYo\r\n4ahm5uJm2gjjTGbxpC9DMBh6MoGLAnHXeEWf6OqmjubsQaqpIAi/fPLn4OV4\r\nFbL6gHsJZJK3WKfmNtL8iGkAZzn0rlgTNc/FzyMGo6Fk7Gr//PDYHtGumNNk\r\n0puK7xaAmVT+X7kUlLpvWXqbucUm7XA2PUILuGRGYO7IJgYF55o6e+0QgK7d\r\nYWLD2LyBaok3GLdKCqaU2KiRt0Nwc59JVDkXVBubiIxO7GQ34oCY/V/1/IKF\r\n5+IocR1G7UIc7TKy6Bf0TrasTQi/2MAuhNk=\r\n=7VRS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"fcc7043d272c21c20bc025766fb310076d4d196c","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.0-qa.2_1679913558870_0.43015744035895565","host":"s3://npm-registry-packages"}},"1.21.0-qa.3":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.0-qa.3","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.0-qa.3","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"0f7a4afa670cbf8c517318af46d2fb17f32ef673","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.0-qa.3.tgz","fileCount":19,"integrity":"sha512-U+JGh3Sr6g9gWojOZ/xe4nMhIY83wLBGTgOU12+CyDe8k2XPpapwjWo18P6rU/PkzEadKTw3B6CgoT6qegtewA==","signatures":[{"sig":"MEUCIFXoZZM1IlJGh6dqQKbQFY54POFVvpgrv6LX8GwbIf+sAiEA2ZaCtot3Z0V04ueqcJ+F+NzCH77imDM4uZlm8hwdSmo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1606608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIX6hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkAQ//V5vc8X1oOk63vZLikL23P0suAr5ofBPVIEVKiw7TiqwBL0V7\r\nDHo7RpDO05ht0UF6ZGue5T7YvxznJ6kDSzBpDe7IIu4braqiI6fo3xK0FWRr\r\nIleWTa5sl8ttr4gdchh0MsVJax4UOxUbos8qWJbmb3wx3E3VLGfS+QaVsHSx\r\ngZeNi32YUB8+/AWxXFGCDjSei+hFCO87qKRtOVIB6oPfWc5S0G8zegbBX7Iz\r\nxmpwogtUrrOhYCBRSWCC5sxxBw+dSsI7TtEKhJ82pvtnloF28QXknEVWapVb\r\n8YS0shBzk4qok/EBSnyKcagnlqGYnwGu8/GPwwBWHLBpyOc1SC0edE4uTd2f\r\n0fhYEhctc8HWsqGVuAWEDxtTFwefdk3mDvOIFpsFmTkvGk6rZu5ytF/W7P6Y\r\nXkf5BiNUaOe7sMKazayD8xGeccwRaaawOcPOMS61jfEp4ebX8ZEfEqnQl7CL\r\ngqWEP18No9Cu15P9CITnOZmGoJvNpOuI5JqTcludc3L4zcZi6CArOXchC0+a\r\nFI9KDfvFPCrncxWjC68eAkLrWBEhKT19BYFaej8XpBydAebqNsGgOhkA4NK2\r\njjHtIG3qXndtpnt+LSOfljNs7jZ0bnLvz7/p8cEc2LT0Ww+u4Tq7y3kzfKmy\r\nV98UJa+V6izRftBr3CEvvC4T6ZI7dhuHcEY=\r\n=DpJ2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"fd05e95b6e05b220da5dccd1eb0c2a6f8da59ef5","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.0-qa.3_1679916705462_0.5468842392189655","host":"s3://npm-registry-packages"}},"1.21.0-qa.4":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.0-qa.4","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.0-qa.4","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"c770afcd7898df5cae4306c79b5f1ae48a8912a4","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.0-qa.4.tgz","fileCount":19,"integrity":"sha512-epYgpe49gKuZqICYRXVZpcSYdjZzZua96ezo4LJjOhM9v7/iDzwOmmf5WsK581H0a5vCtMMhs4fuwkXKhrbKYA==","signatures":[{"sig":"MEYCIQCY0nrqk56YcX322fLskO5BpH+XbfjCGlyfE55XyJT45wIhALqtkc8ACWBAOl3ZLIdoCO/ff9l7MMw6QFur8AmJ5NrH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1606624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIsosACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrT3w/+PFYZGkImabkJQ6p4vd6gTExIle053bGDR4QFy6ljw/G1I4sQ\r\nopVWb1nswM7ms5/f5E256JURxciKASi7v43p2RlhC7rdIF+oIpKpU1l5IYso\r\noLzRHHTAFmCqefr0EM5nUg4W/Swn6xOVhQQ8Ao3KYSP5ZLpjjDC9PbHXK7N9\r\nonoYh7Xezh7+s+k7A5F6cOq55p21CmDqnJYxTYkIA3ci3ejqkBFnicjcr3/W\r\nU8Mm+95oLJKEZmb9ouSRr8sPrejyuJmu8XUBciN2PK/jIBdyltxCC13HCJ9d\r\nR1R10l4reKbqj+bC6kxGOPv65Sl0wPBjPcAh8aamnUpjLT1h2qNLHEbMlxap\r\n14vK0Hx2jKhMjt0ktrzeFhDGfScyZygVrNhkLRb9y4LJgn+MFyQE4jR4O2fi\r\nhCQbQp4ljA62BdUWdLY68liJAqE8EnwKGZ90rZyKUW2YSCnL9R6gbP+2so7o\r\nOLSPD4rg/PN8TLW7FCls+kvlS042p7VV8XvLVi8olQDhXwzINFRtm+eFtMZV\r\n61732RIPTX7D7Awwp51eWdu14qHdSIqVnomi5ut/UPuzvguIlsj1lm1o5rVQ\r\n+8g08mATVqZZjQ3FrTYcJI9oOv9KPEm8EWvpoEj2pq3NkXm+KIRMbm2DTn0P\r\n+e4fAtibHnS3f6BssjXuh/vUx6Gtn2AQOHQ=\r\n=kfib\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"16ac268d6e1f40c17e80be6c682ed2f927fc1989","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.0-qa.4_1680001579799_0.4738394609167491","host":"s3://npm-registry-packages"}},"1.21.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.0","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"bdddd5c203640287ad695fa3956c252ba7bb4842","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.0.tgz","fileCount":19,"integrity":"sha512-WbiuCaUzJqCmGSyNc6bHSqD8tLj64YgdhrdKL1BkW7DHcyiZ5EsuWIxGxuFpd6pI7TOV9iU3M9pm7gkHwC934A==","signatures":[{"sig":"MEUCIE9GOYAx6IcFvtTiYJ3IN0Ixg720UmhYEyCSCPy1apQ/AiEAwzAaBijcjzTgj12IitaZkMF8gjJpcqJPDxtKoTWS5O0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1606725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIsy0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqK+hAAho2Xg0e9ypysADKRryQn0//cGNH4FrmFM71qJ/6zp3yjLse6\r\nmKVTMMteK1K/hqD7fOY1JUiza4GataeOemQyscSfmNcD6o9XOoObgnvd4riC\r\nIxJQWkgpr1LZuB7i3+AIQrJPeiNJjRC95GwT6wacWLRAbs1ijzy5pV27FFN8\r\nsNAAbV2FP6ZY7NAWnN7ih3kV7k04Z3pc4AjlyhWWFPGLkA21p+JdapKM8hou\r\nDSRai6kB+s+408b+isxlZsKKHxikA3CuEOzP+NSemhGhUL+lAaaEVb8suSQD\r\npZ8huhVd/VddkIYH0+08ar2SaLbdsIK6d/jLi6glJpZ1Iwx+7zJd7vkLe480\r\nTy1uMdSn6XrLqUTCbHytUeM6o3HNs/CV4MQTsR4+1DuGBN3Hcd7XWa9wcs9k\r\ncya6WibD6myo6FJmx3igOHKylDIU+iSFRA7kCiDsHMEnHoJbrS3pIEyJOtVR\r\nkPMOyDJb9PRcVOfTxpyYAw7AmoHxUzXCMlqr4i8Yvsj1RnJYMP/7XL0XsYQJ\r\nCHwxeGxhQsjzbpIDU3X6Dj5p9dzZuuzY2Rp1XvIT9DVt4gKS5oIB26NrhIvP\r\n51L7JYTNydpri0+mwIfZpv4/xclz+BrQiAolSVe6NwoSMFCeddo8f+o5WaXp\r\nT9/XNOvpD5F47iqDLNbtEytpeIaqoNOneNM=\r\n=WZmr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"a3a83d65cf0e271115c237d26b1f66c475697edc","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.0_1680002227826_0.4613561383616014","host":"s3://npm-registry-packages"}},"1.21.1-qa.0":{"name":"@goodgamestudios/cxf-ad-banner","version":"1.21.1-qa.0","keywords":["ads","banner","cxf","cxf-plugin"],"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","_id":"@goodgamestudios/cxf-ad-banner@1.21.1-qa.0","maintainers":[{"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":"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":[{"url":"https://github.com/jonasbraga","name":"Jonas Braga","email":"jbraga-ext@goodgamestudios.com"}],"dist":{"shasum":"4131ac8dfc501f06622376570ecfeb01c023ea25","tarball":"https://registry.npmjs.org/@goodgamestudios/cxf-ad-banner/-/cxf-ad-banner-1.21.1-qa.0.tgz","fileCount":19,"integrity":"sha512-mGEs/RJiQ0YPq/TxImvoD4ypuIoL9lwMg2embi3Egwtn9kXOygATOipWGB2mMEJGYeT6XN56y3thBm0vMBZ5uQ==","signatures":[{"sig":"MEYCIQDBE2ztQ5tF+Kxdknnbm2nD8eatjLb7UIceP+NRCKRn0wIhAIKDuCKBqSK++lDkTEfbOcrpouatrt7ViLSD8h8RaziT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1606852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNZQ1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGmQ/+KMs7ELA+oTyiHT+ozLZQYFcf0Ukdmb8g9GdhrguZay8YkXJX\r\nAa2RWPVQuRX02Jb8XiVhvqzzG+V33XU4LZhKfd9IpLx4thrncp9b6SISM7/d\r\n4nimmgoM7dOfSxLN7JHCHRyUQLN2zVqD7rbnU+0GsIP0l1ekr+ez6oKIUVQv\r\nzqI4PDbLJkAYjkTfLKmePuvTuXznTbUmXUbORsQKAiM7swS7RPpMWmzOIjer\r\nNwu/DcZDooAL6XpoeiCLW0J046Ad2zmU1uvfi1TiLI+UwVzVh2Emi6DkfBMV\r\nnd3E4IuBoZzF1zoyDvWudwz/G8aFZxHqY3oCg3l+y5Ipr7BL84QZpMzvfrmK\r\nei94JaXhmsVqV3d5qHNYLjkknLX0hE2eSsjemXV7zIj0t43RC2HEoeGhJoX5\r\nMWi5lyUbOFCBEgEEVy3x9n5GrOKWu6HSpmXjDM57NE51wkZktdJo8RAhLGF0\r\npK8BhssNVeIX77mqj46IXC5bW/ClM7cCoXe+y7e7UZO20U/2r0Ja7NunUA5/\r\nnBHmzfRGflQIx2MeTTF2a3fmONnXH+1RFT6E8Q7GK4GUfrF6YueTKBPwHM2j\r\nNsa1YdgZvlRBZ/kNtTqdldWtvV+bIT1XsXhYf9rSkIZehMJBEGdwoZV8PEIO\r\noWNJSfpZyJvNa5BAhVbgsgNjLSNf5XosYQs=\r\n=amf3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/tests/**/*.test.ts"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFiles":["<rootDir>/tests/browser-mock.ts"]},"type":"module","babel":{"plugins":["babel-plugin-transform-import-meta","@babel/plugin-transform-runtime"],"presets":["@babel/preset-env","@babel/preset-typescript"]},"readme":"# cxf-ad-banner\n\nThe cxf plugin for displaying ad banners.\n\nWhere we control the place and rules for displaying the ads.\n\n# Tracking logic\n\n[comment]: <> (![alt text]&#40;readme/tracking.png \"Tracking logic\"&#41;)\nhttps://docs.google.com/spreadsheets/d/17czPDnQWeU5jY1f_u1TwUiW9Bt3zKB7sCnGVvlDrEmA/edit?pli=1#gid=877512723\n\n# Plugin flow\n\n```mermaid\nflowchart TB\n\n    subgraph \"index.js\"\n         initJSONLogic\n         initTrackingModule\n         indexFNinitGameController(initGameController)\n    end\n\n    subgraph \"game-controller.js\"\n        gcInit(init)\n        registerEvents\n        gcLogin(loginHandler)\n\n        subgraph paymentHandler\n            userPaid{validatePayment}\n\n        end\n\n    end\n\n    indexFNinitGameController --> gcInit\n    gcInit --> registerEvents\n\n    registerEvents --- gcLogin\n    registerEvents --- paymentHandler\n\n    userLogin([userLogin]) -- check JSON rules /over level10 etc/ --> gcLogin\n    gcLogin --> initBannerAd\n\n    subgraph adManager\n        subgraph initBannerAd\n             googletag{googletag}\n             googletag -- yes --> enableAd\n             googletag -- no --> loadGoogleTagSDK\n        end\n\n\n        addGoogleTagLogic --- initGPTLogic\n        addGoogleTagLogic --- startObserverForGameWidth\n\n        disableAd\n    end\n\n    subgraph htmlManager\n        addBannerDiv\n    end\n\n    loadGoogleTagSDK --> addGoogleTagLogic\n    addGoogleTagLogic --- addBannerDiv\n\n    userUpdatePay([userUpdatePay]) --> paymentHandler\n    userPaid -- pass JSON rule --> disableAd\n\n\n    click loadGoogleTagSDK \"https://developers.google.com/publisher-tag/guides/get-started\" \"Google Publisher Tags\"\n```\n\n[Google Publisher Tags documentation](https://developers.google.com/publisher-tag/guides/get-started)\n\n## how-to\n\n### enable DEBUG messages\n\nDebug messages are implemented via [Debug lib](https://github.com/debug-js/debug)\n\nFor enable CXF-AD-BANNER debug messages just run in a browser console\n\n```js\nlocalStorage.debug = 'CXF-AD-BANNER:*'\n```\n\n### Test locally\n\nTo be able to test the project locally the easiest way is by using a *proxy* and forcing a redirect of the deployed code to the one compiled locally. To do that follow these steps:\n\n1. Run the local project by running the ```npm run serve``` in the root folder\n    It's going to give you a local link where the project is running. e.g. http://localhost:4005/index.js\n\n2. Open the game (either staging or live)\n\n3. Open the network tab in the dev tools and search for the json file where all the plugins are being listed (usually they are called {game}.json, e.g. empire.json or bigfarm.json)\nthe content of the file will be something like this:\n```json\n[\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-announcements@0.19.2/dist/announcements.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-events@1.21.1/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-webshop@6.20.0/dist/webshop-cxf.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-tracking@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-error-handler@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-dialog@1.6.1'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-fullscreen@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-shop-zipcodes@production'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ia@production/dist/bigfarm.js'></script>\",\n  \"<script src='https://hotpkg.com/@goodgamestudios/cxf-ad-banner@production/dist/index.js'></script>\"\n]\n\n```\n\n4. Identify the ad banner plugin link (in this case the last one), copy it and enter this link in the browser (it should redirect to another link and display a script code)\nthe final link in this case will be something like this:\nhttps://cdn.jsdelivr.net/npm/@goodgamestudios/cxf-ad-banner@1.8.3/dist/index.js\n\n5. Finally you can use this last link in the proxy application (e.g. https://app.requestly.io/) and point it to your local script\n\n6. Now just reload the game page and your local script will be running\n\n### Deployment\n\nThe project is being deployed to npm, so pay attention to not run the incorrect deploy script\n\nIt's already being deployed in the pipeline, so you might prefer to deploy there than running this local scripts:\n\n```\nci:deploy:dev\nci:deploy:staging\nci:deploy:production\n```","gitHead":"a6cb16a95475bf66ea3bc7be160cffbc94551434","scripts":{"lint":"eslint './src/**/*.ts'","test":"jest --coverage","build":"parcel build --no-cache src/index.ts --public-url . --detailed-report","clean":"rimraf dist/","serve":"npm run clean && NODE_ENV=dev parcel src/index.ts --port 4005","deploy":"standard-version --prerelease $ENV && npm publish --access public --tag $ENV","lint:fix":"npm run lint -- --fix","prettier":"prettier --check .","build:dev":"cross-env-shell ENV=dev NODE_ENV=dev \"npm run clean && npm run build\" ","deploy:dev":"cross-env ENV=dev npm run deploy","prettier:fix":"npm run prettier -- --write","build:staging":"cross-env-shell ENV=qa NODE_ENV=qa \"npm run clean && npm run build\" ","ci:deploy:dev":"npm run build:dev && npm run deploy:dev","deploy:staging":"cross-env ENV=qa npm run deploy","---formatting---":"------------------------------","build:production":"cross-env-shell ENV=production NODE_ENV=production \"npm run clean && npm run build\" ","ci:deploy:staging":"npm run build:staging && npm run deploy:staging","deploy:production":"standard-version && npm publish --access public --tag production","---ci deployment---":"------------------------------","ci:deploy:production":"npm run build:production && npm run deploy:production","--------- Generic scripts -----":"--  Generic scripts --","--------- build & deploy scripts -----":"-- build & deploy --"},"_npmUser":{"name":"stp_ci_ggs","email":"stp_engineering@goodgamestudios.com"},"commitlint":{"rules":{"body-max-line-length":[1,"always",100]},"extends":["@commitlint/config-conventional"]},"deprecated":"WARNING: This project has been renamed to cxf-banners. Install using cxf-banners instead.","repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"_npmVersion":"7.17.0","description":"Ad banner for the GGS games","directories":{},"lint-staged":{"*.md":["npm run prettier:fix"],"*.ts":["npm run prettier:fix","npm run lint:fix"]},"_nodeVersion":"14.18.1","dependencies":{"uuid":"^9.0.0","debug":"^4.3.3","json-logic-js":"^2.0.1","@babel/runtime":"^7.20.6","lodash.throttle":"^4.1.1","@goodgamestudios/cxf-ready":"^1.0.7","@lemonstand.org/unified-tracking":"^1.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.3.1","jsdom":"20.0.0","eslint":"^8.27.0","parcel":"^2.8.3","rimraf":"^3.0.2","process":"^0.11.10","ts-jest":"^29.0.3","cross-env":"^7.0.3","typescript":"^4.9.4","@types/jest":"^29.2.4","@types/node":"^18.15.1","@types/uuid":"^9.0.0","lint-staged":"^13.0.3","@types/debug":"^4.1.7","@types/jsdom":"^20.0.1","@commitlint/cli":"^17.2.0","eslint-plugin-n":"^15.5.1","@types/googletag":"^3.0.0","simple-git-hooks":"^2.8.1","standard-version":"^9.3.0","@babel/preset-env":"^7.20.2","@types/json-logic-js":"^2.0.1","eslint-plugin-import":"^2.26.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-unicorn":"^44.0.2","@types/lodash.throttle":"^4.1.7","eslint-config-prettier":"^8.5.0","eslint-config-standard":"^17.0.0","eslint-plugin-prettier":"^4.2.1","@babel/preset-typescript":"^7.18.6","@typescript-eslint/parser":"^5.42.1","@goodgamestudios/cxf-events":"^1.23.0","@goodgamestudios/cxf-runtime":"^0.3.2","@babel/plugin-transform-runtime":"^7.19.6","@commitlint/config-conventional":"^17.2.0","@typescript-eslint/eslint-plugin":"^5.42.1","babel-plugin-transform-import-meta":"^2.2.0"},"simple-git-hooks":{"pre-push":"npm test","commit-msg":"npx commitlint --edit $1","pre-commit":"npx lint-staged"},"_npmOperationalInternal":{"tmp":"tmp/cxf-ad-banner_1.21.1-qa.0_1681232948805_0.8771255210476689","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-06-29T13:37:15.471Z","modified":"2025-11-25T15:08:11.754Z","1.1.0-dev.1":"2021-06-29T13:37:15.603Z","1.1.0-dev.2":"2021-06-29T13:57:04.343Z","1.1.0-dev.3":"2021-06-30T05:40:52.822Z","1.1.0-dev.4":"2021-06-30T06:31:39.123Z","1.1.0-dev.5":"2021-06-30T07:49:28.037Z","1.1.0-dev.6":"2021-06-30T08:31:38.714Z","1.1.0-dev.7":"2021-06-30T14:33:02.790Z","1.1.0-dev.8":"2021-06-30T14:54:00.553Z","1.1.0-qa.0":"2021-07-01T05:39:52.293Z","1.1.0-dev.9":"2021-07-01T06:46:44.796Z","1.1.0-dev.10":"2021-07-01T07:40:12.261Z","1.1.0-dev.11":"2021-07-01T08:12:41.618Z","1.1.0-dev.12":"2021-07-01T08:24:19.267Z","1.1.0-dev.13":"2021-07-01T08:40:32.725Z","1.1.0-qa.1":"2021-07-01T09:10:46.653Z","1.1.0-qa.2":"2021-07-02T13:51:18.822Z","1.1.0-qa.3":"2021-07-02T14:06:05.094Z","1.1.0-qa.4":"2021-07-05T11:37:40.107Z","1.1.0-qa.5":"2021-07-06T11:06:10.206Z","1.1.0-qa.6":"2021-07-06T13:58:42.597Z","1.1.0-qa.7":"2021-07-07T14:26:56.786Z","1.1.0-qa.8":"2021-07-08T07:14:16.477Z","1.1.0":"2021-07-08T07:28:30.460Z","1.2.0":"2021-07-08T10:42:25.553Z","1.2.1-qa.0":"2021-07-08T14:21:01.248Z","1.2.1-qa.1":"2021-07-14T10:49:29.417Z","1.2.1-qa.2":"2021-07-14T13:11:58.922Z","1.3.0-qa.0":"2021-07-15T10:22:44.820Z","1.3.0":"2021-07-15T12:37:31.720Z","1.4.0-qa.0":"2021-07-19T11:56:12.395Z","1.4.0":"2021-07-19T12:27:43.274Z","1.5.0-qa.0":"2021-07-28T05:40:19.273Z","1.5.0":"2021-07-28T07:58:44.163Z","1.6.0-qa.0":"2021-08-02T13:25:41.550Z","1.6.0":"2021-08-09T04:34:32.946Z","1.7.0-qa.0":"2021-08-11T14:05:44.280Z","1.7.0":"2021-08-11T14:22:22.333Z","1.7.2":"2021-12-20T09:12:56.735Z","1.7.3":"2021-12-20T09:30:57.678Z","1.7.4":"2021-12-21T10:51:29.572Z","1.7.6":"2021-12-21T14:47:20.099Z","1.8.0-qa.0":"2022-01-12T09:07:31.453Z","1.8.0-qa.2":"2022-01-13T07:22:50.758Z","1.8.0-qa.3":"2022-01-13T08:20:04.962Z","1.8.0-qa.6":"2022-01-13T16:04:34.641Z","1.8.0":"2022-01-31T11:34:29.143Z","1.8.0-qa.7":"2022-07-05T10:47:39.931Z","1.8.0-qa.8":"2022-07-05T11:03:30.418Z","1.8.0-qa.9":"2022-07-05T16:10:49.637Z","1.8.2":"2022-07-07T13:20:41.432Z","1.8.3":"2022-07-07T14:20:18.318Z","1.8.4-qa.0":"2022-08-01T17:22:43.704Z","1.9.0-qa.0":"2022-08-01T19:12:43.929Z","1.9.0-qa.1":"2022-08-04T10:30:30.589Z","1.8.4-qa.1":"2022-08-05T17:47:22.027Z","1.9.0-qa.2":"2022-08-05T18:02:01.743Z","1.9.0-qa.3":"2022-08-08T17:31:23.678Z","1.9.0-qa.4":"2022-08-09T16:38:14.055Z","1.9.0":"2022-08-10T10:40:16.843Z","1.9.1-qa.0":"2022-08-11T11:54:55.972Z","1.9.1":"2022-08-11T13:15:44.621Z","1.9.1-qa.1":"2022-08-11T15:24:04.445Z","1.9.2":"2022-08-11T15:59:13.291Z","1.9.1-qa.3":"2022-08-12T09:32:52.030Z","1.9.1-qa.4":"2022-08-12T10:26:58.578Z","1.9.1-qa.5":"2022-08-12T10:43:18.924Z","1.9.1-qa.6":"2022-08-12T11:15:11.658Z","1.9.3":"2022-08-12T12:28:32.501Z","1.9.4":"2022-08-15T11:46:50.441Z","1.10.0":"2022-08-16T10:14:49.411Z","1.10.0-qa.0":"2022-08-18T15:56:10.971Z","1.10.0-qa.1":"2022-08-22T10:17:19.019Z","1.11.0":"2022-08-24T10:57:43.501Z","1.12.0-qa.0":"2022-09-08T20:04:23.406Z","1.12.0-qa.1":"2022-09-19T13:36:09.321Z","1.12.0-qa.2":"2022-09-20T12:14:07.004Z","1.12.0-qa.3":"2022-09-20T12:18:50.169Z","1.12.0":"2022-09-21T09:09:31.221Z","1.12.0-qa.4":"2022-09-27T13:52:53.950Z","1.12.1":"2022-09-27T15:05:43.059Z","1.13.0-qa.0":"2022-10-04T12:51:55.223Z","1.13.0-qa.1":"2022-10-12T11:45:49.733Z","1.13.0":"2022-10-12T17:05:41.071Z","1.14.0-qa.0":"2022-10-24T02:27:41.794Z","1.14.0-qa.1":"2022-10-24T14:33:57.752Z","1.14.0-qa.2":"2022-10-24T15:09:42.907Z","1.14.0-qa.3":"2022-10-24T21:42:59.112Z","1.14.0":"2022-10-25T11:01:16.751Z","1.14.0-qa.4":"2022-11-03T15:00:03.916Z","1.14.0-qa.5":"2022-11-07T21:53:43.101Z","1.14.0-qa.7":"2022-11-08T10:32:38.702Z","1.14.0-qa.8":"2022-11-08T11:32:39.478Z","1.14.0-qa.9":"2022-11-08T11:45:07.872Z","1.14.0-qa.10":"2022-11-15T04:46:53.746Z","1.14.1":"2022-11-15T11:37:17.133Z","1.15.0-qa.0":"2022-12-01T12:57:31.356Z","1.15.0-qa.1":"2022-12-05T14:48:43.177Z","1.15.0-production.0":"2022-12-06T10:59:29.150Z","1.15.0":"2022-12-06T11:15:54.425Z","1.16.0-qa.0":"2022-12-14T11:56:03.713Z","1.16.0-qa.1":"2022-12-14T12:45:04.808Z","1.16.0-qa.2":"2022-12-15T13:26:22.934Z","1.16.0-qa.3":"2022-12-15T20:03:27.355Z","1.16.0":"2022-12-19T14:32:50.587Z","1.17.0-qa.0":"2023-01-05T20:29:42.102Z","1.17.0":"2023-01-10T10:58:25.765Z","1.18.0-qa.0":"2023-01-26T03:07:50.501Z","1.18.0-qa.1":"2023-01-27T11:35:23.607Z","1.18.0":"2023-01-30T12:01:49.948Z","1.18.0-qa.2":"2023-02-16T10:47:41.081Z","1.18.1":"2023-02-16T14:57:48.559Z","1.19.0-qa.0":"2023-02-20T15:00:16.053Z","1.19.0":"2023-02-20T15:02:11.971Z","1.19.0-dev.0":"2023-02-21T13:25:51.136Z","1.19.0-dev.1":"2023-02-21T17:45:54.917Z","1.19.0-qa.1":"2023-02-23T04:18:33.994Z","1.19.0-qa.2":"2023-03-08T12:30:51.837Z","1.19.0-qa.3":"2023-03-09T02:54:43.215Z","1.20.0-qa.0":"2023-03-09T03:10:53.291Z","1.19.2":"2023-03-09T16:30:38.074Z","1.20.0-qa.1":"2023-03-14T14:42:46.502Z","1.20.0-qa.2":"2023-03-15T13:06:48.994Z","1.20.0":"2023-03-15T14:17:25.882Z","1.21.0-qa.0":"2023-03-21T15:05:27.668Z","1.21.0-qa.1":"2023-03-22T14:41:51.319Z","1.21.0-qa.2":"2023-03-27T10:39:19.005Z","1.21.0-qa.3":"2023-03-27T11:31:45.700Z","1.21.0-qa.4":"2023-03-28T11:06:20.048Z","1.21.0":"2023-03-28T11:17:07.993Z","1.21.1-qa.0":"2023-04-11T17:09:09.045Z"},"author":{"name":"Sergii Sydorenko","email":"ssydorenko@goodgamestudios.com"},"license":"MIT","keywords":["ads","banner","cxf","cxf-plugin"],"repository":{"url":"git@gitlab.goodgamestudios.com:cxf/cxf-ad-banner.git","type":"git"},"description":"Ad banner for the GGS games","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":""}