{"_id":"git-date-extractor","_rev":"9-f62994ca85797c8ee9129e218ba18f26","name":"git-date-extractor","dist-tags":{"latest":"4.0.1"},"versions":{"1.0.0":{"name":"git-date-extractor","version":"1.0.0","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^5.0.0","walkdir":"^0.4.1"},"devDependencies":{"ava":"^2.1.0","codecov":"^3.5.0","nyc":"^14.1.1","xo":"^0.24.0","@types/node":"^12.7.5"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off"}},"gitHead":"e20f444525e1f3ca5f07843926448aa56e26a9ba","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@1.0.0","_nodeVersion":"12.5.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-DtT66WRqIinrBNlhx3FyAdEib5hW/jv1HyMw5TbTOpZqwGDd8pNYRv0mQkXW3/wL/EjAY6cjhT+ZZ6qlx2pNCA==","shasum":"e19029bc049ec5a4a64079a2d563f07d8ad6b195","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-1.0.0.tgz","fileCount":9,"unpackedSize":39555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdg1W8CRA9TVsSAnZWagAAmHkP/2asb6tha8qF/0c/V4Q9\nomdcn2P9bbXP2z/BrDAzNqYKKfPOSwOmfuunD1ggtF12qrvRDjUiBuEnw3wJ\nAci/DIarvYV50MizV9NWirhl3Bo1SPHPtN0IbgZ5TcNAUxeA1L6XeDDgwu6T\nVfBRK76ToN9iPxs3H07oSMZMH39dHIzDiuNPUbIlhqZedGPvZahmWsD6hoZu\nDiM+Z1mkTfwgRXpIo4OKetLn+/wVrt7FlIybwSyoDL7zXi7/a3dOcqlbBn2N\nHCy7o4G7rp0HGQ2RknzMZ+mXR6az4nx5qMa5DVjHucTWu+bv+xYkMn/d143o\nfkaQuR8jWab3l9vXu9P+rL/G+dz4LhsRcxe525NvbVTmn9Tm/v74bXlkrQgz\njhZ1vc74fv7txwaSL8Fy4+qDEYqZw+I/v1HoqB53C6Z0fONvnTk22x4axae/\nm2pTFDX4tz0UmdrCcOLmO22jV4FWg38GvEX0y1bdF8a+Ep/AOFe/KdzdFJrE\nT8hYJj8e+xQ1ovgO3zW6EDf681zFxgcRe449NGrruvZEqbwBRgEXM2LCG4JU\nPDTelZWSZU+9LiGOZLNteEh9JFSpvoeBCuTGEvrhqkA3BRM2rZpMwzxOuOz/\n0tVkUXt94t8RIQjptjR75CV//rTtCx3KL0OGa9DV7rXA5xaGEqLR/w4lvK7z\nSwr7\r\n=KFOj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXWsLFLKozC36ac85hla0d0ESrD6U53p5yvtAr62r86AiEAqkUS7t9OpwN9ozfrrslj5fS8Nl9f+0DSMGEUI1kzBfM="}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_1.0.0_1568888251269_0.5454851228342599"},"_hasShrinkwrap":false},"1.0.1":{"name":"git-date-extractor","version":"1.0.1","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^5.0.0","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^8.0.0","@types/node":"^12.7.5","ava":"^2.1.0","codecov":"^3.5.0","nyc":"^14.1.1","xo":"^0.24.0"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off"}},"gitHead":"6bfc0c8ad55bdff14ea7fa0dc3b2b6f9d625a2fa","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@1.0.1","_nodeVersion":"12.5.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-BDmLGsI8MBYYx+Ooe9mb2z+X5pMz0QsrF89/gpKNZURmeHNKWGJqbuv2vQddha+2m0XOKywtyYqhGCRsq47e9Q==","shasum":"0138c2dcc33dfa583a90ea3dbb70bf3e77b60471","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-1.0.1.tgz","fileCount":9,"unpackedSize":46115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhZRPCRA9TVsSAnZWagAAykwP/0HnLHvLfW1G1zvqVCty\nUA5Z+XDDz+Br7G+LmGGCMnqxNruB0w+Tl3mWlIJeCdWiSuuKFM+2fRk9pnkE\nD6fypAr2CuhSUQ3UgWOwANdN+FuJJJIO0Hc9SCg4mF/lprCVyC7xuDDwkmdD\n5MQK7VPlwsnfkhqOKFwkwLHpjLQO/n8uJbgn3A1slx1Uhwc28f7qHPrNYyCk\nDgkaRGFlk97fj+1PKS1wr0IaogwW0X1GfifDRk+H7793r3JITrkQmZy43zDt\nouALSwXeXjw6y7YHmj9fzGyx4LclIaMm/RgFRsKaXk/QpaVC694/pAB0pqze\n/dWHitSCjvb2xDaFW7r7RGHrdbvzQn23hqFXMwMV9G0aRgcfM9EkcAPB+QyV\n2AmIl3x5GdmZIAGhTtAKs6M4coiWnDLA9gl9on0x4O0k96pRt1qoy6PYdNig\nCvHhh2/3ioeIRT+lGq+uFnTdG69Ze9iLclk5TvxqYlkQ3KYuZ5j4F8Gsrw4T\nhNRQ6yU6YI88g9nq5vcVPiLcwrVJ0iR++HFu1d6tKGV/29LijxYUpdKZzf2Y\nam+QzttMFeNaafCcnVIKT160B6/+7uXvXRQPX9d71vnIEEC1Wq0ludC/pEI/\n8dZgJTZPzCvxdEDmuA1bK2xo2RdkZwDg2Hex/qWj6w6krHjfRIEt4AqRdIkI\n635l\r\n=XGeT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCracgqNMf8sYyGPHEvbvRk05IIHzZfHXdV77XuukKj4gIgQCRiR7v4AO0+KPllwLzryopswDzV0iI4/XCeqA2v+Z4="}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_1.0.1_1569035342495_0.34743842903860656"},"_hasShrinkwrap":false},"1.0.2":{"name":"git-date-extractor","version":"1.0.2","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"main":"src/index.js","engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^5.0.0","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^8.0.0","@types/node":"^12.7.5","ava":"^2.1.0","codecov":"^3.5.0","nyc":"^14.1.1","xo":"^0.24.0"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off"}},"gitHead":"7f038bda1d9e6c42f0009404191b363694e2aa38","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@1.0.2","_nodeVersion":"12.5.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-9YZp59X3NT9lh7TDoFegQBJBB/dCyIeSqSAadNI7O4pt1nbI7Lfrq0Fgpbas4/ABilhVRxpe/6TNmIW2K7Ed1A==","shasum":"3d2cd8eaa16bc70943f704655011a83df1b4032a","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-1.0.2.tgz","fileCount":9,"unpackedSize":46140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhh38CRA9TVsSAnZWagAA9JkQAJG4s30feKgjt+eyW4bW\n4AdJDe3nh859kcxJ5Gk3gE/SyUwteYh11tdpZ/0O1IDmWdsxdxduhICRi4Uk\nvro67ZRDSvZcJBJ9v1LgscqjidNHuKry1lK4mTR3/hI2ZcCLUNzSg7rt6vi8\nIkzL7Ht+to/+Mftebdb0EXZ5jwb2/Y+YzJdjNLF/bhyURep7oMkZSOEjph1e\nXSdjwSuJIDo663UP/sdm+5f1hO92a4dUU/UZY2rrW4SFy/oCm/gmQ/e6maDM\nC70c45zJZngCd2nUao0z8a90z+r7Cg/tb7EGAG2W8iAulCGdF6MacD5TSQoI\nhCBzlgHATnwJsOZ6lwzLGyg7+k8n90yS5ZTh8ZaLVOL+OKMCD4NSGtC5UqTH\nAm151h9r/Sw4gkG0zH+MOBv+UBuwkfp1bX26nJ8bEjkoakcSTEZLuP0N3Ife\n+T1f+2ZCyyDXUh6BxFyOOEH5wndVW1h7sDH/W9MVZBlGTNz/LxlhObQn6dQq\nLOQRMrK6WnNuEhTeBBgLiWDj/fpkDmse9I9fAw9faokjuOUNN2AZXFhLYquO\nJUvruGXDeOeLsUF18xD66opEmznmWVKraxCGfsgXiDt5G0zpD/XX3DlldupM\nKjEYUEYC4VYl6Os2c12TlhE1VLjgbnQgiXJhK8M1WGasWBwq+qeQrGqt+9h4\nBRNe\r\n=JmeJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5EoJXKvxv+HEjsaA+I44QcG3rBuvAF97EyQ55sBe0sQIhAPCRNjLAHiWzzXIiRFb17BgaEuOHnVxewxs0aPpMYOlv"}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_1.0.2_1569070587853_0.6156789257341557"},"_hasShrinkwrap":false},"2.0.0":{"name":"git-date-extractor","version":"2.0.0","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"main":"src/index.js","engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^5.0.0","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^8.0.0","@types/node":"^12.7.5","ava":"^2.1.0","codecov":"^3.5.0","nyc":"^14.1.1","xo":"^0.24.0"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off"},"ignores":["**/*d.ts"]},"gitHead":"1e1b5b66239e4853ce3ada5142a5d9f5b0b42acf","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@2.0.0","_nodeVersion":"12.5.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-btVHurfIJJB+retJvKXZSRv6YAZOJ7NU40vLtIonV7e1N+YSdQEB3gE9zVHJA+xktGN7TrefoBDi/RIoePx7GQ==","shasum":"b5729a71c7d6d5bc6d22111b239bb9551d39c83c","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-2.0.0.tgz","fileCount":9,"unpackedSize":49273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvR6QCRA9TVsSAnZWagAAAawP/jSBxSFKODjcmnsqXrEk\n13a2Hi69DuA8p1M75g55Mhu6oFJtsu5cxRM/QREInD5kovtlGxRf0o+Oj1/Q\n00Hmsbb/qvuxDCW+X+2gJnDER037qq1V1E/ABJfSlNPfIqrknhTXu8t6dIcs\nsiyc5XBRbVq/wald5zcAExtS2fcKnTKQQCFE18xNh7638ApsHGF2hbJr1XLP\nmueEZ73qcuqNYY8wXgwmn40IDe8VucgO4ZSHG67GNKSVAtBHMMv8QlNQ/r3M\nahj3xbEjWa+omBl0vy6qMwWUAH+uzlYSJuofxeBgDOYxgbA8N7p+xAf8eUtD\n8nil1V+OJ2ZeawzSRn/h4ZmcVg1LLOmKwEO95hCYG09sMBo+nyrc52NHk2PI\nvidDRQm4lr2SlHIfTEKtSkTb9EPaD1wqqoDY9cWESI3pAY2LTnuZ6uzPAkgC\ngbxJbNyQuh3P7FVZshAoaCT5uOsS9a4u8Oml0aBQaM+9nUX2iaZKiJi3D38C\nKLAm+d2Dh1JxqMF2EFqewzDhQy5Qy7m4BwcP3yEt6VaVIGFE6Va+j2ViBisD\nYRWRzTWK08oXObCR0OAebqfywl9C8lwOuDaKPMzMHkBgQDGasCVVhogDAQnh\nZ3yiKL1W1X96CCib6v2nXwxKBkNt43rCoEHXwZBurLPrP1rTFJGdN+9dC3h5\nY0pu\r\n=8vps\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIs1jPxwkoWdcrm4+YqKFZ695gnPsHExzO65r7AXeszwIgEFQo4czFWSq97gAwHxWYbWgtltjFp4yd9rmzO9ySyfU="}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_2.0.0_1572675216093_0.43931301407291934"},"_hasShrinkwrap":false},"3.0.0":{"name":"git-date-extractor","version":"3.0.0","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"main":"src/index.js","engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^7.0.1","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^9.0.1","@types/node":"^14.0.5","ava":"^3.8.2","codecov":"^3.7.0","nyc":"^15.0.1","xo":"^0.25.4"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off","unicorn/prevent-abbreviations":"off","unicorn/no-for-loop":"off","guard-for-in":"off","unicorn/prefer-set-has":"off","unicorn/better-regex":"off","unicorn/prefer-number-properties":"off"},"ignores":["**/*d.ts"]},"gitHead":"d52c99478c5181159cf342a0839027e0002255de","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@3.0.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-vKYhLLDcaER0JYsLLDXVSctPGTskvmReMkWud5ZM5QAArgFLkuzRgNF9fc+c+VAJAFlWZ1wv65c7nXuyOhMLGA==","shasum":"db458d166e98809e3451af95ede5b4454851ce92","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-3.0.0.tgz","fileCount":9,"unpackedSize":51757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1BbxCRA9TVsSAnZWagAAaeoP/iC57KS4y2DT4GMd0QU7\nDDTLgf3PSlZSr34qGJ58pESITaReJaIyYGJGeQkAGy6InSoU8+lL1ki4nZwT\nmx4DWlKtnFW1npKeZTsLtiEHV49ily8SXwiqUDD68qtOH0ZVoopHSDs7u4FD\nGqGLknyEYhBCxlOipvbOv430fTZ1A+a68c/LOgjji+uX9SRkkp8lrHKuSfQw\nAjdYig3ggludZOfxlXjIn09LvOxGlPjxeh7rmVP3BdJB/TSOxG+yE2UtrFJ/\nmM1QfScdE0HI2RaDXjWweLOAJI38xQpctlefa3Ew0qRp5VO83ig0JdIrgqFg\nNe2X7kDicQjAuB8F4opW2HjsUX3qV2AKmq/Z65af9F6oIEXVeLL13AIYVNM1\n/fDRizmRnsCAEMo6VHjymyIHfdHNO4h6xoKsMLrRArQxQfgc1F1cKI1hVsGZ\n5ooirL7ScUWT1IKVhdHFVGcF6cXDkmyUdf4SYRYQ16IXkPYqKlgLHwXgUndg\nozw33D9JqFJDjNwfMDuZG1uA+NE4jORYBa09EDhCX1EGvVVt8RYSuf7RmsQc\ncU5UeN+DiH4/qOCLrNu8owRuSKT3e47iDPpivVPcu1duR6RBCooU6LI8e8UK\nRfTUF23p7nD3DOc0K5NWZi1E8WjLwGlOzhNjbrO/WmBXRElhL60jLhSVpxoS\npy9W\r\n=/wY8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWJhxwbAZB/dCFfTU+ZHxRtiGkPV50rTqeJXct8d/s0AiEA1qgSXnJFKa+6G5eD+kjEoWPwLHB4NlFfL5eXR62q95Q="}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_3.0.0_1590957808456_0.8404767660444432"},"_hasShrinkwrap":false},"3.1.0":{"name":"git-date-extractor","version":"3.1.0","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"main":"src/index.js","engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^7.0.1","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^9.0.1","@types/node":"^14.0.5","ava":"^3.8.2","codecov":"^3.7.0","nyc":"^15.0.1","xo":"^0.25.4"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off","unicorn/prevent-abbreviations":"off","unicorn/no-for-loop":"off","guard-for-in":"off","unicorn/prefer-set-has":"off","unicorn/better-regex":"off","unicorn/prefer-number-properties":"off"},"ignores":["**/*d.ts"]},"gitHead":"df0a64b035147ba9770f1d5f30cadfd74871a4ae","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@3.1.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-kCAMWYVsQP3IZQ/AE5OXAzKgvSWrM8WyPWftkrVkJm7ZUlF2DCarQwcht6OvgrGg92KonjsrGiD+XtsJP8p6fA==","shasum":"9d6b243a9ba07458ce8184e13eed5f9728d84f8a","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-3.1.0.tgz","fileCount":9,"unpackedSize":51783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOfEDCRA9TVsSAnZWagAAagkP/jec99KzXWVOze1naQoC\nAHriQhIAu8TRYEFYtZi0rim7oPsTNijxyOedh19AZEhSwSMw4wvtvJnKksuT\njHHrXsnkEu4QplFEnTfMhxFKfuZGG/qcilu3dFgTYSSCSvSRbFCZ9/OMjMCI\nrzOuzXZwXxgpcJxf97Yp1+XNigyntuu11Xcqtv8XLaRo5sdAy4veZ+9+NJdg\nYuk4XXvJRM5hNAbbnKNP8HsAprmTbe9alGH8OC9YqhfTdEA1VKI68l0ggfIr\nGpi4qVyjb1SGpuM7OQJJKkBgwl0vB2TcmGSrKOMdaaPCEfI2uUOEyccW5uU4\n1B0xIwebmcR51VH+AoiCKwSm/FjCURWR7LfjifnOdZRHWWK4CIofXXHSlA98\nK6rqrajHX20iFpuu63bVCSB3mszxTJsb/pkFFP/g8FcDF8GIqnbJFXvnGrZU\n3/NlGwdd9399rqegwuWxI6GRoSk0UqrQ8lpO7nK2IWR+5HjrhGpR5lqObfYL\nqZL31pirgtEPRCsJqyFWhP4wDXvSWYVAIAe6v05y2UXScrEMwNyvo27qrKXx\n9lRuRDiEsf2P7gqgmC2kPpF1FZw27iSmIyDTfxV6GEGXUqR4lQCrUeZxoR5v\nwUZsyUQWl4wh6kD3Ff0xGIIhXgH+orsKCSZLTp5icnz7KzyAW+8SbVgZgEug\nLcan\r\n=D7pW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5gPpKQK0fxpfX/52UFuUUzfVjIY1dQtaKi0mNU0z5ggIgNOv9sbfd39Y87061ROWlunMmFXDy0rQ6ewIEpb8uRDc="}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_3.1.0_1597632770875_0.29399190380661655"},"_hasShrinkwrap":false},"3.1.1":{"name":"git-date-extractor","version":"3.1.1","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","email":"joshua.tz@gmail.com","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"src/cli.js","git-dates":"src/cli.js"},"main":"src/index.js","engines":{"node":">=8"},"scripts":{"test":"xo && nyc ava","lint":"xo","test-nolint":"nyc ava"},"keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^7.0.1","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^9.0.1","@types/node":"^14.0.5","ava":"^3.8.2","codecov":"^3.7.0","nyc":"^15.0.1","xo":"^0.25.4"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off","unicorn/prevent-abbreviations":"off","unicorn/no-for-loop":"off","guard-for-in":"off","unicorn/prefer-set-has":"off","unicorn/better-regex":"off","unicorn/prefer-number-properties":"off"},"ignores":["**/*d.ts"]},"gitHead":"6ed4207827845c0733806e8be17fd8f254122856","bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor#readme","_id":"git-date-extractor@3.1.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-p5iABTtSai50aJ9EzJjLnk5YsnUoJeoNtWZFhEMk+y17ubW475ALd2T3ffXV97QbtnO+bh7pQUXYM+xKv6a1uw==","shasum":"2e55be036e0a3a7e6d6b825b4b3f8e14cfae4e91","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-3.1.1.tgz","fileCount":9,"unpackedSize":53394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUF2jCRA9TVsSAnZWagAAmf8QAIXbCTs0gfaBQ3IfaZbs\nw3AEWrx8ubRk92KsZeNkNC9w3Z1bC4HUxdxa1w6Kny8hPI55iJp3oC21LIDo\nYIMUuly1ywVqL3vK+6IDgKH9KUDht5yElPtys12X+vZDGouvZuNTjv7mCk7l\nTJ9Nyd4n3WXdk3paDsGVW73mBhBZfoUU5Qkh7GDF4kUANqGH5kQpOvJXsXaK\nyLYir9cSh57helsKQnmc6G7G7ore/WE9PwWKOqYshLdqJx4ypKURgK5xuwEc\nHDDJ8Y83cSiNX29rKBwAGsdgQ0Q0YDYWPdh8g0aDDllgNh+oxNW5IFLj03fd\nWbgaxN1gl7pfAxbmWYJuMBJZdfARBhZM21voAuTM9gE42k1l9DlpmP64Ftns\nAH1lpKdxk7Xb5IwstVSVXp7Q9VR0+eqGGAxhm6JoJR7tSEtjLPVCWDsM7QE3\ngZ6ydE/Kz/upEXpWg9ZD49S1vps8j3wZzJpLVYMhgL8zHeTxUqWMIO05OtbJ\nIG9nALnA82z7AMAKobAbQgjbNZTyI1SkhhnXvBBlvodmyhY6qfuQDiSQrnWU\naZHba/BB2VMKNW8Q3sEqLtIgGgfQqtvbVtrCpxmHJJjlLuf87IBw2LFqrMTE\nGBgex/fYah6z2/msHvFUVeoXxTe3PwW4CnlB6nvkLILt7M0eogdDi/euK5FF\nVkNQ\r\n=nKkC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIANZiHiLSr3+Of5v01H2lcKd2ugGLaJQ3gToAf9PCPfpAiEAr4GIUZbi/nYyXjoQYmy+cD4R5uWgX7/fM3Q9QxaB92E="}]},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_3.1.1_1599102371429_0.9379674908186122"},"_hasShrinkwrap":false},"4.0.0":{"name":"git-date-extractor","version":"4.0.0","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor","author":{"name":"Joshua Tzucker","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"dist/cli.js","git-dates":"dist/cli.js"},"main":"dist/index.js","engines":{"node":">=10"},"scripts":{"test":"npm run tsc-check && xo && nyc ava","lint":"xo","test-nolint":"nyc ava","build":"rm -rf dist && tsc","tsc-check":"tsc --noEmit","benchmark":"node scripts/perf-stress-test.js"},"types":"dist/index.d.ts","keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^7.0.1","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^9.0.1","@types/node":"^14.0.5","ava":"^3.8.2","codecov":"^3.7.0","nyc":"^15.0.1","typescript":"^4.0.3","xo":"^0.25.4"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off","unicorn/prevent-abbreviations":"off","unicorn/no-for-loop":"off","guard-for-in":"off","unicorn/prefer-set-has":"off","unicorn/better-regex":"off","unicorn/prefer-number-properties":"off","prefer-named-capture-group":"off"},"ignores":["**/*d.ts","src/types.ts","dist"]},"gitHead":"7c7aff510663237eb744a1649c7b3a2e8b5d75a7","_id":"git-date-extractor@4.0.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-eyvo1ZO5DFPaDb88Q99Vgy2cYeYd4WMiSUkE1q98x3JNokQ/9xnUquclvqzQ7o5QJyHtMkeG1Qv5/4yT44IDHw==","shasum":"6b9c4e8a60b5d8866fe16b396b793e761b44539d","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-4.0.0.tgz","fileCount":15,"unpackedSize":69449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfucs1CRA9TVsSAnZWagAATBUP/3qBEHUBEvioZeqcCNbB\nM2t4YdM1/lW1uI7nVdrO0QlNlmDwhf1Y8qe1nRXLvW66+lpReufYWLPVJ6fc\ny9l75kiaizR1SatFF2cioYCWPtATWRnf1xXp3ujupGPkAOweiHIsnoCd+YxS\nhUXmhU4gXyYIpTdL+HPPQqMVLEFAUmdNGnqgbOD00Qk88N8R9SO1PXCNJv6E\ny2boZcumKj7rOFefkGaU5+PrJSSyDzDBFRsMe8jZsoP34JS1QuM8zyRa8/yE\nA04ux6/KzAq/Xxp4iBlKQBwNa0ZxzMM1RSdjwa2bDpI39Pm9HIdjC10hS1i/\nsvg2m/Mi0w1t2RJ4ICM6KJdUMYXWjtrwVoYhgzNRC3xC0+rYr4qNCHIWZL/y\n/TaA/lndXZtkBCAHs+DIx05QWg02Z8Rt7sX6hIhBQniz4VTmyaW72XXWlDAv\nj56g2SStsEENRm/+IUP6VqXY4g0Fl6bvTlhNFO6XnCYs4G4OYWlYop+DVAiZ\nf6YApqGxbu7prgjx/bz+JCFl/8WT41O3cabs4joqPHccPExf3GK8A1bLJPKX\nyXRYriJKVwStABawOaxXTVmR0wlRmO2jy/yj+X+6AILHtkWNTKLMdbS0ZEAJ\n+s90vVuWJWhOIoy+31PtxGos/Yn3W2pabWQOEG1yeT6fTgsxjn654XaBLvBv\nj71e\r\n=sgvq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAafKRlLqZpXxERrpmiUAgCDlxHmwGP+9bZo29jJBTKqAiEA/2wCIoZqEUGRANr2sXNQ25f1pMS5WHWZQY/lyVKmt8A="}]},"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_4.0.0_1606011701280_0.607793980361129"},"_hasShrinkwrap":false},"4.0.1":{"name":"git-date-extractor","version":"4.0.1","description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"homepage":"https://github.com/joshuatz/git-date-extractor","author":{"name":"Joshua Tzucker","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bin":{"git-date-extractor":"dist/cli.js","git-dates":"dist/cli.js"},"main":"dist/index.js","engines":{"node":">=10"},"scripts":{"test":"npm run tsc-check && xo && nyc ava","lint":"xo","test-nolint":"nyc ava","build":"rm -rf dist && tsc","tsc-check":"tsc --noEmit","benchmark":"node scripts/perf-stress-test.js"},"types":"dist/index.d.ts","keywords":["cli-app","cli","git","date","timestamp","last-modified"],"dependencies":{"fs-extra":"^8.1.0","meow":"^7.0.1","walkdir":"^0.4.1"},"devDependencies":{"@types/fs-extra":"^9.0.1","@types/node":"^14.0.5","ava":"^3.8.2","codecov":"^3.7.0","nyc":"^15.0.1","typescript":"^4.0.3","xo":"^0.25.4"},"nyc":{"reporter":["lcov","text"]},"xo":{"rules":{"quotes":"off","prefer-arrow-callback":"off","padding-line-between-statements":"off","space-before-function-paren":"off","max-depth":"off","no-path-concat":"off","no-useless-escape":"off","camelcase":"off","complexity":"off","arrow-parens":"off","brace-style":"off","unicorn/prevent-abbreviations":"off","unicorn/no-for-loop":"off","guard-for-in":"off","unicorn/prefer-set-has":"off","unicorn/better-regex":"off","unicorn/prefer-number-properties":"off","prefer-named-capture-group":"off"},"ignores":["**/*d.ts","src/types.ts","dist"]},"gitHead":"d7b2c7671fb0fb9e2a28af6e2c572323d3fa5f81","_id":"git-date-extractor@4.0.1","_nodeVersion":"12.16.3","_npmVersion":"7.3.0","dist":{"integrity":"sha512-CzFWqqxhYHWjRL1iUwreduLmTlvVw5xYvpTTBaDZ2+n+cwYDASmFJY3qqVOLEzq6YEt1VJnq0umipEGya6QdKg==","shasum":"2b889e91dd7e9c9fb4ca26960d80a49b20587ad9","tarball":"https://registry.npmjs.org/git-date-extractor/-/git-date-extractor-4.0.1.tgz","fileCount":15,"unpackedSize":68110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf98NDCRA9TVsSAnZWagAApVgP/3P0zGdSpqUiB76lnjin\nHhxxGauyijQie5MZU5cAYViYAoo42NcXs+xhnKRUhIXEjTFIFcr4/ohjGzb+\nf30aOvttoQ+2yoG0xglGrEaGvFRBDRAWZihbsq6rB/bLdwOQAQ39hRebaqAJ\nc5jglDnIRT9mhY/9K1wmC2QZ7WzFb1SQohPtB46wV+o2gcUgfupBSJIo/tIC\nqk0bFngRE+XuOVy08xp6D51C1y/O5hphSiDM4NmxgA9NWJQ6sToEeYrvhQsL\niYx/02xjkzwsukO+mawvfD9otcAF1cvFZycdzNOlXT11+fDT8EWww52dQ+eF\nb4tA49CHc90XIgfFcCEIpgsYVh1Nxf+FQ4r1n90KWu8McMOPZWKvo60XCrIS\nMzCHKg2to3G0Q4WgYSHx2oFtf2/mTla4smfZG0z0QOliEGaya3zzSFrzLIZ2\naXWk2ZBH5IZVSvDbOq9q+H1Y/jtTGSjqfdCO540ugHL6bEngIAp+xkcRKgrI\nDaxxPWhnpfSaJtdVEu6mI2FpPZroAgNCXblVvy7h00OiTYO8X8/8hZ20BiVg\nP+zcWVtUj6ftTAzeUsAwmt5eEu+NbtG7TCAAwYaNZhC8Yb2InaUGfTQE+Kvi\nGM+e4QASxS0bOc6iUXV1SWv1QrruMfMR/Nr64qbDrXtd/xMrFvQQU2KzBbtH\nMrpA\r\n=jBIm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCdkzVlgud7SBSedVOsMtH9kDX2A5eUZG5TWBcTUuz0QIhALtRHgcvMYmlrzQLT5thV3YK8ldB5mBzlkv8tHcnuxs4"}]},"_npmUser":{"name":"joshuatz","email":"joshua.tz@gmail.com"},"directories":{},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/git-date-extractor_4.0.1_1610072899266_0.7569019949515856"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-19T10:17:31.269Z","1.0.0":"2019-09-19T10:17:31.603Z","modified":"2022-05-03T18:53:57.768Z","1.0.1":"2019-09-21T03:09:02.710Z","1.0.2":"2019-09-21T12:56:28.011Z","2.0.0":"2019-11-02T06:13:36.188Z","3.0.0":"2020-05-31T20:43:28.596Z","3.1.0":"2020-08-17T02:52:51.029Z","3.1.1":"2020-09-03T03:06:11.598Z","4.0.0":"2020-11-22T02:21:41.484Z","4.0.1":"2021-01-08T02:28:19.404Z"},"maintainers":[{"name":"joshuatz","email":"joshua.tz@gmail.com"}],"description":"Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.","homepage":"https://github.com/joshuatz/git-date-extractor","keywords":["cli-app","cli","git","date","timestamp","last-modified"],"repository":{"type":"git","url":"git+https://github.com/joshuatz/git-date-extractor.git"},"author":{"name":"Joshua Tzucker","url":"https://joshuatz.com/?utm_source=gitdateextractor&utm_medium=package"},"bugs":{"url":"https://github.com/joshuatz/git-date-extractor/issues"},"license":"MIT","readme":"# git-date-extractor [![Build Status](https://travis-ci.org/joshuatz/git-date-extractor.svg?branch=main)](https://travis-ci.org/github/joshuatz/git-date-extractor) [![codecov](https://codecov.io/gh/joshuatz/git-date-extractor/badge.svg?branch=main)](https://codecov.io/gh/joshuatz/git-date-extractor?branch=main)  [![npm](https://img.shields.io/npm/v/git-date-extractor)](https://www.npmjs.com/package/git-date-extractor)\n\n> Easily extract file dates based on git history, and optionally cache in a easy to parse JSON file.\n\nI made this tool because, in trying to set up an automated static site deployment, I realized two important facts:\n 1. Git does not preserve OS timestamps (`git clone` will set file creation date to now)\n 2. However, you can use the git log to track a file's history and generate timestamps based on when it was:\n \t - First added\n\t - Last modified\n\nEssentially, this is a way to run a command and get back a list of `created` and `modified` timestamps based on `git` history, regardless of when the files were actually created on your computer.\n\nIt can run as either a CLI tool, or via JS, and returns an easy to parse JSON object with filenames as the key, and UNIX timestamps for created/modified times as the values.\n\n## Quick Demo (CLI Usage):\n\n![Demo GIF](https://raw.githubusercontent.com/joshuatz/git-date-extractor/main/readme-assets/No_Options_Output_To_Console.gif)\n\n\n## Install\n\n```\n$ npm install git-date-extractor\n```\n\n\n## Usage\n\nAssume directory structure of:\n - `alpha.txt`\n - `bravo.txt`\n - `/subdir`\n\t - `charlie.txt`\n\nThis script will produce an output of:\n```json\n{\n  \"alpha.txt\": {\n    \"created\": 1568785761,\n    \"modified\": 1568790468\n  },\n  \"bravo.txt\": {\n    \"created\": 1568785761,\n    \"modified\": 1568790468\n  },\n  \"subdir/charlie.txt\": {\n    \"created\": 1568785762,\n    \"modified\": 1568790368\n  }\n}\n```\n\n\n### Via JS\n\nGeneric usage:\n```js\nconst gitDateExtractor = require('git-date-extractor');\n\nconst stamps = await gitDateExtractor.getStamps(optionsObject);\n```\n\nSample demo:\n```js\n// This will store stamps into `stamps` variable, as well as save to file\nconst stamps = await gitDateExtractor.getStamps({\n\toutputToFile: true,\n\toutputFileName: 'timestamps.json',\n\tprojectRootPath: __dirname\n});\nconsole.log(stamps);\n/**\n * Output looks like:\n */\n/*\n{\n  \"alpha.txt\": {\n    \"created\": 1568785761,\n    \"modified\": 1568790468\n  },\n  \"bravo.txt\": {\n    \"created\": 1568785761,\n    \"modified\": 1568790468\n  },\n  \"subdir/charlie.txt\": {\n    \"created\": 1568785762,\n    \"modified\": 1568790368\n  }\n}\n*/\n\n```\n\n> If you prefer callback style of async, you can pass a callback function as the second argument to `getStamps`.\n\n### Via CLI\n```\n$ npm install --global git-date-extractor\n```\n\n```\n$ git-date-extractor --help\n$ git-dates --help\n\n\tUsage\n\t\t$ git-date-extractor [input]\n\t\t$ git-dates [input]\n\n\tOptions (all are optional):\n\t\t--outputToFile {boolean} [Default: false]\n\t\t--outputFileName {string} [Default: timestamps.json]\n\t\t--outputFileGitAdd {boolean} [Default: false*] *default=true if gitCommitHook is set\n\t\t--files {string[] | string}\n\t\t--onlyIn {string[] | string}\n\t\t--blockFiles {string[] | string}\n\t\t--allowFiles {string[] | string}\n\t\t--gitCommitHook {\"post\" | \"pre\" | \"none\"} [Default: \"none\"]\n\t\t--projectRootPath {string}\n\t\t--debug {boolean} [Default: false]\n\n\tExamples\n\t\t$ git-date-extractor\n\t\t{\n\t\t\t'alpha.txt': { created: 1568789925, modified: 1568790468 },\n\t\t\t'bravo.txt': { created: 1568789925, modified: 1568790468 },\n\t\t\t'subdir/charlie.txt': { created: 1568789925, modified: 1568790368 }\n\t\t}\n\t\t$ git-date-extractor --files=[alpha.txt] --outputFileGitAdd=true --gitCommitHook=post\n\t\ttimestamps updated\n```\n\n> For the CLI, you can pass files either directly via the `--files` flag, such as `--files=[alpha.txt,bravo.txt]`, or as final arguments to the command, such as `git-date-extractor --outputToFile=true alpha.txt bravo.txt`\n\n> For passing filenames to the CLI (e.g. with `xargs`), be careful of special characters and/or spaces in filenames.\n\n## Options\n\nBoth the CLI and the main method accept the same options:\n\nOption Key | CLI Alias | Description | Type | Default\n---|---|---|---|---\noutputToFile | out | Should the results be saved to file? | `boolean` | `false`\noutputFileName | outFile | Name of the file to save to (if applicable) | `string` | `timestamps.json`\noutputFileGitAdd | gitAdd | If saving to file, should the file be `git add`'ed after update?<br>Note: This will only stage the file, unless you set gitCommitHook=post, then it will commit it. | `boolean` | `false` if `gitCommitHook` is set to `none`\nfiles | file | Specific files to get timestamps for. These should either be full file paths (e.g. `C:\\dir\\file.txt`) or relative to root of the scanned dir | `string[] or string` | NA - if empty, script will scan entire dir\nonlyIn | dirs | Filter files by specific directory | `string[] or string` | NA\nblockFiles | blocklist | Block certain files from being tracked | `string[] or string` | NA\nallowFiles | approvelist | Exception list of filepaths that will override certain blocks.<br>See advanced examples section. | `string[] or string | NA\ngitCommitHook | git-stage | Use this if you are running this script on a git hook.<br>For example, use `post` and the script will append a new commit with the changed timestamp file. | `\"pre\"` or `\"post\"` or `\"none\"` | `\"none\"`\nprojectRootPath | rootDir | Top level directory containing your files.<br>Script should be able to detect automatically, but can also pass to be safe. | `string` | Auto-detected based on `proccess.cwd()`<br>or `__dirname`\ndebug | debug | Might output extra meta info related to the development of this module | `boolean` | `false`\n\n> Warning: The debug option actually slows down the speed of execution a little due to some overhead related to logging\n\n---\n\n## Advanced examples\nI tried to make this tool very customizable, maybe a bit too much so! In general, the easiest way to use it is either with no flags (autoscan all files) or with `files` set to specific files.\n\nAlso, if you are calling it from the console, you probably always want `outputToFile` to be `true`, unless you really only want output in the console alone.\n\nSetting `files` makes it run the fastest, since then it doesn't need to scan for files.\n\nHowever, here are some more advanced examples:\n\n### Allowing exceptions to files not in the approved directories\nHere is our example structure:\n- `alpha.txt`\n- `bravo.txt`\n- `charlie.txt`\n- `/subdir`\n\t- `delta.js`\n\t- `echo.js`\n```javascript\nconst options = {\n\tfiles: ['bravo.txt','subdir/delta.js','subdir/echo.js'],\n\tonlyIn: ['subdir'],\n\tallowFiles: ['bravo.txt']\n}\n```\nWith the above options, our results will include `bravo.txt`, even though it doesn't fall within `/subdir`, because the `allowFiles` flag is an override that will bypass the `onlyIn` rule.\n\nThis is useful when calling the script via an automation, like a `git hook`, where the `files` argument is dynamic, but you there are certain files you never want to be blocked from being tracked.\n\n### Automating the check in of the timestamp file into version control (`git add`)\nIf you are tracking the timestamp JSON file in `git`, and updating it via a `git hook` such as `pre-commit`, then an issue you are going to run into is that every time you commit, the file will get updated, which means it needs to be re-added (staged), and so on.\n\nThe `gitCommitHook` lets you tell the script that it is being triggered by a hook, and it will act accordingly. This also works in tandem with the `outputFileGitAdd` flag. If you specify...\n- `gitCommitHook: 'pre'` And/Or `outputFileGitAdd: true`\n\t- The timestamp file will be `git add`ed to staging\n\t- If you run this script as a pre-commit hook, this means that the timestamps file will seamlessly appear as part of the commit without needing to be manually added each time\n- `gitCommitHook: 'post'` (and `outputFileGitAdd` !== false)\n\t- After the updated timestamp file is staged, it will be committed as a new commit.\n\t- `--amend` is not used to inject it into the last commit, since this could easily trigger a hook loop\n\nHere is how I have this setup as a pre-commit hook. This is a little over-complicated; this could be simplified further:\n\n```sh\n#!/bin/bash\n# Get list of changed files - everything but \"deletes\"\ngit diff --cached --name-only --diff-filter=ACMRTUXB -z | xargs -0 git-date-extractor --gitCommitHook=pre --onlyIn=[md,images] --allowFiles=[README.md] --outputToFile=true --outputFileName=timestamps-cache.json\n```\n\n## Portfolio / Project Page\nhttps://joshuatz.com/projects/applications/git-date-extractor-npm-package-and-cli-tool/\n\n## Major updates\nVersion | Date | Notes\n--- | --- | ---\n4.0.1 | 1/7/2021 | Change builds to use `lf` instead of `crlf`\n4.0.0 | 11/21/2020 | Tons of bug fixes, performance improvements (2x!), TS types, and more.<br/><br/>Major version bump due to changes in types and input handling.\n3.0.0 | 5/31/2020 | Fix CLI projectRootPath issues, refactor tests, and cleanup.\n2.0.0 | 11/01/2019 | Refactored a bunch of stuff to be async. Main export is now async, which makes it incompatible with the previous version and necessitated a major version bump.\n\n## Limitations\n### Environments With Shallow Git History\nIf you use a offsite build / deploy system, your build process might be running in an environment with a *\"shallow\"* git history, perhaps without you even knowing it. These are environments that are not a true copy of the original git repo; instead they only hold a small subset of the history, perhaps even just the very last commit. Often these are cloned by using something like `git clone --depth 1 ...`.\n\nThe problem with this is pretty immediate; if the only history that exists is the last commit, Git is going to *claim* that ***all*** files were created and modified whenever that commit was made. Furthermore, the timestamp of that commit might not even correspond with the true last commit, if your build system does something funky with rebasing or creating temporary deploy branches.\n\nMy advice to work around this is pretty much the same as my general advice for the best use of this tool anyways - run it locally, and commit the results (as a file) to your repo. To streamline this process, you can automate it with a git hook, and even ensure that other collaborators do so as well by using something like [husky](https://www.npmjs.com/package/husky).\n\n> 🐛 - See my findings for Vercel summarized in [this issue](https://github.com/joshuatz/git-date-extractor/issues/7#issuecomment-682298968)\n\n### Environments With No Git History\nFor files that have no git history, this tool has limited accuracy when it comes to creation time (birthtime), especially on Linux, with Node < 10.16.0 and/or Kernel <= 4.11 (where statx is not available). For details on this, checkout [my related PR](https://github.com/joshuatz/git-date-extractor/issues/1) and [my blog post on the topic](https://joshuatz.com/posts/2019/unix-linux-file-creation-stamps-aka-birthtime-and-nodejs/).\n","readmeFilename":"README.md"}