{"_id":"@mhkeller/utils","_rev":"38-9082bf0bf7ec44ddb54fc0e082850f42","name":"@mhkeller/utils","dist-tags":{"latest":"8.1.2"},"versions":{"1.2.0":{"name":"@mhkeller/utils","version":"1.2.0","keywords":[],"author":{"name":"Michael Keller"},"license":"ISC","_id":"@mhkeller/utils@1.2.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"01cee69365b12d74c8930757329db65f1edf93f7","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-1.2.0.tgz","fileCount":18,"integrity":"sha512-kD4HYPoJusLxRNni/Z9SVajXi1TNEvcXWvKnKn9LPph90mJFC39Bo/HJoAILB43e1Et6QVKi0KExudeos4c2GQ==","signatures":[{"sig":"MEQCIERHDxpApZjP0RR+AcGgtNmeu50mFjv3PlGqxQqDIxlRAiBAp3YpRdUY1hSzrkTFH00h7RuTVDLp129+4G5cTaMq5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkpvzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxUBAAlyvT1HaSXSzhjVXKI16ajtK51UsdDYX9NSGjvQ+b0SNcEXzH\r\nkR4WH4GHUp+vfwQQ9FMyUw1Ft2r8TYzGvFpsxA4yjF/zoqC/4DMUkBD2sf2j\r\nFMPhThL9Ue2DX/irGRx0BTfGD+ukWTNc5f7tZI/bP8cZAQRagiMKQV4BmEak\r\naDLEayPkC6LHFygnZa10TBJs1Rs60sGiAZtfOThRFqKSXxXl1pxMeJjYO0th\r\nu7QHCAPBD/VZb2VpXHYSMXjGHZF4CsoBaT+wl12RYzOod5oiN6zrPszApT2e\r\nvVVwjgu6DNrtiu9wdM7Pci3pb2wMZTZKUI+gv+vkgg2WbyoExYosRcLulscL\r\n+WgzC9D6QnolBds/Z1Q+pME3Lr94BEvBFn/Iwtgeiunh1h8X+/BlA2/GiZcC\r\nLc0qUNNANuKz4UpSR6wmfCZrIeu1DUwDP4giH5S+y5T0p4dTBY8fkPCBLtxZ\r\navnv5IvQfCQZTvvqZh6qH1ZDQHEH3qFbGR69EbNQ1qpNQtGV6eRTyzJr96H5\r\nLBaGWB3ELWZCJqj1E8iaZfRk1+TiuszACoY3lGpDSKn/XyW+stLRt4ohX+Gk\r\npnQrOE3amBnwaXpyVDm1A2oPp7w7PukTOlsuWBc4tPeV29hcjJ2fZMHsEzPo\r\nMp81VuKYLpTh2j+2HLjPUkMFrsNlr604JPI=\r\n=2uo1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"01470259c34f3ccbc26466fba1e5b27ed868682f","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"8.17.0","description":"A collection of utility functions","directories":{"lib":"lib"},"_nodeVersion":"16.13.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","wsk-notify":"^1.0.0","indian-ocean":"^4.0.2","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_1.2.0_1670552563462_0.9158872947030201","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@mhkeller/utils","version":"1.3.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@1.3.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"174202ff3f4a6f1bee6e31b3a40e0fcc5f9fb289","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-1.3.0.tgz","fileCount":21,"integrity":"sha512-yHVhDaP5ykm5r0fJivbUPT4yoof757KU8fu+4Ne0eBzQPtUzG570TCleatC3HoaDU0J+42D+xUD8NCOHm8W5kg==","signatures":[{"sig":"MEUCIQDaHMHIidwd0P7wGw8OkHf3nQTtSrhG8LGZTCFzXN/HagIgOV+GrbJEN6K/pcUN4eguLxcV2HdjIrJ4aHvetKu+iGg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpL2lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0SA/+LhcBNJ77oH/VnPvNzyHeXSY82qUJ9CCFw+Rz9RStyC9rfLuN\r\n80NKemYGF7hjjchG7UxqnX04Ai6zTPLyUFywfpVCZWJ9zLyhwV2a5CBWSrAG\r\nkdXVkCVv3Bti7GDUQzQrIpPn1VoCG8sRj+xFfmziYK8VHPeYxoQPN7sbLZbw\r\nsZAzRtbYP49F25M7ELbaH8n8lIYopAb81DjyD23LWrYAv/uFMcjBg7g8c3p0\r\nrQeXDQ3ftiqm/kCafJ4BExQc6KBk/oV2nsoeFMJszDYqPEsLtT/B7xWvRdQF\r\nh8tCW1m6Ke+MCKnZuROZl1bH6Y/OSiIDHkb9J0EZQA4RC06nTzpHI6bLMu60\r\nGFKeadJPQnPoQNV0gMamO6/hmZp7tFQO7EHCSDE6OaFLLykVHHlNgTCJ1fZF\r\ng1ktNE5tJR7qZiDfjHQmDMz2XU3im116o8IWOTdwfKSdNdX1KHQ6z4HcIoD6\r\nn/kNrOazzIKv1M/IMFyLsZNR7JvNSqfCu7vCkAb/Ntc7akie1li846PfZ1g1\r\nPvfCdCa/xQdBuCozIFv+IC3vEoqhfEqMrHTmXAENIgNKEnCrR+VcYzD6gr7S\r\ndas8za/Xwwu9n86jqihmoKgnhZKyncFU3dBt1iN1eKS9Wb33qp4LhFoNvir4\r\nxz2RltL2gG33p9JQ734IvldcBOmtekiFME8=\r\n=jctC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"60ef452bb70f03aa1ee87bd1339aad41610d797a","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"8.11.0","description":"Utils ===","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","wsk-notify":"^1.0.0","indian-ocean":"^4.0.2","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_1.3.0_1671740836946_0.2652843354176073","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@mhkeller/utils","version":"1.3.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@1.3.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"bc04539e691ae63ca097652157a9610cef73b86f","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-1.3.1.tgz","fileCount":21,"integrity":"sha512-S4MY3goigybD6/Zc3lXcR6OCTLNMkw6L0VFNr7tLYiEqOXolxZFY5/EYTKV8Y65I1K6RK7FhMnvwHFmNqBS01A==","signatures":[{"sig":"MEQCIGHJSsDtnV14Xf+YoDLHW/xKD4azXuFAPoRsKdzgtzFKAiAw1zleLBdLt2ON0dKAWi9uBri48OYPqv4+rW73rZ/K5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpMJpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmquRhAAo5fb1vAJUjI0bMNknp9fd51RrKV60FvoFfpawF9P90Wg1R8D\r\nkaf//mQ/8nt7np5ewRZeiot63dq31AfbVgASD3JVLdu6Bfhw3zGL7TiVeVMe\r\niXYpBGQfAZxsWM8rd3EW0UDNhgcbrawpmj8S4PmGiasxe05QevzM+yURrifx\r\nlfVzl1rhQK01zX6Yo9e9NP1zuTiT8DzNd4uBlHqEgd5j82wreerA2TOu9Sjg\r\n3VUiFIxzwMn81cpikyAvjjSV1XYXaX++odBjQb6j2qABGyeDws0pUxBput2E\r\nQTHkNLwEcZOidKUzOUH3Moi03gTdQPn7BZcBuQgH07TOqa2D+zM8Qzody1oU\r\ngpnPDdA/2dZ8vtlPxhfoDEB90JPWUWohjxWIHTon9CrnlAATwRotYn9BWx1x\r\nu4ThOeh1lEZjgs/TyrOlI76gNG0/6GuPx6in7bbEZGf1r+d9KjwdKcc0DBFm\r\ng/qrZxQzItL4oNcYes6psj67Qzw7ixVSrLjDAu10VoRKzT4wECt2gwdOlAGn\r\nJ4syHHsIfGcRWaHBW3gWdjHB3wspfP5zPg9Va75Av4h1gz4dlmvzqxZrlSCZ\r\n1my/oD5NrkK3jevN8jhDWuKmOuKiyX1doX85LNG7CuxGLKVSMYSQnQYxFPrW\r\n8FVvjAlcPEo4yDk4Mqna2fP2twdkJFIaMk0=\r\n=CkRw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"4a4960e17d34eb9c498e73cc8603c13b30eebdf5","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"8.11.0","description":"Utils ===","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","wsk-notify":"^1.0.0","indian-ocean":"^4.0.2","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_1.3.1_1671742057361_0.7693996873589191","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@mhkeller/utils","version":"1.4.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@1.4.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"8ccf8565261d1ae6e4144c6829c07b892c3b3d55","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-1.4.0.tgz","fileCount":22,"integrity":"sha512-No57xLiDW6yj1wjd2ns/sqTswng0FCbtogVZAdwwAraKBXZkKiElbgb4J9gHmT76JhrGYEqEWvGu0Q4NqM8EGw==","signatures":[{"sig":"MEYCIQCNBjF8+yC9MUue8gZF8VeD0RilQ1ToAPldQirxHftUQAIhAJtFzIkvg2PFgB5BJJaTuQKiUsypW21/IOism6OVzoPi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjve94ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpj1A/9GMxTk15auPhXIbpig2CswtUQ83+okD7DkZ4eAi42OpPsUO2K\r\nrWqD/xmQPhPpfL1XHA8pO3u1jALDf0s3dyJ3y21xN1arhQqYT3cwaK7dfnaC\r\nTdq6m6eyBbWsoAS2EzdIV7YEPALwzzEcZZWysKdE+1W20ztMlIvnV6lLLK/r\r\n4oQDYHO+DHNVM+oMAJBOyUhRYE+ecFk0gkuD9p7UfON6GCq+Qb9tPONnkqnj\r\n7bU1ZD/pNztWiGMWxhp9hTQNPPGuKuHODS55VrwUHnleWoobsHBx0mBFwUNh\r\nyg2jlXEuhkmxZJTYp6fCNQLmoGgG6UF+ZUUFPfXsGWtLMKpuJdWxNli5EW+h\r\nDliNBkRuZTJrhzFrjgnRf+/sWlR3j0A0nNVSXkiHOsBZT0NIH2TOkFpay6zo\r\nvNuiyn1WHajf3+wSUdi5YvleqxR7M63fOB9K2mDid2BzSX3rkukqesXiK7Hh\r\n2YEkcZ6bdXHrnrLjduNcM5WOTT0jtDZD8ZW1IJjtGdlWXG4KYhZ+TdduPZC7\r\nBdiXibk5VMlgCCcpD6xX2Mu6tU+edNRMtL5yyrHeJKfgLTOzlNvHzbZ8CD9a\r\n3M3RPTwV4Rv2dT9LGANPIRDA0EsySB1JRnASWo8kN5+ZwlEmxSANz9ZanpLS\r\npO+Oy9/w8Z+xOCqlXJWsKh1gdWt2ptaPBKc=\r\n=exax\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"d877fb47f1e3abecab1ac2d43782f15d1bf66654","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"8.11.0","description":"Utils ===","directories":{},"_nodeVersion":"16.16.0","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","wsk-notify":"^1.0.0","indian-ocean":"^4.0.2","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_1.4.0_1673391992636_0.40820188220442244","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@mhkeller/utils","version":"1.5.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@1.5.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"ea0d9c12cc46a123350635ee8c1f614c4fb29190","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-1.5.0.tgz","fileCount":22,"integrity":"sha512-Qy0HtosFfpxt2gXPU7h5nAFwRSW6e8L84L76RhVioNuUp0SWPlUX0E5RKmMLE2GKtw9c2DwFeijWvBAFnk4o4A==","signatures":[{"sig":"MEYCIQC9fSHzoj+PaGR8fQggWUldaWXotxntcP9vT/ofAnY+lQIhANv1eQ2HionGHEa18beuw/TSrs7PhiZBmnokg2iHF2j6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGhhxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiOxAAhDl1sx4ndg3IbHxDudJjaYeb1w6Ub3srbJiEzKfvKw/u4xIz\r\nKWx1UTYUEKd6vsl1VYqHqNrd6+p1sjErhb2aEclA+eo6dN9xfaRWfpopc1l9\r\n5EwCyOsPWZ+5Mqw3j7pqKtSdUwKiB9Fa/jEPSa3rfu/NTjIZnEEE2HXBj8zi\r\nmVl5VBXuneQpFk9FhoTF1gkrY5r5qfspq9jkcwM9uenLkNmJe2+UPyZU8Loo\r\noWcD0+X6rj0qswNE+PWWgnEy119/E5sAz7HlWdKFbkKGozehhnenE9VZfKPX\r\nNASmZ7lXr/4IK8EKiIicK8mOtheNKiP3TSXUQwXBaTp32LOAqJrZ96MP/WKl\r\npR5btyj5v0/I+1KCGZxPJclYpfmaKTGpDPf1YAAr/gYNR8JL//iykgv3EIpC\r\nTA+aoJ9TzEqIBXh9h4l6X33XXuo4nxKeTCcP4X3i+I8h8bGaPG2SMAvRGleb\r\nQNLwio1GG2nyleco2pfF6AheV1UhjIJK6VUxsWTANYYuggtOm/QasxcnBnRz\r\n4HQxtT0Vb/qxgrS0uq0x/6umasy2SuIfdHAFgFc6ymsnAIsbOYuVqIzxdEJ3\r\n4l47XFOSq0S3lEqckvAUuHdBLwlQPuZ1pbHCRcKzQYxPWmLPyVYIqBGBTT2D\r\n8vtyV85C7WyNcd+IuIS/xcVMBrxP5kIJX7s=\r\n=RwXJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"03c2bb2095049fe2a099e98f93958fc576980ecf","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","wsk-notify":"^1.0.0","indian-ocean":"^4.0.2","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_1.5.0_1679431793652_0.7168059352565628","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@mhkeller/utils","version":"2.0.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@2.0.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"e9c4c0ba8f33d45af432e7270c85d5e7b080d043","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-2.0.1.tgz","fileCount":23,"integrity":"sha512-ajjAYZFJS2vfXJPtLg6GaKuj5nlSfSPdeDgLbZgLC3SCdZmiqUITI5g7PJX1eVLfNw8MpfiYAKb1dqnM4yRu4w==","signatures":[{"sig":"MEUCIFs7+OsEq7QZXZzW16y3tAIQ9qiy71hO/FHroI0KQI5yAiEA/J3HN7ZRihcmEB8yAL+nbgkj2dkJyYlq68Gtj5tpcYw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIa2oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3TQ/7BbLuMKuUDTO+cVVN8j8u8Q5Y8DkSa5xurFG2JE9psuLuJqpA\r\nHKQH7JNcF7e0gjxnOiaKDWrCy/VADWEM+0UTDa4xCnxdLZTJE2mBvt5zlgcs\r\np85moxYYVQm5Z289b1rU97jMmPjwNywjqgToeakOvLTIlTZgjbaFQ4vZ/3Kt\r\nKpmJ+fyV1wtxqHVjpw/GD8TiaFe5qd8sHYtVSjt3cFBEhhA23lhQ7/kHkNiu\r\nBqeV3SwzJZKAwpkEQWdUOk0u5veDBTNuCXBwgIdU6pHh5hnML3vgHila7j0s\r\nkUKPFT7BdjJJJJqjrv+McZnIAXfBeiVgQJWg/kGCg9vY9cN+Fa152e+U3aZ7\r\nX1UNii8mcVAlsiXQPPGa/MwoTqshNWyuJInfz9FXbPvJeIRwrK500xr+F8TS\r\n80m6K4NhU7kEhNalxGtl9W+wYcQiXLAJJ/U0MKEU6cbaVYldMHX74GmKAA9q\r\nJ/Fceg/XOFbOX+7ZwNPWinv/5+nXCrhc3XevLOu6oMgfN+YV4AzV1pVKUhCc\r\nbnxomSzdaUHv289G1RFpCxwbay1Oe04ZkrlVoHWVhKb7Ozbgl4mlwhC35O6Z\r\nlP5sw/0THblizJL2MUNuM+JtcK3YJ950ZwU0+95PXto5nWFTyzUF2VIY4Bkw\r\nW3pHsuG8GqO8BAKvYpZ4frq2D7EMLOJ1hTc=\r\n=RIjl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"bb0042194c770894c0884fe329476ba4077954a8","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_2.0.1_1679928743894_0.553065897428777","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@mhkeller/utils","version":"2.1.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@2.1.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"d3ea253dcd517c8e2b9278c6cb5b8635aea2acd1","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-2.1.0.tgz","fileCount":23,"integrity":"sha512-gkDM79pQUhItQein+5ITpZPiej0UaAzjb/4mb3EM9tPoeZc0twiroUvw+xVkrLushyk5Tfi5AuccR9qxXqpqBg==","signatures":[{"sig":"MEUCIQC2RcxY3+s8skcXqL7Q3jFfEBRza8V5y0bdE1USTUaNbQIgLWv7MsL+PQGuMtXyHycgjWRN1oghbjTa2Fxp5pHD7uw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJfLUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTWw//V36tGeAb8Fh6nPr5XnOYSW9LWwR0vpA1NStchvSmGUUBoNzr\r\nFEDogOXjrP+raGfbZm/kicEuSTs9jciygj21Acg1Vn4Om/OtF6y+2gnLWHp4\r\ndwC+LJl6kYgOOB0EGE5JvoVDZQWze9j4uVmjmUvdx7t+xlp+9BYMWHhyJTKf\r\nSlYxZeOvYhLL/8wgnHYQAAprERT2uRB8VJKnaB1Re4fNXzUqgUyUasu2va9d\r\nj0RSyP6+IcFARoEmk/3jCV70SaBHKm8J+Hij+x5VENP2436pAWzUpAeDeIiX\r\nHTZ2Z5y01qDC/pwsdJz3jbkzA+VBePVJM1gSOZH97W75EU8tEt8+WACol7kz\r\nlL8rBtC0Eb1ZFBCSCu1d0Sram3XeDXwCr0UkQ+l7OcnnsFR0XQrAPt3lQ3Jo\r\nOci4mRzCK7A8KHOuazKSykxd61bpfUmoPVUdWq/n9ZYGhcNawAucjesAqhfC\r\n0gkmoHR4Avs4vA2ut5UEhqBQGgRQ0lijU4QudcFs/KcRmSduNYr+k1iVkh/8\r\nsP9xSkXx80l6NCzxD3InBDhs3IFA+QF4quzyq5Ukr6XOnOgp3QMqQMeGJYsx\r\n75hnAPgQ24cEHK5EfAm8egehUL/vXdgMWVhAvORcz67hLnOjQf7K0xWnt45a\r\nGlDfdljvcLLhF/KtIG67t0BJMzauuV5pBHM=\r\n=g5Ob\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"24629af1317697464b15cbde30f41aaf90ac1a14","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.24.2","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_2.1.0_1680208595823_0.4362622601645558","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@mhkeller/utils","version":"2.2.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@2.2.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"0afe4fbd73efcddef00235d5d1f42e9620697306","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-2.2.0.tgz","fileCount":24,"integrity":"sha512-+olO9fMyXUgvYiScrXsZ7qiuKkCm7KcwTNmZQ5vU+TgO7H2VgTddCQ6QjCDa5TsHlQkmEobnGb77wsjv0HEyLg==","signatures":[{"sig":"MEUCIQCaH5vt/4oddvpTPhwz2T32N8nQhjHeFHZz3otsSj5OPQIgdcajSuKG6iGuDjkFJeD8/Co189OvMgQ3Z/Th2iRv3iY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJwn+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQMBAAgX/OtqdMOjJYc4tyh+kaa42s3Ay6v5HdiZ8iUtWTtKc3KcXd\r\nYVrcQDy9EmZr7AqJ4mCZhh7fX8y0RLhHtzgjV+CFmx5ByGd/yLuoYXXERsAx\r\nyXE2X5wKi1eZcXckt6aKz+7dnaeHyF9iVstVaCh88nopF9Xd0jR63CphNrC1\r\npJFFCSplrHHiKfHOd+T9JcovV8gBxzyRSdTiTjaqK2HZ4KwsG77pAJj0JizC\r\nnZ1pHFLSzXJrMDt671ngQmY9n+NVT1CoEnYp/sVB92xxQVKc+4SXnUpdXpK4\r\n/ZdbuxSMGf2wChy+p/3vanqfcUVcyAUmsdSw8WAEzKHraZC4PGOVFzmq4lBF\r\nkG4D2ncbMRGjsnx8eOvhC5S5mgkBQQ9XL+dknD6uFdYXItaFSlcN1QIg0ibi\r\nHo8buFdwAwpoTfXZIbI+SQhU5HSJ19Am0kFQJ5Ys8fNqKop0t47UC9LcDhlK\r\nBEwp6Uhw2Y5S/z1qw9xOflkc8tXOcOPjci6OJjycxXvyOjUHMSrP8L9jJrzP\r\nfSvxCcmNmRo70a5wwDNqQw/NUwnOnVmvHZN0Odh8ZtkDkxmV/hZuz2Wh8djm\r\nl1VxpbRF9geyjIsDXS9RoH+/vv1eD0NUpl/gaQuHaStyehJyenewHbGveAFB\r\n1K8dLXkwc2X3f2/RWvVV95qJEonqNVJ65mY=\r\n=5wB4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"7add11a3bd9cb9da300b0a850b4d8aeada7b2f70","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_2.2.0_1680280061766_0.8286435432992092","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"@mhkeller/utils","version":"2.2.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@2.2.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"e1d915bdb7956508614d9789932379d413804eea","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-2.2.1.tgz","fileCount":24,"integrity":"sha512-ZcsIN4IaSYKoV56gYVk9x2HoZ7iOoJTEhxdAr2GKrspPlCPhaBjsRBBZmpN8VjxCnydn95NlGi/7iVASlX6LgA==","signatures":[{"sig":"MEUCIQCyfVN7TMuCnk4ENTKFv63OFlDKW1L4bzge+61dWW82OQIge928i5+Wac4c3lZ1CLsUFSSs9+CNabAhlWwG5FynyO8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJwp/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkMw/8CA34dBK78G08R4Rm30s7KnYhnDjdkm7xCGKeDqqsBTy4yDV9\r\nqYvVPb6DQgNmlZstVpLyuP6e1kKZK94dwkr26x2JrfaDioTXgHhq7aLW5hB+\r\n4pHvRYYh4arhIVK7pkVsvKvd62IzowOyO3Ql3pM1/XGdnvziKhC+SIsTYCoW\r\nJMHHZ77mbGVLJ0yJfFlGLgmpmROJhAKt9JhIiFIGKUhtHZHVvUZqp/iToyTy\r\n2Ie84cydaxftwQadXL4yL7CXMyZp0/PKGagjZcqbBmjhqlN8c+F6H0d3GtvD\r\ngZkXuDbtXKJRG9y4XQiLDq4n4V3vQRkBAKl2yY1Xa9sLe1BpCKsSNonwdr/U\r\nQD03os+9/8utrMMVXtN/mbPbRt0tU/Kl+rHffhatQhsePAH7Uo/9NTux8qpd\r\nKp+vFqa6f5uuFXVlD6Ob3YMVMpFkfplcTa9v1B+/eBBg6bYSl8suTeodWHHG\r\n0tWk93tOMktEGM3NEJoKUHvyc6Xen6gqZsXT7MtBhdlFGDI5iQ0fMo69QbbK\r\nKf2zU6jkl1fM5AfX6Z0FcKWmS1xVA6gSCWsYBu2TbUSCeMdCVZuUP3Gf3fxl\r\nWVbDrDDDWZlOzKpv8OQiG3bNRMddnmIZ4y3MYe51MWm61zR5CvTwaGDmGzHz\r\nvnRlPL3wcnZfzs3N1RYPP7xG+icn93iw4ic=\r\n=ibl9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"ab0b257c2251f51344da564e75e72e5b97e36d53","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_2.2.1_1680280191268_0.06439000380671422","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"@mhkeller/utils","version":"2.3.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@2.3.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"7cf2f4e46eaa408e0be90fcc1fe6c79dd441338a","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-2.3.0.tgz","fileCount":26,"integrity":"sha512-cnwJaIjcY22kEDtHqwCzyoqRnu8ERq41HjXFEhmarACncK82qejO5vsREBm43TqgWW9qjUE7VqD5HbpryhXazg==","signatures":[{"sig":"MEYCIQCX6XmxC4afQxrD6w2MZHIpBRDO21H2qigWECrgixMUngIhANQudqme6fp6xn6R7hbP7afp9LhG37do4FZlRcm3UifR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkKbT5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpM/Q/+JIuNkho3cP5J0iMEBG5BVB+WS1bRaLi+435eKsyLPf8FFnwZ\r\niouFES+coxUyrhb0xAoOtada16idPPHtFM6WKY1NF7VJK4G2XsMfS/LMbHv0\r\nNMf7fqjclLPTlGbyzJPAdTzGw1xbXu89qNOM6hXxi5Hb+09AbSJdoo9urno/\r\nBWn5twSD3nHlQ03PBv5m+uvIGbzm7Akmy/ZTjn3LOtEEoAJ+Hzg4yOdeV3/N\r\nx9tF0z8H6zwcPIWWzZj6Dpk15r12cYqzrjOf5eHdNGM2WWhFDLBGUmg0/ZZM\r\n3ZjcaJY8NyUN9oTaC6fwcCNxAuoxYlgZg+a1HI8cgpdcKTRaG83HB7hMbZ40\r\nWEzNO35gw8HbxyUpblLD5jn2IGHEHKP59BafGupMf5Ka4zIvdf+8bhvi90to\r\ncGZRR2X5AX8tVcNrZPvvT3yn1+KF9mHSOphfyX2DXM9UWKElKw8A/42RJsIY\r\ngNPGWgiUY6Jc6d2KhpLQHx7omgNbjzkKTv2dG3cqsLtuCFfKdRHscv+9zI8r\r\nLi/Czj5YsBGe56kFLQvxpeW4VLG4bg+3T8ge0UyMm0cinfsszcwPUoSfxZB+\r\n+IG9vdKK7Tqz/PK2DpobYJ57e1aX19Jz0M+JCaA0TdURPnKEHpahhKrGh8rX\r\nJZfjWGtb91lq2fTJ9hxhOIQxN7ZmT4oAf74=\r\n=ydtY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"d7e183f605e47b80940110c8319808068100e654","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_2.3.0_1680454905173_0.6700007247853024","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"@mhkeller/utils","version":"2.4.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@2.4.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"8c1851d29ce680564f22421120c3f1994dd2a86c","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-2.4.0.tgz","fileCount":27,"integrity":"sha512-+od4dI5uh/tPBC6knD/l8rm0dLM6sTUp/KE8HEi7N9mdvlinfsBtiO8G1My+8ex1i4DyOKy30qaAmXXDZGN+RQ==","signatures":[{"sig":"MEQCIHrKdC1zjWbCrhjPllxLS9Fn/lCvz1ouX40G1/8osmE4AiA8YYLgvxTy+KNho2M/92ut4anjE7xkQZeMKGsRUc818Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOZVHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWchAAoL0MpkbacfhxjrKbsnFNoYXeMi1IxWauhASRidHQGZe4EO4T\r\nVJZQq5mKCUNCiSDVu79MTJNO8PbNeq+TaVbmbWFylEwiuk/20UbtvnKsg4Im\r\nY2uaLpo4oHj+JwsyiwD0E5UzCkNF504NMK19cDeNGmfG9P1R8SbniRwydaC3\r\nZkMhxVW+dNpp3iHOLcI7cGZJD85tMwG6lSJmmsbfxN6BlhL8p1K7LjlmNUXE\r\nCBSycwLMRrEnPd78xChqUKnpUgq6xpBIUMU2u+TxEatUCMmdnf8ajO8FB1/m\r\n0jJ6+T37GjNjz0zNwvchj2WW06iNCVkx4slSsfa0vWGNghLx59bJy9iTY4Vo\r\nJ1t6o2B6lsC/joTje3o9Mxd6YEEKoIjEbT8wwmiPaXCDwCfFSu/doeKf3PJT\r\nuUCFmXXLZTI9M2b1oa6XGPIl34nZUUDIpfoEDgqudWjetUIaIucDdWFzN7FU\r\n6/AyX038ZZaVLUljZ8xNYDpA3l4taqHQavtU7ENGgf/YbUnV20KqmdMF0qn9\r\nhQAI+qblmyTjP2NTe5DF0Rp5xZX4sm6URNdfYJPZhlQxWrBBkrIufp7mLXC3\r\nxIjuEQdxQ/Cr/FnlVSVC1zmHOWJlQryUk50iHmvzFxQwKRNPFsIF74t6yAox\r\n3C6G/G7m8ZrdVzF2KVMYlXc2d1Mf52Vtcz0=\r\n=p/zp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"41a8d49623f7b2fd89b765453aa7eb01635da0ec","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_2.4.0_1681495366998_0.6335428498945599","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@mhkeller/utils","version":"3.0.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@3.0.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"7b14b5b0ec9cb3408fa7dd5dd3b85bf64ac4d169","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-3.0.0.tgz","fileCount":27,"integrity":"sha512-pOgfGiuOTc1FzZdwzIHXOV0Xt8F2aV/r9Wb62t44zjvRr/s1SW+nf3gH8U1DNlmRRTL/YinZep/3sH43ferlkw==","signatures":[{"sig":"MEQCIGAjmcRQrEjCLbnZujJM5Xbb+vSRWgMmMH2Gef6DYIh0AiAIt61TkhQ5CHAd/SnpbgbVMHpdHmIMq+oRbDKAGQROLQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOfEDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1mw//cQb1DF/yASegdeKrAX4NiLPNRHvTlh/LUSaYvdE50cCyCIR0\r\nSudR/0sbkIjdyrCz1Hi/IJtyvOfdt9UoWqmU3l/MDvq0MId6oX9tp3MW0rAN\r\nQ7cDdK6pODe2fbfNW8EI08QMFR7HApoY9nueZVVgyjZ25vSu15L4+yf5iz9J\r\n5UTrAQ/jSosKUsg7QSnFjav2ygc95wHfuYXW5zNorp200uFb6gml2mcd/KG/\r\nyX19BB8mNqea+fgv2bWWWmZhyzTSkfi6j8WlIJiJf2cpX7bf1mGws9AP2TvV\r\ngBuo3UljvSAKpM9S50Zmjru2bbKkYaVTIDYYGhQNYhdFT8n9g9wG+A4YTaGl\r\nyOinY5gis1SX+ndXGQtr4ETytdjPD9TSWK5FnfRKVMZtFyOuwYy4RvJ6dltA\r\ngy05hPht9vRv8Q3COd6QPbmPQV6P+uDLzZFOvRnZLOP38ia2oM0fUrM1fwdN\r\n96DFiJizmKhTgp4bOgpDfDlF6FBivNrgu/HVImf4dnEPEmpim7hQt3W8N0Tk\r\nD4IT9XZH3i+nwj1EkJ8IjajNKB1emRBOvY/X17Ct2QiUfvgqWjlPHGed0h7r\r\ntMPxVD+5CzT1R3yEuMTEhR3L8Clguah3uuFgDJ1bGYZLmtkSqok8cNO6aRdF\r\nKepg0KhGLPQ8zH33MNR4XkziA+RhO/z4Sps=\r\n=TFlD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"2b46eb25dba09daf08c8768040f9c1ce32fbd647","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_3.0.0_1681518851435_0.879485578545397","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"@mhkeller/utils","version":"4.0.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@4.0.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"e25cfaea2ea22b749ba6f190184aa844e8ea1363","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-4.0.0.tgz","fileCount":27,"integrity":"sha512-jPNe++xtHhRlMBpRQO+JWcVD5eqiHUIeSAXjiGpfAwmiTxWq7aKOqwwMKMpP0e7RlNSMTe6TDvruyUAWTEJrWA==","signatures":[{"sig":"MEUCIBjxyTfhBgiwzjWIAwMhCW741REaOYNR1rbJPh1s+sk5AiEA0riFV7boDJu2HZ2Zyve97MMh6kNn32qG560lqpK6c+A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSB60ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpImA//Zi6PK1kaMExS5H0NzJ+fWijWWNjphegKkBtjY9yMbI1jjvXB\r\n706+raq03DLHSw3xkmefmzzVl9ocTGJyTjxdixFxSQeGElzRk+aGC1KAc50b\r\nQelG4Kw94x6Gyqs0vg1gcDXmK0WggdvqycV06yrDLl+jjkkFqmrh9oct0khQ\r\nskcvbK6sladPNUxP2uoozqNGD+zr/zFjOfN1oiY0KZpoH6iYZmR+NQIpvHbe\r\nWfOUW03z3ytslXqCo2d5msFFZJADOiTrAfXk383jdHGu4IBpNjrDxV9OrPX/\r\nzNZ4VvzZRp9EF3Gpu6rI/1Igdm3CyIo0f0yDVvSBkNITUJYLdSIYopOD2HYu\r\nlVj8/CGOdldejECxxIACed7sdRAwqjagTPlPyfU/WNaf/ZZuRUnVchcMTUoj\r\nZDFZzWKD91JMporPfN0JyoSdAbhVBP3Y1b56Kr04iLWMcwMFvNa8Syjsp1Ms\r\nWSQHKU+oDzT7e/EQBnuyTh4eRiI5JflZ1Cg2M9jfdsLXPgPS7Q6NJt/EZV+O\r\n8HEnapmXQaS1XDXcZJENFjnyGGRqvbmU9vt3KsgnPWQffevtHluanUbHXPl0\r\n9SwAOCTRBFhkKrBV7fDQyuEUQI4S4FWwatmH2RX7cbvjpegVaAaGNo5prFi4\r\nlQM89JPyTBqAOnhs3JvToReEvMRQdNBaRTo=\r\n=+Cdj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"8c90d65772bcfe4d6a1580e2e1627c1ce2d55d25","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_4.0.0_1682448052524_0.31421404448503654","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"@mhkeller/utils","version":"4.1.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@4.1.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"74ac4deddefdc4184a7263baaeafce6e5fdfb7a2","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-4.1.0.tgz","fileCount":28,"integrity":"sha512-/xPy1Zzc0lwyhS1Wk2MKoJwghTaFJd1699ZRpM0fGR0BajwF+lRZjNPjoGbzsguGwZX2FIzh7AzKqt9mLOMAdQ==","signatures":[{"sig":"MEUCIQD0FQyWnZ7VGW//ptD+K3dagydqhcQzDxCGPsjXolGLDgIgUGmYpE3aFESEe28UGoC9PV3Q/qITFt4iawAVbUCG9XY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSu3zACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2sxAAgGR6FOS/ZzbcwGKhPUM2kcPOtgiXUmVzykrveceqZlCbRXI/\r\nB6FZOmzCzulSeNteeT0ktO/5KVS3/mpI6ClueSQsDHvBD0kW0fp/UMmVCh2W\r\nVShPVxdy0gFdC9DgEiCCZvTITj4Z0ttfU2N0hH1ifLsZVxkFZ5o7npkRCL8s\r\nm2doD5TIQLlaUQynbN9M8d8RIgWxePMAUaILp+vWNxsQphXwO1kQLVwzICm+\r\nduVqxiiZpjqqrFaoi4w8SxOZ2Fe/iR+xdEFdH8lLkRIC/TfffOqVHdEZcb8k\r\nvTQ14pByh4wcL4R3ZhceYUZQzTEpHuC9e9qJVqT2nCUstKyHNgicxhSypRsx\r\nILiWNNAoI95GiOyhf+6iGdwyvxoc8vyCQ1W5Rbj6ePRoUZQVQK8zHJkVk8MT\r\nmCl7MI4WDLRQWhmVACGPdLi+vUbWJ1R7rwjiGT2sKRU9LOhwneeWMsf45cl8\r\nmhHaR3TthaskmdDPmIEhfc0I59oC6Kzz4r6s/gjrItsLXQBrbK1Ds+OXw8Ix\r\nhAwcWL+bSrVf6EEqrT8tSGeDB6tJebTP0d7N286V0aZWG4oGseHcSEmwvW3Y\r\nRZK6b2yXMAOOX4B+AA9gP7hUExdZQUlkPCjtAx/VLrElcBxlDIjtKx8qZaqy\r\nvJ5J8mfhvqrnP0jRCyfpEy8IlccbxA2GmPs=\r\n=jl9+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"c654a748a9419526601b4c60b418a20cc4f31275","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_4.1.0_1682632179435_0.49602021108735417","host":"s3://npm-registry-packages"}},"4.1.1":{"name":"@mhkeller/utils","version":"4.1.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@4.1.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"020c4443d190179f643b9de9ab43924e9593f5f5","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-4.1.1.tgz","fileCount":28,"integrity":"sha512-ToJMqJAuz67lg/zlQ4vse9fGlheDZ56EaTE0ZAWRZ+sC6I5rmyvTJJcpqflePgk6w/642LiBSc3i8xqvmiHxJw==","signatures":[{"sig":"MEQCIBtr3m0n/MV/xrrbXHE7apFOdqgxWIDR58pXaRrzxKhoAiBsxfL3wjaD7L8ehCwjQvKi+GdQm3UrDJYM5RD0hXIPHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSu5dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTsg//XD4koYZ4iUi6/NIMyCWDCdj41hx6h/kZINyEWCq+6wItjyZn\r\now684AxGkHBYKVMwn2+Y6k+VInL3NUOJBNqtvDbgYQTtzcOkYcuSRrKc6jNo\r\nL1ZGgG9TK9SgMHdOTLj2Ti5yiayko1385pdskfepz4gYl+YsQHtW0UeqrXWJ\r\nms+emO+YBQU7WdVTzl/K/m6101veCNRyQpVJcr8HjcGcifDtZyIGO13umxoJ\r\nhAzCsdXYzJG8fU5MmWhYotFXvjayX3l70pq4+POZLY0t2HbBmJr5ptzCkxTX\r\nWbwgMtlHSzwO8APjLj7mUYzCnQDgi+3LqGk2ZdHwbWeYI5Q3ScBxLDyo3Ht5\r\nnMmM+lFCdYNDM8GW5oaloE0H6lws7vjJ+D/JbcL/P2VtmMgkLKdTB5CCbX9n\r\nubUXHepqojdzOYDygNK0CTpU4MFgdt3iutAZ5PjrgW26yKmuYbb56DDzzG9O\r\n6z3LzFEesdS1ARwXXgHyQPHkOA0J4BxYgk+Ww/MDFKm6rforQqdr9+lT5tNo\r\nX/FuDsxzFzR6GA1QJJgZIAo8Y89OwVorgbA5Jj28BC6EsEQCCsUDxXLR7fVM\r\nxcGZCtyeBQA4s4Nkrf7QbP1rbsPaDIOhrLX3BIeASLlvgyEzlTfQESNsRU1D\r\niiFFXjOdxklwtvTdldBoQhOc/imODUWtNSI=\r\n=Ftun\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"da0200ed0b3916494637127b6b5c7faae1e52cd9","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_4.1.1_1682632285526_0.10242926854571377","host":"s3://npm-registry-packages"}},"4.1.2":{"name":"@mhkeller/utils","version":"4.1.2","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@4.1.2","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"c63ac5331d7cb8ae5c673ce838099131c81f1374","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-4.1.2.tgz","fileCount":28,"integrity":"sha512-cjGUgHAWIGXCNKbyqMd3lts9kkBrBWmGvVRPAuWtDaE8EC2qdcZYcE1ce0+zjcGxhYYcvdrLpD6wjU5qDLmaOA==","signatures":[{"sig":"MEYCIQClty76KaB+qJpZKTsIkcO/ksIP4lEwKujfiJfQV98HRgIhAOzMEBnRAa9XKfZM+UX3xsYH+duEXW795PIsju+95u+X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSvBGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9kBAAnLVajGKFVFAdQjaIXmUrBvS6LPWQjABm2EJwQnMubG7lfhRO\r\n6J+yfAPAdashF3ZCK/eo42iJJPWE3X7pkBlEYj4gqKQrn+vWUOvnJS8IiYme\r\n9SQKNyZMGEhhlSEoKQ+aWpGMrBopyurmP3k2JR8d6Dfofx5ZgtKZEUY4R6s9\r\nRRLgbdstPyyTLUIKPesX8f7FFhdFsv+rucLFCn7tWYKzDiSH3II5fQrKF5+b\r\nI70UkMP498bPSLiDwRwhQjPZUCJiDGIFBa0gMWhP1UAkR9MRRShjRp4WIWPB\r\no4ZjkA9vchS+K3b9rsSMC/OIoiopgGdIAdrY+2anBxlTaR+AWXkKfl5+7W2y\r\n8eC8iaeBCKyov22Z8JdKvAn0euIpMJacTE6qPC9dU/v1rkcHP0/RA6YdCgrL\r\nj2spxk4eof1D4GQSA6J7635fC2+OFpihGHNgyB0IMS6hBm6oCZkOpxSpB8VE\r\nLrvUW2AaqfdfcIN4plv4KNFsPXeXU6N9/c9WPpbyLgQBfqWKhPGdEZQj0oOU\r\nLPqQ8UaFnr0/h+e4XyAU7go0ducsz1K69Av/FyEurYYYZlnKF2RSKTVU1Psp\r\nNnN2xpl6wMjMjtvJkYlRWyR6vVk3DUbgNFockL68Knq9e1QZgbGcCBRamlz3\r\ncsOjBj8D7kTB9NZ7Q9lXzqlmBvZugOoRPC4=\r\n=/ycZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","gitHead":"738c9de57d13b258ffe56dae3450ee4511f55206","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_4.1.2_1682632774262_0.6337448183885863","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"@mhkeller/utils","version":"5.0.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@5.0.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"44d632da1374cd88b32ff8d5567e3154a0f9706d","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-5.0.0.tgz","fileCount":34,"integrity":"sha512-4/vX/Njh/yKcSF+t7sDfwDrZlGO5oVmbjt9pcHQ3yiY34kwV1BpoK8DX7/LR9dVsdVtcWEnnn8uXingYgitZKQ==","signatures":[{"sig":"MEQCIEsXjhEbzvlQh2DhzLIwIN2HbRzaiHZ1gSvybba+FUOrAiBg5dNs5PJo7vCweHf4YZ1E7VHXtQDoICvb4yawVUFEUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17882},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"faf6507ee8a69ab6d0387437e527143fb696232d","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_5.0.0_1684933083093_0.9553547831643359","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"@mhkeller/utils","version":"5.0.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@5.0.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"5cc46ba12c18a343b64a9859d7e94b7e72e73906","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-5.0.1.tgz","fileCount":34,"integrity":"sha512-7R+DEeFNkmfbTFpLkb3LQLW11cnISQs2HPScUp3F8Et0AwRczTFEjztGgLcjQ8rIgqb8gstFG8O8PPFIPG6gYQ==","signatures":[{"sig":"MEUCIDIF1pKLOEuu5cIiJEMPbjoB+bDkv9451i/ZncpqTVtGAiEAv2K4iqTUfOw4w9eQbG2L2MnoeSHV2GiqNFiAJoup4Fk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17705},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"0ba0deecb8239cee50f5f90c3d89a7cce53641e4","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_5.0.1_1684952012968_0.473291317366175","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"@mhkeller/utils","version":"5.1.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@5.1.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"263d0c1fbdad51eae4d80e30f92f24ae4f970e9a","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-5.1.0.tgz","fileCount":35,"integrity":"sha512-lJNRFDDnnh4/THDtml4HFjOSlwK4nSzBjUgpbKu07QFK9jwakSmFTAwPwhTS90EtIMA317v5S+xAyiUisghwOw==","signatures":[{"sig":"MEUCIGLpbCyLekWoixFozEf1GlLMce6aQk20FM+Zs5vJvqPCAiEA5kxy554G5zlgXKAtRiEo469biEp6AiJes0K0ahZR+Vs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18336},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"dbba35cfd5a2bf47ea22056b90bac7cf06c9230f","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"^0.18.5","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.0.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_5.1.0_1685027171088_0.41845848943380615","host":"s3://npm-registry-packages"}},"5.2.0":{"name":"@mhkeller/utils","version":"5.2.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@5.2.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"1a0798259154289658ae7e2734a1200ab6c628a3","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-5.2.0.tgz","fileCount":38,"integrity":"sha512-Y7X8ig5V1SESf88GCHyqr993CkypW8D0vQSZh5bI94gFISHL5pfP3BXKJVUY9Pv+eTVNsShOkkli7IVl2ixtOg==","signatures":[{"sig":"MEYCIQDYaAni/icgII18ysiOB/K+nMQR4IXyEBW0pMdQfpfVZAIhAO1E+KlwAbFx5P1lhZjZlXUYnzHXC0TQS8ST1dPStZ5y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22915},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"8518c50bca4fac86d84c0744fe2876dafdd81592","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_5.2.0_1686344453119_0.16743295850446271","host":"s3://npm-registry-packages"}},"5.2.1":{"name":"@mhkeller/utils","version":"5.2.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@5.2.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"25629f9c7438412f038358bc4f71d204f0c1db62","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-5.2.1.tgz","fileCount":38,"integrity":"sha512-SLbnMFJc+nBTf0mHPlqabOd4S1qXa2sL751eac7hdmVHLfpdKzV/QKMrY/fQW8LXJiQdpISLYIzmos3sXD+vEw==","signatures":[{"sig":"MEUCIQDg6HRVqX9f2Tg0iTuhusBaFJ17fNgLy0ydrRH++qYEggIgVM+KIkjmyYkmjDDKTRZ+6ndjMt+uNsyQp9EgBIDwlbY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23317},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"f5ed9880f5166f2f95c60f8ec0a07b0bbdea4a7e","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_5.2.1_1689092792196_0.7860634381871288","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"@mhkeller/utils","version":"6.0.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@6.0.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"70cd3248f4249131d275d95c4cdde9079f11d702","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-6.0.0.tgz","fileCount":38,"integrity":"sha512-Z9MYEDes78Xb+on79QjCFf9aZjOpyOQFl5dOzbqejIHCUwIq8MoK2geB0Uw3OWZNAJCE5XT2Q4rjmQKN0Apj6A==","signatures":[{"sig":"MEQCIFuiiwGzgFjhSEV9CbkCzb6RZEIGxT2oi76tnhYpzkEFAiALbrA/pCliHBX4IC93BjtuuoCCbpG3xzyPHtndzJhVIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23703},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"38383e569459f55c7d17a1b51aa8472749bcbaab","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_6.0.0_1689100762243_0.8592245201456823","host":"s3://npm-registry-packages"}},"6.0.1":{"name":"@mhkeller/utils","version":"6.0.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@6.0.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"fe53443377b8855a7a3a95df7708dfa6c5a844a2","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-6.0.1.tgz","fileCount":38,"integrity":"sha512-DkIWKemvASWfh1Wx+KpsjvnSsCeJnv0DF3xvOygEgon8fE9fiAcPV+LVBTEX1ZNS9CccDFYjH+ADdlhZw4vYXA==","signatures":[{"sig":"MEQCIB5Uxs8YzsRvvXJo4iHsgRxrgVtrtbDBcI1FkDtW/ZdiAiAQXdhocJQyLEypMji7dezsoauV0XBeW+cu3nLQHtiJHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23684},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"c68ef1850f2c780ce4263eff43f50ae9bc59eb9a","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"9.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.14.2","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_6.0.1_1689101203144_0.8132603728556576","host":"s3://npm-registry-packages"}},"6.1.0":{"name":"@mhkeller/utils","version":"6.1.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@6.1.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"bd61ca345b2c17314389b61da0ce3618c571772c","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-6.1.0.tgz","fileCount":39,"integrity":"sha512-NK2rSa+bau92RxRLXjp2Ih8kwrKq/+hRYL0updPkimAfZeTNnqF0a9GOXzJA8oWaNmmwrxM4IJ2YulP08W8rrQ==","signatures":[{"sig":"MEQCIG8fVach7Pa/OPGAHOGof/n2ZP3bbTfA+a6SWj+xm0tUAiA1j/fYFPL7v+hUnTvO+V8gYc9M5u6mBhswGmvINZ4YDw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24929},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"9b039654c4c2e2abb247a213219f12021a024ce9","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"10.5.0","description":"Utils ===","directories":{},"_nodeVersion":"18.20.2","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_6.1.0_1715972902850_0.8728442392586842","host":"s3://npm-registry-packages"}},"7.0.0":{"name":"@mhkeller/utils","version":"7.0.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.0.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"08bb4b8e9c07702dc9fc0c94cbf94b07a1846cfc","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.0.0.tgz","fileCount":39,"integrity":"sha512-syCIAVzZF/dYsS/uWwouuyn+9KcGXEM3GXpt9zeZE3oC9Ld0QZPlxnP+EEGrXmrzo7tti6HXb0qkL/DuWTrJfg==","signatures":[{"sig":"MEUCIQCvPZr8KP0KjIHAPAjkPPBuSdy/DyoRfp8ZvMOdBWFNcAIgSCrkL6nt9wB8PPwup5tQz7d8I529P2nk3FNR6jQpKAI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25491},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"b408fc417a775210ff9335a759f332998992aca1","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"10.2.4","description":"Utils ===","directories":{},"_nodeVersion":"20.11.1","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.0.0_1717448176401_0.12980456267389817","host":"s3://npm-registry-packages"}},"7.1.0":{"name":"@mhkeller/utils","version":"7.1.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.1.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"394c269c4e64a0b063871b1e95e66212f5825c0d","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.1.0.tgz","fileCount":39,"integrity":"sha512-QfPFN3hvJk/m1HdYfANUtk/fWYGbdLeWX5Iq8n4cGxALwniI9dRuQ+hDOjygCFVZteMsoy1/1/J/lNi9E2ETew==","signatures":[{"sig":"MEUCIQD1eB/4Y5UBF3wAVJ4DJJN3vit7whXYIoPSEl52Du4ZFgIgF6R7g3kOryHzmbTimNGuXMqH9Q3qx7AzG9lw31g9bAo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25944},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"df65999c873efdc82d94c66c3341478047bb9bc4","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"10.2.4","description":"Utils ===","directories":{},"_nodeVersion":"20.11.1","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.1.0_1717449429356_0.6115985727601541","host":"s3://npm-registry-packages"}},"7.1.1":{"name":"@mhkeller/utils","version":"7.1.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.1.1","homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"9643e4ae446a2b96fa2c43a6984dd9337b14fc45","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.1.1.tgz","fileCount":39,"integrity":"sha512-SJOkN7jUKxz5scyPe//7aAWyMojiAvdwnNOwxtKf+q6jzyIfeZCrvXBzyQp6xuEILDJG/y2l4X8jUitA/OOztA==","signatures":[{"sig":"MEUCIHVYA/OhKPqNrj/y9J2dRvETkkyAySMd3y0JKndDutpqAiEA4cVUfhDArH9Ip1Td2tpTR0v8OzXA5ewd5VHQp80xqaY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26510},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"48aa12b93d0653caed55c02ec9b33962de7bd34b","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"10.2.4","description":"Utils ===","directories":{},"_nodeVersion":"20.11.1","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.1.1_1719417232177_0.6987024606250376","host":"s3://npm-registry-packages"}},"7.2.0":{"name":"@mhkeller/utils","version":"7.2.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.2.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"414ff3c835d11ccb7bd8ec6d43686ed8f3129fde","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.2.0.tgz","fileCount":39,"integrity":"sha512-3o5WHL6C2Hun2JEK+XT5Jw2G8OQU9i3oM1JPlOTqvQkgsmGUjkrGjgP7JK+pHvpJ8eziEoX3fJ/grXWPnbdj6w==","signatures":[{"sig":"MEUCIQC4VVS0eRACxSnauY6XhLJqymEoZ3qTNtcvSVNVX7yQnAIgZP4qaJ1833WutSxsQL98EmEboKSjlLn7LPWBWYcxzS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28342},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"1f9d6e58659b907d8fcc66022ce9f9ee965f4ff7","scripts":{},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.1.0","description":"Utils ===","directories":{},"_nodeVersion":"23.7.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.2.0_1739999173015_0.08261131426833068","host":"s3://npm-registry-packages-npm-production"}},"7.2.1":{"name":"@mhkeller/utils","version":"7.2.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.2.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"885f6c71d602c4baeba414cdaef568ca634f14a7","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.2.1.tgz","fileCount":42,"integrity":"sha512-wOb9IzumZmLwYaFUP9KhmPRbogwjqvA4bB7Dacq4ScJnaQuaAZ0MtN0M+pdqZvlaF8ka9dzwELGTHxzssGWuNQ==","signatures":[{"sig":"MEUCIBKkv9P1B2hMfyenMdWdf9G2l/lz0jvSGhHFf2a2TsFVAiEA48aOSWfyMe8U/bj2HtAvlW1YqllXi6IUnxyCj8Wpe2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33985},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"be8eebaef0e49825eb87ecfa2ca69819b4887c95","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.1.0","description":"Utils ===","directories":{},"_nodeVersion":"23.7.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.18.0","prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0","eslint-config-airbnb":"^19.0.4","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.3.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.2.1_1740077630837_0.8768239363993631","host":"s3://npm-registry-packages-npm-production"}},"7.2.2":{"name":"@mhkeller/utils","version":"7.2.2","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.2.2","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"0c8e112df71c59d54cb6767ae79bd9fdf31af54b","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.2.2.tgz","fileCount":42,"integrity":"sha512-6/kQ8l4+5c2lsuHGgIBPxRoedoct0gvbYZOSt4gzbvYu4rFmH9xx9cWhhDdPLAby8LQFraiPEJ7D1l14+3mmGA==","signatures":[{"sig":"MEYCIQD4UwNE/ehONC7TOl7n3cruhTH3f6eOUOkmPOiccJHssAIhANsdEmAPDMwTXH/Rh7azi7b35tdLe+u/r367xceNTXvN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33641},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"1de29214d90e8cba9218574ced9e34a45a334f8a","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.2.0","description":"Utils ===","directories":{},"_nodeVersion":"23.7.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.2.2_1742851512856_0.4683532709946223","host":"s3://npm-registry-packages-npm-production"}},"7.2.3":{"name":"@mhkeller/utils","version":"7.2.3","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.2.3","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"94ca9fb3dcafabb5875f332eb3938fdb0f8a20bf","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.2.3.tgz","fileCount":42,"integrity":"sha512-4zZsSGmL7OBtYuk4UMHjMDlzman+FQ4DA/VGV/yUu7F8/MbsBAJjMjlb98Nxdn2Qoo5BhQPBDlIDFfQMfPmVhg==","signatures":[{"sig":"MEYCIQDNymJm3kzApaqVTzHsGxAbaOpkx5XmMeBTq5I5vQa+lwIhAOb79wPzIIDeU0Uoroe/bkpTW6m853uAgJaEoCrEu93S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33851},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"3a9f5e11c4b4e55be20348e39b4e5a56c44a1d41","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.2.0","description":"Utils ===","directories":{},"_nodeVersion":"23.7.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^20.0.0","dotenv":"^16.0.3","p-limit":"^4.0.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^2.5.1","@babel/core":"^7.17.5","@babel/eslint-parser":"^7.17.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.2.3_1744404840046_0.7881517157072162","host":"s3://npm-registry-packages-npm-production"}},"7.3.0":{"name":"@mhkeller/utils","version":"7.3.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@7.3.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"cffeb4ef0ce4e2fed150a0008dde2088ce3eb6de","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-7.3.0.tgz","fileCount":46,"integrity":"sha512-I6zJYlDLP6x8EUext/03ygDBEzjhyO+B/jkeUEiZBjbg9DPKiLSD0nd6uPaICuHXxtFHSR6zxk5lU2CwJIfooQ==","signatures":[{"sig":"MEYCIQDeyOcYl/iMHYTXbLrW1DZO5Y/TqW6GyN3fu+aXznjqtQIhAJfAiTRAGEjodvt2KOVgXaSrVrTMy1Lv3PU+uRW9T85C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39578},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"65b2cd9c9caeab241695c13594bfedb776e7c278","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.3.0","description":"Utils ===","directories":{},"_nodeVersion":"24.0.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^26.1.0","dotenv":"^16.0.3","p-limit":"^6.2.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.6.17"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/utils_7.3.0_1747440868523_0.46373822942429843","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@mhkeller/utils","version":"8.0.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@8.0.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"b17c15d99b61fd32ac384c27369cd87e1614189e","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-8.0.0.tgz","fileCount":40,"integrity":"sha512-tP2oUenCB3xQ70wkBiuYq7tAl9TC4iwKx5VAInLEafDVGf23KE5R9eJr2ZyHbRDkCIXH+dY29zdwybt376mOJw==","signatures":[{"sig":"MEQCIGwgPmyFBKOfYzGULYZrQaiKg/1S1tXiCTalWk9UGz9oAiAexUkmrd0iYhxhNvj2aWO4OK6A8ll85EJiDyq+Kli58w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43086},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"88dd395efd726dcd84fd9483a95f46285e7cb397","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.4.2","description":"Utils ===","directories":{},"_nodeVersion":"22.15.1","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^26.1.0","dotenv":"^17.0.1","p-limit":"^6.2.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.6.17"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"peerDependencies":{"better-sqlite3":"^11.10.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_8.0.0_1752462524286_0.8542435674736313","host":"s3://npm-registry-packages-npm-production"}},"8.0.1":{"name":"@mhkeller/utils","version":"8.0.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@8.0.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"17a9238dcc6e2bcbdbc4716fdee27859e2467a6c","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-8.0.1.tgz","fileCount":40,"integrity":"sha512-6pjU2bkXoToY1AzoLoVoXLSMiFuspPAeHLUG8Zz0khJtKH8wGSZqimBmaJxM12PeCz+HemerMGMEXKyKBuRaKA==","signatures":[{"sig":"MEUCIB2tF+vhnldYH7qS3VMbmpC2yzui5tPTEIn4g3Nhc3o0AiEApk6WM8a3a33BbnSfQIBaK7i/N1v/JmSLHWLRXLjrbPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43335},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"1c98c700201b4b444475e33bd892b907f95285f3","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.3.0","description":"Utils ===","directories":{},"_nodeVersion":"24.0.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^26.1.0","dotenv":"^17.0.1","p-limit":"^6.2.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.6.17"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"peerDependencies":{"better-sqlite3":"^11.10.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_8.0.1_1752590105937_0.7186257188408591","host":"s3://npm-registry-packages-npm-production"}},"8.0.2":{"name":"@mhkeller/utils","version":"8.0.2","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@8.0.2","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"6d82c0a3f8b9500a31cbc0904f2d93b63cfa0dbe","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-8.0.2.tgz","fileCount":40,"integrity":"sha512-R/geuoP39tulcSj4HcKOY+LsH4pqi0l0jIhAhLPJj5sytAthHenmcM1fE8zwGq4QrTVMDw76/DbFRXrBGyvitw==","signatures":[{"sig":"MEUCIDgLsWmoU8qvhWpVY8sp23ls4JEFvrRN43M354saV/3PAiEAmnMvT0RLOVPSE1Es50ubYuEGS1Dx5J93O0dt/cIuwQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43484},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"744d6d4e54b5c5d8f7abe11ab9cea409b6d9de99","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.3.0","description":"Utils ===","directories":{},"_nodeVersion":"24.0.0","dependencies":{"pg":"^8.7.3","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^26.1.0","dotenv":"^17.0.1","p-limit":"^6.2.0","d3-format":"^3.1.0","playwright":"^1.32.1","indian-ocean":"^4.0.2","@mhkeller/notify":"^1.2.0","@observablehq/plot":"^0.6.17"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"peerDependencies":{"better-sqlite3":"^11.10.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_8.0.2_1752692928139_0.5909681591275584","host":"s3://npm-registry-packages-npm-production"}},"8.1.0":{"name":"@mhkeller/utils","version":"8.1.0","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@8.1.0","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"73ff693714b4283dbdfac1e955687baa64484a5a","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-8.1.0.tgz","fileCount":42,"integrity":"sha512-lh9c7dohfUzuYYjOhe/eQFEH2qc2rcSfz+BcJQs1/w0z2Rt24bfjQ2RsmND5DDpe7gCmpc4ZfezgQvuiChZ76A==","signatures":[{"sig":"MEYCIQDZI9sJhwtrKubgYNJLf5+NRNNsaEhzaHhiRYqWIpyr5gIhAKIUzIsjG+rGCWXOzP9xU/ffg+utR+chOFtxNt8D8/Bg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53605},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"cd7286ef90a594361d44ae22dd90a321fe2703b3","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.6.2","description":"Utils ===","directories":{},"_nodeVersion":"24.11.1","dependencies":{"pg":"^8.18.0","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^27.4.0","dotenv":"^17.2.4","p-limit":"^7.3.0","d3-format":"^3.1.2","playwright":"^1.58.2","indian-ocean":"^4.0.3","@cantoo/pdf-lib":"^2.5.3","@mhkeller/notify":"^1.2.1","@observablehq/plot":"^0.6.17","@aws-sdk/client-textract":"^3.985.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1"},"peerDependencies":{"better-sqlite3":"^11.10.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_8.1.0_1770666977167_0.6528215525641479","host":"s3://npm-registry-packages-npm-production"}},"8.1.1":{"name":"@mhkeller/utils","version":"8.1.1","keywords":[],"author":"","license":"ISC","_id":"@mhkeller/utils@8.1.1","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"homepage":"https://github.com/mhkeller/utils#readme","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"dist":{"shasum":"07141854aeb7fd18a1c6368b7f6dd6651b812791","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-8.1.1.tgz","fileCount":42,"integrity":"sha512-c447M0aDMPEk2hrsFP5bpo1seN+I6JnlkdZRrBBFDt3M1FTq/uU2QL+puhFlnphMxH2etcQxEkWgy+3eDWHAiw==","signatures":[{"sig":"MEUCIQDqbyvkaIVQPPToH3uKYQdmbejdP/suB4utWRAZZfbR3gIgf+OGh2Z7q+wlCIj8ZtqTQfUnYLgkjUiwU/S4tE6d6W0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54321},"main":"index.js","type":"module","exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"gitHead":"2528eebb3e5a46a71241a3b5aa9ebde6c56b2d5d","scripts":{"test":"node test/uploadRows.test.js"},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"repository":{"url":"git+https://github.com/mhkeller/utils.git","type":"git"},"_npmVersion":"11.6.2","description":"Utils ===","directories":{},"_nodeVersion":"24.11.1","dependencies":{"pg":"^8.18.0","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz","jsdom":"^27.4.0","dotenv":"^17.2.4","p-limit":"^7.3.0","d3-format":"^3.1.2","playwright":"^1.58.2","indian-ocean":"^4.0.3","@cantoo/pdf-lib":"^2.5.3","@mhkeller/notify":"^1.2.1","@observablehq/plot":"^0.6.17","@aws-sdk/client-textract":"^3.985.0"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1"},"peerDependencies":{"better-sqlite3":"^11.10.0"},"_npmOperationalInternal":{"tmp":"tmp/utils_8.1.1_1771282015299_0.08221000454577698","host":"s3://npm-registry-packages-npm-production"}},"8.1.2":{"name":"@mhkeller/utils","version":"8.1.2","description":"Utils ===","main":"index.js","type":"module","scripts":{"test":"node test/uploadRows.test.js"},"repository":{"type":"git","url":"git+https://github.com/mhkeller/utils.git"},"exports":{".":"./index.js","./db":"./db/index.js","./scrape":"./scrape/index.js"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/mhkeller/utils/issues"},"homepage":"https://github.com/mhkeller/utils#readme","dependencies":{"@aws-sdk/client-textract":"^3.985.0","@cantoo/pdf-lib":"^2.5.3","@mhkeller/notify":"^1.2.1","@observablehq/plot":"^0.6.17","d3-format":"^3.1.2","dotenv":"^17.2.4","indian-ocean":"^4.0.3","jsdom":"^27.4.0","p-limit":"^7.3.0","pg":"^8.18.0","playwright":"^1.58.2","xlsx":"https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"},"devDependencies":{"prettier":"^3.8.1"},"peerDependencies":{"better-sqlite3":"^11.10.0"},"gitHead":"5a312f8b971c3ec235aa2d5680b393bc78fea3a4","_id":"@mhkeller/utils@8.1.2","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-NUgZo4idggr4hcPSnGcQ5ooocTuT9CzsxSyj35JTd02quhpSjCYihJK+1GSb14NhLqFljq5ENV+7PEMyCsLO9A==","shasum":"f34f88ef5b73a37b5f784cd00379eca8e592f7f5","tarball":"https://registry.npmjs.org/@mhkeller/utils/-/utils-8.1.2.tgz","fileCount":42,"unpackedSize":54256,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCkYWRLzO9xNOUzI5y7goJI7yYP8P/S0CwC9dsWN9SQUgIgAb1ir0MZt0sLK/oV7zQErfvF4dUI65Ffc1N3YEKIoO8="}]},"_npmUser":{"name":"mhkeller0","email":"code@mhkeller.com"},"directories":{},"maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/utils_8.1.2_1771282438275_0.08241415448361855"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-09T02:22:43.403Z","modified":"2026-02-16T22:53:58.532Z","1.2.0":"2022-12-09T02:22:43.586Z","1.3.0":"2022-12-22T20:27:17.112Z","1.3.1":"2022-12-22T20:47:37.520Z","1.4.0":"2023-01-10T23:06:32.783Z","1.5.0":"2023-03-21T20:49:53.881Z","2.0.1":"2023-03-27T14:52:24.091Z","2.1.0":"2023-03-30T20:36:35.964Z","2.2.0":"2023-03-31T16:27:41.951Z","2.2.1":"2023-03-31T16:29:51.421Z","2.3.0":"2023-04-02T17:01:45.343Z","2.4.0":"2023-04-14T18:02:47.198Z","3.0.0":"2023-04-15T00:34:11.618Z","4.0.0":"2023-04-25T18:40:52.708Z","4.1.0":"2023-04-27T21:49:39.602Z","4.1.1":"2023-04-27T21:51:25.677Z","4.1.2":"2023-04-27T21:59:34.422Z","5.0.0":"2023-05-24T12:58:03.288Z","5.0.1":"2023-05-24T18:13:33.167Z","5.1.0":"2023-05-25T15:06:11.295Z","5.2.0":"2023-06-09T21:00:53.349Z","5.2.1":"2023-07-11T16:26:32.397Z","6.0.0":"2023-07-11T18:39:22.456Z","6.0.1":"2023-07-11T18:46:43.336Z","6.1.0":"2024-05-17T19:08:23.027Z","7.0.0":"2024-06-03T20:56:16.557Z","7.1.0":"2024-06-03T21:17:09.501Z","7.1.1":"2024-06-26T15:53:52.327Z","7.2.0":"2025-02-19T21:06:13.180Z","7.2.1":"2025-02-20T18:53:51.071Z","7.2.2":"2025-03-24T21:25:13.147Z","7.2.3":"2025-04-11T20:54:00.292Z","7.3.0":"2025-05-17T00:14:28.708Z","8.0.0":"2025-07-14T03:08:44.470Z","8.0.1":"2025-07-15T14:35:06.109Z","8.0.2":"2025-07-16T19:08:48.310Z","8.1.0":"2026-02-09T19:56:17.323Z","8.1.1":"2026-02-16T22:46:55.440Z","8.1.2":"2026-02-16T22:53:58.420Z"},"bugs":{"url":"https://github.com/mhkeller/utils/issues"},"license":"ISC","homepage":"https://github.com/mhkeller/utils#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/mhkeller/utils.git"},"description":"Utils ===","maintainers":[{"name":"mhkeller0","email":"code@mhkeller.com"}],"readme":"Utils\n===\n\n> A collection of utility functions\n\n## Installing\n\n```sh\nnpm install @mhkeller/utils\n```\n","readmeFilename":"README.md"}