{"_id":"@briantbailey/dom-once","_rev":"11-338e393933a3706515f60f19990cf66e","name":"@briantbailey/dom-once","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.1":{"name":"@briantbailey/dom-once","version":"0.1.1","author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.1.1","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"013d2a634fcc0cdcd0dfb6d580eeb8e80b781ccb","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.1.1.tgz","fileCount":7,"integrity":"sha512-owcjpuS2QanzzBa96c6lz5TDiuaFdm1U20fhbw43S7BRMTsHhCG1YYgpLGS9Q6EyfvAr/GJNo2Qszyx/iM3Omg==","signatures":[{"sig":"MEQCIEnvUGKgIAxIrGP/NAP9/NehXuYte1OCV1RMYG3WnS9JAiBdcgjJBgaTC/fNpPyR7BbkFgsovpWmmI6FIUmhW9eekQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50755},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.1.1.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":"./dist/dom-once.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run build\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","typecheck":"tsc --noEmit","publish:npmjs":"pnpm publish"},"_npmUser":{"name":"briantbailey","email":"briantbailey@gmail.com"},"_resolved":"/private/var/folders/40/2723y8q512n5dk_8b7_r_wg00000gn/T/ce2479bbf27175aaccd3125bf8f9b54c/briantbailey-dom-once-0.1.1.tgz","_integrity":"sha512-owcjpuS2QanzzBa96c6lz5TDiuaFdm1U20fhbw43S7BRMTsHhCG1YYgpLGS9Q6EyfvAr/GJNo2Qszyx/iM3Omg==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"10.9.3","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.1.1_1761583600825_0.1991220046314397","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@briantbailey/dom-once","version":"0.1.2","author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.1.2","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"19ce1d814e50f084d957ba22a50318d8659aba36","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.1.2.tgz","fileCount":7,"integrity":"sha512-weQINcd+gtW7nolBU/y/aAOzKuAHbruiH7HTebvSRsNHuU61biEs8ltUJLKW5i9KbCk3ClzyaNuxuO6tuOdIig==","signatures":[{"sig":"MEYCIQCu4n30DjVkwfh5zC54jpL+s4Aa0u9PeehVT6OYakY6vAIhAPj9+FG2pSDxAks2FQpRUbSzbN1GMqIrI5Xe4f4K81Mi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50755},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.1.2.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":"./dist/dom-once.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run build\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","typecheck":"tsc --noEmit","publish:npmjs":"pnpm publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/c7281438ff93ecc72f687466cbeccd2d/briantbailey-dom-once-0.1.2.tgz","_integrity":"sha512-weQINcd+gtW7nolBU/y/aAOzKuAHbruiH7HTebvSRsNHuU61biEs8ltUJLKW5i9KbCk3ClzyaNuxuO6tuOdIig==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.1","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.1.2_1761849864335_0.09263280010282449","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@briantbailey/dom-once","version":"0.2.0","author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.2.0","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"291c9604c49feb8edf1216ba2e03c0fff048969a","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.2.0.tgz","fileCount":7,"integrity":"sha512-3FqvQcf8YJEvwmNYJrD5Pe6P4FJL2pnVFlDhL8Egxdf1ezAWzo2AkDPGaEHWbwy9TIrfbd9yCOr+i74GFf/bww==","signatures":[{"sig":"MEUCIQCKBqZtlapzAbe+CJOLzYgK4T+TcSrjHDTc3X3mOnlcRgIgONufelN82g1zuIm2zU1VxCMxiWBWtVoNix9Ej/n9jFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50794},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.2.0.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":"./dist/dom-once.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run build\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/25e242ad65769d37f3743ce2a958d4a4/briantbailey-dom-once-0.2.0.tgz","_integrity":"sha512-3FqvQcf8YJEvwmNYJrD5Pe6P4FJL2pnVFlDhL8Egxdf1ezAWzo2AkDPGaEHWbwy9TIrfbd9yCOr+i74GFf/bww==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.1","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.2.0_1762401954305_0.3503301483379344","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@briantbailey/dom-once","version":"0.3.0","author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.3.0","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"49a04cf707dc5c4429d5d991de5bc0c4a39cb130","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.3.0.tgz","fileCount":7,"integrity":"sha512-iHeSSUgOFGhcd7d4gqqMwHlUc7CGO8ZUWgMvF5OeusFBEZZKuVD65SBKXk0ltiUGcKM9BF3G0iMZf0b12DA6SA==","signatures":[{"sig":"MEUCIQCQGQ1dRPk+vyP5X3t+6h0WX+G7qhGkndDtShlIzZ/wAgIga9+6CIs6m4IQ/WfKB0ZQtmB5pwGGEF1Cz6gwbfSFDj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53196},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.3.0.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":"./dist/dom-once.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run build\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/b932b098de976898e3bf5468c08b7970/briantbailey-dom-once-0.3.0.tgz","_integrity":"sha512-iHeSSUgOFGhcd7d4gqqMwHlUc7CGO8ZUWgMvF5OeusFBEZZKuVD65SBKXk0ltiUGcKM9BF3G0iMZf0b12DA6SA==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.1","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.3.0_1762919048860_0.1968702804468867","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@briantbailey/dom-once","version":"0.3.1","author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.3.1","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"733286182e8f60b82b341496d989cd7b899b1354","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.3.1.tgz","fileCount":7,"integrity":"sha512-xPyDXoXOWLvvaYbX07zUekKhwChQ+89IxAva13+p9B+dfHy1h40SXWs2CZVRJv8rteQMQGGIND7rcHuLkIVx/w==","signatures":[{"sig":"MEQCIH16PDL2EhBtal2YDuQIMGu4nRE9XAro3W5l2A2aeAj/AiBJM7q1mlb6g2m6HFqrculxTn3RSs6X86KWeottAyqe2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53374},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.3.1.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":"./dist/dom-once.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run release:script\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","changelog":"conventional-changelog -i CHANGELOG.md -s -r 1","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish","release:script":"pnpm run build && pnpm run changelog"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/8ee5cbd8822f92c0d831c8e7c0987aff/briantbailey-dom-once-0.3.1.tgz","_integrity":"sha512-xPyDXoXOWLvvaYbX07zUekKhwChQ+89IxAva13+p9B+dfHy1h40SXWs2CZVRJv8rteQMQGGIND7rcHuLkIVx/w==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4","conventional-changelog":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.3.1_1763328991283_0.06255047855725371","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@briantbailey/dom-once","version":"0.3.2","author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.3.2","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"86e8754dac5d11c030c305bc64f639499146ff48","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.3.2.tgz","fileCount":7,"integrity":"sha512-YF9arIzScaLWAYpjDBbWzJ/xKU06ywVGUF0iW4jcJ4NmiHnNhgtUwVE+M5+w5RTg5dyVNnNHt+Iwn1unlEsYyw==","signatures":[{"sig":"MEYCIQCfvwfyNOH3IufPRrnhAfizg93GFfPwnaaer7JJajnfcAIhAKvaG/53wZH7r4Sz99EgtXjZTZ3XESVVUHKiKTAD8c3B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53457},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.3.2.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":"./dist/dom-once.js","./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run release:script\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","changelog":"conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 1","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish","release:script":"pnpm run build && pnpm run changelog"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/ba7d3ea4e36afc368da8fda54b788a99/briantbailey-dom-once-0.3.2.tgz","_integrity":"sha512-YF9arIzScaLWAYpjDBbWzJ/xKU06ywVGUF0iW4jcJ4NmiHnNhgtUwVE+M5+w5RTg5dyVNnNHt+Iwn1unlEsYyw==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4","conventional-changelog":"^7.1.1","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.3.2_1763330129619_0.2373343286049272","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@briantbailey/dom-once","version":"0.4.0","keywords":["dom","once","initialization","idempotent","browser","utility","data-attribute","spa","dynamic-content","partial-render","re-render","progressive-enhancement"],"author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.4.0","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"dc3b9db3c656aaa02d89cd56da408b09df9c9d0a","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.4.0.tgz","fileCount":7,"integrity":"sha512-pU9Oxoot46UA2jSAOtUsApGiDUGHtOK6kYdjFEkuJXOkT8DbRDWa4Qg+kov2mvoiu1HVUOsfZyM/wjkCHjYxQA==","signatures":[{"sig":"MEUCIGxei9OjKcPGvNoP+RutLOPtPzIYWSNkWpZf2+HdYoB8AiEAoerwqMQsbW4JESch2jlSy+TThpduOLELNqHgNsXQW9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55534},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.4.0.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/dom-once.d.ts","import":"./dist/dom-once.js","default":"./dist/dom-once.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run release:script\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","changelog":"conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 1","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish","release:script":"pnpm run build && pnpm run changelog"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/ac5d010c2b6b0df4d589941d03f1b256/briantbailey-dom-once-0.4.0.tgz","_integrity":"sha512-pU9Oxoot46UA2jSAOtUsApGiDUGHtOK6kYdjFEkuJXOkT8DbRDWa4Qg+kov2mvoiu1HVUOsfZyM/wjkCHjYxQA==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"sideEffects":["./dist/dom-once.iife.min.js"],"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4","conventional-changelog":"^7.1.1","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.4.0_1763344662096_0.7273668173666152","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@briantbailey/dom-once","version":"0.4.1","keywords":["dom","once","initialization","idempotent","browser","utility","data-attribute","spa","dynamic-content","partial-render","re-render","progressive-enhancement"],"author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.4.1","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"cd12038ecfc07a25821c4b8fdeafed4599965540","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.4.1.tgz","fileCount":7,"integrity":"sha512-RaWF0Oc6k9MvoDKP/L3xZ9sKiBYPBXf+kRizdPmJGYnGm73COUvPCbi4CPL2VRxWJabKGjFBH5TQApUQw6Hchg==","signatures":[{"sig":"MEUCIQC1TFDCXlbCSRm68i2oSR+IZF5gGwT0DE2lx/5V0HaRgAIgfYNnNLk8jnc6pCWysZhJ3RGiIdEpd5fQfen5TWQ+9MM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55993},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.4.1.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/dom-once.d.ts","import":"./dist/dom-once.js","default":"./dist/dom-once.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run release:script\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","changelog":"conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 1","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish","release:script":"pnpm run build && pnpm run changelog"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/913b83dcf8d9d4ca01d5f2d625f1d94a/briantbailey-dom-once-0.4.1.tgz","_integrity":"sha512-RaWF0Oc6k9MvoDKP/L3xZ9sKiBYPBXf+kRizdPmJGYnGm73COUvPCbi4CPL2VRxWJabKGjFBH5TQApUQw6Hchg==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"sideEffects":["./dist/dom-once.iife.min.js"],"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4","conventional-changelog":"^7.1.1","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.4.1_1763351356672_0.13902869872807022","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@briantbailey/dom-once","version":"0.4.2","keywords":["dom","once","initialization","idempotent","browser","utility","data-attribute","spa","dynamic-content","partial-render","re-render","progressive-enhancement"],"author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.4.2","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"ffc077b5395e8366631502189738225b1ce593b7","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.4.2.tgz","fileCount":7,"integrity":"sha512-PEiDJGjCOJErF2Rkmv18H2q23BFUu2q0VzkiQ4jOqyKIT9M0au+pUI1zNQMzTcTU9n15JoQ3JdNQNOoKt3un5w==","signatures":[{"sig":"MEUCIBNVzoXL5o39LaPn2nqJw04zWvi5vxulbZvnoozuckvgAiEAnyeSOeQiSdXJDA6reDNvGDkIKqsBWD+nKvxGUdJQuxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56059},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.4.2.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/dom-once.d.ts","import":"./dist/dom-once.js","default":"./dist/dom-once.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run release:script\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","changelog":"conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 1","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish","release:script":"pnpm run build && pnpm run changelog"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/c9e42ae8edfdf8118f4e82602b185893/briantbailey-dom-once-0.4.2.tgz","_integrity":"sha512-PEiDJGjCOJErF2Rkmv18H2q23BFUu2q0VzkiQ4jOqyKIT9M0au+pUI1zNQMzTcTU9n15JoQ3JdNQNOoKt3un5w==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"sideEffects":["./dist/dom-once.iife.min.js"],"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.1","eslint":"^9.38.0","tsdown":"^0.11.13","vitest":"^3.2.4","globals":"^16.4.0","happy-dom":"^19.0.2","@eslint/js":"^9.38.0","typescript":"^5.9.3","@types/node":"^22.18.12","typescript-eslint":"^8.46.2","@vitest/coverage-v8":"3.2.4","conventional-changelog":"^7.1.1","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.4.2_1763352084358_0.989837308071392","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@briantbailey/dom-once","version":"0.4.4","keywords":["dom","once","initialization","idempotent","browser","utility","data-attribute","spa","dynamic-content","partial-render","re-render","progressive-enhancement"],"author":{"name":"Brian T. Bailey"},"license":"MIT","_id":"@briantbailey/dom-once@0.4.4","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"dist":{"shasum":"f5e83da6e1633f7aeddd15f97f5ff4fb16bab843","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-0.4.4.tgz","fileCount":7,"integrity":"sha512-f8PSlpv13VSkm5P52x5Qfm8fhpvw5Drvr6nQOOS+Wdlk/oTUPv7ag6BcKOdEUzs/f4wn5Xl0r96/mmq7K9rWbQ==","signatures":[{"sig":"MEQCIHYmVSb3/Y/ktVGjv17+jW5hIXb9X5REouxUdynm8lY1AiB8RX5zAwcmZ5le7es0YiakhvGfnmqpX/eRwUVU+GCOcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55367},"main":"./dist/dom-once.js","type":"module","_from":"file:briantbailey-dom-once-0.4.4.tgz","types":"./dist/dom-once.d.ts","module":"./dist/dom-once.js","engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/dom-once.d.ts","import":"./dist/dom-once.js","default":"./dist/dom-once.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsdown --watch","lint":"eslint","test":"vitest","build":"tsdown","check":"eslint && tsc --noEmit && vitest run","release":"bumpp --all --execute \"pnpm run release:script\"","test:ci":"vitest run","coverage":"vitest run --coverage","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","changelog":"conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 1","typecheck":"tsc --noEmit","publish:jsr":"pnpx jsr publish","publish:npmjs":"pnpm publish","release:script":"pnpm run build && pnpm run changelog"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"_resolved":"/tmp/1c4aa7432dd569d5a46c9c7e96852e89/briantbailey-dom-once-0.4.4.tgz","_integrity":"sha512-f8PSlpv13VSkm5P52x5Qfm8fhpvw5Drvr6nQOOS+Wdlk/oTUPv7ag6BcKOdEUzs/f4wn5Xl0r96/mmq7K9rWbQ==","repository":{"url":"git+https://github.com/briantbailey/dom-once.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple utilities to select and manipulate DOM elements only once.","directories":{},"sideEffects":["./dist/dom-once.iife.min.js"],"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.6.1","bumpp":"^10.3.2","eslint":"^9.39.2","tsdown":"^0.18.1","vitest":"^4.0.16","globals":"^16.5.0","happy-dom":"^20.0.11","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.3","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"4.0.16","conventional-changelog":"^7.1.1","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-once_0.4.4_1766178643173_0.5346258193562665","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@briantbailey/dom-once","version":"1.0.0","description":"Simple utilities to select and manipulate DOM elements only once.","keywords":["dom","once","initialization","idempotent","browser","utility","data-attribute","spa","dynamic-content","partial-render","re-render","progressive-enhancement"],"type":"module","license":"MIT","homepage":"https://github.com/briantbailey/dom-once#readme","bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"repository":{"type":"git","url":"git+https://github.com/briantbailey/dom-once.git"},"author":{"name":"Brian T. Bailey"},"engines":{"node":">=18.12.0","pnpm":">=9.0.0"},"sideEffects":["./dist/dom-once.iife.min.js"],"main":"./dist/dom-once.js","module":"./dist/dom-once.js","types":"./dist/dom-once.d.ts","exports":{".":{"types":"./dist/dom-once.d.ts","import":"./dist/dom-once.js","default":"./dist/dom-once.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"devDependencies":{"@eslint/js":"^9.39.2","@types/node":"^25.0.3","@vitest/coverage-v8":"4.0.16","bumpp":"^10.3.2","conventional-changelog":"^7.1.1","conventional-changelog-conventionalcommits":"^9.1.0","eslint":"^9.39.2","globals":"^16.5.0","happy-dom":"^20.0.11","jiti":"^2.6.1","tsdown":"^0.18.1","typescript":"^5.9.3","typescript-eslint":"^8.50.0","vitest":"^4.0.16"},"scripts":{"check":"eslint && tsc --noEmit && vitest run","prebuild":"node ./scripts/generate-version.js && eslint && tsc --noEmit && vitest run","build":"tsdown","dev":"tsdown --watch","test":"vitest","test:ci":"vitest run","lint":"eslint","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","release:script":"pnpm run build && pnpm run changelog","release":"bumpp --all --execute \"pnpm run release:script\"","publish:npmjs":"pnpm publish","publish:jsr":"pnpx jsr publish","changelog":"conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 1"},"_id":"@briantbailey/dom-once@1.0.0","_integrity":"sha512-sedxxtE6ZyFCzvzdfI9PFKBYeAgK1V7FS0X2XB7R7CorYD/66b3VA7UPartfpSAu6bQJGqcZjId2IXIswjakUQ==","_resolved":"/tmp/efd3bc476336ae97ea948f5c29decfbb/briantbailey-dom-once-1.0.0.tgz","_from":"file:briantbailey-dom-once-1.0.0.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-sedxxtE6ZyFCzvzdfI9PFKBYeAgK1V7FS0X2XB7R7CorYD/66b3VA7UPartfpSAu6bQJGqcZjId2IXIswjakUQ==","shasum":"bc5c8c1cbee70f892bd57b4c8cb8f209873cf250","tarball":"https://registry.npmjs.org/@briantbailey/dom-once/-/dom-once-1.0.0.tgz","fileCount":7,"unpackedSize":55562,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@briantbailey%2fdom-once@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICOWs2ZIrqIKz1612fwWrV2oTkRweljTh5maTjH3AUHGAiEA+yztyFY4qpkH7qEvF5K+4JscuTpD8phoHLXOdiMyQEM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85d034e5-e815-4cfc-a340-09dd84b58525"}},"directories":{},"maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dom-once_1.0.0_1766770423064_0.5908854708640854"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-27T16:46:40.690Z","modified":"2025-12-26T17:33:43.549Z","0.1.1":"2025-10-27T16:46:41.018Z","0.1.2":"2025-10-30T18:44:24.532Z","0.2.0":"2025-11-06T04:05:54.501Z","0.3.0":"2025-11-12T03:44:09.064Z","0.3.1":"2025-11-16T21:36:31.488Z","0.3.2":"2025-11-16T21:55:29.838Z","0.4.0":"2025-11-17T01:57:42.284Z","0.4.1":"2025-11-17T03:49:16.863Z","0.4.2":"2025-11-17T04:01:24.592Z","0.4.4":"2025-12-19T21:10:43.317Z","1.0.0":"2025-12-26T17:33:43.209Z"},"bugs":{"url":"https://github.com/briantbailey/dom-once/issues"},"author":{"name":"Brian T. Bailey"},"license":"MIT","homepage":"https://github.com/briantbailey/dom-once#readme","keywords":["dom","once","initialization","idempotent","browser","utility","data-attribute","spa","dynamic-content","partial-render","re-render","progressive-enhancement"],"repository":{"type":"git","url":"git+https://github.com/briantbailey/dom-once.git"},"description":"Simple utilities to select and manipulate DOM elements only once.","maintainers":[{"name":"briantbailey","email":"briantbailey@gmail.com"}],"readme":"# @briantbailey/dom-once\n\n[![npm version](https://img.shields.io/npm/v/@briantbailey/dom-once.svg)](https://www.npmjs.com/package/@briantbailey/dom-once)\n[![Bundle Size](https://img.shields.io/bundlephobia/minzip/@briantbailey/dom-once)](https://bundlephobia.com/package/@briantbailey/dom-once)\n[![JSR](https://jsr.io/badges/@briantbailey/dom-once)](https://jsr.io/@briantbailey/dom-once)\n[![TypeScript](https://img.shields.io/badge/TypeScript-source-3178c6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Types](https://img.shields.io/npm/types/@briantbailey/dom-once)](https://www.npmjs.com/package/@briantbailey/dom-once)\n[![ESM Only](https://img.shields.io/badge/ESM-only-3178c6?logo=javascript&logoColor=white)](https://nodejs.org/api/esm.html)\n[![Tree Shakeable](https://img.shields.io/badge/tree-shakeable-success?logo=webpack)](https://webpack.js.org/guides/tree-shaking/)\n[![CI](https://github.com/briantbailey/dom-once/workflows/CI/badge.svg)](https://github.com/briantbailey/dom-once/actions)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nSimple utilities to select and manipulate DOM elements only once.\n\nRun your DOM initialization code safely, even when called multiple times. Ideal for SPAs and dynamic DOM updates. Framework-agnostic; safe after re-renders or partial updates.\n\n```ts\n// Initialize buttons only once, even if called multiple times\ndoOnce('btn-init', '.btn', (btn) => btn.classList.add('ready'));\n```\n\n## Features\n\n- **Zero dependencies** — Pure DOM utilities, no external libraries\n- **Enforces idempotent initialization** — Prevents re-execution on already-processed elements\n- **Flexible selectors** — Works with CSS strings, Elements, NodeLists, or arrays\n- **Customizable tracking** — Use any data attribute name\n- **Framework-agnostic** — Pure JavaScript, works anywhere the DOM exists\n- **Full TypeScript support** — Complete type definitions included\n- **Tree-shakeable ESM** — Modern bundlers can eliminate unused code\n- **Tiny footprint** — [Check current bundle size](https://bundlephobia.com/package/@briantbailey/dom-once)\n\n## How It Works\n\nTracks processed elements using a data attribute (default: `data-dom-once`) with space-delimited tokens:\n\n```html\n<button data-dom-once=\"btn-init tooltip analytics\">Click me</button>\n```\n\nEach once id marks that a specific operation has been performed, preventing duplicate initialization even when your code runs multiple times.\n\n**OnceId Rules:**\n- Valid characters: letters, numbers, underscores (`_`), and hyphens (`-`)\n- Examples: `btn-init`, `tooltip_setup`, `v2`\n- Avoid spaces (tokens are space-delimited)\n- Case-sensitive: `myId` and `myid` are different\n\n## Installation\n\n### Package Managers\n\n**npm / pnpm / yarn:**\n\n```bash\nnpm install @briantbailey/dom-once\n```\n\n**JSR (Node or Deno):**\n\n```bash\nnpx jsr add @briantbailey/dom-once\n# or\ndeno add @briantbailey/dom-once\n```\n\n### CDN\n\n**esm.sh:**\n\nImport directly as ESM in browsers or Deno:\n\n```\nhttps://esm.sh/@briantbailey/dom-once\n```\n\n**unpkg:**\n\nAccess package files directly:\n\n```\nhttps://unpkg.com/@briantbailey/dom-once@latest/dist/dom-once.js          (ESM)\nhttps://unpkg.com/@briantbailey/dom-once@latest/dist/dom-once.iife.min.js (IIFE)\n```\n\n**GitHub Releases:**\n\nDownload the IIFE bundle directly from [releases](https://github.com/briantbailey/dom-once/releases).\n\n## Usage\n\n### Node / Deno (ESM)\n\n```ts\nimport { doOnce, querySelectorOnce, removeOnce, findOnce, version } from '@briantbailey/dom-once';\n\ndoOnce('btn-init', '.btn', (btn) => {\n  btn.classList.add('initialized');\n});\n```\n\nNote: This package is ESM-only. Use `import` in Node and bundlers; `require()` is not supported.\n\n### Browser (ESM via CDN)\n\n**Static import:**\n\n```html\n<script type=\"module\">\n  import { doOnce } from 'https://esm.sh/@briantbailey/dom-once';\n  \n  doOnce('btn-init', '.btn', (btn) => btn.classList.add('ready'));\n</script>\n```\n\n**Dynamic import:**\n\n```html\n<script>\n  import('https://esm.sh/@briantbailey/dom-once')\n    .then(({ doOnce }) => {\n      doOnce('btn-init', '.btn', (btn) => btn.classList.add('ready'));\n    });\n</script>\n```\n\n### Browser (IIFE)\n\nThe IIFE bundle exposes everything on the global `domOnce` object:\n\n```html\n<script src=\"https://unpkg.com/@briantbailey/dom-once@latest/dist/dom-once.iife.min.js\"></script>\n<script>\n  const { doOnce, querySelectorOnce, removeOnce, findOnce, version } = window.domOnce;\n  \n  doOnce('btn-init', '.btn', (btn) => btn.classList.add('ready'));\n</script>\n```\n\n## API\n\n### querySelectorOnce(onceId, selector[, options]) → Element[]\n\nQueries for elements using a CSS selector and marks them with a once id.\n\n- `onceId`: `string` — Unique identifier (alphanumeric, underscore, hyphen)\n- `selector`: `string` — CSS selector string\n- `options`: `object` (optional)\n  - `onceAttribute`: `string` — Data attribute name (default: `'data-dom-once'`)\n  - `context`: `Document | DocumentFragment | Element` — Query context (default: `document`)\n- **Returns**: `Element[]` — Elements that matched the selector AND didn't already have the once id (i.e., newly marked). Elements already marked are excluded.\n\n---\n\n### doOnce(onceId, selector, callback[, options]) → Element[]\n\nExecutes a callback once per element, marking elements to prevent re-execution.\n\n- `onceId`: `string` — Unique identifier\n- `selector`: `string | Element | Iterable<Element> | ArrayLike<Element>` — Elements to process\n- `callback`: `(element: Element) => void` — Function to execute on each unmarked element\n- `options`: `object` (optional)\n  - `onceAttribute`: `string` — Data attribute name (default: `'data-dom-once'`)\n  - `context`: `Document | DocumentFragment | Element` — Query context (default: `document`)\n- **Returns**: `Element[]` — Elements that were newly processed (matched the selector and didn't already have the once id). Elements already marked are excluded.\n\n---\n\n### removeOnce(onceId, selector[, options]) → Element[]\n\nRemoves a once id from elements.\n\n- `onceId`: `string` — Unique identifier to remove\n- `selector`: `string | Element | Iterable<Element> | ArrayLike<Element>` — Elements to process\n- `options`: `object` (optional)\n  - `onceAttribute`: `string` — Data attribute name (default: `'data-dom-once'`)\n  - `context`: `Document | DocumentFragment | Element` — Query context (default: `document`)\n- **Returns**: `Element[]` — Only elements that actually had the once id removed (matched the selector AND had the once id). Unmarked elements are excluded.\n\n---\n\n### findOnce(onceId[, options]) → Element[]\n\nFinds all elements marked with a specific once id (read-only).\n\n- `onceId`: `string` — Unique identifier to search for\n- `options`: `object` (optional)\n  - `onceAttribute`: `string` — Data attribute name (default: `'data-dom-once'`)\n  - `context`: `Document | DocumentFragment | Element` — Search context (default: `document`)\n- **Returns**: `Element[]` — Elements marked with the once id\n\n---\n\n### version\n\n`string` — Library version (e.g., \"1.0.0\")\n\n## Development\n\nThis project uses **pnpm** for package management.\n\n```bash\npnpm install          # Install dependencies\npnpm run check        # Lint, typecheck, and test\npnpm run build        # Build for production\npnpm run test         # Run tests\n```\n\n## License\n\nMIT © 2025 [Brian T. Bailey](https://github.com/briantbailey)\n","readmeFilename":"README.md"}