{"_id":"grainjs","_rev":"9-2611dd1daabae1ab9eb947f530f207f5","name":"grainjs","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"grainjs","version":"0.1.0","keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"author":{"name":"Grist Labs"},"license":"Apache-2.0","_id":"grainjs@0.1.0","maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"homepage":"https://github.com/gristlabs/grainjs#readme","bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"nyc":{"exclude":["**/*.d.ts"],"extension":[".ts"]},"dist":{"shasum":"289dfbb3285fe9f710b756f4ccdb37cd817fb603","tarball":"https://registry.npmjs.org/grainjs/-/grainjs-0.1.0.tgz","fileCount":150,"integrity":"sha512-8Imc3vSwkAbRe4qAxzfFvcVRzUvfpxkN+3UmH4jzcmkJo2YapiGQl4fPcgNChuL1thRDKtVR2j4FXvaF5DVEsA==","signatures":[{"sig":"MEUCIQC9J64kJIZo6ZZh7+E5y/bRtUZ7+aQemLqKstYI9ZyCPAIgKLOy2hcUBbkvdRVd+39TYQk8zykyk0sxzugetglMEPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":859129},"main":"dist/cjs/index","_from":".","files":["dist","lib","index.ts"],"types":"dist/cjs/index","module":"dist/esm/index","_shasum":"289dfbb3285fe9f710b756f4ccdb37cd817fb603","gitHead":"1b337e8664b76df2ff8b0f38f4cc53d291bde2c6","scripts":{"test":"nyc mocha -R list test/lib/","build":"bash build.sh","watch":"tsc -w","version":"npm run build","build-demo":"browserify demo/celsius_grain/index.js -d | uglifyjs --source-map 'content=inline,url=build-index.js.map' -o demo/celsius_grain/build-index.js","gitpublish":"./gitpublish.sh","preversion":"npm test","test-manual":"webpack-serve --config test/fixtures/webpack.config.js","test-memory":"mocha -R list -gc test/lib/","test-timing":"TIMING_TESTS=1 mocha -R list test/lib/","test-browser":"mocha test/lib/widgets/","test-browser-debug":"mocha --bail --no-exit test/lib/widgets/"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"repository":{"url":"git+https://github.com/gristlabs/grainjs.git","type":"git"},"_npmVersion":"3.10.10","description":"JS library from Grist Labs","directories":{},"_nodeVersion":"6.10.1","dependencies":{},"_hasShrinkwrap":false,"publishRelease":{"repo":"grainjs","owner":"gristlabs"},"devDependencies":{"nyc":"^11.4.1","chai":"^4.1.0","jsdom":"^11.3.0","mocha":"^3.0.1","sinon":"^4.0.0","lodash":"^4.17.4","tslint":"^5.10.0","ts-node":"^3.3.0","webpack":"^4.15.1","knockout":"^3.4.2","ts-loader":"^4.4.2","uglify-es":"^3.2.0","browserify":"^14.4.0","typescript":"^2.6.1","@types/chai":"^4.1.2","@types/node":"^9.4.0","geckodriver":"^1.11.0","webpack-cli":"^3.0.8","@types/jsdom":"^11.0.4","@types/mocha":"^2.2.48","@types/sinon":"^4.3.0","chromedriver":"^2.40.0","@types/lodash":"^4.14.100","webpack-merge":"^4.1.3","webpack-serve":"^2.0.2","mocha-webdriver":"^0.1.1","publish-release":"^1.4.0","chai-as-promised":"^7.1.1","create-react-app":"^1.4.1","fastpriorityqueue":"^0.3.1","selenium-webdriver":"^4.0.0-alpha.1","@types/chai-as-promised":"^7.1.0","tslint-language-service":"^0.9.9","@types/selenium-webdriver":"^3.0.10"},"_npmOperationalInternal":{"tmp":"tmp/grainjs_0.1.0_1531855000600_0.6934256503610743","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"grainjs","version":"0.1.2","keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"author":{"name":"Grist Labs"},"license":"Apache-2.0","_id":"grainjs@0.1.2","maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"homepage":"https://github.com/gristlabs/grainjs#readme","bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"nyc":{"exclude":["**/*.d.ts"],"extension":[".ts"]},"dist":{"shasum":"a6ee035e3d8aa0eec75cfd8bd83fda32e131d349","tarball":"https://registry.npmjs.org/grainjs/-/grainjs-0.1.2.tgz","fileCount":156,"integrity":"sha512-6OuGoa6lzS+G+VV4VUsD6B2HabAKVERfpABFFxT1SDSqkSiq4m5itKWPgqy+3EADaX2T+qjwP5p69OJaUrTLTA==","signatures":[{"sig":"MEUCIBmyFc2VoGpCyvQy/2ys4Gm08Wk5K0HVFWCQuuOU5uMlAiEAk1lXNDUivUSdsfTAQv5MIXSi2mBCQIflDgKOst26Cbw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":955597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHEsBCRA9TVsSAnZWagAATgkP/1+OCS/Vod561/83BZE1\nwLu7Sy+OBa+YsM6k209UCmr/rGRxIvsAC2zNQPRpADJt/t1FZpWv1jhoSwLA\nVGdKpj5etGhf2GTD6LspRRkkBI91FFJb72UmGL3SWo6kVKkNR7lFWvZBTxmv\nUb1ULqGvzJ9kmywSW69BARsJtnnY8B5KoDwdV34j0y//NDyt+w1XKZQ7LefW\naZVxlcOKWv9S3/MH4iEUQsWMXxZHdyaR2cvo4JuXUeONCNqbnF0u0uHCAuwN\nqFgtnjGopwt+3C9fiSedx9uXuR2QR6NVzES7Wgu6P65+vM0QLqMaqUTapR0q\n7T27bco/PDZirSW1uXjYERxbvkovIfShLcKuIuRHRsBEob2FdB3yKX7QSIqB\nwDxljpNi/+cWkTcugZHi9wQvRHptYW6LTz5qtLGl7teP+HIRUiN17z15EMyM\njfEwWKe7Epabx4AlAay/h0N1PCnGh/9PgJDBwb0kfZsi8YerSSmAemFDy3jW\nsU0vXhHQymB8E7w2521W6lhLrcdYJ7lkoHwYErHHVi4bZUNGlMyhkeD9EsvA\n/qSp7q+KQxfoXAISFUO3AIElf9zuM0wC3NP11PBp45cBQ8uOU80rCnsqZfLc\nKExvWPkuxuoj51lcmzu4x7McAMMsKISdTTU4r+g2eCt23EgLhRrmZDRh7k9O\nPpg/\r\n=jsDV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index","types":"dist/cjs/index","module":"dist/esm/index","gitHead":"90861bb050ae949cfb7fd546cb7a5cc02a8d47f8","scripts":{"test":"nyc mocha -R list 'test/lib/*.{js,ts}' && npm run test-types && npm run test-browser","build":"bash build.sh","watch":"tsc -w","prepack":"npm run build && npm test","version":"npm run build && npm test","build-demo":"browserify demo/celsius_grain/index.js -d | uglifyjs --source-map 'content=inline,url=build-index.js.map' -o demo/celsius_grain/build-index.js","test-types":"dtslint --onlyTestTsNext --expectOnly test/types","test-manual":"webpack-dev-server --config test/fixtures/webpack.config.js","test-memory":"mocha -R list --expose-gc --gc-global 'test/lib/*.{js,ts}'","test-timing":"TIMING_TESTS=1 mocha -R list 'test/lib/*.{js,ts}'","test-browser":"mocha 'test/browser/*.{js,ts}'","test-browser-debug":"mocha --bail --no-exit 'test/browser/*.{js,ts}'"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"repository":{"url":"git+https://github.com/gristlabs/grainjs.git","type":"git"},"_npmVersion":"6.5.0","description":"JS library from Grist Labs","directories":{},"_nodeVersion":"10.12.0","dependencies":{},"_hasShrinkwrap":false,"publishRelease":{"repo":"grainjs","owner":"gristlabs"},"devDependencies":{"nyc":"^14.0.0","chai":"^4.1.0","jsdom":"15.0.0","mocha":"^6.1.4","sinon":"^7.1.0","lodash":"^4.17.4","tslint":"^5.11.0","dtslint":"^0.7.1","ts-node":"^8.1.0","webpack":"^4.15.1","knockout":"^3.5.0","ts-loader":"^5.2.2","uglify-es":"^3.2.0","browserify":"^16.2.3","typescript":"~3.4.5","@types/chai":"^4.1.2","@types/node":"^11.13.8","geckodriver":"^1.11.0","webpack-cli":"^3.0.8","@types/jsdom":"^12.2.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.11","chromedriver":"^74.0.0","@types/lodash":"^4.14.100","mocha-webdriver":"^0.1.13","chai-as-promised":"^7.1.1","create-react-app":"^3.0.0","fastpriorityqueue":"^0.6.1","selenium-webdriver":"^4.0.0-alpha.1","webpack-dev-server":"^3.3.1","@types/chai-as-promised":"^7.1.0","typescript-tslint-plugin":"^0.3.1","@types/selenium-webdriver":"^4.0.0","@types/webpack-dev-server":"^3.1.5"},"_npmOperationalInternal":{"tmp":"tmp/grainjs_0.1.2_1562135296858_0.2851962118952942","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"grainjs","version":"1.0.0","keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"author":{"name":"Grist Labs"},"license":"Apache-2.0","_id":"grainjs@1.0.0","maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"homepage":"https://github.com/gristlabs/grainjs#readme","bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"nyc":{"exclude":["**/*.d.ts"],"extension":[".ts"]},"dist":{"shasum":"52163f3db6e294c444936395cc2099fd9bf069f5","tarball":"https://registry.npmjs.org/grainjs/-/grainjs-1.0.0.tgz","fileCount":156,"integrity":"sha512-PMG0HFJFKbCND+hAHrMPHSiwoum0G4lZvuRkdTx2WgoOtq3UY8ODReNP0qWST7woRkT0uSv4Ix/jNJBr8Zgtaw==","signatures":[{"sig":"MEQCIErM2VGg1CqLpsXY25JyzXins7fxaIF/DTr7dfwg32qsAiA3gSY4fxUVQSxMDtIuIdOo/Z5bYiV7QhjB9gOzDZh5nQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":955553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHExTCRA9TVsSAnZWagAADh4P/islheIlsqYkY+99DUSu\nUrqHfEIjYGYJnngGOfEOPtBkFkzCuSxhhcal+G8zvpw96k+OvYnGzpe4kLNN\nnGSR7ul5WYtLqM30Vv5PJJcWFb9umoBtSnyJTNNGfd8AytvI6xek4vAfOGRH\n21BVeHjw/eRaE/kZrDNlVUdbJzz0F8fxNYTyuZpfef4MWxrSwdrEhKDGpnV4\ngvtvGPFlPddZyt+vtC9bVI/z5HDUQjgEe0ncIK94eD1hmHLNC2C9wsD+TDI8\nRi6dBx0zc7H2tM41zl8Hqm445YKkINOaNdLzpf34eVMkV/SuPWqZhLSF6xyL\naWJm2D1mSlLLiLoGgFo9UhF61azjhPSAS9u2Q4XkBj4/Vyk/vx+jZwg5TDNf\nG1KdILswE6JeLI+ylhdrzHdnJwOFd8rx+K00HEY3b7ipBLQLvxJC+z4J6pCv\nbr0EqwUF+qb15ij1o06xwQC169qouDnryf8/YTyLqcERX4O8lawP9B+dboHj\n8nfKtroffT9BhEBzxgGC4XyOr8QijR+q4ONCpXzRygzy1+m8ROsENixcrkH0\nI1ySB+xmwWk3572umGwLEm2Sdcrp5FrkHJ4aAVjhZB/wQfRY8B3vIqISs5tc\n7bDclm+dcGxgpwspaEqJJRDl+g0B5bmonciSVBROP73vkCfPbOpcxiqVxFY6\nguVH\r\n=ywuB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index","types":"dist/cjs/index","module":"dist/esm/index","gitHead":"5b793e9749f4c31bd7f61355b294d13ca8bb382b","scripts":{"test":"nyc mocha -R list 'test/lib/*.{js,ts}' && npm run test-types && npm run test-browser","build":"bash build.sh","watch":"tsc -w","prepack":"npm run build && npm test","build-demo":"browserify demo/celsius_grain/index.js -d | uglifyjs --source-map 'content=inline,url=build-index.js.map' -o demo/celsius_grain/build-index.js","test-types":"dtslint --onlyTestTsNext --expectOnly test/types","test-manual":"webpack-dev-server --config test/fixtures/webpack.config.js","test-memory":"mocha -R list --expose-gc --gc-global 'test/lib/*.{js,ts}'","test-timing":"TIMING_TESTS=1 mocha -R list 'test/lib/*.{js,ts}'","test-browser":"mocha 'test/browser/*.{js,ts}'","test-browser-debug":"mocha --bail --no-exit 'test/browser/*.{js,ts}'"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"repository":{"url":"git+https://github.com/gristlabs/grainjs.git","type":"git"},"_npmVersion":"6.5.0","description":"JS library from Grist Labs","directories":{},"_nodeVersion":"10.12.0","dependencies":{},"_hasShrinkwrap":false,"publishRelease":{"repo":"grainjs","owner":"gristlabs"},"devDependencies":{"nyc":"^14.0.0","chai":"^4.1.0","jsdom":"15.0.0","mocha":"^6.1.4","sinon":"^7.1.0","lodash":"^4.17.4","tslint":"^5.11.0","dtslint":"^0.7.1","ts-node":"^8.1.0","webpack":"^4.15.1","knockout":"^3.5.0","ts-loader":"^5.2.2","uglify-es":"^3.2.0","browserify":"^16.2.3","typescript":"~3.4.5","@types/chai":"^4.1.2","@types/node":"^11.13.8","geckodriver":"^1.11.0","webpack-cli":"^3.0.8","@types/jsdom":"^12.2.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.11","chromedriver":"^74.0.0","@types/lodash":"^4.14.100","mocha-webdriver":"^0.1.13","chai-as-promised":"^7.1.1","create-react-app":"^3.0.0","fastpriorityqueue":"^0.6.1","selenium-webdriver":"^4.0.0-alpha.1","webpack-dev-server":"^3.3.1","@types/chai-as-promised":"^7.1.0","typescript-tslint-plugin":"^0.3.1","@types/selenium-webdriver":"^4.0.0","@types/webpack-dev-server":"^3.1.5"},"_npmOperationalInternal":{"tmp":"tmp/grainjs_1.0.0_1562135634762_0.48106415525135526","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"grainjs","version":"1.0.1","keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"author":{"name":"Grist Labs"},"license":"Apache-2.0","_id":"grainjs@1.0.1","maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"homepage":"https://github.com/gristlabs/grainjs#readme","bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"nyc":{"exclude":["**/*.d.ts"],"extension":[".ts"]},"dist":{"shasum":"2eb7e1a628e550de1dcbe3f97358d28e4dbefff8","tarball":"https://registry.npmjs.org/grainjs/-/grainjs-1.0.1.tgz","fileCount":156,"integrity":"sha512-N5odOGRDsdKYs+M+WAtmlACuRZh60vKzzXhxCcWfRftriRCilWnLIowNNU0siFzex2qauK5i7YV3dZ3lXA1w7A==","signatures":[{"sig":"MEUCIFOCVLUEShgvLV3EWCpSUuj2LTOMY380lmq2jPk8QkD6AiEAsAD3jTSLyIjx47P11AfELAXLXAqbl4vfqdeuZe4fAUY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":955952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdT5vUCRA9TVsSAnZWagAA5IUP/0jIZcj/KzF2vw/TWkST\nKcyHaMS7DEbTwRpj0lUjvupn57Gx8eh3dtTslLBCpLO6eGig1HD0VI2+tleM\nbtq47YaHqnlnmvod7qOkvFcg1DF/z61hl0qvAYXLI4B75pg7m3R4t54x6YDo\nEWvV/2W+TR0X6740rrg2tmrPfgp1iQ7wQAdXrfAZqLQmALTdllBUZOLAjrty\noqVPn8tuNmnlFfQqH/tE2mOdSLKzhANRNG6XOyW3E+eiOvMRTCovw9nR46kW\nBkHQtrbf/foZFhxIVz5Ei1xsXo1KnzD+xONXr+445vrDNjql9/MehWvlEaMN\njJOW6NfSKWZ+JXeFEdwyMLm5qKqghw7LrX4VDuuS+FqAc4RaA5eh+0/oz3EG\nJsacQ7d37LX50hCaGTKbqP8SkiCiaZgrD0VMy1KXBcN6Sun/pdzNyu7K/ulh\nSbuNrbQG/XAfbETiFMvD4QF3qHV8Enm4yEyrq790b0IWOgBlafNlH/pOoKDf\neaFKdyKnIW+KmlcSe+whUgHwXyJMaO6roDmY+uPoiloWJZ0f3meOjQEAWhMF\nnDqtgduZ24OJ42uX6vbkfRonkrVW6MWm1huKimo5lPNlEqCbQH01Hu9vp8FO\nQpw5vUeNGBVzkWWF/V7AshY0fN442K/8lNea/p7+Fyv5VG73tq8wSZKgUtOa\nB0TJ\r\n=Dhal\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index","types":"dist/cjs/index","module":"dist/esm/index","gitHead":"6bfd588ee0cc3da0c450ee2e0f55aa6f8cbb8e8d","scripts":{"test":"nyc mocha -R list 'test/lib/*.{js,ts}' && npm run test-types && npm run test-browser-headless","build":"bash build.sh","watch":"tsc -w","prepack":"npm run build && npm test","build-demo":"browserify demo/celsius_grain/index.js -d | uglifyjs --source-map 'content=inline,url=build-index.js.map' -o demo/celsius_grain/build-index.js","test-types":"dtslint --onlyTestTsNext --expectOnly test/types","test-manual":"webpack-dev-server --config test/fixtures/webpack.config.js","test-memory":"mocha -R list --expose-gc --gc-global 'test/lib/*.{js,ts}'","test-timing":"TIMING_TESTS=1 mocha -R list 'test/lib/*.{js,ts}'","test-browser":"mocha 'test/browser/*.{js,ts}'","test-browser-debug":"mocha --bail --no-exit 'test/browser/*.{js,ts}'","test-browser-headless":"MOCHA_WEBDRIVER_ARGS='--no-sandbox --disable-gpu' MOCHA_WEBDRIVER_HEADLESS=1 mocha 'test/browser/*.{js,ts}'"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"repository":{"url":"git+https://github.com/gristlabs/grainjs.git","type":"git"},"_npmVersion":"6.5.0","description":"JS library from Grist Labs","directories":{},"_nodeVersion":"10.16.0","dependencies":{},"_hasShrinkwrap":false,"publishRelease":{"repo":"grainjs","owner":"gristlabs"},"devDependencies":{"nyc":"^14.0.0","chai":"^4.1.0","jsdom":"15.0.0","mocha":"^6.1.4","sinon":"^7.1.0","lodash":"^4.17.15","tslint":"^5.11.0","dtslint":"^0.7.1","ts-node":"^8.1.0","webpack":"^4.15.1","knockout":"^3.5.0","ts-loader":"^5.2.2","uglify-es":"^3.2.0","browserify":"^16.2.3","typescript":"~3.4.5","@types/chai":"^4.1.2","@types/node":"^11.13.8","geckodriver":"^1.11.0","webpack-cli":"^3.0.8","@types/jsdom":"^12.2.0","@types/mocha":"^5.2.5","@types/sinon":"^7.0.11","chromedriver":"^74.0.0","@types/lodash":"^4.14.100","mocha-webdriver":"^0.1.13","chai-as-promised":"^7.1.1","create-react-app":"^3.0.0","fastpriorityqueue":"^0.6.1","selenium-webdriver":"^4.0.0-alpha.1","webpack-dev-server":"^3.3.1","@types/chai-as-promised":"^7.1.0","typescript-tslint-plugin":"^0.3.1","@types/selenium-webdriver":"^4.0.0","@types/webpack-dev-server":"^3.1.5"},"_npmOperationalInternal":{"tmp":"tmp/grainjs_1.0.1_1565498323604_0.5484427348075589","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"grainjs","version":"1.0.2","keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"author":{"name":"Grist Labs"},"license":"Apache-2.0","_id":"grainjs@1.0.2","maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"homepage":"https://github.com/gristlabs/grainjs#readme","bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"nyc":{"exclude":["**/*.d.ts"],"extension":[".ts"]},"dist":{"shasum":"5ab9b03de21bdff8da0f98408276fcbd31de8f17","tarball":"https://registry.npmjs.org/grainjs/-/grainjs-1.0.2.tgz","fileCount":156,"integrity":"sha512-wrj8TqpgxTGOKHpTlMBxMeX2uS3lTvXj4ROLKC+EZNM7J6RHQLGjMzMqWtiryBnMhGIBlbCicMNFppCrK1zv9w==","signatures":[{"sig":"MEUCIA0piT6lQmto9GOwfLAk+jBZoUPByHoVm4fOc6R0b3jAAiEAhUu592rbsSBJIakqL6QFUM932EdZ179jk0/Wp9dh6dM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":969427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrEOOCRA9TVsSAnZWagAAi7UP/0B/KzQ22+vmmfWxyL8d\nWCACLhNYkc1vyBzCEhFPbAUPjbzKm3i7axYH/pRQ5Csu1AAPcDt7NR27WiYu\naaJXcUdig9kGmui7kjS7oOvxZh7dsXfUhzWVPD0YanYLb69cD2Dny7frm0zv\nYNB8YTj808IKOnR1OdJBtwAcoTiH5Hx1o2LV7eNVDOevji6wLxbCkfIL+AEW\ncu9vs0I6pC8A7biN6DiEfwpr1kW9qjph7PJq1bcEMnuACU7t8Iaz/0FryZ5H\nqp2DMlszWdDx3hD/445HRFPmQYVi90EdvzkleHQlyuOIrHXhusfW7dz08Lqj\n3ChofqftpjRLXsx0MbsbenUSPPyL+uJ4V9gcmi426b1om9CoZCwHkuTpq/Wr\ntgPsyPWq3KXuC2r0pQOqR4KRjSHPJPEVLFMp9T+IxoZXGad5aDAGDTNcObj4\n6A0r1amol2W/1xt2iXG7zzeZx6xE8PD5qb86cFmqIVJq08JeC3B32MKvbXnR\nuuRdju2cM7g4VA6/DCDWOBoGDLUXvsbZiXTxHGJQW13bM3lEaD5Iw7cZmMXG\nBC3eMdPvb+f+45FmMQz7ktoLYHHfvGNZIe1abcIjNzB7Dov0cEAz9qxlagUe\nGA250l6cLEUBr0OQZBLw7q67ryJy0JwB5Qr7b3HUYi28JP1oGw/IxWG9+Fe7\nihLi\r\n=pzgu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/cjs/index","types":"dist/cjs/index","module":"dist/esm/index","gitHead":"d1c913d91293b1592242c7ea9fab4375940284ed","scripts":{"test":"nyc mocha -R list 'test/lib/*.{js,ts}' && npm run test-types && npm run test-browser-headless","build":"bash build.sh","watch":"tsc -w","prepack":"npm run build && npm test","build-demo":"browserify demo/celsius_grain/index.js -d | uglifyjs --source-map 'content=inline,url=build-index.js.map' -o demo/celsius_grain/build-index.js","test-types":"dtslint --localTs node_modules/typescript/lib --expectOnly test/types","test-manual":"webpack-dev-server --config test/fixtures/webpack.config.js","test-memory":"mocha -R list --expose-gc --gc-global 'test/lib/*.{js,ts}'","test-timing":"TIMING_TESTS=1 mocha -R list 'test/lib/*.{js,ts}'","test-browser":"mocha 'test/browser/*.{js,ts}'","test-browser-debug":"mocha --bail --no-exit 'test/browser/*.{js,ts}'","test-browser-headless":"MOCHA_WEBDRIVER_ARGS='--no-sandbox --disable-gpu' MOCHA_WEBDRIVER_HEADLESS=1 mocha 'test/browser/*.{js,ts}'"},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"repository":{"url":"git+https://github.com/gristlabs/grainjs.git","type":"git"},"_npmVersion":"7.11.2","description":"JS library from Grist Labs","directories":{},"_nodeVersion":"14.17.0","dependencies":{},"_hasShrinkwrap":false,"publishRelease":{"repo":"grainjs","owner":"gristlabs"},"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","jsdom":"16.6.0","mocha":"^9.0.0","sinon":"^11.1.1","lodash":"^4.17.21","tslint":"^6.1.3","dtslint":"^4.1.0","ts-node":"^10.0.0","webpack":"^5.38.1","knockout":"^3.5.1","ts-loader":"^9.2.3","uglify-es":"^3.2.0","browserify":"^17.0.0","typescript":"~4.3.2","@types/chai":"^4.2.18","@types/node":"^15.12.2","geckodriver":"^2.0.0","webpack-cli":"^4.7.2","@types/jsdom":"^16.2.11","@types/mocha":"^8.2.2","@types/sinon":"^10.0.2","chromedriver":"^91.0.0","@types/lodash":"^4.14.170","mocha-webdriver":"^0.2.9","chai-as-promised":"^7.1.1","create-react-app":"^4.0.3","fastpriorityqueue":"^0.7.1","selenium-webdriver":"^4.0.0-beta.4","webpack-dev-server":"^3.11.2","@types/chai-as-promised":"^7.1.4","typescript-tslint-plugin":"^1.0.1","@types/selenium-webdriver":"^4.0.13"},"_npmOperationalInternal":{"tmp":"tmp/grainjs_1.0.2_1638679438536_0.3772982592869889","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"grainjs","version":"1.1.0","description":"JS library from Grist Labs","main":"dist/cjs/index","module":"dist/esm/index","types":"dist/cjs/index.d.ts","scripts":{"build":"bash build.sh","watch":"tsc -w","test":"nyc mocha -R list 'test/lib/*.{js,ts}' && npm run test-types && npm run test-browser-headless","test-memory":"mocha -R list --expose-gc --gc-global 'test/lib/*.{js,ts}'","test-timing":"TIMING_TESTS=1 mocha -R list 'test/lib/*.{js,ts}'","build-demo":"browserify demo/celsius_grain/index.js -d | uglifyjs --source-map 'content=inline,url=build-index.js.map' -o demo/celsius_grain/build-index.js","test-manual":"webpack-dev-server --config test/fixtures/webpack.config.js","test-browser-headless":"MOCHA_WEBDRIVER_ARGS='--no-sandbox --disable-gpu' MOCHA_WEBDRIVER_HEADLESS=1 mocha 'test/browser/*.{js,ts}'","test-browser":"mocha 'test/browser/*.{js,ts}'","test-browser-debug":"mocha --bail --no-exit 'test/browser/*.{js,ts}'","test-types":"tsd --files 'test/types/**/*.ts'","prepack":"npm run build && npm test","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:build-api":"tsc -p tsconfig/tsconfig.es2015.cjs.json && api-extractor run --local --verbose && node scripts/generate-api-md.js","docs:preview":"vitepress preview docs"},"keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"author":{"name":"Grist Labs"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/gristlabs/grainjs.git"},"bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"homepage":"https://github.com/gristlabs/grainjs#readme","nyc":{"reporter":["html","text","lcov"],"extension":[".ts"],"exclude":["**/*.d.ts"]},"publishRelease":{"owner":"gristlabs","repo":"grainjs"},"devDependencies":{"@microsoft/api-extractor":"^7.55.1","@types/chai":"^4.2.18","@types/chai-as-promised":"^7.1.4","@types/jsdom":"^16.2.11","@types/lodash":"^4.14.170","@types/mocha":"^8.2.2","@types/node":"^22","@types/selenium-webdriver":"^4.0.13","@types/sinon":"^21.0.0","chai":"^6.2.1","chai-as-promised":"^8.0.2","esbuild":"^0.27.2","eslint":"^9.39.2","fastpriorityqueue":"^0.7.5","jsdom":"27.3.0","knockout":"^3.5.1","lodash":"^4.17.21","markdown-it-multimd-table":"^4.2.3","mocha":"^11.7.5","mocha-webdriver":"^0.3.4","nyc":"^17.1.0","selenium-webdriver":"^4.38.0","sinon":"^21.0.0","ts-loader":"^9.2.3","ts-node":"^10.9.2","tsd":"^0.27.0","typescript":"^4","typescript-eslint":"^8.50.0","typescript-tslint-plugin":"^1.0.1","uglify-es":"^3.2.0","vitepress":"^1.6.4","webpack":"^5.104.0","webpack-dev-server":"^5.2.2"},"overrides":{"esbuild":"^0.27.2"},"_id":"grainjs@1.1.0","gitHead":"0d1cc793c13da8d23447a601c5e115ba9ac80128","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-JeroCKKEl2LtlPGSchD6SzlkG1obHn366kHfzt0OKxmjov1tEdgdrS0UKlWHEX3hHusoc7B9eOa0u1D3Y9DxXA==","shasum":"a730ddc37f6ce98a687db19601ed5078a02337bb","tarball":"https://registry.npmjs.org/grainjs/-/grainjs-1.1.0.tgz","fileCount":157,"unpackedSize":1158796,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDKP71OQAKrgp1CHCLIuuvSEcLwvEqIWM+57C/dOSrdvQIgcrl2YW6tXklBiXp/Pm4sbifWwhjSfK+H3uz9XXuz6aw="}]},"_npmUser":{"name":"dsagal2","email":"dmitry@getgrist.com"},"directories":{},"maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/grainjs_1.1.0_1766773119272_0.24046723753642762"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-17T19:16:40.600Z","modified":"2025-12-26T18:18:39.615Z","0.1.0":"2018-07-17T19:16:40.851Z","0.1.2":"2019-07-03T06:28:17.056Z","1.0.0":"2019-07-03T06:33:54.937Z","1.0.1":"2019-08-11T04:38:43.780Z","1.0.2":"2021-12-05T04:43:58.735Z","1.1.0":"2025-12-26T18:18:39.440Z"},"bugs":{"url":"https://github.com/gristlabs/grainjs/issues"},"author":{"name":"Grist Labs"},"license":"Apache-2.0","homepage":"https://github.com/gristlabs/grainjs#readme","keywords":["grist","gristlabs","javascript","typescript","dom","observable","disposable"],"repository":{"type":"git","url":"git+https://github.com/gristlabs/grainjs.git"},"description":"JS library from Grist Labs","maintainers":[{"name":"dsagal2","email":"dmitry@getgrist.com"}],"readme":"# GrainJS: a light typescript web framework\n\n[![npm version](https://badge.fury.io/js/grainjs.svg)](https://badge.fury.io/js/grainjs)\n[![Build status](https://github.com/gristlabs/grainjs/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/gristlabs/grainjs/actions/workflows/build-and-test.yml)\n[![codecov](https://codecov.io/gh/gristlabs/grainjs/branch/main/graph/badge.svg?token=1OIMMBLI6N)](https://codecov.io/gh/gristlabs/grainjs)\n\nGrainJS is a JavaScript / TypeScript library for building dynamic web applications.\n\n- It's in part inspired by [React](https://reactjs.org/), but based on observables (like\n[Knockout](http://knockoutjs.com/documentation/introduction.html)) instead of virtual dom.\n- It is lightweight, has no dependencies, and takes only ~30KB minified.\n- It needs no special tooling. It's nothing more than a library.\n- It supports convenient DOM-building in JS, event dispatching, DOM event subscriptions,\n  disposable components, and in-code CSS styling.\n- It's fully typed for use with TypeScript.\n- It's proven its worth by powering [Grist](https://github.com/gristlabs/grist-core#grist)'s rich\n  frontend app.\n\n## Documentation\n\nFor docs, visit [https://gristlabs.github.io/grainjs/](https://gristlabs.github.io/grainjs/).\n\n## Installation\n\n```sh\nnpm install grainjs\n```\n\nOr see [Getting started with GrainJS](https://gristlabs.github.io/grainjs/getting-started.html).\n\n## Examples\n\nSee basic examples in [Quick tour](https://gristlabs.github.io/grainjs/#quick-tour) or complete examples\nat [Examples](https://gristlabs.github.io/grainjs/examples.html).\n\n## License\n\nGrainJS is licensed under [Apache-2.0 license](https://github.com/gristlabs/grainjs/blob/main/LICENSE).\n","readmeFilename":"README.md"}