{"_id":"downsample","_rev":"9-6db05ce13129699a3327a634c8cbd0c6","time":{"1.0.0":"2018-07-03T22:31:21.182Z","created":"2018-07-05T07:27:49.284Z","1.0.1":"2018-07-05T07:27:49.368Z","modified":"2022-04-29T04:22:26.760Z","1.0.2":"2018-07-09T09:24:18.863Z","1.0.3":"2018-07-09T11:40:15.905Z","1.1.0":"2020-05-08T12:27:15.795Z","1.2.0":"2020-05-27T16:35:52.617Z","1.3.0":"2020-06-07T10:12:18.999Z","1.4.0":"2021-02-24T07:25:31.468Z"},"name":"downsample","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.1":{"name":"downsample","version":"1.0.1","description":"Provides functions for time series data downsampling for visual representation","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc --declaration src/index.ts --outDir dist","build:watch":"npm run build -- -w","clean":"rm -rf dist","prepublishOnly":"npm run test && npm run build","test":"mocha --require ts-node/register --watch-extensions js,ts,tsx src/*.spec.ts src/**/*.spec.ts","test:watch":"npm run test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample#readme","devDependencies":{"@types/expect.js":"^0.3.29","@types/mocha":"^5.2.4","@types/node":"^10.5.1","babel-eslint":"^8.2.5","eslint":"^5.0.1","expect.js":"^0.3.1","gh-pages":"^1.2.0","mocha":"^5.2.0","ts-node":"^7.0.0","typescript":"^2.9.2"},"gitHead":"bba052a6b2ecee3411e5a2bee9ef596e75c9b894","_id":"downsample@1.0.1","_npmVersion":"5.5.1","_nodeVersion":"9.1.0","_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"dist":{"integrity":"sha512-KNpGbyQD4s5ulefxyeRrIt+VU3OXuisGRIL1SPmbHmirA0RU8cWReiYhrNuulgOmGCHjZ7h9kIIChuEFxnn9uA==","shasum":"016a06c6acf2f86f54a752652f5dd5b87390068e","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.0.1.tgz","fileCount":24,"unpackedSize":31816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPch1CRA9TVsSAnZWagAArSIP/3hKBN1bw4V3InNQCTta\nD+BmakSsdzoYx/zHDUPSPhPKLnKCHS99sdi1cOlYN/1JqsvaWAwHeMLPLuar\nxgjQIm0t7W5YbQwZCIdlTv73gTuFnvoakJEQeJCRgaV9F4nevIxlKahGoG9n\nY54Qyq9Wx/jOQqnTvJEv3+8GrDSXqQ1HrTR+xBlTkbFaqkQQgYYkze0P0TrX\n+Mlft+P73Cee9vynuT4GpI80Q5Ie0u00JXG6zsMywrc9n7h8Uzm41zB2ZgkK\n8jYjMf1cwcXVutqd1klpBt0YkLOVjlT/7spLMaux3Gnix0IBVqU0E+YOefb/\n5v7mwyyzYUe4rmaqgVRH5Vc2iiJ6djI/ZiWDNQAcxKHS8Bq7NigpSQv5bAHW\nn+EU0pt/QXMjxzAwW0ueMHFRP/RXrDF7Xi9akqZmJlJSN2mLFelkhXl6zcYq\npp/EtLi6RfMZUkqRcM6Ar/AAM3ojIEk5ohfv+7Lml9kElpR75q58C5OpubUW\nOlB7nPVrc6zMxRhOueYfdK0LO/xMSJOOqFlG07Mh8XFurLpR6EOIObn1K1EA\nYRioVvuMPeAugQL1abLrPqd9lK5F4A+EyZxZYZKiL1iR3KdZ1wouluhsvig1\nqN5AF7tr7JaQL20sGfPw44K5dHqKJa7/dbTV1ErG5hnHlyEntj+3/uPCBLEM\noLMN\r\n=wVOh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7FKS295M+XrKgNp1Fy0350JOaFla4GumuKBb9QCNmdAiBTx0gLhwhQAqi51j8Iljek7/CspmhxpRVZK2bjWEPLjQ=="}]},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.0.1_1530775669285_0.3151571104810367"},"_hasShrinkwrap":false},"1.0.2":{"name":"downsample","version":"1.0.2","description":"Provides functions for time series data downsampling for visual representation","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc --declaration src/index.ts --outDir dist","build:watch":"npm run build -- -w","clean":"rm -rf dist","demo:build":"webpack --config webpack.demo.config.js --mode production","demo:clean":"rm -rf demo/dist","demo:upload":"gh-pages -d demo/dist","demo:watch":"webpack-dev-server --config webpack.demo.config.js --mode development","demo:publish":"npm run demo:clean && npm run demo:build && npm run demo:upload","prepack":"npm run test && npm run build && npm run demo:publish","test":"mocha --require ts-node/register --watch-extensions js,ts,tsx src/*.spec.ts src/**/*.spec.ts","test:watch":"npm run test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample","devDependencies":{"@material-ui/core":"^1.3.1","@types/expect.js":"^0.3.29","@types/mocha":"^5.2.4","@types/node":"^10.5.1","@types/react":"^16.4.6","@types/react-dom":"^16.0.6","awesome-typescript-loader":"^5.2.0","babel-core":"^6.26.3","babel-eslint":"^8.2.5","babel-loader":"^7.1.4","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","eslint":"^5.0.1","expect.js":"^0.3.1","gh-pages":"^1.2.0","html-webpack-plugin":"^3.2.0","mocha":"^5.2.0","react":"^16.4.1","react-dom":"^16.4.1","ts-loader":"^4.4.2","ts-node":"^7.0.0","typescript":"^2.9.2","webpack":"^4.15.0","webpack-cli":"^3.0.8","webpack-dev-server":"^3.1.4"},"dependencies":{"@material-ui/lab":"^1.0.0-alpha.5","@types/recharts":"^1.0.23","recharts":"^1.0.1"},"gitHead":"de0f95bbbabc4ade597ee6fa0662827befff7933","_id":"downsample@1.0.2","_npmVersion":"5.5.1","_nodeVersion":"9.1.0","_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"dist":{"integrity":"sha512-Irh50nInkWw23S/1DMhWoexDeQS8UoA+0ohgOEd84gSTnyYl4r8xwbMdrBl+a1DAKqwbNCronaipDtoP5iZZVQ==","shasum":"f39e3d9feaa1d68ef0d6b737aaead971ee3b3ecd","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.0.2.tgz","fileCount":26,"unpackedSize":27408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQynCCRA9TVsSAnZWagAAu9MQAIoDWaIg2RkQzSQO80lK\ncnHfe7lwaUHq9co/IhWtjlkJAWoLnlW2dQVLaWC+MA7nh675pVuIZPLQzoJ8\ncw2ZeyG1kgeq+d1CURyd+re0SUA2II6WBTk5fYyp3mcJPapEZ3ph6VqqzlaM\nAtXWKG2eoS9a5aXIRTLlz3/KiYTGXlHYjbLTldw/ILMDLrJ/yOKj36PPT7Ws\n+l4IcJX2cf3O0aQA1//qkJa0MTIM3eoLJh5RVwIvchOq208RbcY2//K+7UqB\n23RN83sJP15a1M+xlibwlSnT4UjzdDz0qhPOMQj+380TwCwp1XeNQd0rSWQ+\n28DpQvHDFz/Ga6H+prvNr+AeNy5baAHTMKFzfs+X4WeLGG56l/2ycqN7IkQG\nSx39uh9rKIflakah0LOzaOWqp81eiNTnyM00Pl01mZOuAYpP3x2yeWRTu3JJ\npGIxsDbTR3rPC6TEZ75ahO0sIFVtP3U2LLX3piH+UNtN9dHRt7K/qsCLvUPW\nej9/8FSoHZxuoCxR2mJkj3sHN9giyKTzjLuAP6qMyzGxhhFPHlcGcSjdzUYS\nI2O2SkPmeuuJvI7tpv21TmsMGYn58DwgQAqLV7M2bunGBBGHwkA+M5FW1ULy\nX46gEGbge2dZeSnkumLq9q50IQti+u2tKS0NglU/0A+orJWxVhhfsenSRB6i\nCiBM\r\n=GjpB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3qWxTSpiqDKcpZdn8gWLn8Ljuwk+YCh2zKGr80LDl3AiEA35pbBYlet9k5XlviMt62GHaV87fCPIt4iLY0FLbl1H4="}]},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.0.2_1531128258791_0.5587765363899926"},"_hasShrinkwrap":false},"1.0.3":{"name":"downsample","version":"1.0.3","description":"Provides functions for time series data downsampling for visual representation","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc --declaration src/index.ts --outDir dist","build:watch":"npm run build -- -w","clean":"rm -rf dist","demo:build":"webpack --config webpack.demo.config.js --mode production","demo:clean":"rm -rf demo/dist","demo:upload":"gh-pages -d demo/dist","demo:watch":"webpack-dev-server --config webpack.demo.config.js --mode development","demo:publish":"npm run demo:clean && npm run demo:build && npm run demo:upload","prepack":"npm run test && npm run build && npm run demo:publish","test":"mocha --require ts-node/register --watch-extensions js,ts,tsx src/*.spec.ts src/**/*.spec.ts","test:watch":"npm run test -- --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample","devDependencies":{"@material-ui/core":"^1.3.1","@material-ui/lab":"^1.0.0-alpha.5","@types/expect.js":"^0.3.29","@types/mocha":"^5.2.4","@types/node":"^10.5.1","@types/react":"^16.4.6","@types/react-dom":"^16.0.6","@types/recharts":"^1.0.23","awesome-typescript-loader":"^5.2.0","babel-core":"^6.26.3","babel-eslint":"^8.2.5","babel-loader":"^7.1.4","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","eslint":"^5.0.1","expect.js":"^0.3.1","gh-pages":"^1.2.0","html-webpack-plugin":"^3.2.0","mocha":"^5.2.0","react":"^16.4.1","react-dom":"^16.4.1","recharts":"^1.0.1","ts-loader":"^4.4.2","ts-node":"^7.0.0","typescript":"^2.9.2","webpack":"^4.15.0","webpack-cli":"^3.0.8","webpack-dev-server":"^3.1.4"},"dependencies":{},"gitHead":"aa9a3a5d674b982945b5840987a5ab12b41a29e3","_id":"downsample@1.0.3","_npmVersion":"5.5.1","_nodeVersion":"9.1.0","_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"dist":{"integrity":"sha512-/76FHN30cksZ9TlgBp/BYt4tkeSbERxx0k8BG24Z3yzaV/W/fNQEICIWYmn/+nkpE7ZozHi13+mCabMDmXevYw==","shasum":"d97a60a4453a34b2157b28cf4416a1be676510df","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.0.3.tgz","fileCount":26,"unpackedSize":27406,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQ0mfCRA9TVsSAnZWagAAEpQP/0lm6qY1lTfxU3LAMXdn\n4xwHzectXRYpewXa6zrhDGo72PD70rxqRrzvX8mmj3zvXhVE3cb/myd4ePTB\nj7OJGclIqvq4LJEYCuTASuimauxkAIMLNy87VoMnLiRRLwiqjdjVVfcp91B9\nghvcWozDmALvd4+s+CR6Ce3+kIGnK1CR5qqZrYalKnilaqkEvICekmCVYC2+\nWqaYEpeQfLXS2XVZPzjFo21JzUmujxAHRkY/ePrlu9yPF32XldibYMXLIIOD\n7WDkQTp+GPYbDsmB5vPB1bEvW0V8+UQ+4UnFIE4t9DXyijitgmhfHMDbVNpt\nb4l0P9Uq1Vz7mjMcfYN0NV0zcvXUis7RMMu7zGsrKBU5rkOkOUsIRUkMeS6T\no43sjOCYY7x0z3VrfxLJbKJD8o8Z4+uccSdAMpSmtbKFU3MK7cJRqS2LRZd7\ngXBtFr8Iv5n92WjU5xAUxQiEilIWC2XcMX2YLwYJgdzmcl2JeO0VybYYa5Tu\nEvB9HZL8wjM8oous9vP2WlljHZP5COmm8ZM+LMIf5FOtqTrJEJim/QhhiAEy\nixZJA7t1hOkv1P1TwHoAePSTjek6N6L8eNQYnOara+GWOznObbc7XYRXJCnB\nY54U37e3yvmZ0JGbCWQv3fKfj9v8sNM/5w/JMmvBjjdpGZ/KC9XYUfRPbw3j\n4fg0\r\n=8WT8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk51i7LC3L2Lbyz8ccOAxGBPqtUIl6kB0pO3SHmxx4fQIgV6tytZQCHbY8KaZJIuWsRcYqm3fiX4lm80iO95EsrlU="}]},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.0.3_1531136415853_0.9970262240483636"},"_hasShrinkwrap":false},"1.1.0":{"name":"downsample","version":"1.1.0","description":"Provides functions for time series data downsampling for visual representation","main":"index.js","types":"index.d.ts","scripts":{"build":"rollup -c","build:watch":"rollup -cw","clean":"rm -rf dist","demo:build":"webpack --config webpack.demo.config.js --mode production","demo:clean":"rm -rf demo/dist","demo:upload":"gh-pages -d demo/dist","demo:watch":"webpack-dev-server --config webpack.demo.config.js --mode development","demo:publish":"yarn demo:clean && yarn demo:build && yarn demo:upload","release":"./script/release.sh","lint":"eslint . --ext .ts,.tsx,.js,.jsx","lint:fix":"yarn lint --fix","test":"jest","test:watch":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample","devDependencies":{"@babel/core":"^7.9.6","@babel/preset-typescript":"^7.9.0","@material-ui/core":"^4.9.13","@material-ui/lab":"^4.0.0-alpha.52","@types/jest":"^25.2.1","@types/node":"^13.13.5","@types/react":"^16.9.34","@types/react-dom":"^16.9.7","@types/recharts":"^1.8.10","@typescript-eslint/eslint-plugin":"^2.31.0","@typescript-eslint/parser":"^2.31.0","@wessberg/rollup-plugin-ts":"^1.2.24","babel-core":"^6.26.3","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","eslint":"^6.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-react":"^7.19.0","eslint-plugin-sort-imports-es6-autofix":"^0.5.0","gh-pages":"^2.2.0","html-webpack-plugin":"^4.3.0","husky":"^4.2.5","jest":"^26.0.1","lint-staged":"^10.2.2","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","recharts":"^1.8.5","rollup":"^2.8.2","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","ts-jest":"^25.5.0","ts-loader":"^7.0.3","ts-node":"^8.10.1","typescript":"^3.8.3","webpack":"^4.43.0","webpack-cli":"^3.0.8","webpack-dev-server":"^3.1.4"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"jest":{"preset":"ts-jest","testPathIgnorePatterns":["<rootDir>/test","/node_modules/"]},"lint-staged":{"*.{js,ts}(x)?":["eslint --fix"]},"_id":"downsample@1.1.0","_nodeVersion":"14.0.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-HtiiZN5ssCGBiR9BEPjvcijSsTyFM7oIFnWbpM2QfIpmu31EFe1KwWvgvituJCSp+4JHDFhW/ExLiaQcW3YMKQ==","shasum":"4dd25a06bd6795bc520d3ae597680227c146220c","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.1.0.tgz","fileCount":12,"unpackedSize":47381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetVAkCRA9TVsSAnZWagAAwp4P/idfIkuxNQ0epevpZldw\nwI/bL2VgNo7Q0Py4qHtKv1vZJWFHCy3juPgnVkhy2GAuFFMTUCIplhK+BwSE\nt+NVlcXVKsk0y9u5dORP5BpzvfyRrpV6Lv0Q3CbWzPuJbSQsgHlBvZyVyyUa\nLy1YF5cWmPv0Nmmj1dM+VcY9KtYo7Pn3WR425RdVK6H6B5ytKHMRc77kUgH2\nbBadjF/0KvckEEtviN7G/w8iP5qVdDKXRDAvVuLMwfl35wwtqP9A5wdaFFnu\n2BAErNX/Lb2CHroOAR8WmpI37S/Wifu6OaKczuDYXaZHig0AZmtKyyNw1l7d\nKKRisoTUrH825BVuycbrLIga+3L4Ot5bfv1Z6iCjtwS33IWlJA2DIOvNnBOS\nPTSweyc/4UKWzPqoh9WBMdsKAp4SGve2y8Vl4UKwksoeHGrwST5jCxkHVwe7\nLd+nf5yQiIzq95/J5fVJbHoH7z+k2TPt/T+NnHiXtaFJ3nrh30qpdeLm9JA9\nwZmWPx7AsygBauAn4PkvGTaCVN9vN+ZPb/fEhdT6biBGzdVmDNSKbdjfoyqP\nA+pkEhS9yrCFt6S4E7vEKXOiYXBqOCLDBt+x0B+ddP90fCUi0cLOCXvi/Wct\n+i7jhMUiaoTfovDXzNROWL/qpLOuhvKrobH7mZYUB7P2CDPBxkxa7xLz0Wp6\nF+NN\r\n=tz7x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUFriNlolcUcVAJBT3MpjriyCwy9tiFKB/XO42ZVptCAIgFRMJKdOcUYM9nYrhuQvXsi58WyhzeoFnJZ8ExAb5Myk="}]},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.1.0_1588940835694_0.34082584120067616"},"_hasShrinkwrap":false},"1.2.0":{"name":"downsample","version":"1.2.0","description":"Provides functions for time series data downsampling for visual representation","main":"index.js","types":"index.d.ts","scripts":{"build":"rollup -c","build:watch":"rollup -cw","clean":"rm -rf dist","lint":"eslint . --ext .ts,.tsx,.js,.jsx","lint:fix":"yarn lint --fix","release":"./scripts/release.sh","test":"jest","test:watch":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample","devDependencies":{"@babel/core":"^7.6.2","@babel/preset-typescript":"^7.8.3","@types/jest":"^25.2.1","@types/node":"^14.0.1","@typescript-eslint/eslint-plugin":"^2.33.0","@typescript-eslint/parser":"^2.33.0","@wessberg/rollup-plugin-ts":"^1.2.17","babel-core":"^6.26.3","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","eslint":"^7.0.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-react":"^7.20.0","eslint-plugin-sort-imports-es6-autofix":"^0.5.0","husky":"^4.2.5","jest":"^26.0.1","lint-staged":"^10.2.2","prettier":"^2.0.5","rollup":"^2.10.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","ts-jest":"^25.5.1","ts-loader":"^7.0.4","ts-node":"^8.10.1","ts-type-checked":"^0.3.2","ttypescript":"^1.5.10","typescript":"^3.8.3"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"jest":{"preset":"ts-jest","testMatch":["**/*.spec.ts"],"testPathIgnorePatterns":["<rootDir>/test","/node_modules/"],"globals":{"ts-jest":{"compiler":"ttypescript"}}},"lint-staged":{"*.{js,ts}(x)?":["eslint --fix"]},"_id":"downsample@1.2.0","_nodeVersion":"14.0.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-paUlBvraN1iJFAPfxpzSB7+SM5YvV9A5B017Glf9fHbeSpyaR/iLRTWNBhIc7HH7mcEXuDARsjwc2xEcKpfICg==","shasum":"4109b4fbc1a35ff2dfc5d8cca818727c15af3a24","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.2.0.tgz","fileCount":14,"unpackedSize":92712,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezpboCRA9TVsSAnZWagAAwXIP/joM+GMgN9R+zfAVHf7w\ndQ2rdkTwLQAtZgqARFInv1RZgKY7n5sftAKh2+gVrOMKcF7NhSevPS058iqJ\nVd0vmXE1QTvkfbvKiX8IBukm1an0BXgKo85HXyAU7/GZ2uaa/lpVakqcLFiF\nS4C57E5RSD8hEX5rD5cyc5JG2vGM8c8TBaCJhxMyYicWyjFmdHKz4S8VlEDN\n4skNC1UYATAxtfY9Sdthl7aQnjQ4cPoblsqRT+b2DtPoBsM74xCA8lWU9cU0\nPwh7wxLOFV+k6esaF7WcBg/q5COPU53Nl6qfrn3CinYxVrT8IWQb2+8XNPDl\n9aaAXvQVmdgx4zoLz61ATE30koIp0W4JQY1Lf513nBf9puf8w+ySl3JD9hKh\nyULlsec0XEqeXol3IRMK5U7Xdvwfm6CLbe1NrNAwhrP8uOrP80/vGCfq4uXs\nDyKe9GSfWAYjCQgqOTf28ISLiTOnLEIVFCQkqak23BzIjNq57LGNxiJjDq/J\nHRXK2Mv3iPA7I+IwQnCzTsrYtSuQPBe1KEkQK4l/YEgZzvVepAvI6P4iRlXL\nZm1sjq9xgW/Lr6WKPb1n1p4uKjZl5uctn1r2a8dbJt+NvUPqJCl/3g1doNov\nluj0fkHhmwmnPEYVJLdZqTYlvLI1HaHv61qK1tXTei579btxSnXUbyeAlqzF\nK2R1\r\n=EZsl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4j3qyd2V8jd6aRdzf+7RAq7kvgmLUmuVfzE2tzCG0qgIhAOc40jRSEZR1IWVUesNFFCofYT/JMFmOKNp/mAXTKXMn"}]},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.2.0_1590597352421_0.4482374333653225"},"_hasShrinkwrap":false},"1.3.0":{"name":"downsample","version":"1.3.0","description":"Provides functions for time series data downsampling for visual representation","main":"index.js","types":"index.d.ts","scripts":{"build":"rollup -c","build:watch":"rollup -cw","clean":"rm -rf dist","lint":"eslint . --ext .ts,.tsx,.js,.jsx","lint:fix":"yarn lint --fix","release":"./scripts/release.sh","test":"jest","test:watch":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample","devDependencies":{"@babel/core":"^7.10.2","@babel/preset-typescript":"^7.10.1","@types/jest":"^25.2.3","@types/node":"^14.0.11","@typescript-eslint/eslint-plugin":"^3.1.0","@typescript-eslint/parser":"^3.1.0","@wessberg/rollup-plugin-ts":"^1.2.17","babel-core":"^6.26.3","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","eslint":"^7.2.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-react":"^7.20.0","eslint-plugin-sort-imports-es6-autofix":"^0.5.0","husky":"^4.2.5","jest":"^26.0.1","lint-staged":"^10.2.9","prettier":"^2.0.5","rollup":"^2.14.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","ts-jest":"^26.1.0","ts-loader":"^7.0.5","ts-node":"^8.10.2","ts-type-checked":"^0.3.5","ttypescript":"^1.5.10","typescript":"^3.9.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"jest":{"preset":"ts-jest","testMatch":["**/*.spec.ts"],"testPathIgnorePatterns":["<rootDir>/test","/node_modules/"],"globals":{"ts-jest":{"compiler":"ttypescript"}}},"lint-staged":{"*.{js,ts}(x)?":["eslint --fix"]},"_id":"downsample@1.3.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-3y38LFwT0uXjeb9H628JQVB1PNzsXwUfPdr2xEJYOKyN0blrBDg3HfF95Y3W0iPRUxUY4EUEzf7dNMCVQNTBxg==","shasum":"e7b446c01814003db5595f070c00b702b94a858d","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.3.0.tgz","fileCount":16,"unpackedSize":95450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3L2DCRA9TVsSAnZWagAA6CEP/RLe1WNFnZ51KmLjgv5V\nAAFYBawyd6R1by9Ap26+URkFlftEh6utXs1O0ChN8W+dBkgv5XIU6o7ubl1n\nXbJyGoV+sVQj3jv3fv1uSKTxg4to+ZVM/r65wNjBbgtpX1OYZYzvhDhMc0Ag\nd6JxWiltj9eHgTPUE5SMttOL8obeaIzbdlCI9B1Srx+iNrMFiQzBljzuF99x\negD1beFDUNBaw77fzBELfHkEokctFnalwwP/WYrVqKJPfB7sCtUs3lclHyLO\nUtFR1Vizek85ikKaZR2mwK3TYj2iyiVBMhpmCfkDf8FVt954YD7ThYqBppqD\nemKZCQvHKmH4w0fpDqgQmCsQBpLvkWEXLs+enkMBPNBYoBzeysZusUvgVJaG\nOp0bFqhdprXHDWj/mdl6+c5bQ3bJtn4Fhs93Z1ao2HRiWgtWRhJMJ243Fm2q\n9uzxK8NAKlEhbDPHvjlKgQsy5aRKjdooqvztNZvMIV3t5XCaqmcxwYpXFau/\nNsGQgilP8ApvKSLmnN9bdS9nvlnNgIh24ZpMefDtdokVvhLMyn2Lr2+ZNgLH\nmxrehZbyO/ZDHCYUi8Pf7v8VKtW6WqSChKKL5Zy04cMyx7V5MfGZnYnba0N1\noeprwPmA7Bdga/VI3lKSAZMf26TWAS2CIpSxE1ZH40QXptvoe3RS+DCyCZxl\nIHYA\r\n=+lb1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8DK/tx4i+D0PgBt8BEni04k8vtjjVKF1gsAEEHz2NcAiEAokAyPTdWIm789zCDFg4GEFamYkJpJQQJ9eTRAMDtw7g="}]},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.3.0_1591524738845_0.029124138469384553"},"_hasShrinkwrap":false},"1.4.0":{"name":"downsample","version":"1.4.0","description":"Provides functions for time series data downsampling for visual representation","main":"index.js","types":"index.d.ts","scripts":{"build":"rollup -c","build:watch":"rollup -cw","clean":"rm -rf dist","lint":"eslint . --ext .ts,.tsx,.js,.jsx","lint:dist":"eslint dist --ext .d.ts --fix","lint:fix":"npm run lint --fix","release":"./scripts/release.sh -d","test":"jest","test:watch":"jest --watch"},"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"homepage":"https://github.com/janjakubnanista/downsample","devDependencies":{"@babel/core":"^7.10.2","@babel/preset-typescript":"^7.10.1","@types/jest":"^25.2.3","@types/node":"^14.0.11","@typescript-eslint/eslint-plugin":"^3.1.0","@typescript-eslint/parser":"^3.1.0","@wessberg/rollup-plugin-ts":"^1.2.17","babel-core":"^6.26.3","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","eslint":"^7.2.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-react":"^7.20.0","eslint-plugin-sort-imports-es6-autofix":"^0.5.0","husky":"^4.2.5","jest":"^26.0.1","lint-staged":"^10.2.9","prettier":"^2.0.5","rollup":"^2.14.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","ts-jest":"^26.1.0","ts-loader":"^7.0.5","ts-node":"^8.10.2","ts-type-checked":"^0.3.5","ttypescript":"^1.5.10","typescript":"^3.9.5"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"jest":{"preset":"ts-jest","testMatch":["**/*.spec.ts"],"testPathIgnorePatterns":["<rootDir>/test","/node_modules/"],"globals":{"ts-jest":{"compiler":"ttypescript"}}},"lint-staged":{"*.{js,ts}(x)?":["eslint --fix"]},"_id":"downsample@1.4.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-teYPhUPxqwtyICt47t1mP/LjhbRV/ghuKb/LmFDbcZ0CjqFD31tn6rVLZoeCEa1xr8+f2skW8UjRiLiGIKQE4w==","shasum":"f7500318efd5d979641d45fe49cd2dc8d7cb9397","tarball":"https://registry.npmjs.org/downsample/-/downsample-1.4.0.tgz","fileCount":16,"unpackedSize":100336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNf9rCRA9TVsSAnZWagAAw1gP/1/tjnbsfGI1DjuF1GsH\nDuqe++d9BMtF9u88K/XRYSu44AZApPf4myzfW9XHCocM5lVury/4ST7aniPB\ndelO87T9vMjfXqZ18fHcAdpvD2Y0cUyLKqLeSZRVMVTnuJZaVE6A6k7usM+L\nbZWaZsAIYJrRgXSqaasopTejrhs1R3jcqCC8JcvMO3rZ1FagIfPwu6a1t6Hc\nvy8Nl6LWmzloU9yacqHvDMsi4Gi0bs7H4pjKX5YARuzpYvnrcnLPSESMMUTd\nASwsA4Pmy3Nxu86yIu37jcZgL8h3ZV0kCuQJec26ADm/wgCbPFJmcfaa15qD\nUIH15ai5dYC7lXt3D4lWAVhKjsTlKODnhjjOL9kEC2zVGsD9WtKu7k8OMVGp\nLcB6CAA+uSPBsfT7eQJJ2V8Bsy034J6hapOWlH/sZSyAmFBmedeQ1K8XKgNz\nBdufs9FpyBYs5rQ2N0o4jFeRWC6Vccvf6DrkAJjY57z0A31yiqOsXKRzwvap\nsjhEbHi8dLOBbpKE1pkjFYluDKZRzWNC2Vdm60wUJSmQ6kTCYirp1nNojRaC\npPexRKCvP6DZ331vi09xAG2ZQBTlpHAotmnwMTWw8tX8+MSha0kT0vOxCEDT\nEMSEScSFQHsDlBNEAuCCjw9MWNe+j7udhc/s8jqn0PxCIVqaYF3GLNV2lkqa\nQ+Vl\r\n=LF8v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGsP3Y6kTBNIxbI/Cr9BFXZ/w0fu+5MRYm7/uMT3GL1RAiEAuHeaypFf1bvh6q3X5xuaYg+ZseB9oEFx58rfyx5sE8I="}]},"_npmUser":{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"},"directories":{},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/downsample_1.4.0_1614151531346_0.9174205265340072"},"_hasShrinkwrap":false}},"maintainers":[{"name":"jannanista","email":"jan.jakub.nanista@gmail.com"}],"description":"Provides functions for time series data downsampling for visual representation","homepage":"https://github.com/janjakubnanista/downsample","keywords":["downsample","data","downsampling","charts","charting","plot","plotting"],"repository":{"type":"git","url":"git+https://github.com/janjakubnanista/downsample.git"},"author":{"name":"Jan Jakub Nanista","email":"jan.jakub.nanista@gmail.com"},"bugs":{"url":"https://github.com/janjakubnanista/downsample/issues"},"license":"MIT","readme":"<h1 align=\"center\">\n  downsample\n</h1>\n\n<p align=\"center\">\n  Downsampling methods for time series visualisation.\n</p>\n\n<!-- The badges section -->\n<p align=\"center\">\n  <!-- Travis CI build status -->\n  <a href=\"https://travis-ci.org/janjakubnanista/downsample\"><img alt=\"Build Status\" src=\"https://travis-ci.org/janjakubnanista/downsample.svg?branch=master\"/></a>\n  <!-- Fury.io NPM published package version -->\n  <a href=\"https://www.npmjs.com/package/downsample\"><img alt=\"NPM Version\" src=\"https://badge.fury.io/js/downsample.svg\"/></a>\n  <!-- Shields.io dev dependencies status -->\n  <a href=\"https://github.com/janjakubnanista/downsample/blob/master/package.json\"><img alt=\"Dev Dependency Status\" src=\"https://img.shields.io/david/dev/janjakubnanista/downsample\"/></a>\n  <!-- Snyk.io vulnerabilities badge -->\n  <a href=\"https://snyk.io/test/github/janjakubnanista/downsample\"><img alt=\"Known Vulnerabilities\" src=\"https://snyk.io/test/github/janjakubnanista/downsample/badge.svg\"/></a>\n  <!-- Shields.io license badge -->\n  <a href=\"https://github.com/janjakubnanista/downsample/blob/master/LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/npm/l/downsample\"/></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#installation\">Installation</a>\n  <span>|</span>\n  <a href=\"#usage\">Usage</a>\n  <span>|</span>\n  <a href=\"#api\">API</a>\n  <span>|</span>\n  <a href=\"#demo\">Demo</a>\n  <span>|</span>\n  <a href=\"#acknowledgement\">Acknowledgement</a>\n</p>\n\n`downsample` is useful when, not extremely surprisingly, you need to downsample a numeric time series before visualizing it without losing the visual characteristics of the data.\n\n<a id=\"installation\"></a>\n## Installation\n\n[downsample](https://www.npmjs.com/package/downsample) is an NPM module. You can easily download it by typing something like the following in your project:\n\n```bash\n# for all the npm people out there\nnpm install downsample\n\n# or if you are a fan of yarn\nyarn add downsample\n```\n\n<a id=\"usage\"></a>\n## Usage\n\nThe package exports several methods for data downsampling:\n\n- **ASAP** Automatic Smoothing for Attention Prioritization [read more here](http://futuredata.stanford.edu/asap/)\n- **SMA** Simple moving average [read more here](https://en.wikipedia.org/wiki/Moving_average#Simple_moving_average)\n- **LTTB** Largest triangle three buckets [read more here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf)\n- **LTOB** Largest triangle one bucket [read more here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf)\n- **LTD** Largest triangle dynamic [read more here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf)\n\nYou can read more about the details of these in the [API](#api) section below.\n\n<a id=\"api\"></a>\n## API\n\n<a id=\"api/ASAP\"></a>\n### `ASAP` :boom: *new in 1.2.0* :boom:\n\nAutomatic Smoothing for Attention Prioritization ([read more here](http://futuredata.stanford.edu/asap/)) is a smoothing rather than downsampling method - it will remove the short-term noise and reveal the large-scale deviations.\n\n`ASAP` accepts an array of data points (see [DataPoint](#api/DataPoint)) or a `TypedArray` (see [TypedArray support](#api/TypedArray)) and a target resolution (number of output data points) as arguments. It will always return the points in `XYDataPoint` format. [See advanced API if you need to work with a custom data type](#api/createASAP).\n\n```typescript\nfunction ASAP(data: DataPoint[], targetResolution: number): XYDataPoint[]\n```\n\n```typescript\nimport { ASAP } from 'downsample';\n\n// Or if your codebase does not supprot tree-shaking\nimport { ASAP } from 'downsample/methods/ASAP';\n\nconst chartWidth = 1000;\nconst smooth = ASAP([\n  [0, 1000],\n  [1, 1243],\n  // ...\n], chartWidth);\n```\n\n<a id=\"api/SMA\"></a>\n### `SMA` :boom: *new in 1.2.0* :boom:\n\nSimple moving average with variable slide ([read more here](https://en.wikipedia.org/wiki/Moving_average#Simple_moving_average)).\n\n`SMA` accepts an array of data points (see [DataPoint](#api/DataPoint)) or a `TypedArray` (see [TypedArray support](#api/TypedArray)), size of a window over which to calculate average and a slide - an amount by which the window is shifted. It will always return the points in `XYDataPoint` format. [See advanced API if you need to work with a custom data type](#api/createSMA).\n\n```typescript\nfunction SMA(data: DataPoint[], windowSize: number, slide?: number = 1): XYDataPoint[]\n```\n\n```typescript\nimport { SMA } from 'downsample';\n\n// Or if your codebase does not supprot tree-shaking\nimport { SMA } from 'downsample/methods/SMA';\n\nconst chartWidth = 1000;\nconst smooth = SMA([\n  [0, 1000],\n  [1, 1243],\n  // ...\n], chartWidth);\n```\n\n<a id=\"api/LTTB\"></a>\n### `LTTB`\n\nLargest triangle three buckets ([read more here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf)). If you are looking for the best performing downsampling method then look no more!\n\n```typescript\nfunction LTTB(data: DataPoint[], targetResolution: number): DataPoint[]\n```\n\n`LTTB` accepts an array of data points (see [DataPoint](#api/DataPoint)) or a `TypedArray` (see [TypedArray support](#api/TypedArray)) and a target resolution (number of output data points) as arguments. [See advanced API if you need to work with a custom data type](#api/createLTTB).\n\nThe format of the data will be preserved, i.e. if passing an array of `[number, number]` data points as `data`, you will get an array of `[number, number]` on the output.\n\n```typescript\nimport { LTTB } from 'downsample';\n\n// Or if your codebase does not supprot tree-shaking\nimport { LTTB } from 'downsample/methods/LTTB';\n\nconst chartWidth = 1000;\nconst downsampled = LTTB([\n  [0, 1000],\n  [1, 1243],\n  // ...\n], chartWidth);\n```\n\n<a id=\"api/LTOB\"></a>\n### `LTOB`\n\nLargest triangle one bucket ([read more here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf)). Performs only slightly worse than LTTB.\n\n```typescript\nfunction LTOB(data: DataPoint[], targetResolution: number): DataPoint[]\n```\n\n`LTOB` accepts an array of data points (see [DataPoint](#api/DataPoint)) or a `TypedArray` (see [TypedArray support](#api/TypedArray)) and a target resolution (number of output data points) as arguments. [See advanced API if you need to work with a custom data type](#api/createLTOB).\n\nThe format of the data will be preserved, i.e. if passing an array of `[number, number]` data points as `data`, you will get an array of `[number, number]` on the output.\n\n```typescript\nimport { LTOB } from 'downsample';\n\n// Or if your codebase does not supprot tree-shaking\nimport { LTOB } from 'downsample/methods/LTOB';\n\nconst chartWidth = 1000;\nconst downsampled = LTOB([\n  [0, 1000],\n  [1, 1243],\n  // ...\n], chartWidth);\n```\n\n<a id=\"api/LTD\"></a>\n### `LTD`\n\nLargest triangle dynamic ([read more here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf)). The simplest downsampling method.\n\n```typescript\nfunction LTD(data: DataPoint[], targetResolution: number): DataPoint[]\n```\n\n`LTD` accepts an array of data points (see [DataPoint](#api/DataPoint)) or a `TypedArray` (see [TypedArray support](#api/TypedArray)) and a target resolution (number of output data points) as arguments. [See advanced API if you need to work with a custom data type](#api/createLTD).\n\nThe format of the data will be preserved, i.e. if passing an array of `[number, number]` data points as `data`, you will get an array of `[number, number]` on the output.\n\n```typescript\nimport { LTD } from 'downsample';\n\n// Or if your codebase does not supprot tree-shaking\nimport { LTD } from 'downsample/methods/LTD';\n\nconst chartWidth = 1000;\nconst downsampled = LTD([\n  [0, 1000],\n  [1, 1243],\n  // ...\n], chartWidth);\n```\n\n<a id=\"api/DataPoint\"></a>\n### `DataPoint` type\n\nRepresents a data point in the input data array. These formats are currently supported:\n\n```typescript\ntype DataPoint =\n  [number, number] |\n  [Date, number] |\n  { x: number; y: number } |\n  { x: Date; y: number } |\n```\n\n<a id=\"api/TypedArray\"></a>\n### `TypedArray` support\n\nIt is now possible to pass `TypedArray` data to downsampling functions. The returned type will then match the input type, e.g. if `Int16Array` is passed in, the result will be a `Int16Array`:\n\n```typescript\nconst input: Int16Array = new Int16Array(...);\nconst result: Int16Array = LTD(input, 1000);\n```\n\n## Advanced API\n\nAll the functions above work with `DataPoint` objects as a reasonable default. If however this does not fit your needs you can create your own version of a function using a downsampling function factory.\n\n<a id=\"api/createASAP\"></a>\n### `createASAP`\n\nCreates an [ASAP](#api/ASAP) smoothing function for a specific point data type `P`.\n\n```typescript\nfunction createASAP({\n  x: string | number | (point: P) => number,\n  y: string | number | (point: P) => number,\n  toPoint: (x: number, y: number) => P\n}): ASAP;\n```\n\n<a id=\"api/createSMA\"></a>\n### `createSMA`\n\nCreates a [SMA](#api/SMA) smoothing function for a specific point data type `P`.\n\n```typescript\nfunction createSMA({\n  x: string | number | (point: P) => number,\n  y: string | number | (point: P) => number,\n  toPoint: (x: number, y: number) => P\n}): SMA;\n```\n\n<a id=\"api/createLTD\"></a>\n### `createLTD`\n\nCreates an [LTD](#api/LTD) downsampling function for a specific point data type `P`.\n\n```typescript\nfunction createLTD({\n  x: string | number | (point: P) => number,\n  y: string | number | (point: P) => number\n}): LTD;\n```\n\n<a id=\"api/createLTOB\"></a>\n### `createLTOB`\n\nCreates an [LTOB](#api/LTOB) downsampling function for a specific point data type `P`.\n\n```typescript\nfunction createLTOB({\n  x: string | number | (point: P) => number,\n  y: string | number | (point: P) => number\n}): LTOB;\n```\n\n<a id=\"api/createLTTB\"></a>\n### `createLTTB`\n\nCreates an [LTTB](#api/LTTB) downsampling function for a specific point data type `P`.\n\n```typescript\nfunction createLTTB({\n  x: string | number | (point: P) => number,\n  y: string | number | (point: P) => number\n}): LTTB;\n```\n\n<a id=\"demo\"></a>\n## Demo\n\nThere is a very minimal interactive demo app available if you want to play around with the results of downsampling. [Check it out here](https://janjakubnanista.github.io/downsample/).\n\n<a id=\"acknowledgement\"></a>\n## Acknowledgement\n\nThe implementation of `LTD`, `LTOB` and `LTTB` is based on Sveinn Steinarsson's 2013 paper _Downsampling Time Series for\nVisual Representation_ that can be found [here](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf).\n\nThe implementation of `ASAP` is based on Kexin Rong's and Peter Bailis's 2017 paper. _ASAP: Prioritizing Attention via Time Series Smoothing_ that can be found [here](https://arxiv.org/pdf/1703.00983.pdf). The original code can be found [here](https://github.com/stanford-futuredata/ASAP/blob/master/ASAP-optimized.js)\n","readmeFilename":"README.md"}