{"_id":"@andyreagan/hedotools","_rev":"9-1ce48d446022b52d068e12f5981d7ef3","name":"@andyreagan/hedotools","dist-tags":{"latest":"7.2.1"},"versions":{"3.0.0":{"name":"@andyreagan/hedotools","version":"3.0.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@3.0.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"474c7e0f8c725fca30e26421abfe469336a49d56","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-3.0.0.tgz","fileCount":20,"integrity":"sha512-gqOGIqZKFPLTNXLZkcoRZMnoatxMYGTTOPwA4MMvxznXVTDPtfyJvi6Lc78Vz4reQg807KzxAEANl3/zP4XPNQ==","signatures":[{"sig":"MEQCIDyvTH4tJu8/e4HtfWDbCs9A5b1oEKEbPO+CfM9A+BGgAiABNjspFrKKlL7nx8bmMbad2J11myz8rtbcrcmpQckF3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508957},"gitHead":"3de9cda5662c9c9450b01cb2723fdd1f776d1406","_npmUser":{"name":"andyreagan","email":"npm@andyreagan.com"},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.12.1","description":"A collection of D3.js tools in use at hedonometer.org: word shifts, choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (3.x = D3 v3).","directories":{},"_nodeVersion":"25.9.0","dependencies":{"d3":"^4.13.0","jquery":"^3.5.1","d3-selection":"^1.3.0","d3-selection-multi":"^1.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hedotools_3.0.0_1782159422440_0.3366425081774702","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@andyreagan/hedotools","version":"4.0.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@4.0.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"4a2100e6f22f5f60c6bc7333636f6b7b81ce0b52","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-4.0.0.tgz","fileCount":18,"integrity":"sha512-29jM8RhDlWmgkaYSxPDotwGUhQODnTX5jOfITsOCzQOz/J4yoz48F0dyo7QDpEMpZepf6ztKj1K+vkQ2SOCZsQ==","signatures":[{"sig":"MEUCIQCZyGKotXKuJehNs1OImKoC+NZJZfoPQAew8DHvZTK6/AIgb3Icwm88hsERzZH46BySujR24hU9tX+3Xnd6k+57rog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":332553},"gitHead":"62ec2a010bdb767d55dd0295d432ade4a26361b2","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.17.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts, choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (4.x = D3 v4).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"d3":"^4.13.0","jquery":"^3.5.1","d3-selection":"^1.3.0","topojson-client":"^3.1.0","d3-selection-multi":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_4.0.0_1782163351608_0.9608234093990469","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"@andyreagan/hedotools","version":"4.5.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@4.5.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"d417925ce9fd2e412b3c003c397ac4062e1070f5","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-4.5.0.tgz","fileCount":18,"integrity":"sha512-S6d2U9lNPhAViIrnjN+T5e8tsmwzqo9IwyaSxzU69ujFgj5rghtErPI33ENZ+qgE8+43PPHWSiPe6Uuk75hr9g==","signatures":[{"sig":"MEQCIDZumktsike3EadAK4hS+woztPriz7PhQ56d4WMzYL+6AiBtSJ43hGd92Fb1Z+LgBUBgM2hHPb4smLcPeldyEW62sQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@4.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160486},"gitHead":"8c6ca5074548a3306db884d5abc8851996e10717","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.17.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (4.x = D3 v4).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"d3":"^4.13.0","jquery":"^3.5.1","topojson-client":"^3.1.0","@andyreagan/d3-shifterator":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_4.5.0_1782165055102_0.7303355982798185","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@andyreagan/hedotools","version":"5.0.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@5.0.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"a8f158b27d9e2c4ca286e80ca020417023e98267","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-5.0.0.tgz","fileCount":18,"integrity":"sha512-+t/IsABy4NMIi8Q1zSl3AWX8MFY7V0Ao0U3BbothDWy619uxYpIZwhBrfllsFSExR+7GngOA/A/FFZSBm7gquw==","signatures":[{"sig":"MEQCIDBl/aW6pwKs/FSyGjPTkcTQBF9vfsQZAW48Ugm8xONNAiAWrUTbKt0o+Gfpf5A/kc+sOWBTFdS4OyCF85kmxwxE1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160498},"gitHead":"123df652f7ca3bfc47bf7297c0962c4225659af2","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.17.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (5.x = D3 v5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"d3":"^5.16.0","jquery":"^3.5.1","topojson-client":"^3.1.0","@andyreagan/d3-shifterator":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_5.0.0_1782180763350_0.5958627165558121","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@andyreagan/hedotools","version":"6.0.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@6.0.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"b33f11178eb6cc706fb65eba9136d839c14e26f8","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-6.0.0.tgz","fileCount":18,"integrity":"sha512-c/zamhktnwDcK/GvfVB8u3UeYZ2AXwzm2iCDflLQENWl/JFl8oiFM8wKyTLQ5NPVqMLgCPFnwZ2Z+jxAxEllHg==","signatures":[{"sig":"MEUCIA4yhVsaJuWQqyojeKGVPJk2kAySOlq/cdWC/RQ3qvBZAiEAqyuCWrGLF1/8a2KM9AncbOV2SHKMZvLDhL2zGsJuS3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160681},"gitHead":"6f16ffeb57f1c1cc00c33603d084c1da33512272","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.17.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (6.x = D3 v6).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"d3":"^6.7.0","jquery":"^3.5.1","topojson-client":"^3.1.0","@andyreagan/d3-shifterator":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_6.0.0_1782181649024_0.004624305228369874","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@andyreagan/hedotools","version":"7.0.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@7.0.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"475422a7162efc263951b5c09e604a4ffa03a347","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-7.0.0.tgz","fileCount":18,"integrity":"sha512-JGvlWHROS7aDiW+M1EEkfitQNKInTYkwKlNGfpcoLnFkQ789XufmwHJkyV3aQrjRqx/RqfyUOAl4sJxFrvegnw==","signatures":[{"sig":"MEUCIGCgIg+HN2HAxwkxji+WvfeH6+GK+j60LXfwJ292qxwbAiEA+M1G5Olt/o10JWRJYLDONdxGmPA6/G/8icV+RnP2CdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@7.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":160681},"gitHead":"dab17b22a4609d9f30c5cf344125cc97a2e2ed24","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.17.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (7.x = D3 v7).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"d3":"^7.9.0","jquery":"^3.5.1","topojson-client":"^3.1.0","@andyreagan/d3-shifterator":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_7.0.0_1782181815904_0.35146980730258104","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"@andyreagan/hedotools","version":"7.1.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@7.1.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"60b813d76fc6000b5dbfc311e2eafea88b7bffaf","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-7.1.0.tgz","fileCount":20,"integrity":"sha512-QoIucu6J7COJs9Es2tv8UXZMWDfQAEEIrkNev37b4eRNVq3yGeFG3mxclzjvbB69HLbgMHhWw2YUFnPzxtSsXw==","signatures":[{"sig":"MEUCIQD+hJ1aEj/vCpbhNBKCIMc/n4y8VgUi0WAPAOrucOQYGwIgHqqyGY2w3lHJvf30YSFw1Uyf93F3jjYs6NC5goaldwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@7.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":414489},"main":"dist/hedotools.js","unpkg":"dist/hedotools-bundle.js","browser":"dist/hedotools.js","gitHead":"b6302f30fd4797a9c796ad6908c76eaee804b81b","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test","prepublishOnly":"npm run build","pretest:browser":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.18.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (7.x = D3 v7).","directories":{},"_nodeVersion":"22.23.0","dependencies":{"d3":"^7.9.0","jquery":"^3.5.1","topojson-client":"^3.1.0","@andyreagan/d3-shifterator":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_7.1.0_1782870647544_0.6253380650060683","host":"s3://npm-registry-packages-npm-production"}},"7.2.0":{"name":"@andyreagan/hedotools","version":"7.2.0","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","_id":"@andyreagan/hedotools@7.2.0","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"dist":{"shasum":"abf52a2357fd2a3592b7a1be78b8f4964258d5f1","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-7.2.0.tgz","fileCount":22,"integrity":"sha512-LZ0fGOQ1zNHEeoWbxXdu2S5LHsqsc/PLCQIATFC12nC2Gs3ypBOJdALq1tayGjNY6RIhEAIQkK4sYIfBHG+RXA==","signatures":[{"sig":"MEUCIQDy4560NGXujacSkkvvMJiB7+gJgsMkl7F7UnLQH3l2pAIgcoRUaRyykxT312R3LseLpTq6fsdMTDy30R5FYQadPUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@7.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":435900},"main":"dist/hedotools.js","unpkg":"dist/hedotools-bundle.js","browser":"dist/hedotools.js","gitHead":"120c4c51a6de71ce4f7758ebf04b6a6903d17a8b","scripts":{"lint":"eslint js","test":"npm run lint && npm run test:unit && npm run test:browser","build":"bash bundle.sh","test:unit":"vitest run --passWithNoTests","test:browser":"playwright test","prepublishOnly":"npm run build","pretest:browser":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/andyreagan/hedotools.git","type":"git"},"_npmVersion":"11.18.0","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (7.x = D3 v7).","directories":{},"_nodeVersion":"22.23.1","dependencies":{"d3":"^7.9.0","jquery":"^3.5.1","topojson-client":"^3.1.0","@andyreagan/d3-shifterator":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","vitest":"3.2.6","@playwright/test":"1.60.0"},"_npmOperationalInternal":{"tmp":"tmp/hedotools_7.2.0_1782872968722_0.31309034692791626","host":"s3://npm-registry-packages-npm-production"}},"7.2.1":{"name":"@andyreagan/hedotools","version":"7.2.1","description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (7.x = D3 v7).","author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","main":"dist/hedotools.js","unpkg":"dist/hedotools-bundle.js","browser":"dist/hedotools.js","scripts":{"lint":"eslint js","build":"bash bundle.sh","test:unit":"vitest run","pretest:browser":"npm run build","test:browser":"playwright test","test":"npm run lint && npm run test:unit && npm run test:browser","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/andyreagan/hedotools.git"},"homepage":"https://github.com/andyreagan/hedotools#readme","bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"devDependencies":{"@playwright/test":"1.61.1","eslint":"^10.5.0","vitest":"4.1.10"},"dependencies":{"@andyreagan/d3-shifterator":"^7.0.1","d3":"^7.9.0","jquery":"^3.5.1","topojson-client":"^3.1.0"},"overrides":{"esbuild":"^0.28.1"},"gitHead":"5535fe5a8fa5e09ae6ab5b5060a4c37b7feb13f1","_id":"@andyreagan/hedotools@7.2.1","_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-4t3JCDgzhpYPiRFaAR9uIuq2Zp67cJhUFdPYHh57z3QbBnaPFMX/mhl2CdLRPHSg9ByvedkGbkGbBd4SW6Jn/Q==","shasum":"47a974f12596b0afa7d149a4812e70ebb5c5ac81","tarball":"https://registry.npmjs.org/@andyreagan/hedotools/-/hedotools-7.2.1.tgz","fileCount":22,"unpackedSize":425854,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@andyreagan%2fhedotools@7.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEVJOWMBZCpAhlge18wJAv1W65OqersrZdbjV9C7R2JdAiEAjQg9YbI+80dSwWTWhN3SIekINZN1ehpuDpSwRC/pEZ0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:331e56ef-95c2-44eb-8ef6-dc0886546221"}},"directories":{},"maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hedotools_7.2.1_1784772016033_0.805763466408614"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T20:17:02.339Z","modified":"2026-07-23T02:00:16.580Z","3.0.0":"2026-06-22T20:17:02.603Z","4.0.0":"2026-06-22T21:22:31.745Z","4.5.0":"2026-06-22T21:50:55.239Z","5.0.0":"2026-06-23T02:12:43.480Z","6.0.0":"2026-06-23T02:27:29.193Z","7.0.0":"2026-06-23T02:30:16.040Z","7.1.0":"2026-07-01T01:50:47.729Z","7.2.0":"2026-07-01T02:29:28.873Z","7.2.1":"2026-07-23T02:00:16.165Z"},"bugs":{"url":"https://github.com/andyreagan/hedotools/issues"},"author":{"name":"Andy Reagan"},"license":"BSD-2-Clause","homepage":"https://github.com/andyreagan/hedotools#readme","repository":{"type":"git","url":"git+https://github.com/andyreagan/hedotools.git"},"description":"A collection of D3.js tools in use at hedonometer.org: word shifts (via @andyreagan/d3-shifterator), choropleth maps, sankey diagrams, a frequency lens, and bar charts. Version tracks the supported D3 major version (7.x = D3 v7).","maintainers":[{"name":"andyreagan","email":"npm@andyreagan.com"}],"readme":"hedotools\n=========\n\n[![CI](https://github.com/andyreagan/hedotools/actions/workflows/ci.yml/badge.svg)](https://github.com/andyreagan/hedotools/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@andyreagan/hedotools)](https://www.npmjs.com/package/@andyreagan/hedotools)\n\nA collection of [D3](https://d3js.org/) tools in use at [hedonometer.org](https://hedonometer.org):\n\n- **shifter** — the interactive wordshift graph, provided by [`@andyreagan/d3-shifterator`](https://www.npmjs.com/package/@andyreagan/d3-shifterator) and exposed here as `hedotools.shifter`.\n- **map** — a choropleth of the US states, coloured by happiness.\n- **sankey** — a rank-flow diagram between two time periods.\n- **lens** — a brushable word-score histogram that filters which words count.\n- **barchart** — a ranked, diverging bar chart of per-state happiness.\n\n## Versioning\n\nThe major version tracks the major version of D3 it supports:\n\n| hedotools | D3  | shifter |\n| --------- | --- | ------- |\n| 3.x       | v3  | bundled (frozen) |\n| 4.x       | v4  | bundled, then 4.5+ via `@andyreagan/d3-shifterator` |\n| 5.x       | v5  | `@andyreagan/d3-shifterator` ^5 |\n| 6.x       | v6  | `@andyreagan/d3-shifterator` ^6 |\n| 7.x       | v7  | `@andyreagan/d3-shifterator` ^7 |\n\nThe current line (7.x) targets **D3 v7**.\n\n## Installation\n\n```\nnpm install @andyreagan/hedotools\n```\n\nThe modules are browser scripts that attach to a global `hedotools` namespace.\n\n### Single-file bundle (recommended)\n\n`dist/hedotools-bundle.js` inlines `@andyreagan/d3-shifterator`, so you only\nneed global `d3` (plus jQuery, and `topojson` for the map). One script tag\ngives you the whole `hedotools.*` namespace:\n\n```html\n<script src=\"https://d3js.org/d3.v7.min.js\"></script>\n<script src=\"https://code.jquery.com/jquery-3.5.1.min.js\"></script>\n<script src=\"https://unpkg.com/topojson-client@3\"></script>\n<script src=\"node_modules/@andyreagan/hedotools/dist/hedotools-bundle.js\"></script>\n```\n\n`dist/hedotools.js` is the same but *without* d3-shifterator inlined — use it\nif you already load the `shifterator` global yourself (load it before this\nfile). Both are produced by `bundle.sh` / `npm run build`.\n\n### Individual sources\n\nOr load the raw sources in order — D3, then the d3-shifterator UMD (it defines\nthe global `shifterator`), then the hedotools sources:\n\n```html\n<script src=\"https://d3js.org/d3.v7.min.js\"></script>\n<script src=\"node_modules/@andyreagan/d3-shifterator/dist/shifterator.js\"></script>\n<script src=\"node_modules/@andyreagan/hedotools/js/hedotools.init.v4.js\"></script>\n<script src=\"node_modules/@andyreagan/hedotools/js/hedotools.shifter.js\"></script>\n<!-- plus whichever dashboard modules you need: -->\n<script src=\"node_modules/@andyreagan/hedotools/js/hedotools.barchart.js\"></script>\n<script src=\"node_modules/@andyreagan/hedotools/js/hedotools.map.js\"></script>\n<script src=\"node_modules/@andyreagan/hedotools/js/hedotools.lens.js\"></script>\n<script src=\"node_modules/@andyreagan/hedotools/js/hedotools.sankey.js\"></script>\n```\n\n`hedotools.map` and `hedotools.sankey` also use\n[`topojson-client`](https://www.npmjs.com/package/topojson-client) (global\n`topojson`); some helpers use jQuery.\n\n## Usage\n\n### shifter\n\n`hedotools.shifter` is a singleton instance of `@andyreagan/d3-shifterator`.\nDrive it with the frequency vectors, word scores (`lens`), and word list:\n\n```js\nhedotools.shifter.shift(refF, compF, lens, words);\nhedotools.shifter\n    .setfigure(d3.select(\"#shift01\"))\n    .setText([\"Why comparison is happier than reference:\"])\n    .plot();\n```\n\nSee the [d3-shifterator README](https://github.com/andyreagan/d3-shifterator)\nfor the full shifter API and a [live Observable example](https://observablehq.com/@andyreagan/d3-shifterator-v4).\n\nEach module is an **invoked singleton** on the `hedotools` namespace (like\n`hedotools.shifter`) — use it directly, don't call it as a factory:\n\n### barchart\n\n```js\nhedotools.barchart.setfigure(d3.select(\"#barchart\"));\nhedotools.barchart.setdata(data, geodata); // data: per-state values; geodata: geojson w/ properties.name\nhedotools.barchart._figheight(400);\nhedotools.barchart.plot();\n```\n\n### map\n\n```js\nhedotools.map.setfigure(d3.select(\"#map\"));\nhedotools.map.setdata(geoJson);        // us-states topojson\nhedotools.map.plot();\n```\n\n### lens\n\n```js\nhedotools.lens.setfigure(d3.select(\"#lens\"));\nhedotools.lens.setdata(lens);          // array of word-happiness scores\nhedotools.lens.plot();\n```\n\nThe lens uses `hedotools.urllib` (bundled) to persist its range in the URL, and\nits brush-move callback recomputes state happiness via `hedotools.computeHapps`\n(also bundled) before redrawing the map/shift. Load the full bundle, or the\nindividual sources with `urllib` and `computeHapps` before `lens`.\n\n### sankey\n\n```js\nhedotools.sankey.setfigure(d3.select(\"#sankey\"));\nhedotools.sankey.setdata(oldlist, newlist, stateNames); // two happiness vectors + names\nhedotools.sankey.plot();\n```\n\n`hedotools.nonsankey.js` is an alternate implementation (the cities-page\nvariant) that **also** defines `hedotools.sankey` — load it *instead of*\n`hedotools.sankey.js`, never alongside. It ships as a loose file and is not in\nthe default bundle.\n\n> **Note:** unlike the shifter, the dashboard modules were written for the\n> hedonometer.org pages and read page-level globals (e.g. `allData`, `lens`,\n> `words`, `shiftRef`/`shiftComp`, and the url encoders) in their interaction\n> handlers, where hovering/clicking drives a linked shift. They render\n> standalone from `setdata(...).plot()`, but the hover→shift wiring (and\n> barchart's mousedown click-to-open) expects those globals to be present. See\n> `tests/browser/` for working fixtures.\n\n## Developing\n\n```\nnpm install\nnpm test          # lint + unit + Playwright browser tests\nnpm run lint\nnpm run test:browser\nnpm run build     # bundle.sh -> dist/hedotools.js + dist/hedotools-bundle.js\n```\n\nBrowser tests live in `tests/browser/`: each module loads as a `<script>` with\nreal D3 and is asserted against the SVG it renders (including the v6\n`(event, d)` interaction handlers).\n\nReleases publish to npm automatically via GitHub Actions\n([Trusted Publishing / OIDC](.github/workflows/publish.yml)) when a GitHub\nRelease is created:\n\n```\n# bump \"version\" in package.json, commit\ngit tag vX.Y.Z\ngit push origin master --tags\ngh release create vX.Y.Z   # -> CI runs npm test, then npm publish\n```\n\n## License\n\n[BSD-2-Clause](LICENSE)\n","readmeFilename":"README.md"}