{"_id":"stencil-quantum","_rev":"49-cf4a3531b4f6631754f2e7b5f8869e2d","name":"stencil-quantum","dist-tags":{"latest":"0.7.0","alpha":"1.0.0-alpha.17"},"versions":{"0.0.1":{"name":"stencil-quantum","version":"0.0.1","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"79811df6fc1c91ae081dc432e9424752beffbe0a","_id":"stencil-quantum@0.0.1","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-Dkcvc3u8ZkjWINSA11PsyA07W7JllU1UzhsnzGshNCeTUgm+dD5hTWW191NLlpBRQ0v1J+7tOi5jIrgi4gw+IA==","shasum":"110c66994f8c0fac609bc19c036042e7ea7715bd","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.0.1.tgz","fileCount":78,"unpackedSize":756338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwA96CRA9TVsSAnZWagAA3g0QAKUwFPcbZLs+Vr6xU9XW\n2LQyaI/SqfypTC21qo2deWZHeCYeixbfvmpiq5e8rMkVxpE84sE8hVXTCgk4\n2qwMyxDvuoMhzcKGimEtQ2sH+MSrfzV/oOCIhhzShuGdsqLk/G/sIVpB7jhs\noWpFbJ2YL9mhzJeo8cIdqDu6CLOhMxzGIIudWOzRv0uSPuN1ndRtZKvZnD9q\na5DmaMoF8aQb43D02lPnKSTnZ8rHUErCGWrlKCM3XfPwB3WsA0PPOlCfzMCf\noXvBRGLxKhZ7zi1jg5vp8xx3wGgVwYQHEiTj3IWz85/TmqZ9SsKCKnXV5iwm\nQJhzyGYTcGsaRJBQ7BDMjzjh7vodlgAmHxbxSU5HNUwUEsTyJ6nL7WghhuID\nrx/75XYcMTBdCagZElesPGfvE07aZ0A7L2t3m9tbV5nc1hM4pf0wbCCgxlXI\nWJPS8uXvRNCFbY4S3+RaCwdaBXmH6vrxQwrcVW/e9doZtTkL0jbAGY+Qw7Hb\nfNcDvQFoddnJrDQBltlrFH5wlJZqaroJQK3o9M7mB8s5pu2CIzDw5xPvdJfb\nesjH4loo2HUjQe3u3A5rvsvRjJeCVcoQtYUKxlXRwgn8WEqI3ngCGOlvoOL+\nRg7ZByD/YjMkbwt6Pv09w3v6XVFYwNKIlgha5w/MircHIDJjiHPYXuMal+CB\n87Wq\r\n=9Tij\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICjti1K9mg/OaVf6djqCdDX8jhp6IV/+vJ+PO5UjT17aAiEAoaiHDGEc2J24qOmeCxf3wNdwLw+XNGHcGEYJfZ4wBHo="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.0.1_1572867962453_0.28924790993080496"},"_hasShrinkwrap":false},"0.0.2":{"name":"stencil-quantum","version":"0.0.2","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"84412fcd9e53b5069fc3e599bdd74eca03a32f32","_id":"stencil-quantum@0.0.2","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-4ZIJgBcrsl8r4Fgu1hOyOmFzcQJOBnZ6YbA+S53dv38Ob+HeOQoClFEkDVwwoc0iunegReIrlZ5ksFqRM6eirw==","shasum":"37e1325086dd3929a9507a3b17a41e96416e9498","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.0.2.tgz","fileCount":78,"unpackedSize":756279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwVcJCRA9TVsSAnZWagAA2M0P/i+sfCt/hTK0iGZRu/4e\nbWFv46OQtDiDVFaGlNJYnneVxFDXMD3Xg7QYPa4VgPl8Cu0vpCzQayPHP4K1\nwCx22Vh5SX4QCnljT3zrseQiI5zAOrwLitwnl3pAHKZawAs5FR3UmA5DtY+G\ncF/nBRBbKlnXYx9yfgPqbZOQIhp03W96kq0ViNcc+rffhyOkP1J3UIj8SR1W\nBvCLfrdW5nLYKNU6LHKUPHZozUL1EbQcHS9Syi96TyXy08jsHYwUE6D1jd+0\nP8N0v1YMV7Smw1sRweO/roubte0s1ZAhzyRnP4wiyLvbnLQED2yF4D5uFL+G\nlm6h/a+THZNcWprT1E0mx94PHP571zkaQbjiGtwIBzJjzdiR4lJKSRrljD+T\nDGxhLnuF+3sKTDaz7XS9CG6MhiAgezzkAK1jeEZKWPBEX9AO493I0B1EHAu9\n3nl+BWWW1E3OTTvJ7kbFj/aVR641Anh4gPJ9BHjVchPXxWgApQBEhwU/7lch\nttVKUBuFlzQeRSGjfTtUFrbGzWSo1iIWvlLvi2qyCZMfQca6hIM0c4NKJE4B\noCToyGaUM0h1RsyAlB9sN5m/6BKH+9a+5Ra2tX14Fdxu3zyE74JYb7jukyc1\n2wHQLPF/f3+1yA0Gb3GdnbXAucmocEphucce7w1BranIUD+JWQTGV9+Xw1AK\nqfG0\r\n=KeNt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEbfmCWo6VGAYyYjnUDVaqcZ1Fh2bGQTy2Ll6P3UMp5WAiAbsUInKVdXqzJHEUlbPjzwJqAIJPUZzPU0K2OZ5kzVgA=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.0.2_1572951817005_0.6853174112878289"},"_hasShrinkwrap":false},"0.0.3":{"name":"stencil-quantum","version":"0.0.3","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"955b5f06a90872647803dfb171af3f60b88f32ba","_id":"stencil-quantum@0.0.3","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-7WvbGCzdOjqY1cSNTnS6MvIscUYUXxjA8P8rmNtvCQrqDlcZhZ/4yhhI4vBmVCNQ3Ta9z2digbJ40V4Re0RMmw==","shasum":"4dafbcb765837f20c0ed341671c3c2847ae18f38","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.0.3.tgz","fileCount":78,"unpackedSize":756993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwWO5CRA9TVsSAnZWagAApRUQAKUhIjQvp3X65h53X1sy\nsv0SXOgMBQB1IrDBFloZGZPY5T+kk4cxz8xXj8XP7G17mxpYwn1rR9e6pR8+\n4v6NqPq1/367NcO67Zi1lDdvZdFjgdNb8OsNnC0QUyKjslva9Yg+HRK340av\nl2LwlOVgl+HfONCW5FnqiB+pSuF43T/55lbV9P386LIaqgCXtzH4n9qSW3Yy\nLNZCzf524fymacJ0RFart0562WAoaaHxm0zVQ43Faglguehj8ZG0WulRwvWy\n0McOAq/bJ4wpD41G4NclONVIRVvTe+d6p7t52G3tITGP7LV92Ug3LN4rEcx3\n0UODIM5OTalFa6TThgCKr2oqziElZFEWftmEMS3F+B6//czXzFqkyGqSjMPT\nY+nmHAXWdFZ3c6kluVj3NJPJOoJGtrloD8rNglpznzYsbEJ/CvTrAfraJzPi\nD9BECm73gOMFxfLHbqYGOERdxGwzd9gcSM3RqfcVQ/mGKk7Bux78zhDqZCX+\niGNilynA7mq1DznFpNGwUFrA7F23cljkpNbjeHQF6GL/1BcafduSdjwmkU7C\nK2l1t3zFsnWAvbQlf1uoBqCUIeo1u0HZ/ihuUBVRQDfCqSrKHhVVqxw89yy9\nh8t/g4Gls0ItgpBuKoWWxZYe+OkeDqf8x/7c/p9mfdte3ZkPl83UlK2KF3rS\nX7Yu\r\n=SQYZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHRGkK5O6/9zJ0ebYRkASbg/Whx3MroVuRT18h7gWp8PAiEAoOi+1kNmhw5wozIqw97136z0vvkuSFL0Nqggivn4ji8="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.0.3_1572955064621_0.04282178151327143"},"_hasShrinkwrap":false},"0.0.4":{"name":"stencil-quantum","version":"0.0.4","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"340cee1f07c00e8e94c386993dd594aa8be33982","_id":"stencil-quantum@0.0.4","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-1ZRGUisHxfUdWZ9tlU20vQkB03+seRDmBsGFoa+4r4VbcFBIlM+wtLJwo0e9gHcjaY6bhRnE4zDIVEYmA5Gf2g==","shasum":"3f229d0088271c74ff27456fbb56da6df8548a61","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.0.4.tgz","fileCount":76,"unpackedSize":756779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwpAxCRA9TVsSAnZWagAA4GcP/AmUKm74AZyAmrbadTi4\nYtnREO788sLFhuFcIiwuZ5Z3vn6y10YXowHy3SaIqTuNcIvxNB/OgSEytCGz\n/1YSOfDXthh2az1K/TC6jh+ys6J7POwukdXqkTAD+UboHzssmd3UFD6WhHdI\nNzr6hkoHKo3DheJOnyoQy9D2t1DiMAqsIgtRaAGUhWDT21hlRkf3e4nyS0bS\nfaXUYRdxq/TuJLRoJdpKpt43R3FIY4JrjvQUXvsNXbZ8/jNLTSJt8onRdhko\nvw5jHHp0/YyJD7ymN50P4buis66VraKztLbS7x+aXncbF+M+VuXKeWi9e4Le\nQSTwfHKle9snL0YRqGugEAZPG6fraQQa3/b7TLQJUwYpfgC6C4E7oH1dkjgm\nrQ5OtBGVXURX5Mlkz8oh9+ydLAxjS/+wXi3K7xRvb4oTxuSB9/QEdnc9gyV5\nYAa+HtTh+MQ26Uue22eAp+f/TEjStkzzQOHzTdS3nC5AlWHzh+O4G/TlvWQ1\nWyYvvqaiVaL5hJSDbboV94dmukwbatKF6Fhc+Yj+xuTjOoBH5eKHZBt+quV5\nkfjy79415eS00r3MlFfRSmk1qNYAF1YgpfQ2axrwHM9ykY7I/p0B9F7fu3lT\nSSKYnU/RJqrebNgI2c/PRKTeXVa34pI3vzTb4RgDiUcz8YdLuCmL85FBt7Fc\nrODW\r\n=E9BJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBu6oFTJxwm+tltt+jJi4eTkQug+m6+5Od50mBCpdr+IAiEAxiHkUoiFGMWZ6XHcJXqN+Qjy6KMcJ/8aZVRYCU+gVE0="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.0.4_1573031984873_0.8373397371266809"},"_hasShrinkwrap":false},"0.1.0":{"name":"stencil-quantum","version":"0.1.0","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"6814ca57f92f0aeb2460cc648d425ef3fd9e9862","_id":"stencil-quantum@0.1.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-5qmT5lU6vkjmtzu5gieiMcNPY2TIqgnpKc4rjeDLlIbORhxBTi5Yc5k9VAbievtgZGopYRMquE3bG4eg+shc6A==","shasum":"29d215e9edd308444b6c848db27ed782d1f5eda9","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.1.0.tgz","fileCount":45,"unpackedSize":351852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxCA+CRA9TVsSAnZWagAASqEP/iV2O2epaAHJUK/beT/c\nuATqE2TRHXaY6CIX9OW+4fR0T9zzoyhlC/yoHWenT2onVWeFI9hT2GgWhPmc\nhbYSKquv1zVUUceGuvpdaD5iRQaxdIoHJp4fC3KWDonaWvLFiJ3/Z4ahCUxJ\nPc+jc7Xk/sWTZJf4cSerO37ZLauyCkXiCYVRifyR9g/bee9ZrO7w/Adkan+V\noTZGQcBFn21ewUL8XsOv9piBNsG3gQymu0rHdlwrX5k47U+SH+nW7AYjWn3K\n/Y0rnlnRv8Lij97t64+53l6d8KWezVznCk1W9Z/0zIHDgJodVZ4e+UyKkoyC\n/BJGWIV/Cg5S4VTWFgOn3Ymspc3jtyJ9HiFziHJ8SjCf0QkYEhjFh2zbv1fr\nFy1UraA3LUMQ/lQCuDI26EYPPRTPCCXzcVecbBmoZoyBACzanKa+rZjPYs/6\nHawJGEKPU+i4WidzWiMlSic7lXjbiupmcfQ0hPkWw8UGzM3+NHfjTRJ9xTod\naA0Re0ub39l45c5EAZtP1tY5nyVB/ItVABtybquU8pNIR/d9O63ECzDPKmM2\nfrC6fjpIa1cdMvnWNMQP6dBCW4MIc8hDsBm3fKK6PTlPQFrQVrp94Up7PBv1\nAPe1NCSqPs5fs/xRc9eYde6fuwS7bKceNXE33TF13qm8yx4AQToD/O3mZp0g\nhUOY\r\n=HDpU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFa/GtZXDwisikht/XMrV1IemvLeweWbCoEb3FsmB/W5AiArxbmf4kOEq5CESHh46do9+tNF6nGmsR9zRvif99Jogw=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.1.0_1573134397965_0.6014501013698084"},"_hasShrinkwrap":false},"0.1.1":{"name":"stencil-quantum","version":"0.1.1","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"4090e500c7c7a485365782228d352f9bbcd135d2","_id":"stencil-quantum@0.1.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-lQYpn76z8M1JdToow+8Gc/rQCSpYZt56SBytoCrbU/1+y4ajG7AR6Rwr5jQd1D6WxvFydmHsDk+XSlJ1JLJomA==","shasum":"ac4a9d255900c15f6cb4d5ef5ab0ac27c6683490","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.1.1.tgz","fileCount":78,"unpackedSize":754829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxCXjCRA9TVsSAnZWagAAKSEP/j5UPd0HrMnqqZfD2HVU\n13pnpwNmvuoARNyjiAH6FjTxSO4qmODo//9P7Qt//H6JMw/igWV7FkZu1AaI\nXFjKzQSJ5xFS8XFNUJDjdckcesrjmIRbzGxIjnFx5rtHcv5WcQ1annKo2zPm\nZnxLUXZhelXP4jePSFrcHazOyAXVbeyCzfwEaNlxWRvb2/P5kg8zcEsR7byv\ngPRMdACqZrHEEcuAWGfTv13QO4Sk5cDKo0AmSab1/UmdS5hXCk/rLHGVvRJV\nOmjttt4N4SLrwjc81YD8wY3SVB8Qs7z9GlipU7c4O9GQHjQH/re+mwM11XgW\nQmAEAFIaBQMl051I9ZDgW07UNsBbYvLNEtjiol1BXppR1EE1KKRojl+fF8vu\naeHGFpyFt4yKFSVnNlZM27KevK+HD+MfGyCtfXWm9M2k4XqPZoB8YBBx1gfd\nZe2sEnzETgiwPVm+VChjVQsiQexkqJOyKwY+a4JawNvc6QL4oEF8a+YEtJxC\ny4ZBt2nxxm8PVRgfo7gvYsBs0ITpHwuWeLuuKxZinlxJLR9/0p2hf5zHS2lI\nOAjTTnktuvckwaJ7CZEyzZAyuCp7xVaS/3cD6ZkhzGF+gvdYkV4Qoixs+c7m\nayaEiUhbmcG1kblvxa0YLizhJxbbkq6lbA0nupfkc/nS+n3Vy0uBU27oJg91\nUPNJ\r\n=AwUf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/wdK8Qgeot8KszvBZdwNijhSx7iWFhOePS0aHaNmvBQIgd/FYpR/2RMgYs5f7p+LBrEKYt1D67apFDx8/mdCu8YE="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.1.1_1573135843541_0.28296542483932696"},"_hasShrinkwrap":false},"0.1.2":{"name":"stencil-quantum","version":"0.1.2","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"5e0bc1b705060ab8c5d92dae30af04bdcf5c9d24","_id":"stencil-quantum@0.1.2","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-wwVOUfp6BAM7FEVJUSXe1SHr1PDrXB6exxJf+itBNH1FgQSATSr0QkskowZM9HSQzuoIR0NZy+y3FKc590Ze1A==","shasum":"ae134597e9c2bc82165cd1cfb2eff6d484f05a95","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.1.2.tgz","fileCount":78,"unpackedSize":754720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxCo3CRA9TVsSAnZWagAA3u0P/3lgdAk6TJTNV/kiAeDG\nh5essgZKnRAVYnwttZ8W+2+8qcnjZ+qO4Pe06775zaR8q2nmTl2uFq/k/d6c\n/TMySJQy0yA903iEMqoBvvlu+ADAhoJc6pUbHf3bgSTc/hv3vw347t+jTQf+\nVON5M2Z3goBTlhpeWbDaPyfZpW7pXEIaIPHpTWpbLRE2T8ImRzMnE8hqqwVZ\nroeKMenwJcTzdM1ERWIOy2HN2YXV7M5dkB4IALIREVq6IVZuxRPQj6HAD+h6\njgGdi8GSUgkR58q/1irWLEamk6RJabRzSGt6c3Yl5vFnoql+IMfjJLYn7AM/\nwGOv+iIznnlaJRJy5+BDw26VQU0JfTO5t6ze92ZevBaQOcSUvrB8mnGn51Pp\nCcAsgVAJg5/9XG5SKpCRLrAMwHBUiOiwf4rKVNKEQVAPgiNPKy+hbRqRyw/f\n9E+RQnRsserj430mp91764Bu6ar93ITy38F67nEYUKSph4+3snB2dBNKrOuo\n6gJFGxXDEc0MMYFX4oRMtbk+GOczTwC92hFBARbsbxZgII5YltzUFCz5ttzV\nLWwNv0Cn73JWcsMMvCL6oSU1hxHmz7wLK2vnvZ1y4D/2XSIWPku62Rww6ZP9\nHbn+ktRwB9XV4Tk1VkagmATsVYZVDRlLttsxgfEUNpENOiEQJ0VMh1An6Wz/\n5Pr8\r\n=SkpF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2Vm20ICdvflO86kNxTKFWJCGXiBeEmB4sl3iQ5PNrwgIhAMlzFodHZNkpxsJLw7sCn288OwLG/047/Trg2Djm8ySU"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.1.2_1573136951145_0.2798071462049454"},"_hasShrinkwrap":false},"0.1.3":{"name":"stencil-quantum","version":"0.1.3","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"4213e44be46d5e4ebe791ceb2857fb4e60527f74","_id":"stencil-quantum@0.1.3","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-jWVMFKAKsDXhXlCNeE28FxH/LQYpyVNvJv9IBbNrJD69PapqwXGTRlahrK6EDNnRe+CyXN5k+XsHLZQ1oshR7g==","shasum":"4c8d93b4559dbb774d01cfadaded80a2795411be","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.1.3.tgz","fileCount":78,"unpackedSize":754919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxC5CCRA9TVsSAnZWagAAYwIQAILr/pEWgYIkL3utTbDR\nE2MZzmsK1+/NvWrCv/Ax56+iqvCzzm6NefuXJP8CuqFmcsN4Ro4FE4i4vzF6\n24n86elsPPoMX2C/QUWXZ+jt8Zm/OiJna0XSzDJX174vqCYs9oakJr0VFaeN\nYurLwVdcs4qSh+lXe0Vd6QqoidcziqGPxTqnPHM9FqP84cc+KA+5ev+jXhr5\nQsjSjbrMZnMBrGt3xT2XHuX5fojqyd3AmgiL96HFjwSPyTSmSGd9xb1TUzGN\nDMbrN85CaqU2KyUivJK9/I0/UrJERGeeQdNFpGTFIEue7PApFkLFRpwEB8UO\nbZuzK8ZVOxjGsOFECPIUlTlOqhOsSNcdeQiDfZw9MUT40x1hqYL/2MkfgCTF\n4kPaGINbF8aXFWdAw5IPB2vHKuZkJIN8VlQ12ljvZbyFIWfyrJ8SaCKZaivY\nWnPTgtlwjH/ZJRE95zN6fbevZJnIHOnf74Ls74i808hiFxHJxKj1bxt6MxjZ\njzvxGtHHwDAnbalVSQGVxkO91z3ELW1s1Uy9cK/hqt+1sjD0EL5bX4qq5ewJ\nFlxZoIw2F3WwE6OL+NnwYyjGpuLebLGr4GRQZfIfXCWY+zuI220iuRHu8p45\njI4x5ubVyFURupoM/Es0PyuU6CP23haR2hLjPsCrAHHd+v1EjfDN75liqbea\n5VON\r\n=OOPb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOr8pq4KjHH2jp9v6FF9YTgnl+k58sW/rjP3Ds0T9Q3wIhAPhYtj0Rt+E94UQly3HCss8DZB9cWS+UyiQGQnSxXnzQ"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.1.3_1573137985836_0.2626631389013252"},"_hasShrinkwrap":false},"0.1.4":{"name":"stencil-quantum","version":"0.1.4","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"adccf3c460e16aab8071102c2b6645f7da8ade24","_id":"stencil-quantum@0.1.4","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-IvYdT11QBC9d3yShnTikuZB3+8WzwONt8vD7obtW6gwT9gYRXn+9Oh4PQ3Lubi5dkmt/5BeHcJylTBpnwuE0xw==","shasum":"d78351ee1609586f25fc92c604e3320cf7c96a8a","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.1.4.tgz","fileCount":78,"unpackedSize":754921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxC6aCRA9TVsSAnZWagAA/YAP/iUpMxoofmgvUqOo4Wt+\nCQOeJ84k5KCxyQBVZWUDSgeEbOEKr5UpAMw4/+UEYZZkQ5r+hWqh7bhr9FqH\n7SggkpIXXcA6Dfhx0M1N2J14F/6IjmukmSj/B8ZIpwIa7+DDlBLxEeD4KgbU\nz2yTfw2+tjstLm82LS/AMoBqyOQiKHb8xqnamhIlqmITvq+LvolsT+Z1edhZ\n8/T13ymwgxL7UQUV075kd45ez1YUH8RzKqxtWa834XGptyu5x5w0Vuzif5bu\n/IZEZHHvaZ3cL1XJWCStDVqltrBQwr8m7Gh4PE1/sJ4TweeqPVYE+M2jWSW7\nlG061ObHbo0NLG9ywczdGVxy6vnhd+D24aBhSZflxha9KfNYMpg/fNlYQjyd\nz2Er/52VMsVp4iDi4W2fKwLcPmn3g1FZR5KUCllQ6vx8os3DpCiNZ4ZF1lN/\nsInCUH3BniSdFRXNwH0JgVmijMJCY+UEKdoDzyEapz8RJFljHSqiy8QYpYt+\nz/dTJi6MyRjIexpzGoBDWPZ/lF0a8G0tsqdpqhk9+Mk7v+hwMn/zrPWMjUJ3\nhK63hybXr93jMgfutOHW4j6BlRUL1dEZSI7GzOTtc2Ku+eQ5uLS1bInt2yRo\nhjyoycVhE+cpBI6Qt9dI3NqbYjugZl2HHvXoRZVrglhr9JZ2FHQkW76rnLWc\nMUSF\r\n=KNxv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBWVR1GiaZD9TxwpIy/pFetJVWVMdvojpqsnNRlUoVPYAiBpsmqUcYf0FwlcBWwcY9QZUjcagnMXaRAWE48W40w/yQ=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.1.4_1573138074117_0.17900513877829272"},"_hasShrinkwrap":false},"0.2.0":{"name":"stencil-quantum","version":"0.2.0","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"f596e80256cbc7449a6f54994579d1d3f2fad13a","_id":"stencil-quantum@0.2.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-qAgWRC+bxeTI+YOCnJ3zolDXxzmQOMR3AKmfjvb07Qbb5xt6xVo4OO20DzaKqy8JCkPrWRGSDjDNDwaeo0f5wA==","shasum":"54ab30f7403bf4efa46a0912d561d5efa43c356e","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.2.0.tgz","fileCount":80,"unpackedSize":766673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxP5NCRA9TVsSAnZWagAA6MEP/1u+Z8R9cKSvROmpZsWc\nt/NEAE0jA4etJExsY+pgWvgDJ1pYj7lQiP+sh/E46v/qGLgLChngCDlkWy92\nnp8PDPNVi8hJlsq670FhGxANP7k3laCMJ7BbBDwiH/4J/a/Ccj35jWNq63+Z\nx1uL6fKTYpSGWlZMeITOcxQH+//uWOVyqJACu0kR7XnFkYS1207RbWWVJHLb\nLD33qDbov/St8319Qq8/lFHqni7yoQaZIExr16AfCDQ3ZXOgqdh7zHrsr9ll\nWyHnfnCj6tczOP+0sxxYfciPCdZoCK8NZPhDDjzUxzxuiHcjZyEWKDq9Z17m\noNtax1gA9EOjbe6NdlUYkd51f6rQ1j5hIFQx5it8PoSaRU5fnKzc+7QE+MxA\nLG83HG6LChslYsYVPBWIoqCVtM1UDWYEgH0uTVV1JfFVWPg7mmGFy1aZoBEy\npAcy73nXiWFozlpkjLM/wzRXOJoje1++UU0GZZELIoWFIq9RlnL3IRkuOlA6\nZnZZ3GrnAsjF15hKN6XLJ/XpV1QRJ11dnBwBg80ioDiPgR/tq8yDKUi+fqcF\nbv5tnpZECye0Clp2hw2qM2FDDqAwu+6yRPAP7UjMVGiLud8xBfWNCzL6jMn1\nCXb/COrdKnPkjYS3T1I4l08qTQpX+1M3/LpnP25XO0alE01e0PUG1lQRyvtO\nieuB\r\n=aP8D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICr7gSieTaRnSJxsQSW79Q9yfqImDved9zWdh/mhGN1oAiEA5DrTxxtfjI99KIrnhpZTRY5gdFgAnd5WmDrdihfDyV8="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.2.0_1573191245063_0.3772103039205523"},"_hasShrinkwrap":false},"0.3.0":{"name":"stencil-quantum","version":"0.3.0","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"697f7d811b3a43a0fc77b2a023911b5dde5b40e6","_id":"stencil-quantum@0.3.0","_nodeVersion":"9.4.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-ktcA+DB1/NwtOuVJ1oRhrbaOxzzEAd7n/Sv8krM0rsROVclb9wjInhuKYQfNN3i2Wsl0lFuY2oJmPzxz2bGHNg==","shasum":"6d944d2709c69e1c2b8f02e2bac93ac19e4b78d9","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.3.0.tgz","fileCount":82,"unpackedSize":780797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx4JlCRA9TVsSAnZWagAA7aQP/REaBjen59g46jdMowEG\nxCfMRSfZHZJuRf1EeICqQ2KKXLFqUF2MECyHKIsvHcRmLMjKMjPjc6lTnSZc\nd3VxwtWNqXC5TtvtlP+g/a4qA31rgtXNa//uZOdW7iG2Ejz0gQk6g7Fnu9J4\nXqrz03mbHas/Uuju3euCK33znDsvj28BUEnLjsftBwwiCgNrRey3Pl63//Il\nxYRsclqxeRoIeJhlfAuIDvXGl3Xrs1io1eS+V0zIW32vGO8eauSeHuqTdQX+\n+Oq9tswCIUl1xBtNOloLOAqpPHetOA3nvzq/6wbtXsKRmRDLPHtd95Y0OenI\nzND6Zb0OlGpHaaNUKky9YB5zWXvtS2TOJ9b/lJueuzcma7Bv+b8LRh28W/Np\nIhhG3IUre70gDbivYSh5y8zMXuPwwDz34h9d+p7ZvD+SgORJ6hGzW4OqYZNQ\nr8QlQgiR506l0gOJUNlMyuWCf/Fvi7cWSfxgkXviaL5X71vEW4l2I+Ijg8DF\n9fRLfPLM4DObexh6QN/gcPefx5t5uRyJWeqeq3ScmNcYogqyht1tfnLS2KBj\nXASiRF9+4SRrHH2e0P/d5ccNkqd3E7y483yTSSan//VK2acK9gCuYey9tKwR\nf2BRZot1oaDVf48s8zbYVscXd7yhEkihgEES2wnYdNdTZneD5wRvK+zNZDrU\n1mZ6\r\n=xzAM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCM753sJhuDWivTMROEgtmNbXXI0VX95iFM/2fAzfDuOwIgHBAZOXVnl3uhQDMThpdr6oYG10xPu/iz72RIOSG5iJo="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.3.0_1573356132697_0.1476451180895464"},"_hasShrinkwrap":false},"0.3.1":{"name":"stencil-quantum","version":"0.3.1","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"4f1c41c86ab6a0fbb714d69c0471d793eb65ec4e","_id":"stencil-quantum@0.3.1","_nodeVersion":"9.4.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-xL4p2IoZrQHSdqo0fMKW++TVrdtW1RmVQw5mDTOwljCSdt039aZvGK+vDNqiELhVixKxQmQDN/aebzJ8i1Ss1g==","shasum":"65e932ae2fcd4e08d1caf69486824b35eb684622","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.3.1.tgz","fileCount":82,"unpackedSize":780797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx4MYCRA9TVsSAnZWagAAJvoQAIQRFCkD5/PiUWpxxtmN\nVTHfU4fMfngaZYbqIX5DYgDVc77q/XVkcPYxU642MP+zdRk0TTMydwwCi4Fm\nJDfoyLG992vxad/CQldKxuClHBcVs8aoA8vJzZNvpFYkzdHZ8ALnNui2wN14\n5xUH4WmejWDGp8ODBftZKrR3Xzjs+JZ+IcfvdrxDGmXgugfz2AQ+nImlywBK\nYJms7kbBhTiS5FrGrybxolEuW3QXjjvcKmWBynm5mLJPRxEzqTOgKerNqYek\nlhl9a6YWYY6VaM4l8VUd8qbXAGXdOcpDSAzQiDGulkJGMvwCzh9WkTDLeFDM\n0F16qKyi/aY6gMDBtFCfTMZMoRf6GK34d18UDJ4Npn749RHOS+JRsNJU7CTK\ndGBqvafbrHRu567RGo87m02AOIzsOm7DOTt4oTWXtUoVs3BukXPCWBIb1Liu\nYmwGXUTZhtytNFSji7S/duJsDgD7cU+pW8UtgizpqW+/F3Um90a0Q9F67qCs\nG72bROW7yqC563tSObkpOgdE53Swve9OUmzT+JXpBkx8eDFFpOKSIlf7TQc6\nVhx3miuOgwa3fA7lCLenWlYkQKuSuLB7vjc6DTONi2ZCzVQAxGdeyW7ZaIIK\n8g59XFBp8HNT3Zp4dKVvlOtfusjJcGr3jhnl2osE25A4CAe4OOAVKv9jwGdR\nlOPo\r\n=PCrX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+1EuAolPVejB6z3xC7YaY/0wue4F/Ne0RTuuvvTxNdwIhAJMfUjowEfdlteI95Tz7WjVBAvvOzHWcnVjvSSIjbJDM"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.3.1_1573356311656_0.6540113677800117"},"_hasShrinkwrap":false},"0.3.2":{"name":"stencil-quantum","version":"0.3.2","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"c7cb2441a95fec1884a48e0eb59638e0af973c17","_id":"stencil-quantum@0.3.2","_nodeVersion":"9.4.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-C1MAD9d1HiHYZrXlIHHHifD03PZzluyverm6h25MRiEMXQ+tNZ4Jg0Mf5w0ZeqWSYGExMF6ZA80RypZBhhXeUQ==","shasum":"7217d92e96a211b5d87d21cad7a0b7b30aba7441","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.3.2.tgz","fileCount":82,"unpackedSize":780785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx4aSCRA9TVsSAnZWagAA/2AP/iRF2dGTiy9BxmN1pGHR\nSFi1GIcWbO86euUVf3LyM2XQ8QMJiU0V03iGLyiIjYwrUknzDSgn8Fq09RQJ\nhd7FyXpcrO1tPuj8frZPrDgZI465pGgY0wFX+yQZSVFqkSu5gNnXekgRbMQS\nARCmEBZ96/5L6SDyn2Wjuw1k294E3lyGNH+bcWtCHI7s7Vo0ihbxRHCBG+qD\nu/h1ZlHmkr0wX5YNFTHRzOqKSYCqbLq9Bx1z8msIVQW0A1h5z7UL7XJN7zIa\nMsGo12emwnQOaMX6KpQMwVo3C0+dnMbA5T7x2hlhZb9cPxNmPpLzeb9niHfR\njzkYm4oOfy2MyDS/DzifE4/PYqxNr+ibLzgCNcgRgjvcXuJlPs3JezzfplvF\neT8U59KnB8Cw8PX6x7qWyjUBDsN+P42wdM/D8xCCRKRSUENVRGEQLyMfDEYg\nl/WE0jgTT4JUINugYwJpVG57uAs1Zp2QsJD6rAgwKQcKKmOg0EJrgis8E0sr\nY5C/wvq4yEsBMEJkNUulGpMScN7ScKx4pHu2b839qGfLrZFAtgZACXnoAiKO\nM0Z3SahMuVTu54wPSgiGAYg5fW9d8llFd9cE2ZF/m5ElJ9pLUxzCwewA8A9n\nx8q6So9WsZbuafIVIU9dasnwC0bezPEyZmubb5JdFSoC/TZEhouyH1tAMrAa\nHPwk\r\n=Oz+V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/SUO1sE1XngMGCxtkDIK99mGInJWcfX2BzSsm9ClaZAiEA7uhPpJZViw03fAFpatK7ikw+LLjSVR3VgTgcZSVKfH8="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.3.2_1573357201683_0.9046002415308729"},"_hasShrinkwrap":false},"0.4.0":{"name":"stencil-quantum","version":"0.4.0","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"aaf94de75511c0221bc2e167ad159e213c25a7a4","_id":"stencil-quantum@0.4.0","_nodeVersion":"9.4.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-X0dNCejZpvRq7t+gAbRGVcNLIcywCPEATgB09fCPSqslXXZxZkxuj/NyJ76gbTgDvUHo6A7xIprLR1V2gBZK3w==","shasum":"0e3cf38fa7b1932f567cde6494e9b1a42df200ea","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.4.0.tgz","fileCount":82,"unpackedSize":782046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx4eECRA9TVsSAnZWagAAmcQP/Rz7yAPCVe7ROLHWwps+\noN194uNMBiVKAcjH8vF5QqVVtr2AkSVjJyGnIc5tvHAdJ4UzT6eT7kMX4GOl\nFPst7QJpbLFCjU9dzCR3ggkBTLu0kDSGEzz946WfAsWfuKXCnrZ8zVJEllXI\nq7hJlI0TcG4Gc1dcxyd123iLf4M5fmtfFEpKgRM6SXpfR0qeFhA1QY1/9Oj6\np0EXbDGpwDUPVR0UbkWKzTG7iOZ2MifjRZyR9NNi6CuNyrw+405X5Z20WPwR\nSeJ2Klbe/VLrsOLoN4XSTk5ObaV3jg2j3if9VJPQ5j0hT40SnLwkIAenzNIf\nNLn3b/+ceqsgwlq8urJEXj5ibC8KzKXnnt2vWGSpgB0e+imBSlROjPP9dd0Q\nsOpRaA6eXZZRF+Y1uvqHJB0E93EXpbC0J5L3h/DPHQWuNdD7vGEUilV8/fIw\nthWtHGa0PNNNaaVurJgcNnubOarGb4H1a4kZmHYJiCwdEnIZsDyfJa2v9NLL\n3iqvorv1BKq+BPg+ldivrD1AoAYPqB/JAu4B9uwKrktD7RBAAL/s5ywwrFsJ\nkjIDlG8rnpKuQY6WJKTJpB8+PgwfqHygw9RSZT4OTAU07xIWldgbs809eufQ\nWnwLqaN/EUprWYOq+mbxDqgMSewhL4nhLeyPCdTm96EKez0y8zpt5lim2BeG\nO40H\r\n=7R4c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8IGB8X4Ex0j6704xdHydjClPVhyflC73tdnAJ2q+hLQIgCNQt5bgJG7mFnree9qQbV2q66dTGRoqmo871hIUmtAw="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.4.0_1573357444452_0.6377301892399392"},"_hasShrinkwrap":false},"0.4.1":{"name":"stencil-quantum","version":"0.4.1","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","gitHead":"4f51adc128268ae7c6f8d1cea716158fd4587d03","_id":"stencil-quantum@0.4.1","_nodeVersion":"9.4.0","_npmVersion":"6.10.1","dist":{"integrity":"sha512-9HsQvFdGAeeq9975GXKHoOsx5+Lob6Ogvl3zVIBgLsFPtjrSWbdHTkYuedXvVWh5LZzvOcglKtfUEq7wiWYmRQ==","shasum":"a887322884d71e80501a8dcd15c929fcfc466635","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.4.1.tgz","fileCount":82,"unpackedSize":782153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx4lpCRA9TVsSAnZWagAAdawP/0Xv/sYorj45Szt3yIKj\nlw0WXKFuhAXwt39/K/m1Z/epuEEkFF0SAxyYrXuSg++10isLOG/u4Xu7UXMt\nd8QKE/3GRU6UTAo3zmK0m2O7FP+Dv9UCDvQJAEhWlwZRJIUxdFDUBXhxRD+I\nOb7L9c5lxn0hO5YXa6NPvJp8WrXhBUdOAoyRgBO5fEhsPvt8ItdSKeZbg8+M\nazDtUpgeU/6szSXPq+LY0oBtTDDJIdcrGB+cCl38VrvsxsMi9gAwMrvIYFNH\nYItpslgLN7AyPF5/Sncy5oD+N35Cc9dYREVA+iTxyC3VDQ9mHh8qLt3QQyHn\nAlYSxnB0hXu1v39T9zdoEEHtTt7ZYsLZmEIaJzzRTBa5x58nM+RBGEf4KVF8\n5G8CxbA8zXznDt0lp5PDgnLXbxkLTc28t5vy2GjyuiWkmW5FoRqlx3xUj3Dt\nUpFBsVpqXZxBZapa0NaaJ0tvLvrQNLOeXq4trYT1exfHTC7WyoAlDLhuTm92\njfWTH6bG/NELqA1j69KzfZxHe695jqdxef9/RnjSQ9vP7gLsig5UwLiJsPTm\nA7KI3rook439xxM8I6NgrZclkrHRCf7YQWetI8BZvBEJJFUBTB4EQkWRItpK\n2oSbwwpr/zQtdmkR7fSq6XdAo0/Edq3I4qFRyPB1ZPRVz7mewRGHZxZKTGtL\n8D4Y\r\n=tqBH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICH4lFG/htCBGn+hTcCXqhY4AtD8c44C9YrO1UN1wyKyAiEAh7V0iNbOij2F1lMlle47QyDAkEegyUBFQfYgRQG7ISo="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.4.1_1573357928797_0.42318038918496126"},"_hasShrinkwrap":false},"0.4.2":{"name":"stencil-quantum","version":"0.4.2","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"2048691e178071f53e324461723f58517cc5cb4f","_id":"stencil-quantum@0.4.2","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-HwHTFKQiC6lI+bHSj6y/t+KFsgJGy5gnzY4eJGNX/I7O3w1Nnzf6dKm9RyaUl3/OcmZG5Nda/dH5KiytMLm7zg==","shasum":"6e5477f7ddd0bb8dbadff496d024dc2eb56667ba","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.4.2.tgz","fileCount":82,"unpackedSize":783044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyEiGCRA9TVsSAnZWagAAJ3gQAI95ePfyobSEeZBEIKqy\njlSH7qRhSKeTgN6SibLLy45NUeUPNh3Xqu2Dv2Z31pquY00l06LiYri4YBkr\nA2eO1T8JX3xatIoJGfr8kmEhmumjPCfdAuuKlqCg25ZcEhMcPGdXHTqAY3I8\ncZNzkBJbgwOW3kMTVgCDq0EzXNbd+9SiycWYnXCcm6KdGFPg5EqP1OqDbAFi\nqNosS7brDVSsEXhJcDGoPrsV2K/gliYxrU57yTZJ9vChrULb8aUXPzu2RnkD\nzxO6zwFJDDnqBhcZui7RULqEh6oFc2tupiGXWtSFP9s30NVkdrAJFuNmv5uB\nGPzK0qPEi7lwLUIEDZ/h+yoSH0pGkOzG71Ce2C/PWY0sXXuv76OA1ibDoG7/\nF8wf4mb1OkP04v6IDND0C3a9cTFa4ITfXh7U/zZDigEcEOkWVGP+ghtKhddY\nF4TsAtdEpbbS06xG2Zzg4Hc9gDB2hWfnB/RYP13OXWHhkIlWA7cNp/lNkZ9b\nDvQ+npLCaMEslEUpIfW47uiO1keQIaI29MCg0vyEXfnsv+sbQOe/kJ9EMESp\n7FEnEKZW8+8MF+SLjpBjK58KeYp1kJyDIbP9KqAxFU9DkR1iYhYAK4gL3I8G\nCqU6Qv/2pNwTxGxMP9xk/65To7hzA9ONoRpfcCgPWcoitaRyD4V5pedLYkZq\nm22o\r\n=mk+p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG+n9Ft329W2HgpiFo5a9Hl9l30weDbvqQXqYW1mzZ8zAiBWhOTmfAhfrto728I1nk5CmPIuxLCCU9mY342HmN1GNg=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.4.2_1573406853733_0.3795127784571124"},"_hasShrinkwrap":false},"0.4.3":{"name":"stencil-quantum","version":"0.4.3","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"545940be0ecd85854b5a3806b6359d1b5809c386","_id":"stencil-quantum@0.4.3","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-RATZXyQ2JB2ZIc06x4TMdj1o6pe/bsfE6BwuQMppW+m3VpFCxCmQpI9CLP8sO9q/Vua0fZ4fsJCJ1H1HhmwJsA==","shasum":"93c4b71c7df207b7dd54d7f380cc1e5109690ad9","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.4.3.tgz","fileCount":82,"unpackedSize":783278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyEtmCRA9TVsSAnZWagAApWsP/2mTQsMd2k17bMc4W+uz\nhHtiseUWV5g/SnYGRf1uSE5kNAZXFNmqBb8fEp+WYSUwg+dY7MTo03+v8ZA0\nYOZYBEAVL/h1gW/QDaz90GikcnOoIEn0z0RGxT3YigBFbmSMrhvs27xAxdez\npWT04NQSyfvAB3Y26ZuarG8qLtq+fWW3usNjuBUsH7nFqqwZM+WpiPeQUyTN\n9Hib8NN/LBE/UO4a8l0LRr49hov7O5HzQhr/lR1/WvI5ta2JDvug9E1vWUuo\n7SL8QjaZ8FjV9dFtujwJPestch+1eRx+yoD+LI3Cxt9riI0Bh73dwGgt1k2P\nJnCjv2SyN0t0n91AqAXVmBbpOe9AQheMKrENaiZv0ccIrom4Z0QHWzIUD0ts\nGJCuKU0q2pa7dNR/6ELj3l1H64/qqfAp9Em1t/NNrowZ0U26WimdzW8Aeosm\nTmX2fOA1iSXjbOlLjKcMxXZ7Zi8NnIj4juLicuk4xE/G5ZI0GYXRcd2aM7gk\nv2HAz2I5KySjw2MuZOLYzxfCPpbrhGeQfr8G9PPvCIpXW26Gwgq6sT4+EbSe\nufPWIaapewvfFvKmRQqHkEXzmEN9B+G9yIh8CuzzWIcAz7l0O7JFA2islXTZ\ndgJrjeaMidXO+XWo22+UzpPvyilQfgCQaou3pBxHd2CkPRJz2sT2FN8lvbFb\n7atB\r\n=wW0m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLaA+abF8zGf50Zt6E1XiWgju+hjs9fS++HM2EAUILDAIhANxkCEsmjtN3fTX6lUM6kN7OxP4vMcih1H5Mc0gozIwa"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.4.3_1573407590311_0.9312247439122783"},"_hasShrinkwrap":false},"0.4.4":{"name":"stencil-quantum","version":"0.4.4","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"c9de7e9957bbadb7487f9d62b83309013e4052ed","_id":"stencil-quantum@0.4.4","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-qg0KEG5ft1PrDdiSj5oS7/dkkB6PDv/8sFUaCN06uHjGj2lvoTao7L+12a8acqhHTFkDB+DHr2V8egEvU774jQ==","shasum":"ef02cc97a2b92ccbc94a96bcb2ce625bec0b13ad","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.4.4.tgz","fileCount":82,"unpackedSize":783485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyE0KCRA9TVsSAnZWagAAwR0P/3LEZJ+RfenzjEfBwADQ\nmkNvaX6LnJAldSUKjmuF1cHfup93e7yvQIaN0ERraxsPMqDadrOcYaanaeOp\nMgXfmUVmyeYRyLYgR+XIACb0z4EMzS+S5cPCyC+dF2qHO7jhmT/PCjCjL+up\nh4j8ImK4x/LcG7DMvmnbAVJPkSAaYXxyE4/m2iLJ5Ku4RIlYr9+fc9fd3iw5\nKqixndxfkNaBG22+Wxvh7661EFE3gbNbHv3MBNIltAwK3xPsLC0vMootpCz6\nB4y6YE9/hmO4x5l+XKw3EOLCpGNWs08/pZXpoi07I2rpeRcHqc5BiVy3h6ID\nocBQfEQ6qSGOUMtoqCMldd+cebq6q+Hv/6Y89hNnCTZkD8ONrI3NBYTAmD2G\nY4Ewaioy80nAEg7Apzzfj4cbyCtxwVDzILQMlf95YA3cJvnrF0AupdD9yAfj\nFNlzZDdQJgB2558+ElVOJbxiAfSSYvS6L7ojm2JQUPRrX6e8zLtifDeanoNP\naPGXiavDU2kjAs7Gdlu12q1pR2CoWOrBUBZtQjkjvRezpSrwLpSEmCz7lVNk\njYr1IOoJtCZuziy3asBZNxzV306URJrbc39bczagOXlNa3VcTUSfscEgDkVE\nxvvHOljJ8EVm9qiGSgcgu/5Jm5+ZbXAx94VJ44DJppBsvZRIfeQ3Aox5/1UE\ntAcE\r\n=7Tew\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRS0wa3kYvjt5h5R5WHx+JoQ3WgD+yhOc1CBkcwSYxzgIgJfmATB1FfAQmEf3oCOuadvT2hjV+mESexkXQuvLWYcE="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.4.4_1573408010206_0.30679354932188563"},"_hasShrinkwrap":false},"0.5.0":{"name":"stencil-quantum","version":"0.5.0","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"c2244095f663510ed36e93a7152ede997bb068b7","_id":"stencil-quantum@0.5.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-efzR97oUnACw73D5ExH06DjNpEEprWNhTXkxFk223dzHinTsexGsbO03jJQfy3ihfHGljDDcGzFfn6q2Y5B4Gw==","shasum":"18d51b70a100440beeabb4450835284e3fcb833f","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.0.tgz","fileCount":82,"unpackedSize":813233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyMxUCRA9TVsSAnZWagAAG2kQAJHXi5DzEWoGbYUeunvh\nU2Qsz8sz5oMcN7ciEGeqKOHgRq33oQvrH83or5HFQ6DDh18AUM2Oq8Ut9Icu\nmnr6QS0WwzrAAzAM9GXYjWnR9I9zb/UpmmezbQO1Bf2+t6USAGcZ9VEFYh0E\nLGSGD4uXCMHgw2LZZO4KSvXgcEABnqIGj6I/yYkMb+eJDEuUfsejHIw9jHf3\neIxe87bctTgt48WPZd4hVx0LLSRjk/vsYD/aJNfDjIcAfdNlaMXKAsM8nDy0\n6mwGi8KaHZau5AYaYQRj9t7U4WR2hH6DOkKJC+ih/wfQ538498iFanx3ntB5\nA6WESNLaPXGau/M251PGj6XEzH7v729Xah5owzauVE7tyw09/C8sIdv8ARAX\n/rawXZKQm+NSFpdrSoapzcaJw+0KAndjaFaNmAV2Erk0+7YzSuY915YcBhnH\ntOZTwYiT8Ut4ZCUyXjwu0VUs+jOlebI0gf6EcRV//Tafwf/HSqOhXbYtCHtl\n/FruQ51HsfFywrQ0tjOf6srUZjQq/9dv4TiOy4z1lHQwus8vEO02XNZqv3Yn\nF/ptFYI0gI/tkbBaQCgpSUjPfQrYjkAbtsuOq912x1D6/wt0XB64WXrq4Rg2\nFI/QbhMbUJv/RWnZOU2XArH9jmbHSVw3aex1SuW6lwqOJtfOvQDXWSUQ4tzw\n6X3E\r\n=t54R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH6dGmKc5ivysuXcknWLs1pQje98cM3S9/iU32NyMXbbAiABcmRNLH3rQV+XPpGufwv6w3KRfVNcZ/MdNOujLVaipw=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.0_1573440596077_0.6694362924042223"},"_hasShrinkwrap":false},"0.5.1":{"name":"stencil-quantum","version":"0.5.1","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"da3d1c3e0c51c87d88680be77a2997dcc94f90f8","_id":"stencil-quantum@0.5.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-PMV/uDUOpG0ds0T4gOQqjdklINLkT5MTxU++TEuV8wUw3tQ/L78g18xFmGKysPbvZ3hKVm6bz0I/6+vNbEG62A==","shasum":"04e38269cc8ab0fd80d37ecfc51a777241fadf1d","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.1.tgz","fileCount":82,"unpackedSize":813233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzKLuCRA9TVsSAnZWagAArw8P/2UtK/V1Wz1kaiGItQqr\nb43NybsK/yVZ1qus104oG8n4B+oWmPPajc00c7rgkOFRpfg8qXTAuFriLenL\nh0SgtVLveP1vrcbu7IzIF4lOM0jmBwcd98/49y6D5P3MP3FDLxHtB8F9TpxJ\nGEujS+7IJ0rU1SAn6NQXzJDOIMJjCivLJhBy89ump+QgamrJvyRLhXaoray+\n2Hk86mdfWe6p34hv1HDGWYVOub5F/eHLBr7GTHGusM/xJrZ77Vs4qZP59yEf\nVkExquTA4hbLsXMlYqMfujHRki9Hs1N6jdVBfFfJCVQ9xHSkeBev2129hLV/\nZ3FOrvoeXRO+N/0EKxaVqlzE3/h99rmIJZ33F0Pbr+yHRfLfvFNhIxH7Ikmd\nm9tTWuGelXBpqXiDO81Wk44ZW+A2LEllKz3xlco1yYxyGOFML3o57MvslfPo\nIo57vrn2eN/ljtLTDikSEkCk2LSuGNoDq8c1/x7JfSEB1Jcd2VOLFNLFrtu8\naR9vxXfNAviREk/azeNbP3kWz85MZIocpNbhMNfTDTWtfNMxEX1ENa4GxPZ7\ngHsjB4J7oP84rZ+8fWIJoYSzR++UPcT6PWirnjmvhf7/CoSXHWvrK2PwOKlk\nMtmnR3FS2wBb42bDUrZmcCw6UmLjttWjI9Lqw/XlMTtg8geoOsHU1VJqJhGn\n/vIy\r\n=lFKs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFXXO2LOSCEoTVwyH41ooBTtIiTL7m7cXnnChNgNA/DKAiBIVRpc+MKtyJpPVoQRiiwKbzepahJlSaO0fojvL+IQQA=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.1_1573692141785_0.24332700087749548"},"_hasShrinkwrap":false},"0.5.2":{"name":"stencil-quantum","version":"0.5.2","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"stencil build --docs","start":"stencil build --dev --watch --serve","test":"stencil test --spec --e2e","test.watch":"stencil test --spec --e2e --watchAll","generate":"stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"7fa8d142592fc1c5c5a8ebd50c182744319ebd21","_id":"stencil-quantum@0.5.2","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"ized","email":"nk@ized.io"},"dist":{"integrity":"sha512-GlK5OEapO0OYB6umBAGnFCLG4cHc8EXLadBzXo7PRegidCtOZfsYdNSskfBybblvybQtuTj0iF8ej9XYUFalJg==","shasum":"d789717c07f440d66ee7de696b716b5c040a9c5f","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.2.tgz","fileCount":82,"unpackedSize":823321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzKYzCRA9TVsSAnZWagAAUa4P+was7UCl2C4oNAO5qMbk\nkU55a5HnqWT4irGbPoWGYtn/pcE6SFFLecxcZclqmoATcP8x7wWQQBxxIM7R\n7RoNULG2zkwl/8dGvIbmFjQbf8bilOsgNt6DiC0jlC72Hdx9+a0dhsUJkgwb\nhRmsirjELOe0sB9K5MGdChPRtSlfumiFzg43KldU6zXpxzJVH/8rxJ+BkPYx\nte2jm7LtDXouKFJ9jTB0zJWVsa1ynSi2jO8Hsu8pF48M8nqsz03QXw9uCMjh\nT6rH5cZPecUhZzL+obS7Uod0dB6FJJJsMOMaLE83KCp4J/yL77pkBC5r+xzD\nz+6YHkatAlaOV+bv5ZAlTW3yETY/ikpCIoLDPyInOfF7AOc+cs9awXCMYY9j\nyqqh8aiD4ELlQ4trT/Kt0MZ4ZCNAyjImpoGk2c52JHH3gK4hWQcBN0w4wgOe\nTzRNKYkP5pfKrRT0oIoondOAE7d1yGizvTpAdJKgl7NsnCdYDQ0sAGQD0NeQ\nr+oXk2id4e8qazCkU8NPLtmCdosuuehJgzTRmjMmqX1L9mGtXNwTlhZ5jIf3\nZiBG2MLxx+GFKsd870aO6gBptmDn7a3YWqUDOYKPI2n+fUrMEO/O8eoBEm+O\nFGIg/zRrZevQxVMlm+kqB+DxTN5t8XNwuh97wC5KzZ5D2nCu0uSD92/ljz49\nC22r\r\n=D0EY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKEW/k1/unUlFjZfwz9nkjOKJwF6rb48slqqOl0Yk4dgIhAPo8Pkw5EBInS13ESsbobTjEzChURg3XuwzJAMtAfD2w"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.2_1573692978587_0.9163081835882416"},"_hasShrinkwrap":false},"0.5.3":{"name":"stencil-quantum","version":"0.5.3","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","scripts":{"build":"npx stencil build --docs","start":"npx stencil build --dev --watch --serve","test":"npx stencil test --spec --e2e","test.watch":"npx stencil test --spec --e2e --watchAll","generate":"npx stencil generate"},"devDependencies":{"@stencil/core":"^1.3.3","@stencil/sass":"^1.1.1","typescript":"^3.6.4"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"a07402c07d538d212a3bbb38c672f428c91330ef","_id":"stencil-quantum@0.5.3","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-XnPLmwlMQLfbNoIbOH1DGuyyyL445ZLblMucoTeeRBbq7x4D4MZgEZX5KAbvShlsXUnix48h/+H9ukbkFHttNw==","shasum":"563ca1bf17feebbb5630b160dbafe7136999c544","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.3.tgz","fileCount":82,"unpackedSize":831006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzUwICRA9TVsSAnZWagAAH2UP/RZOYLtsEIwEUDFK0pYC\nf8VQBa9b6DvnKuvExtuGj5KkdZ6CIENdo8TE2qM2kgshfvmWzQfIFPePbm4Z\n9oaSf+4yLt9Nrz4pq9vJzim0dHOshFt7b4n6POJhOJLUKLzqeQmCLB6slUxH\nbnUIBCYIiyhn7+aq7K6Y8la/TYz+Pf9l+16tkcHC/KaZnGsTKtnj7y+/qwdM\naEPdYtNRyWNzXafSUBD32LH03RoY7yN/glNhp6YqlCHwYBuswL4IPy6Qvujh\njCJ+ZtiS2cZoRgfhikhjRPjTsMqFFCiImFF/BGlaxCqOL0OvHW+RxcdtTghX\nZIpzDUg+6kYOtQNF3gpX1bAWk1LZgv4CVuqtGn5QfWbVVF5WTNYwqv5MO2/2\nCnKR4LSaxi0xWfNzaZuIrvZ8A8qlkuhDX8ShUTT0HIR3lK3kLxz4P5mIxLPr\niNiBAfUrnPF6Eha6tYxFwKOFL2Ob4LVAzA0CMO2CSyQvAyfy6bwHVTYsp0+9\nzhFu8WxcRdssg4MNpt1YH0AmSfSteHHuTOkoQEszpWcnK8MBc6N6tCxfcWGw\nFuCTMSkW2OELf1x4nmDa6rYX2Fx4tQzMSnxGiDZOtqInZfWN4HQ75YsCQfZ0\nqKtoc+mPR06gLa1y0f7L2LZASiZReBhDFBTYg5/ICDowODA9s8fmjeuGAdKA\nhOB9\r\n=NLap\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcwcHsUOZWnQyrHWfg3fXrrWhrOQa9CUNKT2ORdiDRawIgey8cOaGA0NAQ89HUqogWqbHvoDSz1CJDXZx0ou2RPzA="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.3_1573735431686_0.2585643883681923"},"_hasShrinkwrap":false},"0.5.4":{"name":"stencil-quantum","version":"0.5.4","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"npx stencil build --docs","start":"npx stencil build --dev --watch --serve","test":"npx stencil test --spec --e2e","test.watch":"npx stencil test --spec --e2e --watchAll","generate":"npx stencil generate"},"devDependencies":{"@stencil/core":"^1.8.0","typescript":"^3.7.2"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"89a98d9b8866074d6836cd3ac885b3e336b4773b","_id":"stencil-quantum@0.5.4","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-VpKHzhjLIvR5ZDFZAEQPyBq5IflEPxbLeK+dfM6wBkBLn9U5HAl6QgTzkYIiH33+hqN5Xmt7mzPYlJeoYdJdlA==","shasum":"e639fb47a38d56b566cbbd10d50efc2c43a766c0","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.4.tgz","fileCount":82,"unpackedSize":831350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzU8DCRA9TVsSAnZWagAAnI4QAJLs7Z7Rni4ATPEwrS8O\n+X2Q90+s/09U4B6eMAoLMKaK08jVcUc7jGMz4AQA6cKYv8l29/3rNjuvnkqg\nCj5iC3NEv0v6bqDzYAUn2kZt98e2jjJ7FZWy1yigm1DHp2G149KoI9FaPxCf\nQr1Qivi7TP2NYQQmSM8e7VUXhxPHowbpId1UiAPObmcFeShol/lmxKHqU/eQ\nWXHzEg016I42m/RcZx2BFt8yCKQSvlFW7vhbBcTiFj7I1b8GHye4XODDn1KS\n3nyiZocw6cyl4ZCrpQHWeeGcHQHS1oaK0MtFRbt95xEi9oGleeh0OSv/AjTJ\nj8X8CPMBFgpxOTMxU0aGkADyX5ndn/5u1S7Tc4YpqZL6u4BpZuFI8OncnpDy\n+d5XyplUgbVL6Vn8XtpAibDfEIHbvGbuj7E2zr0waS9f8MA2orgSRv+eO4Ju\nqhDP2l2J6yi+4ZdlIGf2iwyfAh93ljV+F3Dxdwyb+bMswe2OsM3fRkxnRtlD\nEqbroAz7zdZcsnao7+s/0k1Z89ihEelpEwthmBk91rN4fcR2QnG/pftA9Htw\nLlVZOtWXULMhMZ4MabXqsadzNZXHC6SSdWB5iP50XOMFXQHL9Hlt/dvCRab0\nlRIDqt8ZsqvJEdmbx75QS8zXHs63sjgFcmcOykoQrAqc325E/lT834JD+tRk\nxXa+\r\n=qHcV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjgZkIbbacnBc1d1Mr4SasSxLuT316bT+AthAW6ac+LgIgIWPSPLvGEXe08TwcCNeBmr0XMF57Z7dYDsdeFqnlKUY="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.4_1573736195006_0.7742617691278926"},"_hasShrinkwrap":false},"0.5.5":{"name":"stencil-quantum","version":"0.5.5","description":"Stencil Quantum","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"npx stencil build --docs","start":"npx stencil build --dev --watch --serve","test":"npx stencil test --spec --e2e","test.watch":"npx stencil test --spec --e2e --watchAll","generate":"npx stencil generate"},"devDependencies":{"@stencil/core":"^1.8.0","typescript":"^3.7.2"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"gitHead":"f7224ef85ba806d5e138fb2c97d50cdd175f9b64","_id":"stencil-quantum@0.5.5","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-qVRvOMMJ4pFdOOHYIejvYIcbJHBrf92Pj8JrERc+azibdZZO6mrNE05QzVZiiNwIkj14OY5HvwMPblQjQyPtZg==","shasum":"7ca31425d382e4944f5d3b165ea0e2ebf387a45e","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.5.tgz","fileCount":82,"unpackedSize":831969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzVaZCRA9TVsSAnZWagAAHTUP/Am1VeYX/JSwUMo6PxsA\nLGwHpHFu0HkOSqM2gZcM7/MCLUgndcqcBvMc5lShV3mjMUSM3AtMc9/a1O2z\n4cYUdj00s3KAAkHPI2jX95tslMQJyUiSnRgq3T0PK3zaZE4xRD7wx/vruJ71\nBVF3EsKPTAYxhwFRGzQ3mMfoH2b/gd/P/X29/uUhWoBLn9L8iClG/0BIZDYO\nqdPNhndYURnwl3NgkgwjRMBFMHC8rN/yDNWhG2ztWiFGTK/0tCpsD/kLSykS\nubQikecwIG/TbiYj3ZEkiUXVoLDjK0y+gZhn7NOedJc0ngEuUbHPzsCD3ijl\njQqhJ01oukBYNV9DKUVoARyND/D5PDmjeZQwYS6CRWcJWYbdL4wNY/t0So2Q\nyQK0PXpo6LzpnFxrIpAeKufcu1oTjPBU2CgYLDiCq13CmGUH7RcVBDyYrOpq\nznLNWFs9grR0oFSSzt+f/atH1U5VNel2My7zF+l9dVmX4lvO+EVjHCPjdWDd\nmimFhgcv+7Dng+6E0fTvxwXBo1liyaaO7uBqjtZmPves41qj1bgn1FXWDr4V\nmcjH1PBjx3KEFT0ZbrCXgigxXQMH/tlzl/H5j60Ysxqzlt0uM5YOJIB0vI3y\niSjh4y/eFDounM+k5BrguHoPd27qo3zA68gBN+dGj77L/13OxuMT49K5jHra\nEVVd\r\n=XCwH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh8Msr6YBo6O7JepWIx2s3IRVNYKn7dftU/UEAnb2sGgIgFj/R04pVgB+A44BJFHLe3qGOOe0bxxjnr2zV2+DU5OY="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.5_1573738136633_0.09441676440804025"},"_hasShrinkwrap":false},"0.5.6":{"name":"stencil-quantum","version":"0.5.6","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"np":"npx np","build":"npm run stencil -- build --docs","start":"npm run stencil -- --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@0.5.6","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-ukBj6LTo7e/TchvQHIbxjsB29M00p8+cKWPaeTutgqZwgOJE+l5J2aV2xlPdktClvdATlHKyxj/RJQkFnB46Kg==","shasum":"c0b4ce6ba725c792ed6dc1bf895c4d4c4e3d5dbd","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.6.tgz","fileCount":81,"unpackedSize":794448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzfo0CRA9TVsSAnZWagAAjI4P/RROzIh7j3vFUuSRCp/H\n8YLrkSjKadb5TyN15ruSv09F3v+G7xqAWLXzRt3hvapM/3rnngu/Ikh3Chs8\niILejut8EYHStN/7HpBEJv2BPIcoH44uC+8MdF7MFkEKgD76AAUTEut6FFbM\ngT8YCL+mh1ytaUwz4oAszmYEpMxzKPzMFvdehwCv0zSOyiLDcdie8AR3EHvZ\n+ZjWKcDl86idC6QX6zacSjAw75fS4hFeXueD5J0MBHx8tmrNG996/j6gtcGZ\nDDpgmXIYlEe7pQhwgpwNaWTDC1C04mSgPlGKuw32ErB4mBxTYQLnX1/97RIh\ncPZJmXIHV3bqWn36dOLOxg0IStCaIpZcyDIeRc8nN87FzHRUO6cnSN2pMIM9\nsG+1qvyLpO1JH+0O8y/fxs+QuOmdvn+wSsH8FIrqBrH7o1wK6tWBuxGlUZ7S\ndfA9kyCvLgg5LszsBvArlBJKDoQVd1DCVnJuqw354JFb5FRsqCmfPj8gQ6NL\nZqKvJO5D0mmwPw3tI2VOAIHMvc35BptVRZBQ3/Xxup/yNxZ+i9gAjrvJ/bTU\nR0i3q3Lrr87hX0wG4M0jaIoT1k6ouHUOzMnmg+vIZeHkFyfh/VUbEb1AQnJ0\nj+q0Qv3ZIlI6RxhpZIJQSi97jp14kpzYD5o0to3flQFtzGqL2q5JcoCmtmAz\n056I\r\n=ROZR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8r0DZD3nYrDdbhn2Vum19U6VVGDvG3nBdcEmmAq04oAiEA9BAUXrFVhTLYrQ5CHR+/ZL3vEnpzRpvI6vtzpzfFLjE="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.6_1573780019680_0.36451280015428833"},"_hasShrinkwrap":false},"0.5.7":{"name":"stencil-quantum","version":"0.5.7","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","start":"npm run stencil -- --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@0.5.7","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-lhtIpDRzdjnuydO1fGbHmxYim6eVYxUOT2pmrjp9E4VP6J0fvYYm+1kGxAgYXukn46FRWy8cXXrpQ3KTTh0Yow==","shasum":"452943143054ed703a82e4cda321d1f9e6316ba3","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.5.7.tgz","fileCount":82,"unpackedSize":800311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzfuqCRA9TVsSAnZWagAA8WwQAI48rvzjOmXm1VsaxQmA\ncSgF3+G+BYtY5uPizJ2MOKvdNO5uNo714zC82477F3c1vl+Z/5nDqKyda3iH\nWIz4R5b7dr47OufMhjaK75bzCCcEkG8jHoGTIX1MltEC/xbc9KDB9s0z+mGZ\nuFhr7zTJXqUvXUcfIHObFJvEB3OcxlP3c8ujdwbh1Mq1pK8LePrtr6o5ATK0\nWaaNEsmJOoSzYg4paSKKrR1gZEKKsOVeaJ5aANBO5vsU19xF0umg+xd9fF4a\n7E6ULjti/rrlbxyukDICTvZlZQ3OTfyb+2fD7pJ6QpsQllyvs2luhJKU9YkH\nduBU2vwzhe/dnHh3KDTIyrzA//GweJATmLMHIuLKwCKexqq16qndebFqN/X+\nDuT0WnQRKgV46pwxNNXXJtz15qxvu5GTacqPWaiApBAeC8kOIg3eEb07ypx6\n/8OrRNqITHp80jn2ta1ejJED4Q/WEVnumocMfFtAvBVrLZ+S4RzOr+Tgywi9\nLae5bRkITr4gcKJGArv9BhqHb2QlYM/XoyODNotli1XyEp2eztZgvwCHGc1Y\nH8MV2N50mi9UhbIBD0LSJwTD/gYQctQ4Mkr5ZyrGpAYcfWorKl1I/pnRGb1A\nD2vNV6oxHgVbHeaJoGpcNfGI0Xk/d58RwHMB0k/S94lvB9GHlaBja4n4LbRZ\nCvAl\r\n=jSkE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6T2E79gkX0O/NeZijli/ezmD2Lgb5ZHD52KaOstCcugIgVhTLGVkKAKsPxo7J2kL0gw1U/XYud3UnRgwXrUxs3ho="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.5.7_1573780394262_0.22733994691274262"},"_hasShrinkwrap":false},"0.6.0":{"name":"stencil-quantum","version":"0.6.0","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","start":"npm run stencil -- --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@0.6.0","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-B9WMDBFsYLbbz/wLS3S8tFBgua6uwH0qXug1AtQSSCBkZUfuq5Vz4Zn2+MINlm1qYB15WVqkhU6mfjSP9vuivQ==","shasum":"831cb7578efacf5509d655b7f2368d6b601c7de7","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.6.0.tgz","fileCount":93,"unpackedSize":834264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0JJ8CRA9TVsSAnZWagAAtEIP/jN95qoBWS4v/qyrxEMu\ngduNktuh6IOgrLSSBa25HmSHJuH7iS2jWVExZW1dXBUhwPreJjULr8bpEIKn\n7D4JJ1IObj9ytgu0effqmyqsn2660ohy8S8CKkAV1fjUpucDfCf5VyBd4OoE\n+qqr0ML6V9fteJ7kEPXkLQMer5i/9XzIEzMR0orgI7ZbPbQ0Q2n36vZ1KiMC\nAPA7/emJRx79f45obzlJ4WU/TOABOnYDRFjIucPpexbeQJ/4UN23LrYpfdEa\n4jftRuKpNH/D7CinQlo2H0Q/XgXmkRZovFQTC/QGx6lb3Oe8HXdqOD+nyiIM\nkjBsRFlcwOb/CugzKfhtpI2YvYy0Nu5XGjbfGybCbvzIFB1FuqrZisH1/JU7\ngFrKN/902t62U7n9w6v1nPwMs8itU8rvfpchNkMhnRjo52YoVmZfzrOfqSOy\nEjiHf6J/sVy8gKnWadqE6uwO3p3lEGNTS2qWIsZsCd1+yKPMziVbmG0zW4jx\nIevC+mwUPc5UpUFG8D0E9wYoNWHN/HdJkQ7Twf16RU8AlK72PQIQnpva0FVj\nq1wZE9ncDmPGGnXlOsHvG9b9UqPySZNH6WOXEHLlGkKsDzpeK6Wh1Fs0RVjo\nGx60WIt/YQbYavFb8CmuCAdnMdPhzMGax4hAac6YNrixxF/8AXaIyacOkpgE\nfaaV\r\n=9gBI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHFVA9uGb3hQ1aBS/CeLT14vqxa0RnaXhwzwR4tJ1NXVAiEA3sn4mnCvnxvjOZ+HN1XwlbbVXfCDtzjVRnKLetMlycY="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.6.0_1573950076247_0.0031895782406179407"},"_hasShrinkwrap":false},"0.6.1":{"name":"stencil-quantum","version":"0.6.1","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@0.6.1","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-gTW99LWyaZsMK+Quckarv0tmHf2CC3gJHTSQwevYVoghLdA/cJisNsponqpEKG437vA9jA16ZvXXJqTfzJu6Jw==","shasum":"9471f5af3ca607de4a9ec2441cf658b15bfb128c","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.6.1.tgz","fileCount":93,"unpackedSize":842982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0caRCRA9TVsSAnZWagAAbdcP/Rk7o7jr1fKvUxIYorJd\nRRCm+hYd1A47ZaaWPtvke4F9UEDYOvz7PDhWOZFVspinUAMMoeksX/7XLHGM\nwf6fmG4EoJl/TfssOdi9zfPk5QhRdQefDRpLrshNUZGOdnRh2Um7oFZ3CeY0\nDo0lq2ZP0B+5uf/oCB2rikPp3xg/90uvKSOEPfW/OG7GrnBSTjcP6JYBzKBZ\n4eCr3LCTju6J0P/qWU3MiSNE6Il3kjftSLeTiDGbgFnudJN7lGjM6XmveBzn\nB8BFJkdm7VvG9la5q/xe8aAM81a0qCd+LOo35BWUE7lhgR9BzyAsTfe8kGa7\nxzivdi0sNhZ6OwhqHCX7exD84JZ9XSILvQriQsrRDO1GE3xLXQ+0xelQ5r/o\nZogoWzWdCh8wImMGf/HLk93fwvAIo6oMZMvSZ+69p4yfwUTze7GOThqoBktQ\ndq/pEplL9BzOF6LefESCdejAhA6FBYRgpngCDkgafsygRom6h0dr36nZuFBl\nfmRAfqM90fVyMcwH2RlOrtzXjBmUvlWiltyKRyy9us7kyNjtLPCasd4YJoJh\nQ38l5YiRatxvvwZt11Shn89qwrJCxTq1atzHERNFE7mDqMN1raroRsU8Ycdr\nKHkyTwa2iIphjd1zpfZVvTMOeUdyJBCRVqymV3FtzVIfsJsPzueVfQvLLjtd\n2Tgh\r\n=k/hF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFfEoUDXhigib7PkCftv/WlQkCiuj93Z74F2T9tF4T5AiAQ0VUAMnyIKX6tcv+MHXGU3z9lJ9IQwU7FPYruuqXFDA=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.6.1_1574028944842_0.48943878415566844"},"_hasShrinkwrap":false},"1.0.0-alpha.0":{"name":"stencil-quantum","version":"1.0.0-alpha.0","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@1.0.0-alpha.0","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-umIwPnG7U2/6dSE2Rou5zo34WuAv1e6vs6+PsREhhNAbSWlsCkZc1yfYkhGodhb0xF7LtT25EuawSHsxnSApxg==","shasum":"0f172e7e2e79dcd1f77a2898c4ce9a765a6bdfac","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.0.tgz","fileCount":93,"unpackedSize":870260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/O2wCRA9TVsSAnZWagAAHioP/j2sQr4RwfDPWjDMYoYp\nHyaN8KXGaZptY0dCaHGlFioUMCVFaOnW1Z1lZvsoVWD/ydXb048Ep6lbpehQ\nhHxpzQqUm1jWp56NiURNlFCU/HatZL3UbafzYBwsZEqtTP3Sw3brGC+fFg1l\npH0rOxghcT6SBpDoU3AHleNKgLeFkKx+vMT8hmVKwsmxtnImEnWWOJ78H/ZE\nhxkaZPJRd64heYTJHyVGtcV4TuH/itmJtQnH0cNS9KOM5RO+KfYBoIdUwMz6\nSL5TPibHOrWW3BL/dtnytPaLejXFVtmPmvJnw4M3v1GUDFsMHGe6PbeSY174\n5bm/PZtvxylLN33mRIQfBZKAEO3/42YaTkaDDAGWT5ZpGmmZ+yYIab8Lgrb2\nKPdaYPmE6audV3yxcPItsEDB7WVfXlzV8+ciievVleGbrznhWiicXQLnfY3G\nPsOHynXLtLqGvHoB+RnyPrYcKwQgWmU590L5uOWX8Sxw1KD3WZ5ycIkyo83K\nTyg1EWBKf/YuLUy8PXHdCzSp9MXou3SFoEykQPOK1bWqXMkdHeaHsSmyiLOf\nOs3yOn+ALuBlzdsQsYgS52AjsABrL4tGPkXVPBrMiFhEvdFg/kCDv4cM/99n\n6cXf8TTmoz3rT46pH642t1d8weO7A5SOJTW4avJ04CRpK6V9QSVrJSsmuk+W\nAT4U\r\n=7RJ3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaVCwK5Zj96qCO2sZ6Z+5fZlN9GwA4tC5L2V/vZ+Ev5wIgGZfNCjmIMVkreOu11Q1lMImQixnO6jkBqqaf00qjJsQ="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.0_1576857008406_0.8672793386117059"},"_hasShrinkwrap":false},"0.6.2":{"name":"stencil-quantum","version":"0.6.2","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@0.6.2","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-UDjNRvIfR6nBxOT3sMqw7nPcI/ezQpSh72uwj/W69XIneJ8qdBDsYUX9TkJMgMd02s0i35ka6HaHRO9BEhC1vw==","shasum":"13fad1130cd9fe1a6f2bdc657278c3122cc5338b","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.6.2.tgz","fileCount":93,"unpackedSize":844230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/O7TCRA9TVsSAnZWagAAzO0P/i1M9eer2xy45b21iZ8u\nxYJjtefuhaIqq710SrjGkL60N8+uDaW+B2Gqg8wHD4GnnqiyQaYKs4YmrSiv\n8p9CBaSCEJTELI+MFu1P9gpyohMKyMcS62pubIIbwdou/ni9y4zuiB7IWrpu\n9EWguB7nKO72KD4E7CmAVFRb6ZAKYd5aOTGHLSZO0HxMSbqgIVe/afMVmPxy\nBRe8MPazyUElLAZ2izoOGKCWSNXgIwHh4E9449Lnd7zDTmaLLaw6sfYmFz8D\nU1fi8RzpL5B6n405rx0KWy1mbFA32hosE0W5a+ee1j5IVVQ/Em1Bbczp9F4Y\nrw1yOrfsB0wqRjXO2TUY0AV0pdtOxC14dszC/S6PfjVwYnN9aKXt+Z2BX9py\nymm9Wn+pXLHO9xI2XuThFs4PZ0pzlg3U7sSQwHWW4iCJ9nTgKH/V+8xMouP9\nN/1Swsh+kHvA5scml7/vUr9YhGsWYYRDbBpbnJaWeyJKMIGOQ8ouZNXPjUWG\nZo3eYDQDl0K62PLBrs1IbiJQVBvXKwYoFkqKPwXkV+Hj1dnfHur7OE94ASzi\njXbm5xYU88eTaZVYfTgeqY7U948MvrFwTQkeA0fxVC1QpjpARWFsPKHqdobn\nkMOJzjInleoLRxKAX98H4DpW8RYUU5AjhgtLuyq0rEv4NLYQlmI5NJHqjxrW\nOoDD\r\n=HDY/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICQ4mobZ5vHrNO+tT/hCTYmK6AMHls3XAsoBByyTbob4AiEAt/VVRrqiBHmkv2ldr2SjcmyYHK7IJ6BulUjxwNgiMgs="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.6.2_1576857299531_0.5894421383798434"},"_hasShrinkwrap":false},"1.0.0-alpha.1":{"name":"stencil-quantum","version":"1.0.0-alpha.1","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.1","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-H0AjQidRn2YRjZW92neoZ3J2j7fB7WtS1OhBF1Dx/U/LoMJj0HGdOwIhsm5NkoN72GEnln/sDcl0l0QxsJHcKw==","shasum":"10ed7bef56535e192bb87d46cb49e69ee095c41d","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.1.tgz","fileCount":93,"unpackedSize":870260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/O+GCRA9TVsSAnZWagAA5PIQAKF0K3JSwOFCC1p8hlkV\nCAqduHCLrs9ChdRlqU4ExA30ZlAfzE76Gqjp0Dqyqu1cwGenuG2jlWLTR+WO\nC2qxEyCnmJ/4dTIm34BAKSI4aON/4/e6jUsX0A3h60+qcQZucb+i5TZxF3cL\nUfdRYnadgYG1eT/iEa5iUj8fca7oJ7y5jF8oMsXD/Y8OKKDDMUmqougw6Frc\nGgpaEPpgC6XvNiCMMKi7DWt2fYSImQT5Nn7kBAeZtUzZ7dSkTtcKXkYbQj7E\nd6p+0K3/+96i0/dfFSAZipjTgEls6FPBkdegfi40NczYsEQnw6cg//mmYxMh\n45BErcRNiFoCWkAYnPAS/45hfAhZMD5ofqC95BOVS2Hvc0nOvNc4nz36itXj\nspkBkSn5W3T8as6kR32Rk7maZV8oA2E37fk2VBxFUREGqszn6w+uz7ilc81c\n7KstUqz/BybxhQHUGQHZiIJdAOLa1EepuU6PM7cUSUCKOv2DdIZkoi5g/IRL\nCiZw54c5MtEVcZ2wn6GIhxvrlmnyeJjvTD5MLXK8g2AJfttE2tSlMoNGYxfO\nGr83FtXw/cwfYvT//U4j5EH8meOAD7TH/Tdq6XiUCn/yhRlfSMo6RBgbmJwP\nMVUMKxVX78yNdJ6lgfY2QGs8wIUXRHAW8UNNFpO9LelVHQREnYzLQVAMIoVL\n9lgd\r\n=0MDA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0oCaD3q7/Wj4RlhyPLo+ixbFbQNaQ+1+iWr5DItKNqgIgNr9wUM5P+EmaNZTq7XGb9Kt16JJ75jy0TJ6LpHRHyk0="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.1_1576857478200_0.11577826887938802"},"_hasShrinkwrap":false},"1.0.0-alpha.2":{"name":"stencil-quantum","version":"1.0.0-alpha.2","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@1.0.0-alpha.2","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-eJU4Gu+4tgQBE6+xVVH23LeTbqdjbnihS0OKHNh4dgMf8q4StBdy4HJsNRrpf8FbrfwlnGnhTaiq1BkT9kq6wA==","shasum":"177541f2e2673b4171e34c15d76785edcfc1262f","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.2.tgz","fileCount":93,"unpackedSize":870945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/T+sCRA9TVsSAnZWagAAceUP/Rijth3Op9ORS1ZqDnvw\nngTC6YrZTJ0EiJtJz5jDx3GG/XUri0sr2tFOjoNoPN57tOi6eG9awMqrC6y+\nukprL5QUV0Zkm1ExE2PC3g7tcLYZMuGQr8jws3DtbUOBZxmpk/T/tgumnopx\nDKU+LYHy7610UaKtL8r1JOABI/KcTBnUf0CUKnCfVFjHjIcobqAsuZbJnjtP\nkkvFjhlch9272yYEuCu/tGmlwje4Ox72fYKTWdxBvkWwT04dBPPYx0KK5QtH\n2ZT0HK5R28/5Rxk8jvNs8swAPirzvvlK54aYe93dh2ImmjQCtq9egCmbH+TK\n2vA4ZZb2NqJGUAAiEgoTAIqoEwaw1xdiqYFz4k05R2NxQ/4JgQORlmHczovC\nqbhOYBQLTNEIWYlFkherRajxuAS8hnhV+4FxGNRRKDT+UYgFwgqMR+KGd7xN\nIjxAxHjjAhsJdkt8/OQElm+WHJoK4yBePpW+vdTeWvL+VoMbXgc4ujlRpQkI\nk2hwedG0EB+jh8g/0eBHYly7vZwxb1bDoWlPQux4RCkah0yFZ5a8TznvMT7o\nxJct41F2ZOfaSfjnDVx6qUvZgs7YPeEgWpPRg0CLm1CHqMw0xQksy0evI/iA\nFU3VlLiP5Q3T0fRweWh0Suoh/meqmpH3zprGidml6iWHKOL0/NsKjHcefIzK\nhJV8\r\n=Sfe/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8F1pPQvObmvd9FXWvODot+kTIJEESnyBX96v6PuhK1AiBk8qDuY4zdvk+5MfMoGJHqN0/VUg9DiJ9Btys1o/kOVg=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.2_1576877995772_0.38915683081582686"},"_hasShrinkwrap":false},"0.6.3":{"name":"stencil-quantum","version":"0.6.3","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"_id":"stencil-quantum@0.6.3","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-fS++VQqf4p83Sz0FTQntcUg/gpb8f9VgLISYzKprwHsdKsSpEPo5k97lvWzmrNcSSvvCpO/XUWR/tFpuAjvJ5w==","shasum":"23d41aaa09caac79a590086fb4c8a7f4f4cd3b9d","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.6.3.tgz","fileCount":93,"unpackedSize":844230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/UAxCRA9TVsSAnZWagAArG8P/3jNbJGNXt6uLToNO8Rw\n8dHDC8/d9aDVeuhIluwvsgS+9vcE+K2TgHZcIpOcGqbaJZaco7Spw+Q9oEht\nUhybLLm9LzBaz0pp0RdHKj8+PCxthbYa6DJ7Fpr0EQSLzxrtRkWYOI1HxSRh\nzANCn9XoRXMr2GoARfPZ4FmgcjEOPbxZMFNVJo8//bHMqPLeGxLlECr0GP8h\nfaPHWcxvHms3sj4faFynQlArbpNFBaRQJqcG1OHs1KIsPjaRfzFdhyJYLlwR\nhF2xBKkP3QL8A6jxasj47aEmjsh9q70nizbXODqMLrvNF2eqInoVYFfOdkXe\nfIEoRWCxGmppCWxVordkTZHSwjFTppLPrN2CxjfoPQ/+Qb6vH59PKWq7Kiri\nTXNp8j/ZsdZLSsnRS9fY8j8xvvORsK+nHYCmF3mXBxZbmNJDztq1QtqZkDlM\nWgO21wZ83ChBeiQq0zQRjNwc5yjS5XGeAj0SAZZnKo8DodysgtPU/GZp0KLw\n/LkTBtwxpCeIgXO0PvCPjegUvMFlYnD0LqDftWES7ZJS01luLbZ43ZgkdXlv\nf6+pG5znnaYwtY9md64oOTfUnksMIu5BXffPE/8hyS/B0dq/wFN3jh3oivhc\n9KMdLkw+WH7p6W200D9Gz9opzbGEB6lFU3EeNnSuBqlLLHtCd0xYoBHLZ47L\nRZAz\r\n=Phjt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtZD6TKU+a00zMCbQdU6O5dYooKdWyiHsjvLWUjm6CjAiB16RVnqSZ/RistkHb6K72o/A1jaPGIckJ4DbHpIsbl6A=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.6.3_1576878129048_0.4100008235265278"},"_hasShrinkwrap":false},"1.0.0-alpha.3":{"name":"stencil-quantum","version":"1.0.0-alpha.3","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.3","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-rQ3qmz5k1zUmn07OQZmO0D05d5HHBT7o1KEAfYs2+mejVWHGEvFtesqO/pKFBCaqOn26gKESMqIRej+PPYDuow==","shasum":"7ce5b26a658bcca6ca0d681c54703392edba33a4","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.3.tgz","fileCount":93,"unpackedSize":870945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/UDkCRA9TVsSAnZWagAAktcP/1GJrybOOmKbdVSwvQ9g\nFsDJsB/LfoqVQGcQSZP9CERbYR0hVqe+1AJ2Ing+1Ze60bxPT5EiPWi27lIi\nnOYaHUHQpe3+MJfzfQ7UL7uUUsm+CHi/h3fjNl8+Jbn+MAODGwNwezGAzQYc\nuZZnQ7k5R4aueN2oWvHJCZmUvHiEQOIteBMGuLs/kR3hXom2vlaHAgp8SGna\nm9Jq7Pc9BH9MKJvVNoJ1FzQaDUw6DLs4Z6wmlUbeAV8ByKMbq5lenXEwBhGs\nX0nmAv1DB/7eF+61svlPc/vEWSegCmGsdJe87/7q173Kd5LWcRbcV4eileHq\nMcRDcRzlMBIyPklVpJ9nb8w+pKWifFC14gbLdXqfrG6ilxibaCbNnRDtaoz5\nIjBPb7MX4PSN/Uye3fqx+todbun3PBBWsFpnY238EpOMdz1p8E+olHo6MFWw\nTHGmgZYRrLJ4R/KcAS4RTzAi8Puy0sNqcHUMJ+xhk+5K5cHFs6+93/x6A702\n/RgIujiD/e8Ug4ZA73nds+2iPzUOCi2qZG8Nzopf+xJFI1Shc5c47EpVfPDU\nLDGOjIJoZbDakGbrJbKAsv46U6BjxRvu4E9VHf/1AoJGFFKx7TOubsmvVbpp\nVDlZt5f9OAaV5hIB/KflXyb+2opJJtPTriYCZOqaQnn6UA9oHSoM633KtzBt\nZbge\r\n=ZMKP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG0bGqihlf5RBrUrHfPvj1Hj5t0Tjxh86OWcixkmKa9pAiEAx+pdZbofcBOuzl0AaOlEhrBzq21uC+tTeGd+Y9EjWTA="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.3_1576878308406_0.4047699093097241"},"_hasShrinkwrap":false},"1.0.0-alpha.4":{"name":"stencil-quantum","version":"1.0.0-alpha.4","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.4","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-Zjs5jxEMMLhihEtBfehfRlGnjfkjEzT3y3sApLKSa+9vjydc94SRmRzYWrIotWOtV5w29Id/Dbn7Rq+0OQYSGw==","shasum":"ad4040edf56bd75b4e3e7f110dc120eee56e0a17","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.4.tgz","fileCount":103,"unpackedSize":991773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/UkTCRA9TVsSAnZWagAA+S0P/RC2WL51AplBmvwH/F2w\nybNMdKgqBBKcJ8M3nh0mB+UR3KWRlNn+yAkGgE5eV87W7qz8uS56pEvIfjIi\nPig9QpniveoGBBvZ8WY2nz3/XHJ9VijNEEkimTBQsVJOEmRMeR14kDCNt59+\ncbQ2eyCHCS3aPdVDhSnsD2OVUed/qBgZMa8/qJUOv/AqCrw+ElMXdR0Qt5k2\noP/pMfKI4OPer0BZb8xBJjxogvgp1VWO2UhSkhy4DVqmBWoWrjBIyo3QP0yR\nRifsKn0h3CZko9wxpGQ6aUJDv0rQAhrvkCBsHQ16q7OWS4N9uYi9/R5DDVjS\nCk6Ey6rmdc6ouOBbnYlQHJmymJ1Qyk1t/fH13Lp4NC2aJWA3Kf/7MH6j2AKM\nFd7GsypbcQf32QdnVnCd65HnJCemkAoMqb8FGGLUlIHAr1572cILV98iUT9A\nHGBSIPftQv6Lv7akSMKl+30w+nlRPhLVVJsP3RSVbQORnKUK26yqBQ3+u9KG\n95vuJGQBH6LOmjgZHBVlrF5cIyJphWSTD5JfzLG7c5x1DGkcXqPGXnwBVk+L\nCSNjR19lnlZDYz+VVIHzwIhn0beHTX9d4+YQ3ORO4k4nDKxOIvcKEHr6aruy\n7CVVRitAB4JfPNPXR+HBX2gOmwDICMTtJAOfc5zERFGd7o3cfs9fVR4c/KLD\ndLlr\r\n=i483\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSLFWtCebQraBtS5aPQpgTgndg/QZxGRgQg7aXEXSpkAIhAPD/AMN5KK1aBvEmgZH2QEMQizdjqLdVQ/T6p9rKHzF1"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.4_1576880402782_0.15018824644390127"},"_hasShrinkwrap":false},"1.0.0-alpha.5":{"name":"stencil-quantum","version":"1.0.0-alpha.5","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.5","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-17rv1LR16Ca1tAlAq6RtPpag4Gt13yiAwvF6FwNwU2N/UwKzrg20t1Z0nGTmvf2I9XDwkicsauhbxYjYAR2WBg==","shasum":"126178b5cc7525b9e33de994077086e506ec2380","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.5.tgz","fileCount":113,"unpackedSize":1112655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/U0eCRA9TVsSAnZWagAArQ4P/1bvPNqzZyM4YF286dIF\nTdnFENMZjezGu6gnDZKG+Mmg8vRKVJ6eaI0mnVl5qCWQPBAtWY1BqYvE7lFI\n/u7diiARveAErZHYXoUlM6YVxiBz3b+Xwuc6TDNkYQUhdgK0s2nScR4tM3FW\nTw3H3XrP/Gdf/TE/dvwW2GkwnRhJC0Sbp5iaMGeHiMnZenI+w1yqb9qfdnJW\nHvGf0bgyL/sDocO8Js120984YwVAH261+jXyfR7H1EjVPVtjhpndzXrWuk9Y\ncougPQNj4LbiH3WJ2+nr3NQX65qpdrTN1ajYUGExEJ154C4snpp0cumC8H+W\nnqjU72ItAkyHzxHhdA04gJ8OtIrBSSyEbFEasNFfJoDVMIRcov8GbGxmy06W\nvspH4Gx5p0CKypEgg12ATwvk780K5Yb/v+TIKQrhqRHWXhhE1xshbDA8V0dX\nxqk0pcMUwETrE81RrWzQDCvIT5AVLMoX3uTx5H+DYFkXBagNY/HgNcxvDsBu\nIi7hJQZiUAknnkyBZviXyeupnmDHgCzfQOIl2UBTRgEXt2sAZEiFsrkZQe2j\nPJc3l8wS35nU/gCqTkxJuBUiXQezSZw+yIwlFS1RwdGCiJmWBR4NeFxg2IDS\nelMehAvRUlmdZxcVD3P2Kb75kOrxUjBbnYyxFprTkd5np7EyNLPpbyug75JF\nG9Xv\r\n=nunW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgUguhWGvcuZD/kL9DtH2BSZKIiFLexg/wOyv8qfgcwAiAFAYRGUwY6T924ag2HCLkl8aUb530Nyqd7+hcHsXo7+A=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.5_1576881438316_0.9765213699633404"},"_hasShrinkwrap":false},"1.0.0-alpha.6":{"name":"stencil-quantum","version":"1.0.0-alpha.6","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.6","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-BLjSn1jgc29brWovQfYLe7VgkpJGxbaR7LfHE9Th96NTM4K+SUuEYSSHZg5M+BsDXOzp9xXx0swkDFGlKXKyEw==","shasum":"632e26ad9de2ba520c9e3f0b925c9c9549464f20","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.6.tgz","fileCount":123,"unpackedSize":1233659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/U7ACRA9TVsSAnZWagAAr2QP/01SiqEC1bj+M1JiDBj/\n73CNEDoaV4U6kmPxTpeuNFDIkqsBhZRDMkcCyy4riFrqheyIzu1FGLqb4ZNG\n4omkNXwWhBpg34vrI/UzYas5sQ8rShZS1S9QVBJdV/HfgLecnnqPLc5hU8iY\nZwrLmUih/CihyF3XTyDt+hFxAwh1V9FeRTYerl9OBUsSA6h+PRgZYwhqv9Ap\nrq1QbBBPtwtZIsDbSY6vpL7rZDhw/JlhVdz6vU5/HLbpfnapxQoHrMPkDQd8\n9nHj5XRiPKPAupbHWhrmtdxv1y9/7uyGhZhqPAXub9uUab+YiluZUwIxDFh4\nK2ho1BZXOT63HETHWhq/FcG3vSDfK/nKfPZ7QN+rzca4eBUCixCCLExZCKQe\nq2nCoOuKZKbAtSZ9X/OBsvCLVAl3uC30UTD/X6Qc0kw6SFfzWRi3WLjzAtBg\ndS1UqTH5yjad7hfmTdFuFDcRdeNjdjuGqKwVh9HXkpBwXCQ0Z+O852Hl/BGP\ngYTMh4gg3Y0bUBFyN/RVWgi/VSQFFMd05KEGDIWNzAGO/FvLZ5WXcsBBlX8E\nZfczQzOChZU0zP671RIRYOOtZlZ/XxXTqCmHv9k122c+IhV0iiAfMsWFORAa\nypfL5zRRZj0cgzPkPS656gcu5TCPpzA0aSJLC2Q9FQhcjmPCnieXFDM3vCXI\n9rJJ\r\n=NzCZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb+WnhGDyQqRAF1i0mtre8UvcgOhUjk8LuPoyTX+DoGwIhAMNrbpTKESHM6JQdO8YKZPhqRTuR8iS3Kiah1nvUtTUO"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.6_1576881856373_0.00679150781639426"},"_hasShrinkwrap":false},"1.0.0-alpha.7":{"name":"stencil-quantum","version":"1.0.0-alpha.7","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.7","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-5Gg7Z/f9WAv9mnXWCjR2xWxtcjTFo6lYSaOePYxx237uZsVwGN3USX1Dpsswt6HOiVS4GI1/2rzDDFmsXUZVBQ==","shasum":"20c44474a535ee6a747062a32828ed8b28365469","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.7.tgz","fileCount":233,"unpackedSize":2570360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/VcuCRA9TVsSAnZWagAAgSoP+wXI4RREy6OSS3Hk3/Gd\nQXy+0ZiOUPUWsgxdAS+n2/1/zu9drNFbo1P5Hh14JxZtPJaqVYrQGfNFNovQ\nkGUTGfzZAwyzlVWDcjuur057C//+fniLdTrjKw+/Rwn77FiYWp8b4ejtEzRb\n5Lwtp5Efkbg0GBjJde3XkG5KW3inD+GIBir8Y6pezF4UzjIRQUsbZ+YA6vb5\ntRNpgBrrslByF677b5tCEK6lQj/QWbnw12vtuIIwKw9FjDcq4DZ9157IyAFK\nrPiSK+u0csxOygZfIbI//TyScz6fpos0nlwEoAoJ/rXkVpoIzyPDE8LW8DVb\nuMov6CJaXRXytb6Tp2CgOhkqXv1XSD93tut2hfsMZFSd9iauM5Wsh/DadBhY\nYwQiXCOXLE83gDEQhClQXKaSquO26QYZUxxCTr0CPYp8m1Q0g65Pb6vom9oS\nTKYMIpbhab3YQmSNlkzqVrvZod5p84q2YiIsxfhwsOCyh1R48Onn8RtqFjJa\nnLi+HxWtzY6WtHWa5r+m1rX6s7UxbCfN0l410UvxaDi8aX3fbzzrNZ6o9ixw\nmjAAeRKtIx+adSl4repwnq/0Mu7wOKNAaIwbDbnfI0aV90ZyoRL1LaBOIAu8\nkIvPkAZgQUyNzdX2K4/ECJ6BemGZ7a3Ha7saBBEMB6XzgGAzRU8SZDE5448+\nLMMB\r\n=YHJx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqY4Zai7uwOGFAAaPqO/uupk00TsLRjUKJCYkRA4L8ZAiEA5l4Bw+u4aXXHlyOpSEi1dg1/swIGVvwzb4XBV2Jo800="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.7_1576884013659_0.6026976202073229"},"_hasShrinkwrap":false},"1.0.0-alpha.8":{"name":"stencil-quantum","version":"1.0.0-alpha.8","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.8","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-9Wi+oawXZFiTyCFGhQ0RndPbzAFbOl/DsVRc9us5H9Z8KPxzeguBiiEt7rc92NAAtWkH39KPB9XKBO+N2Gbo7Q==","shasum":"e4c39fb4db34e49ddac264be906170f628655af7","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.8.tgz","fileCount":243,"unpackedSize":2695626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/VznCRA9TVsSAnZWagAAWYwP+QBJD1bTqNx0Pmt1qATE\nRjgr3Rpy8QDQnDtiRIk9JEWUQVn/WSzZdN+PdABbc77insW53kzdn6dKrkWL\ny+sajm251sET8div/nh0Gwk91rR1HynoU8kcLQ5Et/Q5ntwNoICJ1TEyJXcO\nRzevv+mptkfUiDkTiE/6LS7lB9DbowMar0or9tQGC2T61hIK7vOK/eDpEfBB\n/iUkN9mWDlQohegn3qAXJrBsZX0jhLDYvCBf3JPW2pIqylKxpL4CWV4QPpDv\nl/V44aN1yELovRipiMNYXg61R3nwMqPVFbgLkI8m1RDPcdsH0rWzc4sSwrq7\nqPQMGeZxjOoVeUXpow10yZJaBAkXA//XGuEHUwf2SZFYcqvYV1BKxXEywKHm\nsZk0fM+ZALq8H5Gdliqbpiqzijoq72ToLsX2lv1K39StmvFD26pj3LfXGrNY\nGY8kUX2Api64LUloO/bfxuobTrqOeP4F9XJFGDLR014RBZZVG05clvdRK8u4\nbh6xGQ/E1yc12UIyYYftMHPOVEnzUUw6E3MA95LXFU1EKRW0wn2u8TD3Xo+u\nCRe+h0qN2YJlsSirTu+X1BL8/f3z1G1HeB/3I3bMDgdIj5ld4dNaYq1yixC9\nZDcy985Wpxw86T2infJ7Yau9tQSqZnxv2mLYPAAOIa8s8V+6QMbUI9TKVljK\nwTvW\r\n=h+Vf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGEBldyuS8ifuauIRQ+rQGjtvdLuRuQiedMnRhLbFZ9xAiEAkY5jeWTWNd6XCwX046dyyvgS2yySbgGr+h6GHrgsqtY="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.8_1576885479458_0.8246125592860427"},"_hasShrinkwrap":false},"1.0.0-alpha.9":{"name":"stencil-quantum","version":"1.0.0-alpha.9","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.9","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-mnBPTjIjQYZyYKnoybQBLGMVA03H4QWZI53Cbrp3Gm84CO1lQ98IW7lhoTLTC9XIbJt6Yb65Xouwi8ROrf7Q5A==","shasum":"c5dc3e79ec47bf4e2e4d7963cc53d6ffaee40ee4","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.9.tgz","fileCount":253,"unpackedSize":2823921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/WN2CRA9TVsSAnZWagAAs1YQAKEXCvq6of+D89dGmtiS\npAcX/ABslD0VvObSa6fsEADIAVln9WGIUzhXZlGXAbbUSbYJlS2dotjXPMxn\ner9JKOcxjkbU+ZeNrWJlZKlJfjTnBfY18RWVFnycTMpB3pA7d7ZL78jPxCTO\nhc+eKEcxXNM4OXwsENuW9DpxefHlbtUTnPk9Np/WtdggKAbvrM8S9yqmJVcz\nzjdy5VzH10SkSmzE9BGQE6/nwKTURaQs22JfZDhGWwsIOwbdq1m/zlnLSRLD\nePnnpdTlfUKokd4Jv6G20xJpUvMiObzuHjFPkf6V0T4Ya+fxyyfNy7S4z1e6\nfMLeNr/RFLo2pz8c2SjDU50CgX7PK1d3AuQvAnQKoikBLRvQvUrV6MsWvkq2\nk109i59wqaPArOFCn11QwBXPv4SqW5YbWK6pM88+pTXNIajwwsu7xF6IKb4f\nmcUWwK1aUp8WY4UV+uyZjwt5DKZUdj6gKoBX0+vLVddHUr2LrK3jkDEfDJX8\nLr7RgBYtWBmaZdkxNs4WQfwJCCkdD/oKam5hjeg39uFc+V3PMKGjR7ry0jkD\nTa9vJOamuRQbwXzwxxeuumnPAgc7g1mL4ZqTbQrD7IkE0lHCCXdS1059VhbG\nYG2Cdb2FFsOwq05m47TbWkIHkOSk/AGuLiYttjFGKbLho8LMb+21Z+18pUB2\nDQqZ\r\n=WEXw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhcimmXejOMu7210c5bF4bTPYjX72doxDLb9mxzBw+7AIgP+Domok+SfzTnSHRCATStiV64zBs7S8W6flXrSVCmzw="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.9_1576887157905_0.9243237126136379"},"_hasShrinkwrap":false},"1.0.0-alpha.10":{"name":"stencil-quantum","version":"1.0.0-alpha.10","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\r\n\r\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\r\n\r\n## Experience the quantum realm of stencil.\r\n\r\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\r\n\r\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\r\n\r\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\r\n\r\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\r\n\r\n---\r\n\r\n## The Quantum Realm\r\n\r\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\r\n\r\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\r\n\r\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\r\n\r\n---\r\n\r\n## Decorators\r\n\r\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\r\n\r\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\r\n\r\n### Basic Decorators\r\n\r\nIf the key on these decorators is undefined, the property's name will be used instead.\r\n\r\n#### Property Decorators:\r\n\r\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\r\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\r\n\r\n#### Method Decorators:\r\n\r\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\r\n\r\n### Advanced Decorators\r\n\r\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\r\n\r\n#### Axios\r\n\r\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\r\n\r\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\r\n###### Property Decorator\r\n\r\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\r\n\r\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \r\n\r\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\r\n\r\n#### Error\r\n\r\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\r\n\r\n##### @Throw()\r\n###### Property Decorator\r\n\r\nSetting this property will throw the value to Quantum.\r\n\r\n##### @ContextError()\r\n###### Property Decorator\r\n\r\nReceives Quantum errors thrown at the same or any child elements.\r\n\r\n##### @Catch()\r\n###### Method Decorator\r\n\r\nCatches Quantum errors thrown at the same or any child elements.\r\n\r\n#### Event\r\n\r\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\r\n\r\n```typescript\r\nexport interface EventEmitter\r\n{\r\n    emit(event: string, ...args: any[]): EventEmitter;\r\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n}\r\n```\r\n\r\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\r\n\r\n\r\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provide } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\"\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Provide() greeting = \"World\";\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Context } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Context() greeting!: string;\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Components\r\n\r\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, State } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @State() johnTimer = 0;\r\n    @State() kevinTimer = 0;\r\n\r\n    componentWillLoad()\r\n    {\r\n        setInterval(() => this.johnTimer++, 1000);\r\n        setInterval(() => this.kevinTimer++, 2000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n            <br />\r\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    render() {\r\n        return <div>\r\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Manual\r\n\r\nInternally the consumer and provider components use the following functions.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.create(this.el, \"greeting\", 0);\r\n        \r\n        // These two are equivalent\r\n        setInterval(() => provider.update(v => v + 1), 1000); \r\n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h, Element, State } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el!: HTMLGreetCompElement;\r\n    @State() greeting!: string;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.find(this.el, \"greeting\");\r\n        provider.listen(v => this.greeting = v);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.10","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-DpgtEkn/Cd7eD5HIzvF8W8xlznNUFMICTTTIy2LOsF8Be5pxNuSYkeu6gb+8kqGOXGhz81HloK1kOebOHGjSnA==","shasum":"a0cfb99cbcb89aba2e49db6b9367e56e7d58c66e","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.10.tgz","fileCount":93,"unpackedSize":882079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHbfhCRA9TVsSAnZWagAAfSAP/j0EuLNoBNDGLSbxjc1E\nzKbhiQ1as2w/P/Clt1KgOnh3tteP5StfETajThq4gSO+ok7TtICz57v1Sol1\nzarHqpbbIAgit0p1z2AdU5ka8cGpoR9YjNNVlVenZWQBLajpi6K+09S/Dz9L\nMj/72DmlqGl+Cyr1uZ/OkzlSlBzBlo3ZWzTXDKKNtVxbRA9RMmioUeot75w4\nT9F24UWliBb+N/lSGJk1hAQLmZ7gQbwm6U/jUlGtrKM9Zg6FAP3Sv/IZK64t\nPRomz3ec2XkA2HEuhVGKHv/S0PKd2Or2JwCKZlPPwC+c4d0qCz3WvZ4/W02O\nBmXEJsldKCNzokhPCqsAMX5DnszIPRs5RjWWaWpq27jRwZ81CwOZxLDNAWmj\nPtaOM5f+1KVdNoCBpO6ur5vNStrb20bWs589N0nS6QGKlnpmssm58YQ7bM+x\nDFHzH4gF1LtTe0pyH+JflIclaQVw8KCUXmZxP2s0McRSAioPkcR/CAE61TZN\n9xXeZaFEs2W959puKnZNFGWU09EMuLmhEfF1PiaJFnZUGAiP1P550Uo3ANrM\nR17ldmz9kgL/wb1dYVWwb9TeXjVZscT8EFDqRj+xsXHgSqX81OINyoPUq86d\n/NvsQAS1GZuLwgEy+XsISge5bkfxMh6HAIWVFmvBir4rD/mOXdgUhnTxkB1Y\nuUYG\r\n=0wFR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCB1tWvDJX8A9fQRYOWHeFw7iiO1YKD/mqm/vyaxOp7EAIgGFWuGRivRXAsVMCiK3kTEfXs/CL5MqIut5i0AHG6kwY="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.10_1579005920661_0.4559734581548851"},"_hasShrinkwrap":false},"1.0.0-alpha.11":{"name":"stencil-quantum","version":"1.0.0-alpha.11","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.11","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-f+W+qFID4JMHlPrkbtoxJDBAo4V8sxOfUwagNO79B+NBXAsDwfq/GIzCcUEYzOjxOLotF/TfSDn8dX+0PGOU1w==","shasum":"bd838b53271b9ee3a414771e4ebfe8ebef3de5b5","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.11.tgz","fileCount":111,"unpackedSize":893796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeK4sDCRA9TVsSAnZWagAAXRAQAI0cS+AZ77ojjr7FUqle\nzaWJKtmIyw1OC40rkwEgTGO7QxR6n/LK7ryGGNKiCpkfD/pQKesT2TjxUJ3L\nAgo56fFN/AM9lj1IhaRRppEs0H5wGwcrTbeFEv9Da7CkkSZpPLOLo12J8IIh\nyim7DX8rZE9bWpzAlAYANGMJMwV5pCEkM2stcsue3iGvR80wM3OxflD+iUOr\nV0r4F68QaNulTHeSQFPSvpqwDMm3cZepQovwLGsKn3gyV0cWiv4DOEaxLR3I\neIs+X5eOW2kUqUlEmti6nQniFgQ74E45yAEyT6pa1pP4YNefE5WCnt2T0NLr\nQabCokIi+bFH0JJmlVyOnOA8gFMhQypbMA6ZadCrN+mx2rut44arAK/y27hy\nVoCdseH+tg88Mlqqp0xiY59NpbDHkRjJZNnAoWO3grxCE0rM4yZ9xI3MpZwJ\n4gNCCbgR3lYGAKhXERH2WPEnvCPrUYchiNbAfcpplKpOvI6fSpPFvePK5BQS\n9sQQTQA4ZbgY3VFLoBXL9ikh4zlfzbgf4vIPc45pvehILL3xrNxFYgreU/ht\nLo4Oket4AYXl8LK+CYcqLentHIg+V11EAFoK5dliivixRKdO7Hb17a5W83Jv\naizH9qHNUhcG8vqboZGXJ18nrYNCm2BFDRlQO2ORiJ46PcKdCfzsHfYArRHq\ngC9/\r\n=DDVo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG38eZK0RiZPEtMEgLQ0iwzIhJS7HJ7ThE/sGCn5xD3SAiAaAZ4f1BqmuDqx7b+n4byPAh3xQZCvoXt4lo7f5I/JfA=="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.11_1579911936859_0.32648569519604465"},"_hasShrinkwrap":false},"1.0.0-alpha.12":{"name":"stencil-quantum","version":"1.0.0-alpha.12","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.12","_nodeVersion":"10.3.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-ZqP6yFU3yJNYci/puNNVHTtkw0rdJfylh6beGtqzjhRba2aEF/eRSlUwcRpYZ6/YnQhjIhYPKGtBqrrAs5Ny2w==","shasum":"0542da228103ae0320a3c9e5b27d0dfaed76541c","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.12.tgz","fileCount":111,"unpackedSize":911060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLJmHCRA9TVsSAnZWagAAepAP/0io4Lthe8iKR2o7DsSj\nJp5Uz/2gSLFqCoKUwYNWgur+Ihku6nCI0WnlQQOXd7O7UALHu4+KgH6JSf+c\nX5SNk5DDMg1EEJdS5FETkUuk2BXRrOi5t2Nuo5ZGX+O8ifGXLdit4ZidNB38\nqVlEJopepm2cwz4x4hOlsNHvOGZ0Puc5lh/mpUn076gZKxDYTR1ZXJ0qo1CP\n6+WK24uB5W76BwG23FI2XyK9gGre0P6NIVzQC2n6/YeAn1/egXb0+s2S0Nu6\noH7OjB43Cw7EIRoElpvC0laU4EC3n2bXhzAVQcvDP2VxbaVvn82+R2CpBrid\nfX5QRsfZ16zB3wTezugryFExXXD1xzBJWDz5OvWtm310XW0f1+X8sPKEYC43\nmDKcNW9c7SyEML5gzSBrxTkJD/+1DVKJa5mTIXs90W/rY+V7dn7/9WcPBK+B\n5MUGFkMk2LkOBiFVfyPjm90Q29Mn2FMTtpl0fyKvar+LevOJkTTE/jFofpLM\nr3JgKXWJHogMqif+TWyxlaFQ/GFoCQVPt2/KHHxT0NTEIr68sabINZk0O4bN\nbCE/9KuE0s8zVR/JHVu/hgOoTi8NHuzxU10Dtu4xq3mnp1+fWi56OZChbiIC\ntWj6J2iv7gAlSusK5Y9HhOCedQUTptvedOsMkoYln1jVXSzusaAJO38/tohF\nYj8d\r\n=aPlj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtPmCJlkwRhGS4QFZfZ5xkSF4HuyzIfZn32Fj71YQlewIgMuFQgvHlxRMTx03Jo3lAJSmqL/OsOfSuOnicuqM6was="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.12_1579981191163_0.7646176961899902"},"_hasShrinkwrap":false},"1.0.0-alpha.13":{"name":"stencil-quantum","version":"1.0.0-alpha.13","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\r\n\r\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\r\n\r\n## Experience the quantum realm of stencil.\r\n\r\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\r\n\r\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\r\n\r\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\r\n\r\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\r\n\r\n---\r\n\r\n## The Quantum Realm\r\n\r\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\r\n\r\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\r\n\r\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\r\n\r\n---\r\n\r\n## Decorators\r\n\r\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\r\n\r\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\r\n\r\n### Basic Decorators\r\n\r\nIf the key on these decorators is undefined, the property's name will be used instead.\r\n\r\n#### Property Decorators:\r\n\r\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\r\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\r\n\r\n#### Method Decorators:\r\n\r\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\r\n\r\n### Advanced Decorators\r\n\r\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\r\n\r\n#### Axios\r\n\r\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\r\n\r\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\r\n###### Property Decorator\r\n\r\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\r\n\r\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \r\n\r\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\r\n\r\n#### Error\r\n\r\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\r\n\r\n##### @Throw()\r\n###### Property Decorator\r\n\r\nSetting this property will throw the value to Quantum.\r\n\r\n##### @ContextError()\r\n###### Property Decorator\r\n\r\nReceives Quantum errors thrown at the same or any child elements.\r\n\r\n##### @Catch()\r\n###### Method Decorator\r\n\r\nCatches Quantum errors thrown at the same or any child elements.\r\n\r\n#### Event\r\n\r\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\r\n\r\n```typescript\r\nexport interface EventEmitter\r\n{\r\n    emit(event: string, ...args: any[]): EventEmitter;\r\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n}\r\n```\r\n\r\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\r\n\r\n\r\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provide } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\"\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Provide() greeting = \"World\";\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Context } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Context() greeting!: string;\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Components\r\n\r\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, State } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @State() johnTimer = 0;\r\n    @State() kevinTimer = 0;\r\n\r\n    componentWillLoad()\r\n    {\r\n        setInterval(() => this.johnTimer++, 1000);\r\n        setInterval(() => this.kevinTimer++, 2000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n            <br />\r\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    render() {\r\n        return <div>\r\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Manual\r\n\r\nInternally the consumer and provider components use the following functions.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.create(this.el, \"greeting\", 0);\r\n        \r\n        // These two are equivalent\r\n        setInterval(() => provider.update(v => v + 1), 1000); \r\n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h, Element, State } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el!: HTMLGreetCompElement;\r\n    @State() greeting!: string;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.find(this.el, \"greeting\");\r\n        provider.listen(v => this.greeting = v);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.13","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-U70FD4QmmT/Bia1tXkQUqMYZ3iKvmLuHCf3TJBkW+SNh9VntHHtVPGIj3QvNkece10OoC+UnIPEmCJSxc1OvxA==","shasum":"dbdd79ca65634b96bd45bafd430b304024868e27","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.13.tgz","fileCount":111,"unpackedSize":909777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLvaFCRA9TVsSAnZWagAAlZEQAJwLRAiLfEtKS6psg27M\nVdTLSHkuCntUaFel86hBvh1PIY0feEPvCGgRMnNd8yvuHf3oeMcDJqz6w3H9\nHzh4AfHybgW483V1FI5QraFE1NgHZ+pHUuHc3WMkwMtSQBj/G0d6e2DLty6K\nTVMd9B9sMEm6i/l2i4zE/xo9vNquAho5MNGXlLCHWGfIQt2OE14lZaxI1X7H\njO3yHq+LHLPetenEiukSxLELQILJ9fEyPm1eCUCSZtiuoJPpRp5p+W41PN66\nzpAE/qfk/c5wPQ6G3Es7YYnXmBA9os0P+Hs52j5ED6N24u5rNSgdPFqOnlbB\nKKzi1m6UZS9qKbuunWtMBZmfneXUCT2A2cxgnzOMbzsMmYIhppTVit10Sd1z\nbOGfCouatlSfZame0EGnwrW/Rx3S37EqwLKSHW5hBN1FfOlPXd7Wm5imH03T\nMw+ux/iBJD1cEcQLj5CFIlyOfNN1OKPveMdWt2P33iMRQqHnBKtJ+t5OYvXX\nCEdDt7kdoXM+yU6o/eRwuiSs2A4dR24SV+ky8TBpKFxtmH9UZxRZIZDsh2J4\neHNFa6rGwkfKDy+02miG6ptJu+5+EvAV3O1kXhJhXErcXLvO3lh82S3AV4KQ\nZXGZ9Q84dBzTqEat3F4j466xljlbQDgMOWNIoA86qXm2FS4J5u7Cbf4PJcZ9\nF/db\r\n=lWHD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5daKIGpYChS6QuatRZT28nkc2i3UyAwU8HXX4DE9qJQIhAPj7uklrxOxStkuFSqqV7xaV/AYo82cnWd/ncn+DCJVt"}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.13_1580136068573_0.17762197084367348"},"_hasShrinkwrap":false},"1.0.0-alpha.14":{"name":"stencil-quantum","version":"1.0.0-alpha.14","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\r\n\r\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\r\n\r\n## Experience the quantum realm of stencil.\r\n\r\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\r\n\r\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\r\n\r\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\r\n\r\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\r\n\r\n---\r\n\r\n## The Quantum Realm\r\n\r\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\r\n\r\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\r\n\r\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\r\n\r\n---\r\n\r\n## Decorators\r\n\r\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\r\n\r\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\r\n\r\n### Basic Decorators\r\n\r\nIf the key on these decorators is undefined, the property's name will be used instead.\r\n\r\n#### Property Decorators:\r\n\r\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\r\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\r\n\r\n#### Method Decorators:\r\n\r\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\r\n\r\n### Advanced Decorators\r\n\r\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\r\n\r\n#### Axios\r\n\r\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\r\n\r\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\r\n###### Property Decorator\r\n\r\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\r\n\r\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \r\n\r\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\r\n\r\n#### Error\r\n\r\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\r\n\r\n##### @Throw()\r\n###### Property Decorator\r\n\r\nSetting this property will throw the value to Quantum.\r\n\r\n##### @ContextError()\r\n###### Property Decorator\r\n\r\nReceives Quantum errors thrown at the same or any child elements.\r\n\r\n##### @Catch()\r\n###### Method Decorator\r\n\r\nCatches Quantum errors thrown at the same or any child elements.\r\n\r\n#### Event\r\n\r\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\r\n\r\n```typescript\r\nexport interface EventEmitter\r\n{\r\n    emit(event: string, ...args: any[]): EventEmitter;\r\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n}\r\n```\r\n\r\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\r\n\r\n\r\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provide } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\"\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Provide() greeting = \"World\";\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Context } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Context() greeting!: string;\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Components\r\n\r\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, State } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @State() johnTimer = 0;\r\n    @State() kevinTimer = 0;\r\n\r\n    componentWillLoad()\r\n    {\r\n        setInterval(() => this.johnTimer++, 1000);\r\n        setInterval(() => this.kevinTimer++, 2000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n            <br />\r\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    render() {\r\n        return <div>\r\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Manual\r\n\r\nInternally the consumer and provider components use the following functions.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.create(this.el, \"greeting\", 0);\r\n        \r\n        // These two are equivalent\r\n        setInterval(() => provider.update(v => v + 1), 1000); \r\n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h, Element, State } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el!: HTMLGreetCompElement;\r\n    @State() greeting!: string;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.find(this.el, \"greeting\");\r\n        provider.listen(v => this.greeting = v);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.14","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-EU+uh8+ePXUEJKwhhYl09GSzpR8DDLlztStiY7wI4jjb4aWFmYq1F2SSTVXTbu46eLFoKyFbe3ubUNcknttCXw==","shasum":"1b93aeef7641722e46253a2a75dee93f1f544913","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.14.tgz","fileCount":111,"unpackedSize":909976,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTTpTCRA9TVsSAnZWagAAR90P/Apr7uLjzVtz6RenAFRY\nbF07XlHxSofWjZK9PJAhkTDvxQQxT0ueoTzbwvq6PzqLLwsCjmQtfyN7SVH5\nYbORFq+sNwfwJBYXe/Ff0uEv34UW7Nc1VuymQhLQh3a+mqcCWXVG1BCxg7WO\nQd0Q1nxhYrYGcXBIkbBUynEwurC+9BwkIDAPje7HfDx3DJ4nswYZ578OhMLl\nXSXmapYtBicLG93Fv4qLTTabsWWLYzTKBxIuEY/YGOulMcsvJ3dw0Kc4SsaV\nZHbMKTMkDuAxviD4tsVBBHknlCjQpRS8CqL2BnVtQ9rVnKlnX1nlufrAT8Og\nI/az7sCKVDJQQSHsYx1uZHQYH6G3yffHUhp8Ax4WCpFKAcchTDaxHm9tGhjB\n3WBf2T14h+NzBPVZ5qCA+qAeCcBOvkjege8GzbaGDAni6TZfHRW56jFIeit2\nFBuMhSsEI2aM7yfxIehky9N7X/9kccr28rDbyTYlJdxqnZFB/Ayxf+jCPJqD\nB59/CN+P5qFr2Ic7tW/DnK8DYzE91o+ChZFVyjHKYbpZ7JmDJjhZ5RCtQgMq\nLBzbShPfXLT1TrALIJVKL0qE9Q6QT33PHEMDVC4vINAvtZOR2qjjfB6L6z66\nX0ebxPHtVWz9Re2wD73JAENgJGjp0cE4SsOLdLtefVwVtEKQL1JODiP7AmdX\nQWGp\r\n=vmer\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHjzJtf3VeU3Sl2cNujtf0db+Y/RPOI/4EjHTEU/W3g0AiEAjO+cnQww3cBCFv3uhn46LGTkFffU0OV5npKF4YK4ZCg="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.14_1582119506484_0.4099285143066329"},"_hasShrinkwrap":false},"1.0.0-alpha.15":{"name":"stencil-quantum","version":"1.0.0-alpha.15","description":"Experience the quantum realm of stencil.","main":"dist/index.js","module":"dist/index.mjs","es2015":"dist/esm/index.mjs","es2017":"dist/esm/index.mjs","types":"dist/types/index.d.ts","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{"np":"latest"},"license":"MIT","dependencies":{"restyped":"^1.1.0"},"readme":"\r\n\r\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\r\n\r\n## Experience the quantum realm of stencil.\r\n\r\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\r\n\r\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\r\n\r\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\r\n\r\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\r\n\r\n---\r\n\r\n## The Quantum Realm\r\n\r\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\r\n\r\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\r\n\r\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\r\n\r\n---\r\n\r\n## Decorators\r\n\r\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\r\n\r\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\r\n\r\n### Basic Decorators\r\n\r\nIf the key on these decorators is undefined, the property's name will be used instead.\r\n\r\n#### Property Decorators:\r\n\r\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\r\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\r\n\r\n#### Method Decorators:\r\n\r\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\r\n\r\n### Advanced Decorators\r\n\r\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\r\n\r\n#### Axios\r\n\r\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\r\n\r\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\r\n###### Property Decorator\r\n\r\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\r\n\r\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \r\n\r\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\r\n###### Property Decorator\r\n\r\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\r\n\r\n#### Error\r\n\r\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\r\n\r\n##### @Throw()\r\n###### Property Decorator\r\n\r\nSetting this property will throw the value to Quantum.\r\n\r\n##### @ContextError()\r\n###### Property Decorator\r\n\r\nReceives Quantum errors thrown at the same or any child elements.\r\n\r\n##### @Catch()\r\n###### Method Decorator\r\n\r\nCatches Quantum errors thrown at the same or any child elements.\r\n\r\n#### Event\r\n\r\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\r\n\r\n```typescript\r\nexport interface EventEmitter\r\n{\r\n    emit(event: string, ...args: any[]): EventEmitter;\r\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\r\n}\r\n```\r\n\r\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\r\n\r\n\r\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\r\n###### Property Decorator\r\n\r\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provide } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\"\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Provide() greeting = \"World\";\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Context } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    @Context() greeting!: string;\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Components\r\n\r\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, State } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @State() johnTimer = 0;\r\n    @State() kevinTimer = 0;\r\n\r\n    componentWillLoad()\r\n    {\r\n        setInterval(() => this.johnTimer++, 1000);\r\n        setInterval(() => this.kevinTimer++, 2000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n            <br />\r\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\r\n                <greet-comp></greet-comp>\r\n            </quantum-provider>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h } from \"@stencil/core\";\r\nimport \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    render() {\r\n        return <div>\r\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\r\n        </div>;\r\n    }\r\n}\r\n```\r\n\r\n---\r\n\r\n## Manual\r\n\r\nInternally the consumer and provider components use the following functions.\r\n\r\n### Example\r\n\r\n#### my-component.tsx\r\n```tsx\r\nimport { Component, h, Element } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"my-component\",\r\n})\r\nexport class MyComponent \r\n{\r\n    @Element() el: HTMLStencilElement;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.create(this.el, \"greeting\", 0);\r\n        \r\n        // These two are equivalent\r\n        setInterval(() => provider.update(v => v + 1), 1000); \r\n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            <h1>My Component</h1>\r\n            <greet-comp></greet-comp>\r\n        </div>\r\n    }\r\n}\r\n```\r\n\r\n#### greet-comp.tsx\r\n```tsx\r\nimport { Component, h, Element, State } from \"@stencil/core\";\r\nimport { Provider } from \"stencil-quantum\";\r\n\r\n@Component({\r\n    tag: \"greet-comp\"\r\n})\r\nexport class GreetComp \r\n{\r\n    @Element() el!: HTMLGreetCompElement;\r\n    @State() greeting!: string;\r\n\r\n    componentWillLoad()\r\n    {\r\n        const provider = Provider.find(this.el, \"greeting\");\r\n        provider.listen(v => this.greeting = v);\r\n    }\r\n\r\n    render() {\r\n        return <div>\r\n            Hello {this.greeting}\r\n        </div>;\r\n    }\r\n}\r\n```\r\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.15","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","dist":{"integrity":"sha512-MLJmJp0dPYU0omkAmjZqoPpxI74mfQfvxi84JoVyp8PYsAe6jExau7In/66hUhesO61NWpX3myVCl7jNAxdrmQ==","shasum":"78649bcbb23f87dc62d579a1389a9684ccf3a51d","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.15.tgz","fileCount":111,"unpackedSize":874112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeakpBCRA9TVsSAnZWagAA/CoP/2wSy64Vw0Q1T0AE2D0a\n1JC3yB0Ebh+MI1iiCRGj3meILX5EZOGuWSjXbFfGQrUYTn/9qqieLPjGRD4b\nDcfIukKhHz2/swfijmduhxcr4bRHDoDX5bXF2wmGywCJ2RL+m39R2CoOh3dH\nTwPmpNFej+pz1Yq1+Fu9Mme9sp4WDvlVh19vTQO869za8ciVLMlcErpXsr8k\nQadZKDW1c9qJMzH76ZtEAXq9isymFzeRTNb471hgkgFs9EtLBMC+yf37PVKb\ndy8YMBy5wVWMBkpJuYtHWJT942AdjJX1w4+H4ThT0PinZPke+CDBsTjJi+Hy\nBgaAAxKyYyQzFQvgX0AlwLnQ5Z1fBMKBBGDY2wRC+wxUS90BwrTIc7WaUpbB\naYFPtTRPAwc1ETm9WX8MUZOYhn7WUY8+toEb4I9TG3HPL9XvzWpudOxeYuAh\nXU+nWTLbAvUbO3nMHSzKBs0XhajzyXafysQ0nlBvExIXUmeONpQ5u2eqJS7D\nlDizPC1sFo7qmDX7dnvhFGxyyUALeAmwrXP/S/o442SDyElRT0XPLXdxWFk+\nSkpajUDENz1kBBnASVtWOXKsCi/aWzcla5AeuQhlA90FEBaHJ0P7N0qbUtqn\nJ7aCplH93JAVMLARiTbgD5ZV0M7qcj4APIkxdByc9Lz31bFUdOGclrif0Eur\nzYiE\r\n=ky33\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC76OnqNfX8D3euVA0mgHbK10pRsXjSksg7IhQceyy1CAIgPSdTJzncLNS8qxJCJRU3+yBQR7WC5bKgOuHlOecvIZM="}]},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.15_1584024128555_0.03186179772366149"},"_hasShrinkwrap":false},"1.0.0-alpha.16":{"name":"stencil-quantum","version":"1.0.0-alpha.16","description":"Experience the quantum realm of stencil.","main":"dist/index.cjs.js","module":"dist/index.js","es2015":"dist/esm/index.js","es2017":"dist/esm/index.js","types":"dist/types/index.d.ts","jsnext:main":"dist/esm/index.js","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git@github.com:IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{},"license":"MIT","dependencies":{},"readmeFilename":"README.md","readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","_id":"stencil-quantum@1.0.0-alpha.16","dist":{"shasum":"1ccc7769c3d3bcfc5226dcd992738456f055eab3","integrity":"sha512-imMx9mneGNdn7IY9ijj6doeYcuRI3K4PgYf0DipDpM+QA0UsZ7fOppD08M69k8oZTiS1hEL8EMQ7YU3VGcwd3A==","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.16.tgz","fileCount":112,"unpackedSize":446963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftA18CRA9TVsSAnZWagAAlHQP/ieGpLeJlfe3eS60BYOw\ncSIlny9aaiBzRG5qu+Vasj6YvOj4MpDaxtq/gHOjAeVNYm31de++Mc94J4Y2\nuHMvnJI7rmq/ggpVLFUtdaGyX6rI0JKZFH74hIdBC7WFMOiCnwAUmk2u0Dz0\newUlBfFHKsp4hut/0/iosa2RrMyQgzqsbvKgTSTDJA2eg9O1ULDnJy0FultL\nc1DUpVT09NO6Q8wAbgrNdZKrjuU5WJ8zbK7/UvTbWnL82EVQ/+Y+gev0tyqp\nW0Y2RS29gpEG7zJQv8smHOr0Tqdsi35PR6I1OMvafrnLPquWRXCGhj/UAG/b\nEUPSbtr6uNLP0qfh2n82ypmJeHkUMqLYSapVFbtPfbzQggXHvgxDRe6inh3S\nexOhJxn7wdECJWm3ewreg7bA7JjnzaXrEc7w2UcaiNEPvey4ZHhac/kx+MHz\na25K5qA9RactJ7G8i7hn2t1BCoj+theIB7tW8PAVYrqtGCcROnZPfQAePcoZ\n4e4Yz5Ny62O2XO2JmjYJRxNKlKMj8TIZXtV14/fKTie0nlFx/X3sxNf6DTyZ\nNoOVaVq2B841IQtl7JAZwb5Nh7KF+j48zItrGc7ksKs4CEhxwQSYiIdRHNVR\nVFxalnykWRCGwtIm8LgG4I4G8pc0TQQUgd1Tcpby+ZDAc8wURaohVMcIT4uJ\nfEVh\r\n=J6xr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOcw4s9GHjkAch4KLg1TxkeGQVsBsLTrrEVHTnGemHYQIgAQBdFrAe34RcJ7qn6MpVnSgSVmksMzuqy+wobsYWmSQ="}]},"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.16_1605635452459_0.659343930657533"},"_hasShrinkwrap":false},"1.0.0-alpha.17":{"name":"stencil-quantum","version":"1.0.0-alpha.17","description":"Experience the quantum realm of stencil.","main":"dist/index.cjs.js","module":"dist/index.js","es2015":"dist/esm/index.js","es2017":"dist/esm/index.js","types":"dist/types/index.d.ts","jsnext:main":"dist/esm/index.js","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","Axios","EventEmitter","Frontend"],"repository":{"type":"git","url":"git+ssh://git@github.com/IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{},"license":"MIT","dependencies":{},"readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\nThe demo app, hosted via github pages, can be visited here: https://quantum.ized.io/\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n\n---\n\n## Decorators\n\nAll decorators are reactive in a stencil sense, meaning they trigger a re-render if their values change. If you set the value on a providing component, then all child components that use it will be re-rendered.\n\nIn order to use these decorators, your Stencil component also needs to have their HTMLElement defined as \"el\", using ```@Element()```, since Stencil Quantum needs to access the DOM (it's the \"Quantum Realm\" duh).\n\n### Basic Decorators\n\nIf the key on these decorators is undefined, the property's name will be used instead.\n\n#### Property Decorators:\n\n- ```@Provide(key?: string|symbol)```: Provides a value to the context\n- ```@Context(key?: string|symbol)```: Retrieves a value from the context\n\n#### Method Decorators:\n\n- ```@WatchContext(key?: string|symbol)```: This method will be called when the context updates\n\n### Advanced Decorators\n\nThere are also some advanced decorators that rely on the context, but provide extra functionality or functionality that depends on other libraries.\n\n#### Axios\n\nThe axios decorators are property decorators and support [restyped](https://github.com/rawrmaan/restyped) schemas as the first type argument to allow the typescript service to suggest urls.\n\n##### @Get<Schema>(axiosKey: string, url: string, paramsKey?: string)\n###### Property Decorator\n\nFetches the given url via and axios instance available in the context on axiosKey. The url can contain path arguments that can be filled in using a params object available in the context on paramsKey, if given. Additional parameters that do not fit in the path will be passed as query arguments.\n\n##### @Put<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nPut works similar to Get, but sends a PUT request when the property is set witht he value as body. The response will be provided as responseKey, if given. \n\n##### @Rest<Schema>(axiosKey: string, url: string, paramsKey?: string, responseKey?: string)\n###### Property Decorator\n\nRest combines Get and Put. It gets the Rest object first and then sends PUT requests when the property set, to update it. Ideally it's able to bind a property to REST object.\n\n#### Error\n\nThere is an error handling built into Quantum, that can be leveraged using these decorators. Additional you can throw an error to Quantum using ```throwQuantum(el: HTMLElement, error: Error)```.\n\n##### @Throw()\n###### Property Decorator\n\nSetting this property will throw the value to Quantum.\n\n##### @ContextError()\n###### Property Decorator\n\nReceives Quantum errors thrown at the same or any child elements.\n\n##### @Catch()\n###### Method Decorator\n\nCatches Quantum errors thrown at the same or any child elements.\n\n#### Event\n\nThe event decorators allow to interact with abstract EventEmitters in the context. Initially this was made to interact with a Socket.io instance. An abstract EventEmitter looks like this:\n\n```typescript\nexport interface EventEmitter\n{\n    emit(event: string, ...args: any[]): EventEmitter;\n    on(event: string, fn: (...args: any[]) => any): EventEmitter;\n    once(event: string, fn: (...args: any[]) => any): EventEmitter;\n    off(event: string, fn: (...args: any[]) => any): EventEmitter;\n}\n```\n\n##### @Emit<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nEmits the given value to the EventEmitter found in the context as emitterKey for the given event name.\n\n\n##### @Receive<T extends EventEmitter>(emitterKey: string, event? Event) // with Event being the name of the event as string\n###### Property Decorator\n\nUpdates with values emitted by the EventEmitter found in the context as emitterKey for the event name.\n\n### Example\n\n#### my-component.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provide } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\"\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    @Provide() greeting = \"World\";\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Context } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el: HTMLStencilElement;\n\n    @Context() greeting!: string;\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n\n---\n\n## Components\n\nStencil Quantum also comes with two components to provide and consume data. Data provided by a decorator can be consumed with a quantum-component and vice versa.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, State } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @State() johnTimer = 0;\n    @State() kevinTimer = 0;\n\n    componentWillLoad()\n    {\n        setInterval(() => this.johnTimer++, 1000);\n        setInterval(() => this.kevinTimer++, 2000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <quantum-provider name=\"greeting\" value={\"John \" + this.johnTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n            <br />\n            <quantum-provider name=\"greeting\" value={\"Kevin \" + this.kevinTimer}>\n                <greet-comp></greet-comp>\n            </quantum-provider>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h } from \"@stencil/core\";\nimport \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    render() {\n        return <div>\n            Hello <quantum-consumer name=\"greeting\"></quantum-consumer>\n        </div>;\n    }\n}\n```\n\n---\n\n## Manual\n\nInternally the consumer and provider components use the following functions.\n\n### Example\n\n#### my-component.tsx\n```tsx\nimport { Component, h, Element } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"my-component\",\n})\nexport class MyComponent \n{\n    @Element() el: HTMLStencilElement;\n\n    componentWillLoad()\n    {\n        const provider = Provider.create(this.el, \"greeting\", 0);\n        \n        // These two are equivalent\n        setInterval(() => provider.update(v => v + 1), 1000); \n        // setInterval(() => provider.provide(provider.retrieve() + 1), 1000);\n    }\n\n    render() {\n        return <div>\n            <h1>My Component</h1>\n            <greet-comp></greet-comp>\n        </div>\n    }\n}\n```\n\n#### greet-comp.tsx\n```tsx\nimport { Component, h, Element, State } from \"@stencil/core\";\nimport { Provider } from \"stencil-quantum\";\n\n@Component({\n    tag: \"greet-comp\"\n})\nexport class GreetComp \n{\n    @Element() el!: HTMLGreetCompElement;\n    @State() greeting!: string;\n\n    componentWillLoad()\n    {\n        const provider = Provider.find(this.el, \"greeting\");\n        provider.listen(v => this.greeting = v);\n    }\n\n    render() {\n        return <div>\n            Hello {this.greeting}\n        </div>;\n    }\n}\n```\n","readmeFilename":"README.md","_id":"stencil-quantum@1.0.0-alpha.17","_nodeVersion":"13.9.0","_npmVersion":"6.13.7","dist":{"integrity":"sha512-kBatBgGdGbWe3hp/rb/qt40+Y3HEIcvKpPpym/ZX2WtE9c2Aw/iAuPizYTxYTRng23o4cWH2EUb+s9jecS9/fA==","shasum":"3b35ffdb9e61904565fd27aa55426e4b81aac823","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-1.0.0-alpha.17.tgz","fileCount":85,"unpackedSize":417082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftBc6CRA9TVsSAnZWagAAPxAP/0MZo1z90MzJA7amx3qg\n2XccFiMSDu7jOkKv4qHVHR+anzxNW2rhieV2qRx1TmnhPew6p2YDZdAGxU9f\nFkaeyIHmX5kFGH7l3l/++lAh/vweGqDRCx5IhIPPk/8Blb17VC6Nf5mJG6wY\nx6k8JeoQ7hUwTpxLlsvvXYfi3qzz5/+HsTsPDbf+9EtA65xDNmt+VVULP4uS\nzpAWbEac6P8mBZ36ThX3S2TFwBZcR8Cp/eEVPaIH/2e6yI4oPyTqQGCf+Zbf\nyzEB5/aWkf04xc6qzMVJ7TB5yBMqx2FBipo/vnXfnVa14Ji8pt69PjT/kTuc\nW/oqMkuphOb7NwUXP3N7KQTuAOG46tamXt78ug0G1LnYcgMtNfJRTTTw9V+J\nlo3UoVWhrPgjX9h+B8Z7MjKhBvQ3P1PFZkrQMgyAxivgFTef9fRN99/Jx7Ig\nA51xoALz6aAE/wJJFQH4H6NNwbAcbKYKCwTKQcL4QK90uURIc4+02RucyNv5\nB8VrPUCjtuqHupgsNN5EW9191HQTpq0JGJVfVzXtYDz0QkYwrBsGn5FssEHH\nnPRAyJF44oJlFouWLY3dALkF6R5+vK8rjH/Z3VzgOmMohlMyXFFur5Hj0JJb\nqTSGfXJaUw6R8lst8L+JyEeSMn/zeRtaP8DQqLhfXJCTrFH7Nz3U21kKI3XN\nOpNi\r\n=63Vn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjxCviOLNfPfdfdK1F8DS7qH430u5ILP4MsUmRcUjEQAiAthAl4UNvPCAUNTtPzJyGX0VLmmm9VPcOurdrNRuCnog=="}]},"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_1.0.0-alpha.17_1605637946297_0.7578293830941096"},"_hasShrinkwrap":false},"0.7.0":{"name":"stencil-quantum","version":"0.7.0","description":"Experience the quantum realm of stencil.","main":"dist/index.cjs.js","module":"dist/index.js","es2015":"dist/esm/index.js","es2017":"dist/esm/index.js","types":"dist/types/index.d.ts","jsnext:main":"dist/esm/index.js","collection":"dist/collection/collection-manifest.json","collection:main":"dist/collection/index.js","unpkg":"dist/stencil-quantum/stencil-quantum.js","author":{"name":"nk@ized.io"},"homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","EventEmitter","Frontend"],"repository":{"type":"git","url":"git@github.com:IZEDx/stencil-quantum.git"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"},"scripts":{"build":"cp ../../README.md ./README.md && npm run stencil -- build --docs","watch":" npm run stencil -- build --watch","start":"npm run stencil -- build --dev --watch","test":"npm run stencil -- test --spec --e2e","test.watch":"npm run stencil -- test --spec --e2e --watchAll","generate":"npm run stencil -- generate","stencil":"../../node_modules/.bin/stencil"},"devDependencies":{},"license":"MIT","dependencies":{},"_id":"stencil-quantum@0.7.0","dist":{"shasum":"c8030bfa6387af953311b902297e981169f5919f","integrity":"sha512-pXfvs8ktr521s9zzVaE0U2n/tP9D8CKXyec/D2etVTG96vr+kCjHyrwv91ulpi3G2LvmsZNYzCfpLEU65eozpg==","tarball":"https://registry.npmjs.org/stencil-quantum/-/stencil-quantum-0.7.0.tgz","fileCount":114,"unpackedSize":423142,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8c5sCK9vxAV6+I03mwxgESdK+u82ahU7Jb3FLU7kG2AIhANH1MWcx5ALIwMtGn6r+2ihwnPTd0IacJ8064z4D6705"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivDEjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFdQ/+JoHkn0T+qeNitlwSk5kLTg+KiFet3A2knYJl5qL4eDopcMZa\r\nlcIZIhLXWT5yBaGGQ6S53Onm3iYVF45iY4Dgd5+36o6qnAak/nXv0IbgLKKh\r\nACGXik7eM1Xje7HYTOkhBW04g8IiUvvag5jz4ZCT+XlPM1GWUK2XChccLnZl\r\nSoIvvL1+RghRTD25bjkpgNrIj/mmNNZ6ZN6ROQuuI1kEOyuqCCC0PCNa0aL8\r\nwGA57Y9JTlariMcMThRLRT8qD7SFFeHhss+htLuf83ucLLfljQxSrEmRcuJC\r\n6g3VM+hVMAGxRZANMkB/wi/Ro2pEAxD3371im04C2gE/x0lKhzk8O+wc7oHi\r\ncY4bfBnX8ZQe/BDnxn1gcY49FZBu8oqZCYcnJneCE3PLq6j0rANr1LNJBULL\r\nWrhW8XUnQDUHbojxjN6e7SL/GXChaJnBNffYlCTrlRztuxRvqCydx3IVRV5Q\r\nFKrCn/xxdBO2t2OMDsb4k3gQnkmuG9pHg5+8JkIo9UNpSyv3AOI1DCnqcrWA\r\n4YL1Q5BejvGLoG64beHmBaCX0gxRQWJ+p6wNZgf7rnai51emeM32VjGlxneu\r\n2p0spsgLQoEBq2zTyd2mv2PJ7xgLClXnR+AQdmKxPqjksJW/qlSNFZ+eeO1w\r\nlG48h7hd4MUy900RLkHLvIzJyavo0w7aq6M=\r\n=FPvH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ized","email":"nk@ized.io"},"directories":{},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil-quantum_0.7.0_1656500515320_0.6374774384232955"},"_hasShrinkwrap":false}},"time":{"created":"2019-11-04T11:46:02.452Z","0.0.1":"2019-11-04T11:46:02.656Z","modified":"2022-06-29T11:01:55.576Z","0.0.2":"2019-11-05T11:03:37.134Z","0.0.3":"2019-11-05T11:57:44.835Z","0.0.4":"2019-11-06T09:19:45.043Z","0.1.0":"2019-11-07T13:46:38.117Z","0.1.1":"2019-11-07T14:10:43.689Z","0.1.2":"2019-11-07T14:29:11.302Z","0.1.3":"2019-11-07T14:46:25.989Z","0.1.4":"2019-11-07T14:47:54.343Z","0.2.0":"2019-11-08T05:34:05.246Z","0.3.0":"2019-11-10T03:22:12.979Z","0.3.1":"2019-11-10T03:25:11.837Z","0.3.2":"2019-11-10T03:40:01.912Z","0.4.0":"2019-11-10T03:44:04.668Z","0.4.1":"2019-11-10T03:52:09.008Z","0.4.2":"2019-11-10T17:27:33.897Z","0.4.3":"2019-11-10T17:39:50.461Z","0.4.4":"2019-11-10T17:46:50.356Z","0.5.0":"2019-11-11T02:49:56.229Z","0.5.1":"2019-11-14T00:42:21.930Z","0.5.2":"2019-11-14T00:56:18.769Z","0.5.3":"2019-11-14T12:43:51.856Z","0.5.4":"2019-11-14T12:56:35.221Z","0.5.5":"2019-11-14T13:28:56.808Z","0.5.6":"2019-11-15T01:06:59.853Z","0.5.7":"2019-11-15T01:13:14.511Z","0.6.0":"2019-11-17T00:21:16.379Z","0.6.1":"2019-11-17T22:15:45.033Z","1.0.0-alpha.0":"2019-12-20T15:50:08.588Z","0.6.2":"2019-12-20T15:54:59.674Z","1.0.0-alpha.1":"2019-12-20T15:57:58.381Z","1.0.0-alpha.2":"2019-12-20T21:39:55.913Z","0.6.3":"2019-12-20T21:42:09.186Z","1.0.0-alpha.3":"2019-12-20T21:45:08.558Z","1.0.0-alpha.4":"2019-12-20T22:20:02.969Z","1.0.0-alpha.5":"2019-12-20T22:37:18.495Z","1.0.0-alpha.6":"2019-12-20T22:44:16.547Z","1.0.0-alpha.7":"2019-12-20T23:20:14.209Z","1.0.0-alpha.8":"2019-12-20T23:44:39.613Z","1.0.0-alpha.9":"2019-12-21T00:12:38.118Z","1.0.0-alpha.10":"2020-01-14T12:45:20.850Z","1.0.0-alpha.11":"2020-01-25T00:25:37.098Z","1.0.0-alpha.12":"2020-01-25T19:39:51.345Z","1.0.0-alpha.13":"2020-01-27T14:41:08.724Z","1.0.0-alpha.14":"2020-02-19T13:38:26.661Z","1.0.0-alpha.15":"2020-03-12T14:42:08.733Z","1.0.0-alpha.16":"2020-11-17T17:50:52.623Z","1.0.0-alpha.17":"2020-11-17T18:32:26.463Z","0.7.0":"2022-06-29T11:01:55.506Z"},"maintainers":[{"name":"ized","email":"nk@ized.io"}],"description":"Experience the quantum realm of stencil.","license":"MIT","readme":"\n\n# Stencil Quantum [![npm package](https://badge.fury.io/js/stencil-quantum.svg)](https://badge.fury.io/js/stencil-quantum) ![Built With Stencil](https://img.shields.io/badge/-Built%20With%20Stencil-16161d.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MTIgNTEyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI%2BCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BCgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU%2BCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MjQuNywzNzMuOWMwLDM3LjYtNTUuMSw2OC42LTkyLjcsNjguNkgxODAuNGMtMzcuOSwwLTkyLjctMzAuNy05Mi43LTY4LjZ2LTMuNmgzMzYuOVYzNzMuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyNC43LDI5Mi4xSDE4MC40Yy0zNy42LDAtOTIuNy0zMS05Mi43LTY4LjZ2LTMuNkgzMzJjMzcuNiwwLDkyLjcsMzEsOTIuNyw2OC42VjI5Mi4xeiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDI0LjcsMTQxLjdIODcuN3YtMy42YzAtMzcuNiw1NC44LTY4LjYsOTIuNy02OC42SDMzMmMzNy45LDAsOTIuNywzMC43LDkyLjcsNjguNlYxNDEuN3oiLz4KPC9zdmc%2BCg%3D%3D&colorA=16161d&style=flat-square)\n\n## Experience the quantum realm of stencil.\n\nStencil Quantum is [Stencil](https://stenciljs.com/) library enabling inexplicit context access. Think of this like passing props down a quantum tunnel instead of explicitly passing them to each child. During that, Stencil Quantum adheres to the basic principles of Stencil Components where data is always passed down the tree and not up. To push data up the tree, Stencil offers Events, which support event bubbling, enabling events to be emitted up the tree multiple levels and to be listened on inexplicitly using the [Listen](https://stenciljs.com/docs/events#listen-decorator) decorator. Stencil Quantums initial goal was to provide this functionality in the other direction.\n\nIt serves a similar purpose as [stencil-state-tunnel](https://github.com/ionic-team/stencil-state-tunnel) or [stencil-context](https://www.npmjs.com/package/stencil-context), although with less overhead.\n\nOriginally Stencil Quantum was intended to be called Stencil Context, however stencil-context was taken on npm just two weeks prior to the first prototype of this library. This, however, turned out to be quite fortunate considering that [stencil-context](https://www.npmjs.com/package/stencil-context) aims to replicate [react-context](https://reactjs.org/docs/context.html), whereas Stencil Quantum takes a more inexplicit approach, which both fit better.\n\n---\n\n## The Quantum Realm\n\nThe quantum realm (or just context) simply describes arrays of [Providers]() that live on the HTMLElement in the DOM instead of the Stencil Component. This allows children multiple levels down the tree to traverse the tree back up and find the first provider that matches the key they're looking for. Then they can listen for changes and re-render.\n\nMost of this functionality is wrapped up in different decorators, which can then be used reactively similarly to the known Stencil decorators.\n\nAdditionally there are some Stencil Components allowing context to be provided and consumed directly from JSX.\n","readmeFilename":"README.md","homepage":"https://github.com/IZEDx/stencil-quantum","keywords":["TypeScript","Stencil","Quantum","EventEmitter","Frontend"],"repository":{"type":"git","url":"git@github.com:IZEDx/stencil-quantum.git"},"author":{"name":"nk@ized.io"},"bugs":{"url":"https://github.com/IZEDx/stencil-quantum/issues"}}