{"_id":"sparkar-volts","_rev":"33-01482eab44d554f39148f8bea5ee7cb9","name":"sparkar-volts","dist-tags":{"latest":"4.0.0","beta":"5.0.0-beta.1"},"versions":{"0.0.1":{"name":"sparkar-volts","version":"0.0.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","gitHead":"3f354d0093d6656dced68105a6193cbcd815973e","_id":"sparkar-volts@0.0.1","_nodeVersion":"12.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-VvFjKDDgvi58PqSk6+RCoBg5joecW1SZD8mbb4B02jwtG6Dc/Z3rQWIZ+aQMT/yWDLuz2pt3TJwoQbL73Uq08g==","shasum":"54da4c2b5dd9bb01b3afc8ded3db1903675be95d","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-0.0.1.tgz","fileCount":3,"unpackedSize":2265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGEkZCRA9TVsSAnZWagAAXWwQAIAtX11JSkeeFv5zpGuj\n4n0LjHK8WYhFExVR26dENg1azdTfF0pwr8przSDon7n2O3DWQJA+fC/OcZpU\nQXQ8ycqxPzJXur1VkMVUdEh46CfhlYL4ZVYyKw0XdCZVw/kATbp215lUyeYl\n24aJUrOvReS8xR/ZZda77vzdEpid9z7tlnOeBWZmDTO8mKvUGDM2RzVGVLwI\nx2Fqz9cWnV9e63wjwOJDqQazNrT7WjlalsM7ALWMDIf6afQvzz4Lb5hdhEZT\nrjuHpNeyCMcVwbZNV+myWTTnTzzQOpIx/LXgPvs8Ra9OXR/DOPwbtmZCiJvz\n0Q1DCnFwc9YEAgPodPxOrEhuo8GqNQiXC8uiLRdOcOcZ830NdsqqEHAoqY4v\njiDlgyfE2hix3rmQbVtvFCLlJ6l4jWNnQ3UnV4p2mtkk1hVkNO9Ep+dLx551\nJ6xaIzziDz60Ss+XpsKqBYngIzZSdS2ZYtre3c8oRVkvhEKeCopcZdNgJotj\nJ9OHR/4s64EEmIEkPEaFlMlbskVxLK58ATILs2g0JvubUl3TyS9IoiNRkcW2\nb7SSf6icpADwnaygIJyxHFc1/ZKq+Pjp5BOkhpAn9ckp4zm1R/NzpaSw2Tpu\nNX7q42G8vqVz3rCn6UM0+EOktBp7XijxJ5ZkDMlO1mbDsLymb92uYTrThpWH\n4PGP\r\n=lA39\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAszBwvIxjZk4ogs2K3xWbt18/+brtrmwm3fcmKYbWtqAiEAlnI4dPp58KDEMw065Pi+sijMYqcafflq56dvISQKygs="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_0.0.1_1628981528895_0.7581341120833514"},"_hasShrinkwrap":false},"0.0.4":{"name":"sparkar-volts","version":"0.0.4","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","typescript":"^4.3.5"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\nPlease don't use this on serious projects. This is a development branch.\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=beta%20version%20%28npm%29)\n\n```sh\nnpm install sparkar-volts@beta\n```\n\nOr clone this branch\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- Internal signals:\n  - `__volts__internal__focalDistance`: `this.__sensitive.Camera.focalPlane.distance`\n  - `__volts__internal__screen`: `Scene.unprojectToFocalPlane(Reactive.point2d(0,0))`\n","readmeFilename":"README.md","gitHead":"c9072d06626335c7f6013211d3e7796b0a8e4a83","_id":"sparkar-volts@0.0.4","_nodeVersion":"12.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-BXHVSc6dLa0+w2wSM7rbKQc0jGYTTHVnWjEQfYKix1l3vLo0c73fTUx2wjcUfMvBuhrpjVhiarr7D90IlVAVFA==","shasum":"37403ae35c079721724bab264f45b70f0eff41d7","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-0.0.4.tgz","fileCount":8,"unpackedSize":33937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGcZpCRA9TVsSAnZWagAAzigP/iov3XvIBXoNmf3A4lbt\nb1RGA3Dn2E79WQ+jYr5+QtxX4gw3VzcXc87g4fdLWNs2fjvV2FMCdMsp4YNL\nA/4xUAU5MNPfmOLpxyX6q+fPUVvoiR+M2vhmosReYr06fYgFaEwZN18vmLdb\nNTs1asHHa9rjxx8Qb/aQdqINkPQN396w+JzYOYk65LBV1GgAyU4wjM0w/CVW\nBXpnpa6O3+hsBQj9HRyDHD0VLVbCdjcat5cFCmBYpnmdHiq0Afod23dV9Sx0\n3SGZ67ZloKr44Tpzo8LGIT1xvwikp3eJb8OKZqH5Zg4u4KK9ybBY/LYK4OnH\nBn8Z71+LqnXciEq49BJxEeho4nX8lE0z/eigCJfnF1a/olvWxBwglQWNulQs\nQAzB7MxRes8mqRWaENTQXONPjADWDyFCMrzupqycZQBODtjtY2YZCStCt7hG\n8MyWHXzX3Mwd+EoKEJt7AukAsoZ1JLLDNLyDbrXg6n4FTzNixGMeid1eqK57\nDIS1hGsV/VKWMSwMXa5IkADuLKl4u1TNnEhAtFNMwuHIA+8TT7OSiZZZkO5K\nGXor0o7DYMndb3ZopEGOKYVIq4hXxxV+EveYTHqc3XMZPDEEcYKjbb3oV77/\nSFZmeNbQ5gZjV2/cymevFAVprqVpG89Jgx6FGzv5B0aEZg/MxNc2bd1GdBg+\nuLAR\r\n=b+zL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG2LlHmldUWHczFmf8AHXT71tOEOxZej0xn4XWtrayJtAiAssrTFI3OJu9zcRpneXfE7CMolfSDMzw10CvjMhcGV+A=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_0.0.4_1629079145071_0.6860793176317692"},"_hasShrinkwrap":false},"0.0.5":{"name":"sparkar-volts","version":"0.0.5","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier ./ -w","test":"echo \"No test specified\""},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","gitHead":"bd0d6fddf3a13a345b2a5d1a31a9e84e4c6c47a8","_id":"sparkar-volts@0.0.5","_nodeVersion":"12.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-2WyTjWAc73vTbwH1nEZ2u1tKpCN80VdwUOhWydtUYK1MlkpRjlRB9jRkqbVRApXNDsFuwiyijcJj4ORL8+5ZLA==","shasum":"ab42fa6c391dd4f5bc4fcc56c6ad4b355752ec50","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-0.0.5.tgz","fileCount":10,"unpackedSize":12948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGrvOCRA9TVsSAnZWagAAREMP/2jASlM07/Is4NKa12uW\nmMA811et/cDuTJeADToJcsrKSMtwKbNgvkRDxwkQKXxnR2+ZzG7FZEGjnH/l\nq3AcX+qRZXZ104S+rk35RURHj4xGUyi2lQBbtPqFrHuERZhvWkC8SPg6vNGv\nyYtplmgcncQJlqkPrzKspkmY7Wp85G6ICVwG+HrSAqE2aYIs6mwZXrqcipmH\nAFoXbjaYKKMnYtPBMmJpDUqHO3+NDZCBVSEVCiIBXNrmvXxJ3vG7hsYUBjEh\nSA0esWsG0GvUeF07KuCZKLaqR0LJ91dFzqa7LlQXW0VMokKxj5MLF4jtZjbH\njddIYQS4ljcFqngzVJ5W3fkhM2caabp4Vic0nVZhm0+fgmMjvZvmFDNQsGyM\nu8c7S8+IbnCACWbW8AsuI9ktBgvnRiSq5LOXEFD7sA6fP46P5N21qPla1MRk\nALRMsDWpTP8f4yYhZvZ40VprmDH4RKvPLRd3l3HSC4hyTcukvbZeFxdZX6LN\ncO+KiPgXFI9U2iCKsfY7cC7USPo2+1Un33mXyKAUGi03Y5LZ+R/2QcD+4wz5\nINFYN4tVnBm7q3FG+a+DzxwsoYBLo2O18IIPM/sFswKj39I5oKmsm6BlxQie\nTfV0TclPkaz+wtyfmIJNo0WlKPjMtkUsyoILGnnisuDD7HX2AuppgfAq+8Gr\nsJDH\r\n=4NFh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZCIUas88oCvPWtRoRpKwR2oQAihbL/VRutDP7hJ7VIgIgJ7oOTD9OLsHouT/yP9JAnfp4fE/lz/ODaiGVSDcoB2s="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_0.0.5_1629141966679_0.9645086583217748"},"_hasShrinkwrap":false},"0.0.6":{"name":"sparkar-volts","version":"0.0.6","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier ./ -w","test":"echo \"No test specified\""},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","gitHead":"91876c07c347aac6966611c9f9ffd9a471b720f1","_id":"sparkar-volts@0.0.6","_nodeVersion":"12.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-aSFTYgUCWOyJIouRCFU0FTlUuiqBr84jpaU6YYitz3ae/jr/J+zyEcV6QHgPZd5cbXoUq9FOYkPF6R9Mfwa1Vg==","shasum":"2859cabf9f3e3d88862006e0a5391de5aab1ffba","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-0.0.6.tgz","fileCount":9,"unpackedSize":12094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGvWYCRA9TVsSAnZWagAAdfYP/1B/Fad5h9xgZirzCMUQ\neWUSuZ4uX5Rv02YK4cX6SwHkcoCQq7Btxf/YFb0S8j4FtbB74GnIRFtvK3Ys\npWiOUxYS+FZy2RHbtNto/3JD+icPC/SjMjsP8UGYD4ysc1jR+e4iNgPPWLCI\npRyUDBuwg5BChkuwtbBDZbmFKHA31Z7vjfeTNJj55gjxW1Xk7mqfLVK1CgCb\na0M2LkMb6htPAVTtpzIlYGPX8wTQ3XHiq9BaJ6GvwjU8Gs1aIsNEO5vvUpGO\n70kZnUvmGXs56O3ljyFIrT7uUZs38dASzG2dEznz92wxW/qQFNFl7fwtUi1q\nHO28bYaFrqf9RE5kmiAVkRVS1GxrQjlgPtKvEz7sJgN9SkI4I+S7qo5FE7l1\nCVqEiLOEGdlQVKrK1SWX9/+nVaLmXYr11HKJ+LdaEuRVR4wMriQlvtleSfsW\nLnpviEIHcdbRjG/fb9X/MsOc43zAJY4ErciyHQo6Ed58D46Yd7jLKMAP6i2X\n63ZJGrvOfoEak9lWApLEwyoWQf1Xn15fwzOFYuIdoAqrD/YWYqsRFAvIa1Im\nasLASXJIExgFrMHmCEtp1GpobGfm9c0gCz9iJcTOEJQHBls3tKEq0jyBllsH\n/4dZkfkbWP44fhthC831F7nJWBwzlTN3C4Z36JCwXAZbWEA8bmQpA0WaLZ9u\nsRqY\r\n=gRWi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWGuUn5S4S51Fixoap4h7brrwBtISXLQso+iFcOfQBxwIgG8OD0Zq4V+VWJJAsT71A14EfBeLmPqeBZRiL+5QS1Po="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_0.0.6_1629156760192_0.5998009492921303"},"_hasShrinkwrap":false},"1.2.0":{"name":"sparkar-volts","version":"1.2.0","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5"},"dependencies":{"npm":"^7.20.6"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=beta%20version%20%28npm%29)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr checkout into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n## CI / NPM package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n```sh\nnpm version major|minor|patch -m \"Optional message\"\n```\n\n```sh\nnpm publish --access public --tag latest|beta\n```\n\n> An NPM token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- Internal signals:\n  - `__volts__internal__focalDistance`: `this.__sensitive.Camera.focalPlane.distance`\n  - `__volts__internal__screen`: `Scene.unprojectToFocalPlane(Reactive.point2d(0,0))`\n","readmeFilename":"README.md","gitHead":"e9ea5bc47357849fe99f94653820bf08dac87bde","_id":"sparkar-volts@1.2.0","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-lKpFV/yGjjc7LFLidhA6mhLq11+3efVQ5NTdQgz7zGx79qSi3YxRm/cOWdHdcVIKL4ub71/LYfAs5U0KA/RZwg==","shasum":"49a4f10fb9c9d9e751c5495fbcb207f32028562a","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-1.2.0.tgz","fileCount":23,"unpackedSize":72658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHyQiCRA9TVsSAnZWagAAfcUP+QDh1HzmFV8NjMmGraF/\nXr7H3hNFRbVi9Fckm/BApodidinjv6h94GMPHVIaeVUfPcAKyKXknrbE2Uwz\nmBv6YxLI7OnEv8ujt5ZyJR7uVHZrqF0aJZkJRjHjh8JgF78LcAsW95oTe/1N\nEpmPv21EO8ajFMj6uvjRyvCMglcaOkL0dGTnjEs48Q0RWlNF0eH8ygqdT2Y/\nD6gkKPatKf9lfVid0RLkEVtIYueW9dDcqyspQHOeZPYEgY3G+HnF6HrrNew6\n6O62mG8mpHpuwWMYSSs+kks3jGT9bR/dn4ZR5GIpxaFHkiahKOS6JBGqDAA8\npRKEvnsM2FyyL6GuKZL0pb2gQ0hFJdtIvIH5R6WKAoMJrSn+rA3LQbt2Q9Vf\nle1P8qRr88GRFV5hW6/Dl1RExa6ZTGtfHA9AJsZ7NvpspyMrWMV99SCR/crn\nam4LgelmGCyoU++ZSP8e/FJj76jNbglPyYOIFkrcfcsZzNHjo85IqOJVHniL\nSeObj8BUjzjWm9NYlrFFD+RZIwsOqH69v823zvqgMScNQghVUgIyklyZ685h\ni/t7JgMlpgpHq2W2CUFfdUT42rc69vBiH1s2pYXCicTgHJ+aWT4hGPYP2ZgR\nUeY7zKK/uyYtjDymPWCTMBOPVwfzTAHanNnqAT5Y/ZXhNhfB4Nv15A5hxMll\nOqNh\r\n=r9n5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkeAfZRGDUzcodFIk5fRsn8DryTgVvGfgUB4n4853HmwIgTYTWMvBVJdHWlYN1K1xDOLUrcokEn/JgMm7JFAQFoFc="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_1.2.0_1629430818511_0.8035307575769022"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"sparkar-volts","version":"2.0.0-beta.0","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5"},"dependencies":{"npm":"^7.20.6"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=beta%20version%20%28npm%29)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr checkout into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n## CI / NPM package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n```sh\nnpm version major|minor|patch -m \"Optional message\"\n```\n\n```sh\nnpm publish --access public --tag latest|beta\n```\n\n> An NPM token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- Internal signals:\n  - `__volts__internal__focalDistance`: `this.__sensitive.Camera.focalPlane.distance`\n  - `__volts__internal__screen`: `Scene.unprojectToFocalPlane(Reactive.point2d(0,0))`\n","readmeFilename":"README.md","gitHead":"b5a2735187e93dc20c586f839fcd3a53858b9b25","_id":"sparkar-volts@2.0.0-beta.0","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-lwpjDtVb3eBvw+L/Rr3WQXMnHfYg/U8Sg0r5c7J9aUauZq8iS/U6B/rpj2mgtFBg2OjrCHXtYGDEc2Nndgc2Jg==","shasum":"534210cfb91513c08bd767d301c61d3f9c7ea26e","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.0.tgz","fileCount":23,"unpackedSize":77329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhICCWCRA9TVsSAnZWagAAXwYP/28onzPoMOax5hb39YA5\nglWh6jXeoXS6273qnctAw7BXvxItOAePYIYccam8lH3jF+44M8djiP+HUX9E\ngn9DImekcRty14c5ufyB8Q/azvVU/2fMZDOsu9a40QgBTzNS+Lce7+j8ez9l\nJXEOoeE8IAPQFLKSyvYVPJg7Y4CoL04pqpPm88c3s/kQ8Xjqrzi5UFtdXZi6\nFo1aWpjUHw8+gZQXRbv/X+0mbLV3vYUgUZ0nOYaRH6eIu7RXjM2YfL1ykQ61\nHWGkyIlDCiFWfyn/EelcYUwSutbRJNx7/wLt+GoZlFuqAWFp91RGrt+CnyuZ\nen1VbwSB69lUII2wCvx9EW1UDe+/5f93hLksS6Ep8xCNwViHpGx1CWJPZTFv\nonly5O47FFJuzyroeKjw1+270Gnsuxyt4aOPQqk77Gw2k5AukNQ89ylU8EpI\nRJD120qmPNtmZXzAWJUOtYWdHI6xnXxOM2lF3pnvCjxF6Ke2eG4tskFsLxfV\nhyQKSo5nA7wA5mJBZYk6LQo7yGtXUYjVFqp5Qngv8r2RxaVZaNoXueawlxSR\nDpX/xdXukPSvtczT+LpeTPVvIsbW2MSoW1ztc2rfFzQS0S0GmpAk+scd0zNR\nh830I0KfLfOAUsv/iEhmAyahd1ve4wmLU7m2ggfwH9Kvvf1LalYBHpZKbJXx\ndkb8\r\n=GgZT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApBpOF9zd4+Q7QKWbZiuSesBnOiLK085naR8YWAfiJSAiEAqKJd4x5gNJNxFGode5CgC8F5ubwtP43CYXQ2NgcQyz0="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.0_1629495446140_0.18283406160655225"},"_hasShrinkwrap":false},"1.1.1":{"name":"sparkar-volts","version":"1.1.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5"},"dependencies":{"npm":"^7.20.6"},"gitHead":"5e010e7cb0d29506b4573914bfa90ba6d33cf20a","_id":"sparkar-volts@1.1.1","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-gT1S1FR1LROM9vPELT9S5dk59N7uRI11OQaSBiTbG3nHEKxZa/oE+tJOPyoxyG9xRpM0bNpI+Z6FbJUe/2q++g==","shasum":"ff43e8779e0a463c1bd2473326d043e3119c600c","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-1.1.1.tgz","fileCount":26,"unpackedSize":78493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhICOhCRA9TVsSAnZWagAAoYAP/1VfNWrxE7XdXGmqBaJN\nW5BdoFuU80XqR2DeqFFEumKtP4LXQLIyf13OpflvjzS/XSKU8pBXBc/+9ES1\nH2uC4p4x8E6zuM6cPjfnzhCx/OQW6AB7yq+OmsWRD1PGTbTcPzwgrHC3279k\nkhK+kOnApw9JZlpRl5RWgQHTlPX61MGBAkStWsa3wucIuEaKbyss2ckFlO5h\nx5hMbyJD5hzPLh46N7mqp3RwrOOVvazzAPX1sSXsf3wB3FS56eTjZho6sEF0\nQISUs71KH4uxs5YP+ucJKmiHDrFZ87nQyEyxkePfeP8FXp8/s/0knTWWnSkB\nZB2WuhACqI41QWQ7uKvZMZXdgV/ZjKK5RCXsZiKrMfhA9IjvyuotLP1rxB2Q\nSa35i1zALdwSryQ8lZGeDqjagWtBdHU9jkmDOjnclhwBN7kVi9hkuVJ0rkmD\n0qnE88zarBe3K8+VUSEzxU361Bg9kJKcDurNypiaJgRYZwG78il4fOPelnTJ\nve+rbkSOwotjaWgFxe86cbz2u71fNszYIgH7Qi8Bz896eGPwIraIQRUEdR3S\nfZRQzc3m7XeoLZYUDu/I+KvY4y2oAFH6nuYlXqD4oapj+wPxXFSUj4YG4qln\nsdbKWjS06nmN0c0myVIqXoCVZ3bHqeJPhME3qHHk6HZXKAxn1z60wEmZvTcm\nGW+o\r\n=5Zj9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrHzwgAyAODqWVfI5r9zPZ6iK0HNIXeilCWNSqZm5vxwIhAIsEGEEZOmXfe4VjTtOUzR+u0uUN4NRNIfLDLZuWyP6M"}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_1.1.1_1629496225143_0.8903420042259913"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"sparkar-volts","version":"2.0.0-beta.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5"},"dependencies":{"npm":"^7.20.6"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=beta%20version%20%28npm%29)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr checkout into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n## CI / NPM package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n```sh\nnpm version major|minor|patch -m \"Optional message\"\n```\n\n```sh\nnpm publish --access public --tag latest|beta\n```\n\n> An NPM token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- Internal signals:\n  - `__volts__internal__focalDistance`: `this.__sensitive.Camera.focalPlane.distance`\n  - `__volts__internal__screen`: `Scene.unprojectToFocalPlane(Reactive.point2d(0,0))`\n","readmeFilename":"README.md","gitHead":"11f4d752a2129572a60ae4616f5495f2cd17acc7","_id":"sparkar-volts@2.0.0-beta.1","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-8FQIOaXoLlgyF3Y/3KgCIJRtVhY2EF+LPgP+hdrMifJcCmb4hhUrIKyMDRs/xwQp/7UZdj4lFoiMRT4hu8LEpw==","shasum":"e96b82d13a773c5366554ccd9168afe7b9b4f9bf","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.1.tgz","fileCount":24,"unpackedSize":81829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhIXjgCRA9TVsSAnZWagAA0TsQAJE5+BH4tYtpzkuD4GyS\n68uP+jp52pG4B9/IlebXs+eQN08rRp/bQcxzjVkJaadBRcxzg8pB1LbKz0aj\nVzluQ1lWuxOYNsVGXt4gyp6WzcIe4qBjqifhmC5ZNA9gvLchnAO3L6R0MIYv\n1NMSjVbzvce551kiBQhAc91Xhv2wL8OQa7gluSbAjywS6fG+rpbiftn9Oujj\n6C0117Q71+nqi2iGLSDJ//3Yk5Bm7OPIZgHaYMJEbo5YBO7enelCoUKlavhT\nppcMpuhVQGwhJyvPbipM8vRwvUXauIgJv6GxuzPheYrmNgiOcTpnjXLCNTCU\np1i2d5hIBx2awujVxeId68O3J5oRwabVLQh0zGmvki56gFKQiLSYECBUK/Dv\ngYWN9tq8OuTsfOe/3JJIPwEyo4l6ZrSdf6c4IIRG61BT3/otcCRWSrlY5CHK\nhoSsSllo9hXNIlrKcVelRBQgqZfxjD5mAzV7JVQsEKbjXsFUrkn9ifJUEtDF\npQlMsfKZyUOURbnF4i6joA6cs2xVT7/KwJmgPtkfeZJ9raUnsd9byBTc/RAg\n6gsq8HMGvAN6aHcxM7qki24tlcDsgeLz+4BDsDhRAU/tpUrm68cR8j9+V3R9\nIJ1Bh9k7iU2rMiS1d9gmGx8heqBIb1kTjL0GQqR1cyXI7Hgk0P4yCVLUnC2e\nrf6p\r\n=6pg+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEtV0PbQ2gU4BU0LBi/zroxupfKd3u4Yph2JmfQ+FFKSAiA9g+Hc9tT8keOpESC7rj7cj8Zpahc1hg682JmR5ek2qw=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.1_1629583584633_0.0850001657138384"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"sparkar-volts","version":"2.0.0-beta.2","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n## CI / npm package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# v2.0.0 plans\n\n- Major rewrite\n- Change the structure of some classes (notably `World`)\n- Better types for the Vector class accessors (still not clear on the implementation)\n- `State` might be formatted as a function, to provide better type support\n- Provide a template, ideally one using a non-trivial use case, in which the advantages of vanilla > reactive can be noticed\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- Internal signals:\n  - `__volts__internal__focalDistance`: `this.__sensitive.Camera.focalPlane.distance`\n  - `__volts__internal__screen`: `Scene.unprojectToFocalPlane(Reactive.point2d(0,0))`\n    > Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n","readmeFilename":"README.md","gitHead":"c4a71cb2310d0e931af1e8d0eb986d0266267a1f","_id":"sparkar-volts@2.0.0-beta.2","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-bRYBO6+hZJUcQoPE3n2ylWjmvuntqXS/4EbidtijUnZe/cnRcC7TmEth0PZ7XNpclcPN0s+qlTUfLQ1VBMBB5g==","shasum":"3d9a50c0a58ab949e71500c67467d7e18894e4ae","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.2.tgz","fileCount":24,"unpackedSize":82539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhIcatCRA9TVsSAnZWagAAHPYP/i5V0sOh5Ei7GKhV89zi\nGKBX2+Yf1wHxm5bzD48sOU59zU4rsMHVdAPn5bGBCAK1ORVzpykUkaGJunck\nKlIkDAyEdbWv/jEPYlbz7EfQ0+Rhxk35q4gZCoxjZ7AdQB2Fv1VxQDjosPPA\n2Kt2c2X4gm5JAYShbFZX9ArhkgR9fqpIKkAV3i0QkB4lhprITqsISCro0nTh\nNiOiawILGHcnM9DLj2+rdq/XFPvbkfSnnOAhqQB366xBv+Yjd9a5Y+27QqdH\nFuO36D2MYF2IjYrCQn3ta4wu972n5QZKvatb9Un3O3rU4ADFPiDSsSgk6cb+\nRfwzVrNXFRFJcGGOML68wtFaJcKYIuKnBXB29wJVNx6hZwpCCkSFImAZ+sTI\np/h5kA+egBdG2mzV/QVSZM7HifzxN0FJzVKEsZI/+SkZE5p+VqjzIlcBsv0u\ndlXd7lXzCQFFBv4jysy4cewwjgIJ1mF4E7NPQM6o4hG0pHM2Iu7vrGVzlC9Q\nhp5DY6OSPTuthFbnBNmIcjFA3EkiNCaWWahhZTibz/TvzGnZd+8zyc0WUwwl\nVoPj73N5Ju0ICCxcy1/J7aKj5Xnb6Ric1T94VG618RvQgB7dBGFtcVqpQl96\n8JjKIee1YeViKGQfwa9ZYNCuBTA5eVK787wyBnE6xE6sN5zOdPO/jf81NHFb\nPBz+\r\n=umzf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF26YMhLvhDbgimty01JdnTd+BhMqVkS4rbhHkMK4R0/AiEA/HqA9D7acHM2GrV6hvg0Fk5m7nQUg1QP8KLjl5trUAw="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.2_1629603501247_0.02847679013096127"},"_hasShrinkwrap":false},"2.0.0-beta.3":{"name":"sparkar-volts","version":"2.0.0-beta.3","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n## CI / npm package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# v2.0.0 plans\n\n- [ ] Major rewrite\n- [x] Change the structure of some classes (notably `World`)\n- [ ] Better types for the Vector class accessors (still not clear on the implementation)\n- [ ] ~~`State` might be formatted as a function, to provide better type support~~\n- [ ] Provide a template, ideally one using a non-trivial use case, in which the advantages of vanilla > reactive can be noticed\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- Internal signals:\n  - `__volts__internal__focalDistance`: `this.__sensitive.Camera.focalPlane.distance`\n  - `__volts__internal__screen`: `Scene.unprojectToFocalPlane(Reactive.point2d(0,0))`\n    > Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n","readmeFilename":"README.md","gitHead":"109cafb2100a766df9c44de141abf3df26e743a6","_id":"sparkar-volts@2.0.0-beta.3","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-UA1bFL3W7NL9JSXhQEkmlxVDjSX/SSrljKBqGgjf9nFbWqF5s8WLrdCJ/M8edvAecJzM3RVd79VWUE0Dhl6tPw==","shasum":"8dbd9017e90ff314b4b614e0af4fd9c2d86f875e","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.3.tgz","fileCount":24,"unpackedSize":77280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKcA1CRA9TVsSAnZWagAAKx4QAIKH2Mpjm7Yhod3pvZLR\nYjQKDgxqIF+cWEE99pWQtZpEVutRRHJyZAfb7nWYBiv3sA38fri0H/prIjef\n0IDNXyQzW2dcgrJGK439LrFGGbPFCEF/OhG0vRyAOtXGQgqNKoo0waFQIyLV\nHaaATdwoh1ca5dTYMphj8qBIQna2THIb3F8GLEyaxNCwEprSNNn13n4PIDYZ\nTECubRF0hN7ZVcGU3W+dMdFp7pdT51AurFAyCvuZi06R8Gu936lZymmZFxwb\nm9D8FDTmMo9/HRVJVOSlt511G1ZpfAeSFUjWrXOGGdYwNw4TB9zaDk1WC/kL\nxKzb45GSQ4ycPMwBsnm/QKXSrXCINSua/RqsTKSSqrRB7VZhGxidJGQ/7MTC\nHbnJfWwivh8YxI+bBmuWYylUjEOI3LF/VQob8KT9tSXm3n9nuSQX2EIQJ5rP\ne7/WOvOm6WcG4XYgCZS+wSgTl3VBT8VN8yfPq/X2cWtVTRBkNbCG0+2Iw7Wp\nFL39VrCdi92hb6uv7FvJcZrQijUjJcMXz2YawSqYCRXa9STVso0o6CE563L7\nPXw0sJXnRW55EJ05uZ9xTT9wJBqFZeNVnNfre4A4HfOrPYi6JHgAO9D4CJkf\n9LRLWMFBZc2Bcn0EAF0FebWgd3/im5g9p+494qkYgIRv8KXVn5CIiK3zW4JS\ncj3x\r\n=yykp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBfpFMQQLggmQbiMsXffxynQimb/QYP9daS6N8l0J6CBAiEAjbuUZmIgjQ14Jvps0EpNsCeGuIMlKgxchGlUvp2iF6A="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.3_1630126132994_0.7742025484301616"},"_hasShrinkwrap":false},"2.0.0-beta.4":{"name":"sparkar-volts","version":"2.0.0-beta.4","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2","jest-coverage-badges":"^1.0.0"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n## CI / npm package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# v2.0.0 plans\n\n- [x] Major rewrite\n- [x] Change the structure of some classes (notably `World`)\n- [x] Better types for the Vector class accessors (still not clear on the implementation)\n- [ ] ~~`State` might be formatted as a function, to provide better type support~~ (dropped)\n- [ ] Provide a template, ideally one using a non-trivial use case, in which the advantages of vanilla > reactive can be noticed\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio 118\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n","readmeFilename":"README.md","gitHead":"5e168d9fadc9e0fff7f44b702b7bdd3f40adbb05","_id":"sparkar-volts@2.0.0-beta.4","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-hK6CzdiLq8vMrByE6ygrpuMyBMQu2hUcbN3u2bKo0iY3ywNJwxsPwhHrR2Dr3wvCJdeVnlAnCZsLBGHWQKVU+w==","shasum":"6261af951acab4eed86251b2eb324a1a72cb2279","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.4.tgz","fileCount":21,"unpackedSize":80807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLxi4CRA9TVsSAnZWagAA/8wQAIsDTjPQToiGJvApPI/g\nrGCM5nkCcROq2Pn2cI3Qr/WO3QnrDkQm1EyB5S/LCKnCoET132HTQ+PGVvpc\nCk9T7FKzxmRO015tvEFyhJo3+HRM3i6YmJq4jfKRT2h701tQdh34Sl/iXMt3\nXBA3ZsQJrX1nzyRY0G6wGhqWrQBckow2SQqHhvN5ieam6RrjvCh53vsmwuUY\nMd2U4rasHH/4Pme0GC0c36re4qV0u617S9dtn5+5YdBo6fBVY8eOz+yb/rC3\nq4kKhg/IKJVGrbOpRkNu1+du1U3qILt88Orua7BNBWPOuk5U/IeJJ0QRb1nu\nEF1CFWNt6Kc87YZfGEUqINCVS3D2no+KEQ1sEDCHxI1xDoHCpsO/huu1alXT\n/SnBFl5AMCD+3G5Pwt7bJd6wMP9IR2J3I4Abm1zZn2ztPj78z5BZgD0jYUAa\na0vD0VI5afxKtgdX/7McNcVhr5uLqHbgw+pUSIDHPaQlfaTJFL7jsC0vzS3Z\nuh94IhTSL+qIwjM9LGnoB8CZOb/65/ikdD1qEB2btRSE8JV2PotZqOKp7SF+\nMkdg/euyMYm/KID9ElX+KkSGOVsSdJieoUftKg0QeFvDSp2IS+15xlYhwSvA\nxR9KzIeyckHDwGnEIlrrNbbxUj9CkgdnGSnlcx8V41HxBfAt/b+Rj313sIEV\nlb/p\r\n=YLBP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDAnrHa0bCNDDXjHGH+e9zCInAdyggtdwcynzKtRPf/9AiEAmOEn+9yHdFzxj552A7FRakazH5kesxps4F9PsW/wDhQ="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.4_1630476472120_0.3586428942329791"},"_hasShrinkwrap":false},"2.0.0-beta.5":{"name":"sparkar-volts","version":"2.0.0-beta.5","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2","jest-coverage-badges":"^1.0.0"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml)\n\nPlease don't use this on serious projects. This is a development branch.\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n## CI / npm package publishing\n\nThere's no CI workflow set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\n# v2.0.0 plans\n\n- [x] Major rewrite\n- [x] Change the structure of some classes (notably `World`)\n- [x] Better types for the Vector class accessors (still not clear on the implementation)\n- [ ] ~~`State` might be formatted as a function, to provide better type support~~ (dropped)\n- [ ] Provide a template, ideally one using a non-trivial use case, in which the advantages of vanilla > reactive can be noticed\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio 118\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n","readmeFilename":"README.md","gitHead":"fc7c681142443d01c01701f5492f50d1c122edb9","_id":"sparkar-volts@2.0.0-beta.5","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-MPpEjJ1+IZpGaG/5HubkU2Ww3ZjddJui0JyVFcRBOpwmTez5zFO0r8GTUdAC0mEfDNVptOYQW5qvCRP6NjW2gw==","shasum":"122a13d9493c1022c8f344ad83d1a278f877a49b","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.5.tgz","fileCount":22,"unpackedSize":83131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNAoUCRA9TVsSAnZWagAAye0QAJCIytdr64LYGhLsA9OD\niD0AyI6t6JnS7g15NtAwZU/u8c16PkHdrmrtRw4808u4h4jGQzuHgJiYcVRO\nasXr7LXH2hlBPVH6pmUmx3um5ZwkapUFQnPNooaut1KjZeT4jCWvONmC1P4c\nOJxV5dDJgecw5yUT+lCM7SyAVBUnl67vktJB3caT2E0IsV6pgzlNuBhahQg9\nprHk43e8M/1hb2HpssvqzHY8XMvVEnI8PPG126n36RlIVI6UvdnmuGHlHCyR\ncIWQXEJJmOHnnNqjedkfsP7jLhw13PkNeYx56+78sk9m/ztPz39mpdvv+RF1\nwTXLwULWRcW1q8sFEze1sRnAFE52JoConqOptB+s2fXKQmP+J0eZXLT40k/F\nXO2prumpmWlfRc3LrIhAuYwIBDm+LDJ//hLmyL3LvLcp+FIJLC4Nw8r7WHS/\nc3uEAwC56fa5v4ChsZOwoL+BS0KeZjuhbpQkRbAIfmKcAGdY1sanDXYQ+mop\nsJuuHQFMgt0qCp2jqxyeemvEpIFjPjfjnHxMdlUVA0Dqys6wJlgU3aMz+DdB\n110LQ0Zp/3rQAADppjbqxzhEK9DFlWXVgxcz+g1wTLbWQcyZX7Aa95A5TlZx\niW5Ak+gklS8rIEb/D7V2eBIq4qJn72Yh6A6Ncj6gEBGOAfzEOAy9IAkCzzhc\nYF8R\r\n=kV8p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFgIKK/s0xeALgtzd0TdrYPpNwwvrebE+Hdxm+VXLr97AiBJl2TanZ9YKUw+ixaBojTP6MiaxIR3jHJIyYew03tfTA=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.5_1630800404077_0.8527422244022764"},"_hasShrinkwrap":false},"2.0.0-beta.6":{"name":"sparkar-volts","version":"2.0.0-beta.6","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\nAn extensive non-reactive Typescript framework that eases the development experience in Spark AR\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n## CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to update coverage badges & test code on PRs/push\n\n# v2.0.0 plans\n\n- [x] Major rewrite\n- [x] Change the structure of some classes (notably `World`)\n- [x] Better types for the Vector class accessors (still not clear on the implementation)\n- [ ] ~~`State` might be formatted as a function, to provide better type support~~ (dropped)\n- [ ] Provide a template, ideally one using a non-trivial use case, in which the advantages of vanilla > reactive can be noticed\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio 118\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# Lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call)\n\n   - Checks for the config argument, validates, and...\n   - Creates a `VoltsWorld` instance\n     - `mode` is set\n     - `internalData` is created\n     - `VoltsWorld.internalData.initPromise()` (calls VoltsWorld.init)\n\n2. `VoltsWorld.init`\n   - `VoltsWorld.internalData.Camera = (await Scene.root.findFirst('Camera')) as Camera;`\n   - Adds internal signals to the snapshot\n     - \\_\\_volts\\_\\_internal\\_\\_focalDistance\n     - \\_\\_volts\\_\\_internal\\_\\_time\n     - \\_\\_volts\\_\\_internal\\_\\_screen\n     - `VoltsWorld.internalData.FLAGS.lockInternalSnapshotOverride = true;`\n   - Loads all States ( `Promise.all(states.map((s: State<any>) => s.loadState()));` )\n   - Loads all Scene Objects ( `await Promise.all([...keys.map((n) => assets[n])]);` )\n   - `VoltsWorld.internalData.loaded = true;`\n   - `if (VoltsWorld.mode !== PRODUCTION_MODES.NO_AUTO) VoltsWorld.run();`\n3. `VoltsWorld.run`\n   - `VoltsWorld.internalData.running = true;`\n   - Starts the recursive `setTimeoutWithSnapshot` loop\n4. `setTimeoutWithSnapshot` loop\n   - Formats and stores the snapshot\n   - Calculates the FPS and stores the new `elapsedTime`\n   - (Only in DEV mode): skips if it detects the Studio is paused\n   - (Only on the first frame): `load` event(s) get called\n   - `VoltsWorld.runTimedEvents`\n   - `frameUpdate` event(s) get called\n   - `frameCount += 1;`\n   - loop() `if (!this.internalData.FLAGS.stopTimeout) return loop();`\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n","readmeFilename":"README.md","gitHead":"d2d4f8ea976dac47b66aa7328ca5412c82469082","_id":"sparkar-volts@2.0.0-beta.6","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-vTJ+SYpygUIvJEbKlbmMquZWK2LXR8PEpLGs9YTQbcxT4nUhMmWSz9yhHzYjGCtktXkllDIz77GCAjH2zgi2DQ==","shasum":"36c93a245af5b87dc2f1c0c4b80f011fd016d73b","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0-beta.6.tgz","fileCount":22,"unpackedSize":86154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOZ5rCRA9TVsSAnZWagAAyPIP/3KeXchblR2YHToXpW8s\nwjzPN7Ut3Wl+qAiAxvCBHYQYq8w4vD9zELzReq7K57xFfqCcgjghkK0iPGkm\nfz3UqGIogdO+aVRWHcpWUgq7wmZrqS1Z+IkS6N0wPWWkyqcstAqL1YiD79ay\nbCF8n26ORr+Udj1xl8dcafAuQbDd8Q3q6xpLo1ldsUkCDlDTpo3YNiU1+Zko\nE5PbKns11Dr7qxymCnLgoce7CZ/bypMIRJDCU13swRGvoPjCuNPJtqkGHaBE\nbI1BmBloWKww9PS2vOiIo+WrNrldeWweGbM275/oUTYFZc+igXcGn43URGSa\n6JbHAfRu8q4fVeo23sumOAMIbz1VaEDLZ9HwYHvIQ/hqvqXxdJsWPK5oJ2Dg\nwFEop2DRy1uS3ucKaYSU0wx3DDsiXCpqUegnx6fnTpUFEz349HleHEPbdTjR\nae9RuJ7iHQqrNRSeX2B/1kxNvOcJATb6rYyRJUct/F+VLAyQwYU/WWiq78Rc\nxXlctFkah/qqDTpUjMzfAKqyO/Z+gzD9LSYF1DkkA/oEVsGIHtZFWmdalX1m\nXBtV2pFM9SkSqf9bZ7cE/j3NWHK2+AsW5KC+VSvVy8esegXp61byDHJG3YE6\nJ42WocmnU9Pe/UdjP6Q7A4Zh1loV1CQBltHHSx+tyKClaCO5oOgdXKz1UXG5\n6YqP\r\n=ZR9I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEsuNfANXyJoVFAWDcEaAZjhJRjBHPCCgEwlyo7dLYnCAiEAso2WJ/nKjh3RGOHHodYGTtykTSM152nB4bV2ViuL0CA="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0-beta.6_1631166058922_0.4353267415807953"},"_hasShrinkwrap":false},"2.0.0":{"name":"sparkar-volts","version":"2.0.0","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"gitHead":"ed2ab2361cb077feb96ad54ae8a27e25947fa2c3","_id":"sparkar-volts@2.0.0","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-2N59YPI+o6bMl5A4bQUgxh4kh14hYltDI8Ud6IcwXkVa6UYMY4R4DPnVKvwDIjmjox6sxlhsECRXze2jqOPaiA==","shasum":"022eac5aa91d4e8ac76b230bc2b4097e341b0f67","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.0.tgz","fileCount":24,"unpackedSize":84975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOsfiCRA9TVsSAnZWagAA76oP/3+9RGh8Wr43peV7+Pcb\npJRPjR91TxeUaIJNumvYqEvoCROsGoUpLQcD7m/awaU/013X8pJ+f1kqjRed\n64xCMVhzUTg5vnrFA53du0C/LK6nMGe3bPtTisbjKlckf+P1bRcnmWIs5RKo\n4O7HafPWTZzmFfLnDef8cSqOWS80GYowyAyro8FemlPJ0mYkbKdsc286QEi6\nP1hUR1qsfG3DYzYE43tAA6zE0fb1LLfOPvX9wD0HLjNbZB7mXT3jQuZXHHku\np1Rm8iRdVq2Y9RCzS0PCK/F+2lxeYf4iDDKkYx3xe0XTZ086Mi8xtnFGNb4q\naONll5U831vgPAAzoNMpVgNiJ2GKWWnVtO98NgATwwSikq4Nt9ZarNv+tgCq\nbthQAGQpiTaSb8eUDYmBKRotRB9ngh+DPrIXQFwLmjwRSSLWhsfEFc6DTTq+\noWbJkzZPvJDhoFzXg5DgCMaMgiiON2AuwlHGNY0mUhNyWoxcT3xFgQ7Bhrje\nkeUp+NS88tp7zO8WAZ6mkHP/+iLqq5zpqcqYtCxnePud1J3fa5jXn26TWUZE\naDNW5RfNg+Kgw+kpK+DOxHraa8ZkLNI4d5Rcb9JeDxt0xcdIlPQAJwDhA2vs\nZ206qonDXH5xRPB4K/C0ZOqsphkkefPB+Z9hTgdum/vmQFjWuRXRMkaMKmR7\nR2A5\r\n=FWX5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFA2VsJnTApdzuycwvCkjoahTctyc2U1ahEL6VtFI2xRAiBD6IehzfD5azc+sWVARpxOJVXHBlCoPqmYw3nNAIOc0g=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.0_1631242210735_0.3063383290976738"},"_hasShrinkwrap":false},"2.0.1":{"name":"sparkar-volts","version":"2.0.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"gitHead":"2eb373b498912638d503ba8159262e47611caa80","_id":"sparkar-volts@2.0.1","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-i8JL8FSTEuYzNnf7tR39f5tb6NYsY2GN1E1H7VJmZdKgmnWxjxSLO+S1hvAAzigQPpa1J9U7Hlp8VchEC/8ztQ==","shasum":"190ee109967d41e0b708296bc14e6f9ab8281ea7","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.1.tgz","fileCount":24,"unpackedSize":85021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOtoeCRA9TVsSAnZWagAA0aUQAKLclbE6azSHHZzv/LIu\nbHyrMpiTZsNckT8RzpGHssq8nv7zRptEhsZy3E+z+cn+Tdpj3pPV7YAhT1aC\nj1Rw4zPjuKKoIYF+CnJrI0NkRtQ1I9b2l5vVmDWxYaZOrXrKayoUxfe34hj8\nE+aO7xkdfXSu+IETkrfOD97CLGiV/fYQB0cRTltz88WvNL+D7707F5/d831z\nzcX5WlPqNbB36x16mv49dnc0kx/R/yZVCk7Wsx2UuoJql12V5HdX7ISWKgf2\nzEJMonhabnLHnukmq3HKrcFi7In4tbOlqCNUvL1FzgFWbkdEme9FRYaLbXxp\npRYRDnjGYaEVcMsBPOvCULVsMXAyJzctWmU2uBD/cuPM6Nqw4IzJTsNfnqLP\nGfXBKOZsvWsZkfFVJKsYXMH+E0b5g/dJVPqub9MTGCcH1YA1IhTIlzeWBl5X\nMNlEm/4r0h3poH0RN4yZbEURin6kyzAWkW5LY5vv5N4c6fQopwXuDtyP4y8/\n9b7v/3MKMmm4ff322fxF2yBa6XwJOcZ7xrcCk7AW18lT2/YNBLuS0/p9Fhpo\neokJ2F8GyEtHra9oyikEthLVMxYsLYtCaCvwsvZo5OgoMgqFniGsmAszTk1Z\niUmBZeIREKZDTCwIr3USTj+N9hd+AHiaW1rWB1+lhtaZCH34BudkHnGrTaLP\ndrE3\r\n=V4rs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpqZwRui5lCTLQJjSi/NLuhLJ1ZHj6HbN1smW6vgiKuAiA1j+Hx887Vh0scn5jGu2+kfjh3u+bt2yBBFB2/PZZzYw=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.1_1631246878293_0.1743358547491829"},"_hasShrinkwrap":false},"2.0.2":{"name":"sparkar-volts","version":"2.0.2","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"gitHead":"ae50cf4a3f3a14d9099b953ee331ae0548125ed9","_id":"sparkar-volts@2.0.2","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-MgkEADEa7PbkwJ/r/GeETZRVUA5hISozOxC+M5Yy/7Y2D0ITdxcCf8WCe9OIrw9SLU4e08EAQ8cV9QHyS/NKHA==","shasum":"b1b24077863659decc48d04c18e0c37ad2726283","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-2.0.2.tgz","fileCount":22,"unpackedSize":85309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ5/7CRA9TVsSAnZWagAAOWAP+gOAMRxTLDdLSXE8nAh0\nElSV4rkIwD/ONTI0TeFDKKnsqXagC1JYOPePk0IMWrYB0dCy/Pr+jnOTYPTE\nLCOs7GA+2UriBJT/z/FPZJGcGNhTUdr0t7Iz0oVe72uAimFNSUJ3ApB15mFE\nb0FP2i2EnPUxxBRZ8iJJWmv383wB6IdTC+XisgdCH1uI17nt9W9nGFWEEQo6\nG43sLZdqDaQ6waUl34LBkX9RO9EB1K/yxMmF4GaLUUFGA5Qtqf99lh/zmYP9\nRhYP7h1vYzPHIO4xg+uJ74ame2oIUUpSN7EJRwrbpcRlCecgRhayskBeW50I\n2TAkWNJ+ZtkVnRMaLpGrL9pURIWLCVJ7B3Ta7LC2ZrN/ZDCjsawzhPN3mKPJ\nLz86KxLYHDnvdWNDvKVwOiT1HxDIhVCpEE3ZHbOibhMTFi8kvxoSPua6frUe\naeyL7W0wm2/5kBDKf/UFGm/OCtH+rlHDIcfs2enmcLr8J2ocNziQI6efYWGm\nCsh7eFNM3PqoJ2d4uQZWTX0Im+FCP453Dg/aYAoBO0ckJrzRP4NZrH+33WHb\ndrgAjV/41I+UTyOE/ePwemfhBWyJ517FfPhuIBjXW+W3rzZEpwnVtiD3aiIY\nrenCePprwu9AnZ7buflD3c9ekhgzdrbM8IT8ApIOAZNrHxQe/L8gcsVrOP0b\nA5dH\r\n=6Y1q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGfjvhI+K/gDEFtG0ZKQWDicx2038AQAglM+t9hfdy3eAiANLNkYQhTZY5cmfBdfrQX9L88da6MuFH1Jae8dVJJx2w=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_2.0.2_1631821818986_0.46791651764013453"},"_hasShrinkwrap":false},"3.0.0-beta.2":{"name":"sparkar-volts","version":"3.0.0-beta.2","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n# v3.0.0 plans\n\n- [ ] Add Quaternions\n- [ ] Add basic Object3D, basic implementation found on the cloth project\n- [ ] Multipeer support (?) -- may be pushed back to v4 or 5\n\n## CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to update coverage badges & test code on PRs/push\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio <=118, 114 appears to work the best\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# Lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call, creates an instance)\n2. `VoltsWorld.init` loads all assets\n3. `VoltsWorld.run` calls `onEvent('load')` function(s)\n4. begins a `setTimeoutWithSnapshot` loop, calls `onEvent('frameUpdate')` function(s)\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n\n   /// ...\n\n6. `VoltsWorld.stop()` the loop stops recursing, this **does not** free up the memory, just pauses/freezes execution until resumed \\(`VoltsWorld.run`\\)\n","readmeFilename":"README.md","gitHead":"4dd378fc09f0a721662bd19ed851e5cb198fe2ec","_id":"sparkar-volts@3.0.0-beta.2","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-SpwKCo0UPqqqejiivP3ngPXtWA8GhX/99V20h8CPWa5s+gz3EOllgIA/DKiWjwpY9SwBQr8yZnE8Mw9d4j3c6g==","shasum":"733062676404b8f5d78d9432917dbf4b898b16a2","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-3.0.0-beta.2.tgz","fileCount":31,"unpackedSize":116478,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBD+XBVVYAO28e+b0L8WXEFdLGVII8XWpSMDGUGWllOkAiAP1AlfesfYauwcL396ysz0/AYZj6mjCmNMLeHe4T9Tmw=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_3.0.0-beta.2_1632097825775_0.646546723577327"},"_hasShrinkwrap":false},"3.0.0-beta.3":{"name":"sparkar-volts","version":"3.0.0-beta.3","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n# v3.0.0 plans\n\n- [x] Add Quaternions\n- [x] Add an Object3D class, basic implementation found on the cloth project\n- [x] Add a `Pool` class, which will create a pool of dynamically instanced objects\n- [ ] Multipeer support (?) -- may be pushed back to v4 or 5. **[See](https://github.com/tomaspietravallo/sparkar-volts/commit/47bc2f6384be41ee5c6f1d8d65d3f31fb1db4a61)**\n\n> Multipeer features might get developed locally, or using some sort of obfuscation (?) that only allows people with access to the API to develop...\n\n# v4.0.0 plans\n\n- [ ] Use rollup.js to add a minified version of VOLTS\n- Open a PR/issue & add/request features!\n\n# two-dot-diff shortcut\n\n- Replace `COMMIT` with the given SHA\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/COMMIT..beta\n```\n\n- One commit prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^..beta\n```\n\n- Five commits prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^^^^^..beta\n```\n\n# CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to test code on PRs/push\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio <=118, 114 appears to work the best\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# World instance lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call, creates an instance)\n2. `VoltsWorld.init` loads all assets\n3. `VoltsWorld.run` calls `onEvent('load')` function(s)\n4. begins a `setTimeoutWithSnapshot` loop, calls `onEvent('frameUpdate')` function(s)\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n\n   /// ...\n\n6. `VoltsWorld.stop()` the loop stops recursing, this **does not** free up the memory, just pauses/freezes execution until resumed \\(`VoltsWorld.run`\\)\n","readmeFilename":"README.md","gitHead":"d9f41d471c4432f6280993907619eb4baa274a24","_id":"sparkar-volts@3.0.0-beta.3","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-EUSMlJkmK8Yc7XhObamC2W9K77iVZt5PP7HrbWHxg0nbi8k1JqgwFopyD5vEU9LmR9LWNs25+cdEeWXki4zACQ==","shasum":"0d0e0b869c42886da9f33e949f246cc0bd8a7a1d","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-3.0.0-beta.3.tgz","fileCount":7,"unpackedSize":69052,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEV1/AA7ETQubvr5+2npxaWxMCcXzkXem5pJyXhlK3GAAiEAqgin5Wne29CDVd71t0v9n3fc0UN5y6Hi+p0dPqgxfJw="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_3.0.0-beta.3_1632624185536_0.14990745097697977"},"_hasShrinkwrap":false},"3.0.0-beta.4":{"name":"sparkar-volts","version":"3.0.0-beta.4","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n# v3.0.0 plans\n\n- [x] Add Quaternions\n- [x] Add an Object3D class, basic implementation found on the cloth project\n- [x] Add a `Pool` class, which will create a pool of dynamically instanced objects\n- [ ] Multipeer support (?) -- may be pushed back to v4 or 5. **[See](https://github.com/tomaspietravallo/sparkar-volts/commit/47bc2f6384be41ee5c6f1d8d65d3f31fb1db4a61)**\n\n> Multipeer features might get developed locally, or using some sort of obfuscation (?) that only allows people with access to the API to develop...\n\n# v4.0.0 plans\n\n- [ ] Use rollup.js to add a minified version of VOLTS\n- Open a PR/issue & add/request features!\n\n# two-dot-diff shortcut\n\n- Replace `COMMIT` with the given SHA\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/COMMIT..beta\n```\n\n- One commit prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^..beta\n```\n\n- Five commits prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^^^^^..beta\n```\n\n# CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to test code on PRs/push\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio <=118, 114 appears to work the best\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# World instance lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call, creates an instance)\n2. `VoltsWorld.init` loads all assets\n3. `VoltsWorld.run` calls `onEvent('load')` function(s)\n4. begins a `setTimeoutWithSnapshot` loop, calls `onEvent('frameUpdate')` function(s)\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n\n   /// ...\n\n6. `VoltsWorld.stop()` the loop stops recursing, this **does not** free up the memory, just pauses/freezes execution until resumed \\(`VoltsWorld.run`\\)\n","readmeFilename":"README.md","gitHead":"349939002ef1f91927471a4f5976a44496e1a146","_id":"sparkar-volts@3.0.0-beta.4","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-gvss7vG6rnq275N6g+4X/NNfdwGH8DL1+gFxyGKsg/Qd3kDMC0AHsG6dy2Ue4ecRek4jayzDkWuQqaznKmG1Lw==","shasum":"692af72dd44d76915af864b2277eb31ae9812317","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-3.0.0-beta.4.tgz","fileCount":7,"unpackedSize":69054,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNzE7gl0OBl5PQnIwY+lQbGumTGR6auy3h+LsiHmEvkAiEAqw97clqQkxf8cYeAkNwI9oxROn8XrWCVyq4NqdQjRTo="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_3.0.0-beta.4_1632631149762_0.7855996304604242"},"_hasShrinkwrap":false},"3.0.0-beta.5":{"name":"sparkar-volts","version":"3.0.0-beta.5","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n# v3.0.0 plans\n\n- [x] Add Quaternions\n- [x] Add an Object3D class, basic implementation found on the cloth project\n- [x] Add a `Pool` class, which will create a pool of dynamically instanced objects\n- [x] Integrate the changes & fixes made during the \\*\\*\\*\\*\\*\\*\\*\\*\\*\\* project (currently under development)\n- [ ] Multipeer support (?) -- may be pushed back to v4 or 5. **[See](https://github.com/tomaspietravallo/sparkar-volts/commit/47bc2f6384be41ee5c6f1d8d65d3f31fb1db4a61)**\n- [x] Improve experience\n\n> Multipeer features might get developed locally, or using some sort of obfuscation (?) that only allows people with access to the API to develop...\n\n# v4.0.0 plans\n\n- [ ] Use rollup.js to add a minified version of VOLTS\n- [ ] Improve support for Plugins\n- [ ] Add support for Async onLoad/frameUpdate functions. Quite a large change, beware unintended side effects\n- Open a PR/issue & add/request features!\n\n# two-dot-diff shortcut\n\n- Replace `COMMIT` with the given SHA\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/COMMIT..beta\n```\n\n- One commit prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^..beta\n```\n\n- Five commits prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^^^^^..beta\n```\n\n# CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to test code on PRs/push\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio <=118, 114 appears to work the best\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# World instance lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call, creates an instance)\n2. `VoltsWorld.init` loads all assets\n3. `VoltsWorld.run` calls `onEvent('load')` function(s)\n4. begins a `setTimeoutWithSnapshot` loop, calls `onEvent('frameUpdate')` function(s)\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n\n   /// ...\n\n6. `VoltsWorld.stop()` the loop stops recursing, this **does not** free up the memory, just pauses/freezes execution until resumed \\(`VoltsWorld.run`\\)\n","readmeFilename":"README.md","gitHead":"b6cc73c5a3ea3bf374398b23f01b9091de583c8d","_id":"sparkar-volts@3.0.0-beta.5","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-vCEeHqMsQS5voZ9abifQZsOJP69WhlGJ5hV1MYBk8QU98PUvDpsaOaROkqWpUclWV+F74TgxJ/F8zVTZJaUTXQ==","shasum":"495f222878bdc713e9dec528c69cd8819e0bc485","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-3.0.0-beta.5.tgz","fileCount":6,"unpackedSize":84704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhw8RfCRA9TVsSAnZWagAA2cIP/23QqEs9zFXJUE8a8MnX\nbDosZe0pA4+AzkQUiqUUJpQ9bOfPwua7QyVJFSb7ax+I0DfUxZV2bLDqb/+E\ntuhhcSeUhzWKJamr89FRjMo3WsuVmM6p5wSkPR04ZKtWOAqhQ1VuO8afonIR\nOtGwCjCGef368uufPTTSdf+ZlY35JfgEUeRMQRE4SCh8SuOEHqHOtt1xUI61\nWE/jKMQQVBAKaWmwGTngU3Z58EtM3C1w1EC2nuWe0U9AqtXeUPO0EfESNrvY\ndH8cz+pUy6aBv5p5cjbB0QfaAFrPQWKVGRzpfppeQhFMC7+FmEfcXJyz7prq\n02uZvHj2CAeHCAR4xaWRz7MDwCdtVtf8qv2DEz0nrq2ZfKEU9tGkZ2qnAJBT\nmslcMDlPrIONFbnFs3fZvHMloICBXWaW2EzhfN/7lEUs64F99g61A9S/zCdB\njM7EEDbDJIxzxgbyzO1HA/Y4uAVIyBPLwKskdsRg1bM0Okk2bv198KLgKyHY\nSe48DpSFlvOMNnfcvkdQncHNQ3QSpF/TppXr3xZ0pQvrHHUyxw8HVuaCV5tr\n3NpvYcepx/S1KXiefawL8HEVOFGQ/z9xvFSq9b+H16xYmlrR2QpTswfGHDwc\nxkW/UP5VxccZ+Ec9wBQTFEh9qGsx1LoQ8idCyorosYBG1FCe1wLdB6/Eo6EX\n1vuy\r\n=hoHw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA2k9dT3/SK9uAQnyVnCygPq54lJft2jmkbGDuvyBBqKAiBsz7bFTRNQAQHcIvZL48BNCLbxkBS/oQo38cxB0/KQng=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_3.0.0-beta.5_1640219743050_0.7407828109052479"},"_hasShrinkwrap":false},"3.0.0":{"name":"sparkar-volts","version":"3.0.0","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"gitHead":"15faf90daf4137bd541d8a1509dc6e3626c74e24","_id":"sparkar-volts@3.0.0","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-2R2NjMNJ8yraRaElnc7ZjjbXAj4IvTsZXtHS5s7k6ei0xRaiBpc296A8vkocIgAgxjSZc/7clP0XbnjOLAW3jA==","shasum":"fd89166b6cec09db7f63a235229f01e3a93c9219","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-3.0.0.tgz","fileCount":6,"unpackedSize":83549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhw9piCRA9TVsSAnZWagAA5bsP/3cS8izBIhXtFwzmHuGf\njpemEBo7hLbTCIiTs8fW5MlZhxZqWNj1ixGrOJIaaU6UHuE0MwcJYBCQ5MIj\nmBI2rGDdZnbJhASz81JNBHT13MYHTPaQe1TgeNJlGgIB4klPyOYabOwxBoco\nYiBpF0WKVSxfwUV/98jkt7gzwZpoUsZ3e3ZMRbnxno+IcWeI6EZs4c/N/Vxq\nU1/SGGA9aDam1QJVMShByGkO7PWvwvTOuUrfKvFTLaV4N49G+TEHk/QBKzaX\nK7+eQeZyX7X4zPsp60mtFMIGJjuzhhgBjm9Y440KbxlfHnX21yiJCNPt0DPa\no/odZEst11FG9FfumlHjcB2wUb4TN/rmH7938nGQlGP+FMNtH1lZl4W6mTvD\nY3MYq0kMUHPyD/h2c5S8ngBRVl6JOJLxRjmlCtHCympH1wls+iUU/ABQEPth\n0Yfvl2ISAs/KBM/249jf6gtNBPTd1uS1ELMpCAYbW8vIkamipIan0kESoruD\nw5QiDtTJZli7PZXMZLXkNuyZKq+qMKZ55Oix4kxDoRXQn10BSoNGi0ZRV2r/\nk5p+j5y8YprV0DSg1sO5c8f+HF0opFZ5l2zSjJ8Uto+TSz4jXA8bES+CRV1a\noVd6JKUap5a58lJXPzNu8Eva7op+bn1TMK0evwmwCAJFHR9uYFh0OLtxFOkb\n/CiS\r\n=W/zZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTL3JzEdWlg96OShAltu98hwLl7pQhfnVTPHcBTeuudwIgdMB+idwX8nO1WhilkuEDYDSfqy6MbrUoZoLSNTKJ9kU="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_3.0.0_1640225377817_0.25135210333454205"},"_hasShrinkwrap":false},"3.0.1":{"name":"sparkar-volts","version":"3.0.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^5.8.0","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"gitHead":"d104588135825cc02471d33237b986c0f0d3670a","_id":"sparkar-volts@3.0.1","_nodeVersion":"12.16.1","_npmVersion":"7.20.6","dist":{"integrity":"sha512-1wUUKGiWldjEVL+8wKPyBbpmZ0qXPmwdMdSfbHUAIRlJOIPt4zuF5Gc+cxeWmM8gCaFd0+tHlZVrI3PcYk891Q==","shasum":"5fb5081e5e58155ce3d892d60822995def5c3103","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-3.0.1.tgz","fileCount":6,"unpackedSize":83882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhxIAcCRA9TVsSAnZWagAAvrEP/A3K73hXd9jqZPIOag2e\nNYNwF4eMV5xz0RoP2XwvuEoLux/BwJ3L6wqwSFHDuW+cz1nZx+JNFaYFhZcC\nSB36dLRE2RHhPee5r3HCQo5ML+hldfn/HIES/lwOHLRCAY5feDnRDT2tWotl\nV3XqCY1W6+xC0RTKcXnd/6xYzikIehwVW3Zp8PdbGPymNUMwZAc43t/weBb4\n/tEQzPwJVvYxPO8lJlcEQFsriOPvjKVAVIv+ohuJqy/DSKwGymn8nWbF1d1s\n19CvezTwKw1856CgYBuNMBg6A4x7+Ivq25JN1Ctq7zjjsXwGntYGx7nKYt4t\nRdcbRydgsG4Z9j86+h2uMKdSNZG7I4S1VgNujYHlgWU/slG565tsRanrpfS4\n2ZQMXt91Bcgco0g7IdbA093XejvfLLCu1TU+7IgM3dMCxJhz6OJLt74HX7sp\nRPuyjdavzSUu6jD1IuKpThZCX9tx8sKY9P2Fx/wJEcEWYnAfo4lfC2ARh8Ll\nfwimWGt9J+EBUEUp9VZrn0IhEOxOghxpTshrWSU9k2I6bMVwyFQobwtFhOTE\nzlfLopXRSQXzKH0s+UgIlTAxyARe5g3giwW/Vh7tRkHQOlvXhtij824HcZqw\nLsqnbb4b4RparGsXroie0Zj300lyqPwTe5tLRFBkzC+YqvisYNBL7os8DEkp\nYiit\r\n=jWBs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcYssK9/udD4Kcrt06c/+xbvRQXEQPswMajc468E+0rAiBE6+p7tIaboXtkAClwCz+Fk4mCJVqMEVnsMQGnF24kGg=="}]},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_3.0.1_1640267804824_0.5181712976796022"},"_hasShrinkwrap":false},"4.0.0-beta.1":{"name":"sparkar-volts","version":"4.0.0-beta.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge","build":"npx tsc -p .; npx terser volts.js -c passes=5 -o volts.min.js; rm ./volts.js"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n# v4.0.0 plans\n\n- [x] Use <del>rollup.js</del> to add a minified version of VOLTS. TSC + Terser running on `npm run build`. Note: This will not be run for each commits\n- [ ] Improve support for Plugins\n- [x] Add support for Async onLoad/frameUpdate functions. Quite a large change, beware unintended side effects. *onLoad now supports Async*\n- [x] String matching based DEV mode. Eg. mode=\"400x400\", use a simulator window of 400x400px in Spark AR Studio to use DEV mode. *This is now supported*\n- Open a PR/issue & add/request features!\n- New: `Tree` and `Cube` classes. These have been **extensively** tested both visually in Spark AR Studio (see debug utils), and using Jest tests\n\n# v5.0.0\n\n- [ ]\n- Open a PR/issue & add/request features!\n\n# two-dot-diff shortcut\n\n- Replace `COMMIT` with the given SHA\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/COMMIT..beta\n```\n\n- One commit prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^..beta\n```\n\n- Five commits prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^^^^^..beta\n```\n\n# CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to test code on PRs/push\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity. In some small tests, `subscribeWithSnapshot` appeared to perform the same. **But** as of writing, both suffer from a bug [\\(may be related\\)](https://docs.google.com/document/d/1Dj22O5SLGfMbTU5-oqBzlU78J9V1nMUVGo9gEGxziMA/edit?usp=sharing), which slowly grinds Spark AR Studio to a crawl. `subscribeWithSnapshot` seems to perform slightly worse in this bug. But on device, both perform as expected. The only solution atm seems to downgraded to Spark AR Studio <=118, 114 appears to work the best\n\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# World instance lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call, creates an instance)\n2. `VoltsWorld.init` loads all assets\n3. `VoltsWorld.run` calls `onEvent('load')` function(s)\n4. begins a `setTimeoutWithSnapshot` loop, calls `onEvent('frameUpdate')` function(s)\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n\n   /// ...\n\n6. `VoltsWorld.stop()` the loop stops recursing, this **does not** free up the memory, just pauses/freezes execution until resumed \\(`VoltsWorld.run`\\)\n","readmeFilename":"README.md","gitHead":"1b55195831de4b78562eb47ac96b4bb607dfb89b","_id":"sparkar-volts@4.0.0-beta.1","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-5YlPtAV08xqRJ8W5i8WQpE1OkUlCFyKR5bO5hYkAjITJXnPzJoojgKCzvUbscYXegAyLCuKZoFIEuNYKcC5itw==","shasum":"dc859adc39203248366b62b1c012188c1123e57a","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-4.0.0-beta.1.tgz","fileCount":6,"unpackedSize":94200,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5xZqbxx045r/t1nk4UkyEDNzypuXqXCOk10K+b7R4FAIgF56gpGtboak+NdtkS93aM9sz8pz2Be+eGCuWSpZo3iE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivO4FACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodjQ/+LmRd4N5+lvXW1ngXjc6Ar/ZibIQZmlVZBMIY385kLDglcbMG\r\nilBf+l8KOt7pwKX/fewQsfKTh/AcDXSv2yJiUcGaEjiPU6hBkv+fJSXYhoyN\r\nLqQBklZVygbf6/GBC0YqEb3MMzotrCAXVffrFwVokVAMB0dEhqk62sS63Jkj\r\n6dEKRUB27GNB1tdip9G9+DGL3sZSjWI76WKeqZT1YzLgp8i2lIHa3mN+6Z47\r\nzEQHe/HdXa1WIkOSNfWLtdmOaDJ7fU8CJWDEraBKvRZhzz9AZZN70aYCygZT\r\n83Afk4DrowpEaS5DkLDF2jbz5h0rUMNE8L4rU9pA4yKH1hUB4lIsCufNkXlQ\r\n0z/zyg+YSvbK1B8OVUn9ugMfxdvtBIAt9aP2A8HghBSmO3JYOSqvXngnAoIE\r\nAR9Xz+dvBjf0iCcynZAjlzd0SlCgseBhuvn4mQFwx9f5s2cHW87s/W3Vp+vy\r\nAC+GteuFqj+MmOZcYTcM3ldN9f+adEn6QVzjlENmLQVMkqpI4EuCeNQODjaN\r\nMt0Z7dWgmb6vkHBw9vODunN4h99w1NfvSdAUCNa+f51LAa4s2eQChg6OhTxe\r\n6uMNcq2ow4UAeRFHZth01cv40uNYXTVpNYOoHHC6ESAM/ZOh89qeFpXb+Sfv\r\nnVrqa1otjvCpG82QRk20QwXJKprFgNHAUtY=\r\n=7KU0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_4.0.0-beta.1_1656548869330_0.5876323866740558"},"_hasShrinkwrap":false},"4.0.0":{"name":"sparkar-volts","version":"4.0.0","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge","build":"npx tsc -p .; npx terser volts.js -c passes=5 -o volts.min.js; rm ./volts.js"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"gitHead":"31548d148a41602b064acbb12a31105aa62df245","_id":"sparkar-volts@4.0.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-9vuDO4qk2sIeK9NPl4JNLyNyg/pNDjhClObAs3YduRM0nDLxg1v7SjTuDiZeEAcJY1mDFiLUrmJyiyprGexuuA==","shasum":"1b05a9f73851be411a68f0483415c6a15e101597","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-4.0.0.tgz","fileCount":6,"unpackedSize":93540,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQbYrgdsT+A0bW5f2b45ko6AUJPt6V9+Z4o9Kf74ggoAiEAhIDjoXqtvmlnfXkl5+JFVnpucYZdYFqeSu7QJYh1VQU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivZf5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaPQ//S7JG8ZZalhSq6F4lF3xQ8RL7lLrwzLS1ZWL6DdcYQVj+/K8R\r\nkypYMeg32MftBmrcf5VIB0QDCkPBHt0CaJDlhpuIj9e6S4GfgFjrFNDhCpdh\r\nC3LEjV1e45c0QZZ/igWQ0Q+AeUchxd2W9BefTOPIKDeyrV0s46oJhkwpgTKA\r\nC7klrhkXlK8XvYy+y0WGohmHUtr2WDODdHeMrdZFIKuqh8QLj7FFrgz7i/Vw\r\n5tJoRYVdSN6GOQQME1bDGcg9WBSNIAsl2mAwS6d53XmPFNKM6ySDmiDeKjAL\r\n9EoUiDEJVggwVH1VkyIim3QggeoAnRl1DlPut4m/jiHODoN78T+s4pz/I400\r\njVfis1zb2UR8/C6OvK/lzcOlY1FVYbZzHPTtfhW1cYW/M18HEgvptp/BSXzO\r\nVYklkya84/u9zdfAZ8rVTKN7TQ8j8SdwS+9yLJZJBth5TX+hHX8GYqPfV5tB\r\n/8dmU7tgxnqmm5dE21BwitoHlAfJ8OuVzrIqU8p1vqznibmae3N5NqyLcUeU\r\nYvZy9SNmP2uBgxvLoDtw8eJQuGOc/lqoKTLakQelDTsGXnaODER/ooqHuWp+\r\nsbzKbwnaVBvphxeK6giKdLYNQnPASuVS5zX4+fnaKdaqF2zotqGS+1xc2RTR\r\nRP2fWLunogLhN92/mmpR4I6jnQ0XmvnbqCI=\r\n=twTE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_4.0.0_1656592377684_0.5431635207157353"},"_hasShrinkwrap":false},"5.0.0-beta.1":{"name":"sparkar-volts","version":"5.0.0-beta.1","description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","main":"volts.ts","scripts":{"lint":"npx prettier -w . ; npx eslint . --ext .ts;","test":"jest","coverage-badge":"jest-coverage-badges && make-coverage-badge","build":"npx tsc -p .; npx terser volts.js -c passes=5 -o volts.min.js; rm ./volts.js"},"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"license":"MIT","bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","devDependencies":{"@types/jest":"^27.0.1","@types/node":"^16.6.1","@types/source-map-support":"^0.5.4","@typescript-eslint/eslint-plugin":"^4.29.1","@typescript-eslint/parser":"^4.29.1","eslint":"^7.32.0","eslint-plugin-unused-imports":"^1.1.3","jest":"^27.0.6","jest-coverage-badges":"^1.0.0","make-coverage-badge":"^1.2.0","simple-pre-commit":"^1.2.1","source-map-support":"^0.5.19","ts-jest":"^27.0.5","ts-node":"^10.2.0","typescript":"^4.3.5","weak-napi":"^2.0.2"},"simple-git-hooks":{"pre-commit":"npx prettier -w . --loglevel=silent; npx eslint . --ext .ts --quiet=true;"},"readme":"# VOLTS ⚡️\n\n## WIP x BETA branch\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)[![CI](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml/badge.svg?branch=beta)](https://github.com/tomaspietravallo/sparkar-volts/actions/workflows/test.yml) ![](coverage/badge.svg)\n\nNeedless to say, use at your own risk\n\n## Install\n\nInstall the beta package\n\n![](https://img.shields.io/npm/v/sparkar-volts/beta?color=informational&label=npm)\n\n```bash\nnpm install sparkar-volts@beta\n```\n\nOr clone into this branch\n\n```bash\ngit clone https://github.com/tomaspietravallo/sparkar-volts.git\n```\n\n```bash\ngit checkout beta\n```\n\n```bash\nnpm i\n```\n\n# v4.0.0 plans\n\n- [x] Use <del>rollup.js</del> to add a minified version of VOLTS. TSC + Terser running on `npm run build`. Note: This will not be run for each commits\n- [ ] Improve support for Plugins\n- [x] Add support for Async onLoad/frameUpdate functions. Quite a large change, beware unintended side effects. _onLoad now supports Async_\n- [x] String matching based DEV mode. Eg. mode=\"400x400\", use a simulator window of 400x400px in Spark AR Studio to use DEV mode. _This is now supported_\n- Open a PR/issue & add/request features!\n- New: `Tree` and `Cube` classes. These have been **extensively** tested both visually in Spark AR Studio (see debug utils), and using Jest tests\n\n# v5.0.0\n\n- [ ] Add a verlet/physics solver. [See an example of the progress](https://gist.github.com/tomaspietravallo/3f4eeeb93f3f064f2261b4d6aecc9ecc)\n\n```ts\nnew Object3D().setPos(Vector.random()).usePhysics({\n  verlet: true,\n  gravity: -9.7,\n  drag: 1.0, // between 0.0 and 1.0\n  floor: -1.0,\n});\n```\n\n- Open a PR/issue & add/request features!\n\n# two-dot-diff shortcut\n\n- Replace `COMMIT` with the given SHA\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/COMMIT..beta\n```\n\n- One commit prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^..beta\n```\n\n- Five commits prior\n\n```\nhttps://github.com/tomaspietravallo/sparkar-volts/compare/beta^^^^^..beta\n```\n\n# CI / npm package publishing\n\nThere's no CI workflow for npm packages set up yet, so npm publishing will be carried out manually.\n\nIf you feel an update is required, please, do not hesitate to request that a major/minor/patch be released. Include as part of your commit/pr message, and tag @tomaspietravallo.\n\n> Note: An npm token `NPM_TOKEN` is already set up as part of the repo env, to be used by future actions\n\nHowever, there are actions set up to test code on PRs/push\n\n# Notes\n\n- Behavior in blocks:\n\n  - Due to the use of the `Camera` object, VOLTS may not run as expected inside blocks. Some of the things that may break are listed below, note this isn't a comprehensive list, and that some of these might be used internally\n    - `Vector.screenToWorld2D`\n\n- `Time.ms.monitor` vs `Time.subscribeWithSnapshot`. Even tho `Time.ms.monitor` is the standard, `subscribeWithSnapshot` provides quite a nice opportunity.\n- Internal signals:\n  Documented as part of the `InternalSignals` interface (after v2.0.0-beta.3)\n\n```ts\ninterface InternalSignals {\n  __volts__internal__time: number;\n  __volts__internal__focalDistance: number;\n  __volts__internal__screen: Vector<3>;\n  __volts__internal__screenSizePixels: Vector<2>;\n}\n```\n\n> Note, as of v2.0.0-beta.2, addToSnapshot and removeFromSnapshot will prevent you from overwriting/ removing these signals\n\n# World instance lifecycle\n\n0. Code starts executing...\n1. `VOLTS.World.getInstance()` (first call, creates an instance)\n2. `VoltsWorld.init` loads all assets\n3. `VoltsWorld.run` calls `onEvent('load')` function(s)\n4. begins a `setTimeoutWithSnapshot` loop, calls `onEvent('frameUpdate')` function(s)\n5. All subsequent VOLTS.World.getInstance calls return the instance created in step (1.)\n\n   /// ...\n\n6. `VoltsWorld.stop()` the loop stops recursing, this **does not** free up the memory, just pauses/freezes execution until resumed \\(`VoltsWorld.run`\\)\n","readmeFilename":"README.md","gitHead":"c328dd655204563c22ad806ce654a4f9ccdd9e60","_id":"sparkar-volts@5.0.0-beta.1","_nodeVersion":"16.13.1","_npmVersion":"8.14.0","dist":{"integrity":"sha512-q5xQtvK9yK8swrbD8pcTvh1nJyGCve7ipcaseYinBObiEXDTNYZyh8MbWP8pIzL5sepIRKev8y8+hs2RKaAwKg==","shasum":"24a8550a14c872f4c2c20af91b8edfbe61c3d196","tarball":"https://registry.npmjs.org/sparkar-volts/-/sparkar-volts-5.0.0-beta.1.tgz","fileCount":6,"unpackedSize":104281,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE3GOsL8xJ6Tx4iUbLi28kq/NkPf5hVqDywu3QsiBuxJAiAGCftMuqspO1MY/BDrVnlhW3gIdyx+52DiGM1N3C0srg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1iK6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3iQ//cm4u/UnV8Eiv01YDvBGJGflAkXrPL/rQ2D1xvxKA+KoTH8zG\r\nTCJlkpHNoYCkATitV64ozqqFLinewFxTi/ap65L8Kq+Ql427Q48M8gin9N+4\r\n8mWrnURyGFTnnGt/BKLYngA56+VNQfiJQ68GBSL8Lj5awoNf/ETJjO82vYsY\r\nKR6o0odhFpkTRl5DY9xGvan/7UjZJ6P8Oa/sxjEn4z3qbcMLUkBT8TQ5rOV0\r\n85xAd5N9o27tYW5zNy0yyGavsK48ZZC+Q0O0LVjYDd/8hTw1OA3bx18sHMQM\r\nBYYvSIB+51tTnr0tHo3h9iAPv49MIS0YBm/btZ/DEA9IE5N5w80LpNQ1a7Qg\r\ncY8e48DxcM0pq0j6QpJnN5f3iTBOWEHBRjgRHhFiwIZ8dAOBNiIor5KBdUpv\r\nXxnHAbWRr9ePbP+4nb7hQ9SHzfPjBm/lFZwd2rijLIlcpW5gPApSTv3dBMHQ\r\nAHaUdoWRIlPfUIMuZioXuBM5aMXEOuhvQFXedNrjX4hTKxh4XIt/uABNCRAB\r\ndqpzwfu1GIxT0Hv1V1oLcF6sHOtfREN6thAD8lIZIuY4PgONeY6wISMuINg9\r\np2oKzdfg5oyNZeC2Z02booPkP2+dkdDySr92bMC8Psem1lx2wykdzJlbKBkT\r\n0N7k4R+8lsB83aGWU/jR+VXkO5WDSZRcpE0=\r\n=gc8c\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"},"directories":{},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sparkar-volts_5.0.0-beta.1_1658200762155_0.06772910750715488"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-14T22:38:15.813Z","0.0.2":"2021-08-14T22:38:16.067Z","modified":"2022-07-19T03:19:22.404Z","0.0.1":"2021-08-14T22:52:09.007Z","0.0.3":"2021-08-16T01:45:26.463Z","0.0.4":"2021-08-16T01:59:05.241Z","0.0.5":"2021-08-16T19:26:06.860Z","0.0.6":"2021-08-16T23:32:40.374Z","1.0.0":"2021-08-17T03:24:05.562Z","1.1.0":"2021-08-18T00:15:55.654Z","1.2.0":"2021-08-20T03:40:18.720Z","2.0.0-beta.0":"2021-08-20T21:37:26.294Z","1.1.1":"2021-08-20T21:50:25.285Z","2.0.0-beta.1":"2021-08-21T22:06:24.777Z","2.0.0-beta.2":"2021-08-22T03:38:21.378Z","2.0.0-beta.3":"2021-08-28T04:48:53.134Z","2.0.0-beta.4":"2021-09-01T06:07:52.359Z","2.0.0-beta.5":"2021-09-05T00:06:44.255Z","2.0.0-beta.6":"2021-09-09T05:40:59.067Z","2.0.0":"2021-09-10T02:50:10.966Z","2.0.1":"2021-09-10T04:07:58.464Z","2.0.2":"2021-09-16T19:50:19.154Z","3.0.0-beta.2":"2021-09-20T00:30:25.924Z","3.0.0-beta.3":"2021-09-26T02:43:05.715Z","3.0.0-beta.4":"2021-09-26T04:39:09.933Z","3.0.0-beta.5":"2021-12-23T00:35:43.178Z","3.0.0":"2021-12-23T02:09:38.037Z","3.0.1":"2021-12-23T13:56:44.936Z","4.0.0-beta.1":"2022-06-30T00:27:49.619Z","4.0.0":"2022-06-30T12:32:57.904Z","5.0.0-beta.1":"2022-07-19T03:19:22.330Z"},"maintainers":[{"name":"tomaspietravallo","email":"hello@tomaspietravallo.com"}],"description":"An extensive non-reactive Typescript framework that eases the development experience in Spark AR","homepage":"https://github.com/tomaspietravallo/sparkar-volts#readme","keywords":["Typescript","Spark","AR","Augmented Reality","Instagram","Facebook"],"repository":{"type":"git","url":"git+https://github.com/tomaspietravallo/sparkar-volts.git"},"author":{"name":"Tomás Pietravallo","email":"hello@tomaspietravallo.com","url":"https://tomaspietravallo.com/"},"bugs":{"url":"https://github.com/tomaspietravallo/sparkar-volts/issues"},"license":"MIT","readme":"","readmeFilename":""}