{"_id":"@atomictech/xlsx-write-stream","_rev":"24-a2e56cdf301e07f00da7d6126a041879","time":{"1.0.1":"2020-03-23T18:30:39.190Z","created":"2020-03-23T18:32:00.641Z","1.0.3":"2020-03-23T18:32:00.993Z","modified":"2022-04-04T16:15:17.693Z","1.1.0":"2020-03-26T19:07:41.790Z","1.1.1":"2020-07-20T10:08:01.237Z","1.1.2":"2020-07-29T13:30:29.031Z","2.0.0":"2020-08-26T14:46:36.533Z","2.0.1":"2021-02-08T10:16:10.993Z","2.0.2":"2021-06-26T11:40:11.347Z"},"name":"@atomictech/xlsx-write-stream","dist-tags":{"beta":"2.0.2","latest":"2.0.2"},"versions":{"1.0.3":{"name":"@atomictech/xlsx-write-stream","version":"1.0.3","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^3.1.1","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.0","@babel/node":"^7.8.7","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.9.0","@babel/register":"^7.9.0","chai":"^4.2.0","eslint":"^4.19.1","eslint-plugin-import":"^2.8.0","eslint-plugin-mocha":"^6.3.0","eslint-plugin-promise":"^4.2.1","mocha":"^7.1.1","nyc":"^15.0.0","prettier":"1.19.1","rimraf":"^3.0.2","unzipper":"^0.10.10"},"gitHead":"d63ef5550a773827922e97f34a5d671bfa374d75","_id":"@atomictech/xlsx-write-stream@1.0.3","_nodeVersion":"12.8.1","_npmVersion":"6.14.2","dist":{"integrity":"sha512-k74x50+yhENF+T5sq5GoPm3W9i6nKNyXKSPm6CG7xW7P6jZNRM9qAhhgh3Sl9Fv6nsvdl/iY1aq3BmxEqZNdAw==","shasum":"7d01f6eea16b49888f8b99da893cc3533129806c","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-1.0.3.tgz","fileCount":17,"unpackedSize":74526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeQChCRA9TVsSAnZWagAA7XEP/1igHQmNNLDYNDAOWDBS\nDJdJR10ADPhi4N0Hftq4UvmGWYrnZbzsh37AQFxjP5wGzMHo6MNkE6C9o+MV\nPUvDIyoXNWtpq+TyikdK24T2uHwx95FIl3CBgP3/+O71YxgX3eFxSJUr6jBh\nxWtWE4x5fkJ/59RdKkwaxUUCdOSniKJ7Y0ZNiZTm3RDTPgKEFjJT0XscbcPN\n44mt79g4npivZfFtwS7e03NqXi1kZ/3muC1/T20nOH9alqjnjUWBHElwFMzJ\nv/VeEzXa6nW0Pw5SGrsSPzSgdo53DqeWUkwpuV2jo5GOKiX8gmCdoIahMDBs\nXdOYuOZmLcMxSxq7RlhMnfBN6r0rattagcLgoF5ndW583qcx1vLMzVkPjoOo\n6XXZdTe+TUnlmMq6Kd3/PAZ+FzOyzDXmOA8DOeu0DMw3GJlruN9XYn+sUHtY\ndHwrR0XRXLIg6ktrjQ/0lVxQgMcx6YqNNSrL3m9jdthFHo1idnyUbpd4SnZF\n1j/FavOSg9HlugoZz4qc8QyUQIqtkAA9ix6P6PUTfQJuhu/omD/50IfyYegk\nYPKNhe2e7vpBBETsMrcfiyCvEE5X4CzOryVAQok+Qgvw+LfPvlB3w9G3GpeH\nlIZxmQXJrx6Pv6AqRFWoLugfqSGOuRNhXqoD1DgsOWlaDgip4uzSG75QwgxW\nmcQI\r\n=8k4G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCcP+US5l6jyXSkFHlyEyUedJFfzWlSHfQoHvUfQ+2gwIgEaPSRGdNGb32KZ2jr1fQeu/iv288421ANCWgnsC8DE0="}]},"maintainers":[{"name":"typedef","email":"yann.torres@gmail.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"chabou-san","email":"chabou@live.com"}],"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_1.0.3_1584988320811_0.37589771383103887"},"_hasShrinkwrap":false},"1.1.0":{"name":"@atomictech/xlsx-write-stream","version":"1.1.0","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^3.1.1","lodash":"^4.17.15","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.0","@babel/node":"^7.8.7","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.9.0","@babel/register":"^7.9.0","chai":"^4.2.0","eslint":"^4.19.1","eslint-plugin-import":"^2.8.0","eslint-plugin-mocha":"^6.3.0","eslint-plugin-promise":"^4.2.1","mocha":"^7.1.1","nyc":"^15.0.0","prettier":"1.19.1","rimraf":"^3.0.2","unzipper":"^0.10.10"},"gitHead":"d43a8f6a77fe97c964dccac9a4e6ef06ffeba470","_id":"@atomictech/xlsx-write-stream@1.1.0","_nodeVersion":"12.8.1","_npmVersion":"6.14.2","dist":{"integrity":"sha512-tUX1eClAU8NJeoGdvnIvzIgDjhUFvCCq6Ys9uOp2uh09yc+a3ElTfoec3KYifYAijOgDNvRyMBapq1Eibh43nQ==","shasum":"de679e94593facb548f9d81ab316ec6a19b0f7a7","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-1.1.0.tgz","fileCount":17,"unpackedSize":82098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefP1+CRA9TVsSAnZWagAAbJoP/2DtxywCoBl3RrUDyjzW\npvX6wQw6olJCD99PMWKUQhTfYnr4GkViJf4/Bm/IV053ItKDRg7STFzEEqcN\nIwlT7dYKICiABgZs/rSj5zyT96WlIcnC3TjTXGvDtnw4HGkAzvcVMDQMVlCO\n946+OQywxSwBdjiQjj+vESK6Iz2xCgCNuqsykyAAqZwm2js6RiNlAV5OcGTe\nXiTUIyxameZ692lY/0HkRRV/WzLhTqjNAxDIaHFmaNrUaGnxqdO+CJRjl9qX\ng1D/imn7KrgJbNzfhcxqYOlSEWlEv40pNgKSNB+i1ZxAg9yN/7hREndL6M8B\nS03e5ZEK7Dtzgne4ewfLYDbaxWboS3CXi8HA6AQXhtH8nEpY1R/iA9GLtUUk\noetZol/sx4sM/VwHtuLgeTy4xwQqMbyNa8cGj3I/1oCJySVCOFP9Cm3S5vjG\n8ci5xy8xNrLrs9RK4KFcqzFP/YpBO6zT2PVtvsmK/Y7ZysmYiGJy5QiP1Vto\nN5HkLojdDtKS38zsi1M55/sk1U26WZquGUQyzxZmz4W7nrhmQp1q8gj/uLet\nDJyGWG42SYMVA7W8ZUppD9KsFeJB6HeFBdak0OzbAZymcJ8ClNu2JYsptdTb\nvPmBZnkUqC2+eYSaDdDRz5mRnMuWXXsV3AMaQNyRdPjrvPqnfcKDlxsjvigE\nuIGf\r\n=ocE0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2M0iPUdo2zY/j1Ii6gxTjuSg4JRcVkWMGhXUJ9+U9ZAiAkpdo7YJE2qfEvuwR5Gy4lyuuscUPGdj3LiZSDbKvh7w=="}]},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_1.1.0_1585249661635_0.9772715122832971"},"_hasShrinkwrap":false},"1.1.1":{"name":"@atomictech/xlsx-write-stream","version":"1.1.1","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^3.1.1","lodash":"^4.17.15","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.0","@babel/node":"^7.8.7","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.9.0","@babel/register":"^7.9.0","chai":"^4.2.0","eslint":"^4.19.1","eslint-plugin-import":"^2.8.0","eslint-plugin-mocha":"^6.3.0","eslint-plugin-promise":"^4.2.1","mocha":"^7.1.1","nyc":"^15.0.0","prettier":"1.19.1","rimraf":"^3.0.2","unzipper":"^0.10.10"},"gitHead":"1478d5f59e2715cfd1a693903e6cb39540553c85","_id":"@atomictech/xlsx-write-stream@1.1.1","_nodeVersion":"12.8.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-f/stv3SS62eu03VvtWh5FO4C1+qSQRrgfJFiIu0QDt6BK2StaHf+BK98fIXL9N11QhToPGAgoU2mkixmX6HUJw==","shasum":"ec95704201b05f82193b20aa58ad70b8e908e692","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-1.1.1.tgz","fileCount":17,"unpackedSize":82086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFW0BCRA9TVsSAnZWagAA+c8P+QGuqyrLMSCLxA3rGUQE\njb5nT7U2Bo+aXWoSDSzmA7gAt4hvxKVc22/dV/YPRHhR0HF3gq/DYqO4b/hu\nriu8Ybhbd4T0SbK+XBhOnLSq88yM/GsHGw7gRzX1mC+bs7ZzoxF0fzizkEbm\n1lXszZnsHh++lfzvFi5e61/ooBWOdB4qlWeLliTfURkHrX4DHBt1xWxhtkNP\nkrMUUCuU6iSOku5ti/5pMD0eG47Owdg/DPUe/RQlC0y/K4z5orkUwtUP2XL9\ny+XKA+tUb/BYdnnCVDNLo9OoRkD4j0sCiT5ZPMMg6Ex3RxjQv8CtsexpIpp3\noFHD4HQOZfL4g6a9ME2QbjJwlZeqabvCh1BIBbtphCYhDegCaRJuG2Y1iZyL\n+H74cHLHRue3bY8kvujlXzwKk/QYIT5iyG2b0Y5KWJPaVFCHs7ja1YCPmH4j\nM7bOf8SRpjDPrLy9kWFuyXBu+4GWvD442JLTI8e6KD4YqwfPhS+OAMX8OF7t\nKyh7WqJ0uAMh9ioNEobkVN76uPL0qdlFXdv/5CDijSgLuXOScIjRg6srJXjY\nn09PPHuoz9BCpuAQzkC1c58w27A7OIzTLM2Upl+9UTBMjkwi3oGSRzWhrYGR\nTKigeJZDNwEdI/uukV4mpkPYXPrw0K0gPI438wrXfVpe6JiFX5wcTWWUnOPk\nUSG2\r\n=GKep\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDq6fbILLYNBngr9sIxnrgtp8z5EY207kbdyIOv5EUNQAiEAuZ8apXgrUKffipEJsp4IpA+27eJBuNeNkxl31Zb5xU8="}]},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_1.1.1_1595239681087_0.8856962405319333"},"_hasShrinkwrap":false},"1.1.2":{"name":"@atomictech/xlsx-write-stream","version":"1.1.2","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^3.1.1","lodash":"^4.17.15","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.0","@babel/node":"^7.8.7","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.9.0","@babel/register":"^7.9.0","chai":"^4.2.0","eslint":"^4.19.1","eslint-plugin-import":"^2.8.0","eslint-plugin-mocha":"^6.3.0","eslint-plugin-promise":"^4.2.1","mocha":"^7.1.1","nyc":"^15.0.0","prettier":"1.19.1","rimraf":"^3.0.2","unzipper":"^0.10.10"},"gitHead":"10086e2f1a9c42f43af9ca54ba8434ea7721b414","_id":"@atomictech/xlsx-write-stream@1.1.2","_nodeVersion":"12.8.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ptPHB0fjCj80GhYgOMk6VJgL0YWFN2Razsod1n6ocfJBhNrOExE+kUzSfFiykLPgFBGxNh8NxUhqvEKBVJBtrQ==","shasum":"c45efcfcd9acc0e7a0cfd399628dd4bd5e222380","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-1.1.2.tgz","fileCount":17,"unpackedSize":82086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIXn1CRA9TVsSAnZWagAAtV0P/AkjCPMEuwIORuxqBigA\nRsQxfIrxZnEtSbflMvusvhpm77kTINWFR0u5xMSxA9vrgUGufn4pxJ6QiqW8\nTMOTnLp8ZmiDFtLaszVQ0L7N3vDGepmISE7yg5h88BYmU3XrYD9Kb942xQVP\n6EmZTcjecBtX9nBNqkWDrPxODRVg8V99pTH4aCmMRPjEszEc+5kuXWVjTjys\nVZyxIqFvmOCVGg5tzE/gTQEtduB3TYx8sJ+GwRKv7WTO04LgmyDU4kMzO89q\nX4Y/wSaBu5cBQqygkuns8cUJAQbyUqjTTeCdAJ72+myyG85lZX++YXTZAqAQ\nfAr4YEop8PdGvbKHAlIwwwI5L+agDwfFnD/8gO6mf6CX1sMH03nXaoIW3ndE\n9nJfuyS02BoICETcIfJA7A0LN3d8wFakd+R+EocU3ROv6vSXNp0OjUfUCfzH\nDESQsyrr5WNmIbjMhAi/L77443kubiehYJaabIOuyt7oa5z0k/6/gZ3chq/G\nPhcpIeAyAQxtJP9QS8DDrsLhmxMKZkK2NkKi0OwRN4y//VD4EQCEynuss5lD\njTcmXWEA3dzBKZ598UvAPQt9UJtq301wlsB2iXq/B3I/cvOT8unVTjE9cUBO\nm3r7W11Acaxnn7E3g079SUrk8BECi+XnlgeZQXVj0u08Lupmw6ldZas0ZOVy\ncaf0\r\n=RVkb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGlscbd/47RXOSb1tld7i0wmvcyaXPEUdNZn5CEsAaggIgEehL49Cj5oUsWhqpSF9pJHra+RVUHopB9CyEVMc3+ME="}]},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_1.1.2_1596029428878_0.8091567472088839"},"_hasShrinkwrap":false},"2.0.0":{"name":"@atomictech/xlsx-write-stream","version":"2.0.0","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^3.1.1","lodash":"^4.17.15","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.0","@babel/node":"^7.8.7","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.9.0","@babel/register":"^7.9.0","chai":"^4.2.0","eslint":"^4.19.1","eslint-plugin-import":"^2.8.0","eslint-plugin-mocha":"^6.3.0","eslint-plugin-promise":"^4.2.1","mocha":"^7.1.1","nyc":"^15.0.0","prettier":"1.19.1","rimraf":"^3.0.2","unzipper":"^0.10.10"},"gitHead":"3a55e3bb3c589e280c1eab13c9d93dafc025eb66","_id":"@atomictech/xlsx-write-stream@2.0.0","_nodeVersion":"12.8.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ka2tbvdSUshG61BA3I3RkwP++yme/3LcBnHWO9ASmmxGi3KfTCXdEtmI1B6w45jnONgoj0AcvzoM+Z+IAA+YbA==","shasum":"f8605c35358ca41cb86fe8f4812886ade9934e8d","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-2.0.0.tgz","fileCount":17,"unpackedSize":83783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRnXMCRA9TVsSAnZWagAAtNoP/2v5VIWOrzPB/VPlqEO4\n03blaEQRTxDuo4piW+wo67ksclriLHQUed1evQu/lsmyuyAFh22RgQf0pI0A\neqfafYV+60mMjJgtPYvwstM8BqvmHwHs1rqBca1XkjXIOr8rKJupqy9UJaSz\nvD0plX6qmfVEyP59iLPo1ZROE1hj00q5qMrH8FdkYhAYfMRuYvE5rrOK3cBP\nam+prT8Fzk2PL96Aq/vjpJT1xvLKAxz6mYV3Ig5wYm+rb9GZsMdoHiSDZCw/\nhimAJ3yZLuenNQhn0jMuqstFwUdoOS76XJu6s7A7CZfv/WuWjg4LAyYzltvQ\n+vB09XaWwJcoPsF/Y+UXRc/AiuVzxe+hLG1WkqmbUuRS7H9wg8RGWUIt00hh\n7ehhD6sdQLKuH6Gp86InSwapsjeHe2Vdz6HV7vni6byCoyAzFyWLwhjHbGTf\npmIwMBBPsyRo+COyIeZld3cUxiz9xhYmuATPOdxhUvmrI9XOgaoWMLD1QiBq\nM/sO9MIROz5RjIJfMwrGlpY6N7ZdMrl8XGcJW+g4iU1oNQSE3WNKP1UGeNcm\n+gALs7IYUFfEUkfbEj/XhnpflziAshr4rdYMH09j2ewUJZUqL6JuTNFaulm9\n0fXkd0BgoQhWjngDpfA/2u15eRflgdJuZp+8MTgO2uiaNBsgX9qYY4TnRtLu\nQbmX\r\n=K2Ls\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLqVvc0deGi+KnHYysMg962gRlGwMTWZFyVAsMjhyWSQIhAJAOSGiJhXXCptCkOqL0ALyfm+/wpxQ4NVXJK8XuQGrX"}]},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_2.0.0_1598453196420_0.30558352720174"},"_hasShrinkwrap":false},"2.0.1":{"name":"@atomictech/xlsx-write-stream","version":"2.0.1","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^3.1.1","lodash":"^4.17.15","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.0","@babel/node":"^7.8.7","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.9.0","@babel/register":"^7.9.0","chai":"^4.2.0","eslint":"^4.19.1","eslint-plugin-import":"^2.8.0","eslint-plugin-mocha":"^6.3.0","eslint-plugin-promise":"^4.2.1","mocha":"^7.1.1","nyc":"^15.0.0","prettier":"1.19.1","rimraf":"^3.0.2","unzipper":"^0.10.10"},"gitHead":"14600fd47e01c87f5e35303ab76c77451e6b5f5d","_id":"@atomictech/xlsx-write-stream@2.0.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2aqjY1eCgonIwxIFaKAtFWsp5yhkefcrs7+lznOeFBQdwaafAUro0n1+AAbXqT6sCmEjcPJQcSfY0Yam6Du3AQ==","shasum":"5e346728797720220211a1ebe41600a13d7ee6ab","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-2.0.1.tgz","fileCount":17,"unpackedSize":84142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIQ9rCRA9TVsSAnZWagAA9NoP/283kQVjDjbOE/iaGxWy\nKLioW1dFNPI/2sYUV06wnddjE05dNawMHhpKZLlgjCUofWVA9F4iFbvNIgzK\nz8q9ifco+X6U4EMnsiFnJysVwRwa3aMPhgVJlWtG1wAtipQTFcd7ko9I4LND\nm6B9ccPNah63LoEmRv1o5XlcuVA2SC4pv2p2RN+COoxo5Yh8NTAu5iTc1PPv\nnCYY8OZAqbTKNT04Qbzm4DFXhDcaW+mQ/fadsYj26h37G0H1rf9rtiBtkqmT\nI/GvaIVX2vdNB28rR9V/cJEGZQfYlwFFT/1jHRCC93m37CWIAXgpH3+YDZjh\nLJf7E5i6d18RY6tcY5SD2FFGwrdiKwpb8dV8vxIeCH0KoLXUTsBgPStYfwhD\nd93vvcejLCaGjtooC1GmnV9IATrIcxdF/bcjGsoMdGW8UbKYYbjNuhAnOd3U\nyNNb3VaOSIevo1ltFApfuZZSS8Ws2Ebt1T9bKlsQu1oEmTUIiuxFkd7I9gbe\nrqRETcYd7CZjytVh8dIJfahmTy5/7Jw/h0GGfzuwire5Z/o3Q7cURWgudH4c\nCGHMclhEsBCzux35cfK9J65GvNKWoKAvrmxeL02zAkQsVTewV7pz9lGm678d\nEjpjkPST6wwgecwasBuTK6LcTuuk6dKTrnnxF6tI1hcevP2p1CqnNW4VX5Pp\nsJpO\r\n=+O8R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC1BdOS9TQRx2VNp1Y1sEUaz1E4PydGQtpOj295lKbyQIgEYSEq0eLUwWkoymD6vsiKd2ChoUyTWgWJot/ktQQokc="}]},"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_2.0.1_1612779370868_0.45663145205424116"},"_hasShrinkwrap":false},"2.0.2":{"name":"@atomictech/xlsx-write-stream","version":"2.0.2","description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","main":"dist/index.js","module":"src/index.js","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"homepage":"https://github.com/atomictech/xlsx-write-stream","scripts":{"build":"npm run clean && babel src --out-dir dist","test":"mocha --require @babel/register","coverage":"rimraf coverage && nyc --reporter=html --reporter=text npm test","prepare":"npm run build","clean":"rimraf dist coverage .nyc_output","lint":"eslint src test","prepublishOnly":"(test $RUNNING_FROM_SCRIPT || (echo \"You must use publish.sh instead of 'npm publish' directly!\"; exit 1)) && npm test && npm run lint"},"dependencies":{"archiver":"^5.3.0","lodash":"^4.17.21","xml-escape":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.14.5","@babel/core":"^7.14.6","@babel/node":"^7.14.7","@babel/plugin-proposal-class-properties":"^7.14.5","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","chai":"^4.3.4","eslint":"^7.29.0","eslint-plugin-import":"^2.23.4","eslint-plugin-mocha":"^9.0.0","eslint-plugin-promise":"^5.1.0","mocha":"^9.0.1","nyc":"^15.1.0","prettier":"^2.3.2","rimraf":"^3.0.2","unzipper":"^0.10.11"},"readme":"# ⏩ XLSX Write Stream ⏩\n\n[![Build Status](https://travis-ci.org/atomictech/xlsx-write-stream.svg)](https://travis-ci.org/atomictech/xlsx-write-stream)\n[![Version](https://img.shields.io/npm/v/@atomictech/xlsx-write-stream.svg)](https://www.npmjs.com/package/@atomictech/xlsx-write-stream)\n[![Documentation](https://img.shields.io/badge/documentation-yes-brightgreen.svg)](https://github.com/atomictech/xlsx-write-stream#readme)\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/atomictech/xlsx-write-stream/graphs/commit-activity)\n[![License: Apache-2.0](https://img.shields.io/github/license/atomictech/xlsx-write-stream)](https://github.com/atomictech/xlsx-write-stream/blob/master/LICENSE)\n\n> Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.\n\nXLSX Write Stream is a streaming writer for XLSX spreadsheets. Its purpose is to replace CSV for large exports, because using CSV in Excel is very buggy and error prone. It's very efficient and can quickly write hundreds of thousands of rows with low memory usage.\n\n## Table of content\n\n- [⏩ XLSX Write Stream ⏩](#-xlsx-write-stream-)\n  - [Table of content](#table-of-content)\n  - [📦 Install](#-install)\n  - [🦄 Usage](#-usage)\n    - [Basic pipe](#basic-pipe)\n    - [Basic write](#basic-write)\n    - [Custom styles](#custom-styles)\n  - [🔧 API](#-api)\n    - [XLSXWriteStream ⇐ `Transform`](#xlsxwritestream--transform)\n    - [new XLSXWriteStream([options])](#new-xlsxwritestreamoptions)\n    - [StyleDefs](#styledefs)\n  - [🚧 Compatibility](#-compatibility)\n  - [👥 Authors](#-authors)\n  - [🤝 Contributing](#-contributing)\n  - [⭐️ Show your support](#️-show-your-support)\n  - [📝 License](#-license)\n\n## 📦 Install\n\n```sh\nnpm install @atomictech/xlsx-write-stream\n```\n\n## 🦄 Usage\n\nFor all usages keep in mind that you should feed your `XLSXWriteStream` instance one row at a time, where a row could be an array or an object.\n\n```js\nconst row = [1, '02', new Date('2015-10-21T16:29:00.000Z'), true, false, '🦄'];\n```\n\nor\n\n```js\nconst row = {\n  'A Number Column': 1,\n  'A Text Column': '02',\n  'A Date Column': new Date('2015-10-21T16:29:00.000Z'),\n  'A Boolean Column': true,\n  'Another Boolean Column': false,\n  'Another Text Column': '🦄'\n};\n```\n\n### Basic pipe\n\n```js\nimport XLSXWriteStream from '@atomictech/xlsx-write-stream';\n\n// Initialize the writer\nconst xlsxWriter = new XLSXWriteStream();\n\n// Pipe a Stream.Readable input stream into the writer\nconst inputStream = new MyCustomReadableStream();\ninputStream.pipe(xlsxWriter);\n\n// Pipe the writer into a Stream.Writable output stream in order to retrieve XLSX file data,\n// write it into file or send it as HTTP response.\nconst writeStream = fs.createWriteStream('file.xlsx');\nxlsxWriter.pipe(writeStream);\n```\n\n### Basic write\n\n```js\nimport XLSXWriteStream from '@atomictech/xlsx-write-stream';\n\n// [optional] Define some header\nconst columns = ['A Number Column', 'A Text Column', 'A Date Column', 'A Boolean Column', 'Another Boolean Column', 'Another Text Column'];\n\n// Initialize the writer\nconst xlsxWriter = new XLSXWriteStream({ header: true, columns });\n\n// Pipe the writer into a Stream.Writable output stream in order to retrieve XLSX file data,\n// write it into file or send it as HTTP response.\nconst writeStream = fs.createWriteStream('file.xlsx');\nxlsxWriter.pipe(writeStream);\n\n// Write rows one by one with\nconst row = [1, '02', new Date('2015-10-21T16:29:00.000Z'), true, false, '🦄'];\nxlsxWriter.write(row);\nxlsxWriter.end(); // Do not forget to end the stream!\n```\n\n⚠️ **Caution** ⚠️\n\nIf you are not familiar with streams, in order to take advantage of the smallest memory footprint possible with this form, you need to be aware of backpressure concept and use the boolean returned by the write function!\n> See explanations here: [writable.write(chunk[, encoding][, callback])](https://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback)\n\n### Custom styles\n\nAn `options.styleDefs` parameter is available in order to redefine type style formats.\n\n```js\nimport { TypeStyleKey } from '@atomictech/xlsx-write-stream';\n\n// Declare custom styles definitions\nconst styleDefs = {};\nstyleDefs[TypeStyleKey.DATE] = { formatCode: 'yy-mm-dd hh:mm' };\nstyleDefs[TypeStyleKey.INT] = { numFmtId: 49 }; // 49 is \"enforced text format\"\n\n// Create the writer\nconst xlsxWriter = new XLSXWriterStream({ styleDefs });\n\n// NB: if you set `format: false` your styleDefs will not be used\n```\n\n## 🔧 API\n\n### XLSXWriteStream ⇐ `Transform`\n\n### new XLSXWriteStream([options])\n\nCreate new stream transform that handles Array or Object as input chunks.\nBe aware that first row chunk is determinant in the transform configuration process for further row chunks.\n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [options] | `Object` |  |  |\n| [options.header] | `Boolean` | `false` | Display the column names on the first line if the columns option is provided or discovered. |\n| [options.columns] | `Array\\|Object` |  | List of properties when records are provided as objects. Work with records in the form of arrays based on index position; order matters. Auto discovered in the first record when the user write objects, can refer to nested properties of the input JSON, see the `header` option on how to print columns names on the first line. |\n| [options.format] | `Boolean` | `true` | If set to false writer will not format cells with number, date, boolean and text. |\n| [options.styleDefs] | [`StyleDefs`](#styledefs) |  | If set you can overwrite default standard type styles by other standard ones or even define custom `formatCode`. |\n| [options.immediateInitialization] | `Boolean` | `false` | If set to true writer will initialize archive and start compressing xlsx common stuff immediately, adding subsequently a little memory and processor footprint. If not, initialization will be delayed to the first data processing. |\n\n### StyleDefs\n\nA little of TypeScript to explain StyleDefs interface:\n\n```ts\nenum TypeStyleKey = {\n  NUMBER: 'default', //!\\\\ Unused in the actual type conversion\n  INT: 'int', // Integer <1000\n  FLOAT: 'float', // Float <1000\n  BIG_INT: 'bigInt', // Integer >=1000\n  BIG_FLOAT: 'bigFloat', // Float >=1000\n  EXP_NUMBER: 'expNumber', // Number with more than 10 digits/characters (ex: 10000000000 or 12.45678901)\n  TEXT: 'text', // String\n  DATE: 'date', // Date\n  DATETIME: 'datetime' //!\\\\ Unused in the actual type conversion\n};\n\ninterface TypeFormatReference {\n  numFmtId: number;\n}\n\ninterface TypeFormatDefinition {\n  formatCode: string;\n}\n\ninterface StyleDefs {\n    [typeKey: TypeStyleKey]: TypeFormatReference | TypeFormatDefinition;\n}\n```\n\nExample:\n\n```js\n{\n  date: { formatCode: 'yy-mm-dd hh:mm' },\n  int: { numFmt: 49 }\n}\n```\n\n> See here for other default numFmtId:\n> <https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.numberingformat?view=openxml-2.8.1>\n\n## 🚧 Compatibility\n\nXLSX Write Stream - supported:\n\nCell type:\n\n- string [starting with `=`] ➡ formula\n- string [others] ➡ text\n- date ➡ date\n- number ➡ number\n- boolean ➡ boolean\n\nCell type formatting:\n\n- text (default: `numFmtId: 49` - enforce text even if could be interpreted as number)\n- date (default: `formatCode: 'yyyy-mm-dd'` - )\n- number\n  - int (default: `numFmtId: 1`)\n  - float (default: `numFmtId: 2`)\n  - bigInt (default: `numFmtId: 3`)\n  - bigFloat (default: `numFmtId: 4`)\n  - expNumber (default: `numFmtId: 1`)\n\nXLSX Write Stream - **NOT** supported:\n\n- charts\n- comments\n- ... and a myriad of other OOXML features. It's strictly a CSV replacement.\n\n## 👥 Authors\n\n👤 **Apify**\n\n* Website: https://apify.com/\n* Github: [@apifytech](https://github.com/apifytech)\n\n👤 **AtomicTech**\n\n* Github: [@atomictech](https://github.com/atomictech)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/atomictech/xlsx-write-stream/issues). You can also take a look at the [contributing guide](https://github.com/atomictech/xlsx-write-stream/blob/master/CONTRIBUTING.md).\n\n## ⭐️ Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nThis project is [Apache-2.0](https://github.com/atomictech/xlsx-write-stream/blob/master/LICENSE) licensed.\n","readmeFilename":"README.md","gitHead":"1afd8ae2a6d3fb92d7235f1341f7b15c42b48545","_id":"@atomictech/xlsx-write-stream@2.0.2","_nodeVersion":"14.17.0","_npmVersion":"7.15.1","dist":{"integrity":"sha512-Yt2RFSP9mLQ5M0KsqnQDGz5etpWmkn+OmW4m+nXQgq5zZRxiYgHS9RGHxMntJIddnnBnSQq/RWEIO1CuT0Gz5A==","shasum":"830f65d7fa875da22e35d6192886e66d111e0170","tarball":"https://registry.npmjs.org/@atomictech/xlsx-write-stream/-/xlsx-write-stream-2.0.2.tgz","fileCount":17,"unpackedSize":85039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1xIbCRA9TVsSAnZWagAA2YwQAJbdd5t/y1SF//QLD6AI\nY6XyVWxWc0mSCttDHi5pCfaiWbMH7y2yYh35ZlypncpB9+axUwkANQsLwnlw\n0FyJU758ZVUkUZfdz7euBZQzdrPnm+pJMbwfIzSLnG2s/B5u/ZxzkGlxi5Xs\ns08dhIPDzpTHFe59Pk4wLwAHQGUFgDOOUnnqIG35UX34Ze4U/b0oaZevOgs6\nxKfq5eZ3O+Mk4myM+Qem9Qa2MhrbncXa0wQhUPxcZLIiAJZC9x40n89z5red\n2vAsYmvYGORDoQYbTf1Xj4TjcCmmjXf1Khwbu7Gt6oe7Ae+zw9xJsauQCDtm\nshWb5ZyzbCCFbd1mpxOcwr6TqZEXkceSfC+LZ15Z2QL/GfKwjjGZKsIsxXXo\n0bWBbBvuHuDKmtWolxhTMMC0rRXZpSW6IUliqvO1VoHRRwKgPNXYd80hOsBI\n6RKJGg3VvokifUaYEbw/l/jL6L9AAmsSgBe+O3aT+dQoV2CoxGSMlVN/P+Vl\no4iwWvc4L7OW1iLqZXXDCKjHr1gs0/MOP3AqDauW996VMdSvTYxZfuN93IQX\ngbKJbZ1Sr7vvtVpFaOZMGBjszBeGFhjSsxpHHHhthB4IZQ0UuT9j//ghsgwS\n+WrEksziDZRWc0Drgnk8PkYve6gVldDB52ouT5ByPpwCIUotGA60XFZiFX+c\np6HH\r\n=AT+/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsjRYxXa/6BnGp/wT7b2eGFIr9fb4xSSQBhEBxcf4BEQIgDksfmjJ/6spldKI0Rx/8V2eNuxxeEiiPZoPJz47OVC4="}]},"_npmUser":{"name":"jule-","email":"jule@createrocks.com"},"directories":{},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xlsx-write-stream_2.0.2_1624707611185_0.8158934453832869"},"_hasShrinkwrap":false}},"maintainers":[{"name":"chabou-san","email":"chabou@live.com"},{"name":"jule-","email":"jule@createrocks.com"},{"name":"typedef","email":"yann.torres@gmail.com"}],"description":"Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.","homepage":"https://github.com/atomictech/xlsx-write-stream","keywords":["xslx","write","stream","memory efficient","low memory usage","node","nodejs"],"repository":{"type":"git","url":"git+https://github.com/atomictech/xlsx-write-stream.git"},"contributors":[{"name":"Jaroslav Hejlek","email":"jaroslav@apify.com"},{"name":"Jan Curn","email":"jan.curn@gmail.com"},{"name":"Petr Patek","email":"petrpatekml@gmail.com"},{"name":"Jule Marcoueille","email":"jule.marcoueille@gmail.com"}],"author":{"name":"Apify","email":"support@apify.com","url":"https://www.apify.com"},"bugs":{"url":"https://github.com/atomictech/xlsx-write-stream/issues"},"license":"Apache-2.0","readme":"# ⏩ XLSX Write Stream ⏩\n\n[![Build Status](https://travis-ci.org/atomictech/xlsx-write-stream.svg)](https://travis-ci.org/atomictech/xlsx-write-stream)\n[![Version](https://img.shields.io/npm/v/@atomictech/xlsx-write-stream.svg)](https://www.npmjs.com/package/@atomictech/xlsx-write-stream)\n[![Documentation](https://img.shields.io/badge/documentation-yes-brightgreen.svg)](https://github.com/atomictech/xlsx-write-stream#readme)\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/atomictech/xlsx-write-stream/graphs/commit-activity)\n[![License: Apache-2.0](https://img.shields.io/github/license/atomictech/xlsx-write-stream)](https://github.com/atomictech/xlsx-write-stream/blob/master/LICENSE)\n\n> Stream huge amount of data into an XLSX generated file stream with minimum memory footprint.\n\nXLSX Write Stream is a streaming writer for XLSX spreadsheets. Its purpose is to replace CSV for large exports, because using CSV in Excel is very buggy and error prone. It's very efficient and can quickly write hundreds of thousands of rows with low memory usage.\n\n## Table of content\n\n- [⏩ XLSX Write Stream ⏩](#-xlsx-write-stream-)\n  - [Table of content](#table-of-content)\n  - [📦 Install](#-install)\n  - [🦄 Usage](#-usage)\n    - [Basic pipe](#basic-pipe)\n    - [Basic write](#basic-write)\n    - [Custom styles](#custom-styles)\n  - [🔧 API](#-api)\n    - [XLSXWriteStream ⇐ `Transform`](#xlsxwritestream--transform)\n    - [new XLSXWriteStream([options])](#new-xlsxwritestreamoptions)\n    - [StyleDefs](#styledefs)\n  - [🚧 Compatibility](#-compatibility)\n  - [👥 Authors](#-authors)\n  - [🤝 Contributing](#-contributing)\n  - [⭐️ Show your support](#️-show-your-support)\n  - [📝 License](#-license)\n\n## 📦 Install\n\n```sh\nnpm install @atomictech/xlsx-write-stream\n```\n\n## 🦄 Usage\n\nFor all usages keep in mind that you should feed your `XLSXWriteStream` instance one row at a time, where a row could be an array or an object.\n\n```js\nconst row = [1, '02', new Date('2015-10-21T16:29:00.000Z'), true, false, '🦄'];\n```\n\nor\n\n```js\nconst row = {\n  'A Number Column': 1,\n  'A Text Column': '02',\n  'A Date Column': new Date('2015-10-21T16:29:00.000Z'),\n  'A Boolean Column': true,\n  'Another Boolean Column': false,\n  'Another Text Column': '🦄'\n};\n```\n\n### Basic pipe\n\n```js\nimport XLSXWriteStream from '@atomictech/xlsx-write-stream';\n\n// Initialize the writer\nconst xlsxWriter = new XLSXWriteStream();\n\n// Pipe a Stream.Readable input stream into the writer\nconst inputStream = new MyCustomReadableStream();\ninputStream.pipe(xlsxWriter);\n\n// Pipe the writer into a Stream.Writable output stream in order to retrieve XLSX file data,\n// write it into file or send it as HTTP response.\nconst writeStream = fs.createWriteStream('file.xlsx');\nxlsxWriter.pipe(writeStream);\n```\n\n### Basic write\n\n```js\nimport XLSXWriteStream from '@atomictech/xlsx-write-stream';\n\n// [optional] Define some header\nconst columns = ['A Number Column', 'A Text Column', 'A Date Column', 'A Boolean Column', 'Another Boolean Column', 'Another Text Column'];\n\n// Initialize the writer\nconst xlsxWriter = new XLSXWriteStream({ header: true, columns });\n\n// Pipe the writer into a Stream.Writable output stream in order to retrieve XLSX file data,\n// write it into file or send it as HTTP response.\nconst writeStream = fs.createWriteStream('file.xlsx');\nxlsxWriter.pipe(writeStream);\n\n// Write rows one by one with\nconst row = [1, '02', new Date('2015-10-21T16:29:00.000Z'), true, false, '🦄'];\nxlsxWriter.write(row);\nxlsxWriter.end(); // Do not forget to end the stream!\n```\n\n⚠️ **Caution** ⚠️\n\nIf you are not familiar with streams, in order to take advantage of the smallest memory footprint possible with this form, you need to be aware of backpressure concept and use the boolean returned by the write function!\n> See explanations here: [writable.write(chunk[, encoding][, callback])](https://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback)\n\n### Custom styles\n\nAn `options.styleDefs` parameter is available in order to redefine type style formats.\n\n```js\nimport { TypeStyleKey } from '@atomictech/xlsx-write-stream';\n\n// Declare custom styles definitions\nconst styleDefs = {};\nstyleDefs[TypeStyleKey.DATE] = { formatCode: 'yy-mm-dd hh:mm' };\nstyleDefs[TypeStyleKey.INT] = { numFmtId: 49 }; // 49 is \"enforced text format\"\n\n// Create the writer\nconst xlsxWriter = new XLSXWriterStream({ styleDefs });\n\n// NB: if you set `format: false` your styleDefs will not be used\n```\n\n## 🔧 API\n\n### XLSXWriteStream ⇐ `Transform`\n\n### new XLSXWriteStream([options])\n\nCreate new stream transform that handles Array or Object as input chunks.\nBe aware that first row chunk is determinant in the transform configuration process for further row chunks.\n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| [options] | `Object` |  |  |\n| [options.header] | `Boolean` | `false` | Display the column names on the first line if the columns option is provided or discovered. |\n| [options.columns] | `Array\\|Object` |  | List of properties when records are provided as objects. Work with records in the form of arrays based on index position; order matters. Auto discovered in the first record when the user write objects, can refer to nested properties of the input JSON, see the `header` option on how to print columns names on the first line. |\n| [options.format] | `Boolean` | `true` | If set to false writer will not format cells with number, date, boolean and text. |\n| [options.styleDefs] | [`StyleDefs`](#styledefs) |  | If set you can overwrite default standard type styles by other standard ones or even define custom `formatCode`. |\n| [options.immediateInitialization] | `Boolean` | `false` | If set to true writer will initialize archive and start compressing xlsx common stuff immediately, adding subsequently a little memory and processor footprint. If not, initialization will be delayed to the first data processing. |\n\n### StyleDefs\n\nA little of TypeScript to explain StyleDefs interface:\n\n```ts\nenum TypeStyleKey = {\n  NUMBER: 'default', //!\\\\ Unused in the actual type conversion\n  INT: 'int', // Integer <1000\n  FLOAT: 'float', // Float <1000\n  BIG_INT: 'bigInt', // Integer >=1000\n  BIG_FLOAT: 'bigFloat', // Float >=1000\n  EXP_NUMBER: 'expNumber', // Number with more than 10 digits/characters (ex: 10000000000 or 12.45678901)\n  TEXT: 'text', // String\n  DATE: 'date', // Date\n  DATETIME: 'datetime' //!\\\\ Unused in the actual type conversion\n};\n\ninterface TypeFormatReference {\n  numFmtId: number;\n}\n\ninterface TypeFormatDefinition {\n  formatCode: string;\n}\n\ninterface StyleDefs {\n    [typeKey: TypeStyleKey]: TypeFormatReference | TypeFormatDefinition;\n}\n```\n\nExample:\n\n```js\n{\n  date: { formatCode: 'yy-mm-dd hh:mm' },\n  int: { numFmt: 49 }\n}\n```\n\n> See here for other default numFmtId:\n> <https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.numberingformat?view=openxml-2.8.1>\n\n## 🚧 Compatibility\n\nXLSX Write Stream - supported:\n\nCell type:\n\n- string [starting with `=`] ➡ formula\n- string [others] ➡ text\n- date ➡ date\n- number ➡ number\n- boolean ➡ boolean\n\nCell type formatting:\n\n- text (default: `numFmtId: 49` - enforce text even if could be interpreted as number)\n- date (default: `formatCode: 'yyyy-mm-dd'` - )\n- number\n  - int (default: `numFmtId: 1`)\n  - float (default: `numFmtId: 2`)\n  - bigInt (default: `numFmtId: 3`)\n  - bigFloat (default: `numFmtId: 4`)\n  - expNumber (default: `numFmtId: 1`)\n\nXLSX Write Stream - **NOT** supported:\n\n- charts\n- comments\n- ... and a myriad of other OOXML features. It's strictly a CSV replacement.\n\n## 👥 Authors\n\n👤 **Apify**\n\n* Website: https://apify.com/\n* Github: [@apifytech](https://github.com/apifytech)\n\n👤 **AtomicTech**\n\n* Github: [@atomictech](https://github.com/atomictech)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/atomictech/xlsx-write-stream/issues). You can also take a look at the [contributing guide](https://github.com/atomictech/xlsx-write-stream/blob/master/CONTRIBUTING.md).\n\n## ⭐️ Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nThis project is [Apache-2.0](https://github.com/atomictech/xlsx-write-stream/blob/master/LICENSE) licensed.\n","readmeFilename":"README.md"}