{"_id":"dom-locator-guard","_rev":"33-7bfd35a27b58f790daa4582cc599e201","name":"dom-locator-guard","dist-tags":{"latest":"1.0.7"},"versions":{"0.1.0":{"name":"dom-locator-guard","version":"0.1.0","_id":"dom-locator-guard@0.1.0","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"dist":{"shasum":"013d83437896eb5ae3b62e64467e9cac2a56acea","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.1.0.tgz","fileCount":45,"integrity":"sha512-TNDZuVbtVqtiPk5Z7QxkyYtDnfCx2+/EjGm3BObh7PBTMnXx8vl1Ku6XEf/eWgIoM6ePmvy+jss6v8qaZOA6zQ==","signatures":[{"sig":"MEQCIAdEcFh2vc26VmLRIas3LnpCc6CF+IjGpMBlH6nXK2JrAiAeiXW0jvzyUkcBX2msPoVvsxXBkgtzQKe4pxIGgFP5vQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175359},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.1.0_1773736358867_0.7973655736906835","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"dom-locator-guard","version":"0.1.1","_id":"dom-locator-guard@0.1.1","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"dist":{"shasum":"d5d73be6bcef713189bf17ab87884202abdbe402","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.1.1.tgz","fileCount":45,"integrity":"sha512-V8cdpuE2ccRNRddugEyUKpi6diFE3rhgJyqyjaToHfX7UQ0KU/Z+ZVVrOpNGQHSdwdOGTtYBbqFF3vyt0iYJdw==","signatures":[{"sig":"MEQCIFuVKu+g8SzSY70NnFFiU9F+ccGwdxcw2y1KdsV4CJL/AiA64TutdgVz7Wz52fbkeK4IdYb0FKIOhgY2o6rzxQ/2IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175360},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.1.1_1773736677769_0.9946896919923371","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"dom-locator-guard","version":"0.2.0","_id":"dom-locator-guard@0.2.0","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"a9c304b20ef23da0d53b33264bfda8b583ff945a","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.0.tgz","fileCount":50,"integrity":"sha512-XhkvTxjF1dcmtXij72XezU3pL8zrfPysya+Lw1aqTQL3pSzML9elDJjviXsNFWu5VaUv0YIwzHRb3UqkOVEZgw==","signatures":[{"sig":"MEUCIGDPwI71QVg8Ze8WAT+aYNe9VxjdUg1cWU/nmm02Ru0eAiEA0+zdo6eApXlTYxS8o+TXPDaGAqAJKbN2Y5W0fekXZRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197138},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"363cd63b3b484f4aeb613a987cd9caa255004ddb","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.0_1773750854397_0.9061280723840657","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"dom-locator-guard","version":"0.2.1","_id":"dom-locator-guard@0.2.1","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"locator-guard":"dist/cli.js"},"dist":{"shasum":"7074ea33b141a80014f61f98a82c1f8adb54ab97","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.1.tgz","fileCount":50,"integrity":"sha512-ynZGUXT07SV/NdLd5Sw06ChkrrmjamuxnTJ5k26xnhegqO6tpebgYaQe5wnqdOuu/dCSAe1FVLPwsP6pV2zzpw==","signatures":[{"sig":"MEUCID92tl7qJ1vpcnlzN5462+dzrZ8ZLTng1+LZ7NIWSCkBAiEAjDCV/MXiNIXU+Ny6zdDDDNlj57abnQSEz1hlOHEetr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197149},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"363cd63b3b484f4aeb613a987cd9caa255004ddb","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.1_1773751111935_0.7871068247067072","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"dom-locator-guard","version":"0.2.2","_id":"dom-locator-guard@0.2.2","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"caf47cfe47185982f55266c5c908664f77586102","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.2.tgz","fileCount":50,"integrity":"sha512-vXMrOiYkxH4hHV54+iBR7Xc401G5Fs8AdFqLVwLbJ4YwJU7GAZGswKzUNgdVyNJJhJrTvdRFAuWAidSTV0oNOg==","signatures":[{"sig":"MEQCIEw8awXx/8rogTGCngRRb1yHGbOweKtPOva3LCaZpgp/AiAAyYgocSRzGKwNItipz/yghfoQZKi0nRGb37qebvaHEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197202},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"363cd63b3b484f4aeb613a987cd9caa255004ddb","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.2_1773751279750_0.3848696084789469","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"dom-locator-guard","version":"0.2.3","_id":"dom-locator-guard@0.2.3","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"016e37df0e09da06fe4af289ece1ba71d416ccc6","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.3.tgz","fileCount":52,"integrity":"sha512-wN3NoLx7g5UVWfHO2ORailOpX8GMa/lXYyb5ExebVwlAE8if0kxqoa/9U1/VYJOb59x1J1BS/rM7lS+UkMnLKw==","signatures":[{"sig":"MEUCIC/mFvoBKA1UZuHUsfu9/JT6y0U3qETSHdLuj4k1bkbGAiEAiilKMJhL0+FkJ7GslKUxkTaNwQJoJrGVXdpmq/cCiLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246133},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"363cd63b3b484f4aeb613a987cd9caa255004ddb","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.3_1773752087812_0.20047355925675991","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"dom-locator-guard","version":"0.2.4","_id":"dom-locator-guard@0.2.4","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"8adcfa9ee493b8086004589b5d893e33e18fcc6d","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.4.tgz","fileCount":52,"integrity":"sha512-5twmMXD04SStObLUG4GwHiwhQwyx/WM3LQvJVwz0VosTj15UB3b5K83kP14JEgMgJo+6n2XTdGnsbR3Q/h0Npg==","signatures":[{"sig":"MEYCIQCg1dmGiSa9BO0ECRVAc+FNOfXqEbnHiP4nAs3pgcXITgIhAP52+rwPnjt7K0I5+sgI82YekZSoWf6s6IvQtrc4vuuo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246018},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"31831971c07c9b584e3f1affe7b69f120bd4eb06","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.4_1773759523230_0.5610818184479902","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"dom-locator-guard","version":"0.2.5","_id":"dom-locator-guard@0.2.5","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"71423fc9cf90557377ce0cdda9760a9644ceac24","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.5.tgz","fileCount":52,"integrity":"sha512-QUydQnLavEFlXlydVcc+hSJWJ9Dpb1eCdbx4NrJ5xZIymLbeQLov1HmKIoP71ipyD4L6FtejzIJo+7HgstmQkw==","signatures":[{"sig":"MEYCIQDyueQZsI7ygK4zaC47D1I1E8vfZPzjhrJvsdCyFpbylwIhAP8+ilQXWSai6Ag4jUs7SIDANPxRmSw8t5dsZ1c0zYEX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246050},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a5ca2ced3caeb31a6ab581caf8426d986acb5bd8","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.5_1773762232480_0.3731231691746979","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"dom-locator-guard","version":"0.2.6","_id":"dom-locator-guard@0.2.6","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"9254a0595f67116b4dfb82f0a058cf1eaf958010","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.6.tgz","fileCount":52,"integrity":"sha512-bHQT6ob25v+8lTnFFtrd97b6NoAJPRvstcLtOC6cjA3+W1Ax1EnFO3AHB3t1gMCU+wtl/pwCK0JVtb8sst94hA==","signatures":[{"sig":"MEQCIHWzgauVzaGLiMd6QhGdyPPBA7RnifGX2DJ8LyX2m5c6AiA0T0v2b/cIjQL7EP6oST6xNnmWhrcwBpL4LyAJ12Bhyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245910},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f290bcb1faf83f071d1152830c60729893a3fa09","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.6_1773763066523_0.5598302970572244","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"dom-locator-guard","version":"0.2.7","_id":"dom-locator-guard@0.2.7","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"100adb1f9b2cabdbe2199683bf22232daf1b1564","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.7.tgz","fileCount":57,"integrity":"sha512-YyPaW8AyDYOeqRyVD4+tZyn1W1y4Oh1UObCfpFQCLr8q+O6hVSLQcZ6xZ+s6+WonqOUHR8r/AwQizh1vj/Bm9Q==","signatures":[{"sig":"MEUCIELZUNyqSBa0SCpHaZ84SNx4YlNDSlZRH3jTq/on+gu4AiEAmuPK1QbGK8h8+96LSpwZW5leEmbh3DFTsVrjIDN0LPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277694},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f290bcb1faf83f071d1152830c60729893a3fa09","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.7_1773771599569_0.1792944111836856","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"dom-locator-guard","version":"0.2.8","_id":"dom-locator-guard@0.2.8","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"c12d3f9b732331ffe3671f8fbc1dca188c584b23","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.8.tgz","fileCount":57,"integrity":"sha512-ps3+xuAOgcRXgD91H+UtPIBrSCPLnP03lvNKz5684u20DQsS4UMhnd3KFDPFVlxo2ZN9oXGLjl3lD/tmXSgPjg==","signatures":[{"sig":"MEQCIG9ZQItLoOZqvoR9LvhE7s0+GTwTKiEZ8HBvRrMfGfchAiB4NgjEncZ82gazBkKr+dl0aHmI12c4HrGNO1qVV8VAqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284723},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.8_1773772159544_0.008308589281333045","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"dom-locator-guard","version":"0.2.9","_id":"dom-locator-guard@0.2.9","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"1b459c53d908931b3b8fd9a8805c663cccb127b3","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.2.9.tgz","fileCount":57,"integrity":"sha512-mdV5ngC2pZE6S9KpWXgpaMI6HX+gOQTCMMrhV/8kqEbfqj6pm+gNZU1Q/8BV5JwrfR3LUwM+55ssGtWXjBVu7Q==","signatures":[{"sig":"MEUCIQDLxyq3sfZX7oo3TdfSnTBhYWPwo7cf7K+t/rmRRwevMQIgfIyLOpPeARl8KMGUmXq2fvf8rEfRxDIKieL5sNRtgAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287247},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.2.9_1773947850719_0.15818547103734093","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"dom-locator-guard","version":"0.3.0","_id":"dom-locator-guard@0.3.0","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"f2096ef644ee2b0d985f523706bfeaa6ad81ff6c","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.0.tgz","fileCount":57,"integrity":"sha512-2TmMXCwljHS/B+lJdRCEU0CxFymuWMi1iogXHjnQjlzazdRe15rEGP75RIRYYtSsZU61TO53J5awJpeCCMRi8g==","signatures":[{"sig":"MEYCIQDexPoGC6ehW+MGprizQLsuJcww6T4az2CWAQzPl2samwIhAOEoP8pe2b1CgOaKcTVp2mSMyQjID3cyYCkTyKrI5zcx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292517},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.0_1773948914356_0.44861413353904656","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"dom-locator-guard","version":"0.3.1","_id":"dom-locator-guard@0.3.1","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"4747dbed6e62945823abcdcbd7cda80da5eed6fa","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.1.tgz","fileCount":57,"integrity":"sha512-x1vQKZ5V1swb3dmMjE26Y+mo/BBrN5lUPMVPRDrgZJa7vifQoE/ao24vktlJHY12GPFd1h43/BIA3SK0/ivZ/A==","signatures":[{"sig":"MEYCIQDCLbq3sJdZIGYmMJG5Qeau2PKVmWD1gX9qZxUcvS7qRAIhAItgNtLE6MfPtXPn3tKqyJMpfNb5GvU0AUqgc97SXDSZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":307609},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.1_1773949155260_0.4999429903748531","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"dom-locator-guard","version":"0.3.2","_id":"dom-locator-guard@0.3.2","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"6a8a09e2d76d766c76fce63226f19e04be2e3f81","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.2.tgz","fileCount":57,"integrity":"sha512-VwvWRGnZeD8yaJgkqjsliP7g/c+u5c9DIHGVIXnvV9dXXvaUCHIyL0w8H0/B00wZw8xEWbgAWbGFfD2ImNlRaA==","signatures":[{"sig":"MEYCIQDy6KIAil2UTsIqJmUsV0ztOZiXNER9ZqBfReVld05CJAIhAKAyUZ1Y7eV95jWAFkx2FRs3S7PCu/iidXZafr/DmkCO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302940},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.2_1773951141007_0.4961904787472253","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"dom-locator-guard","version":"0.3.3","_id":"dom-locator-guard@0.3.3","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"553c050cdff4090178866c95aacd216fdb9ae1bd","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.3.tgz","fileCount":57,"integrity":"sha512-wPlcUWnFXpUjJ7YWK55b2IB8UEWmEjZIRs78tA2EiMUJxttnr7wIr3CJYS1FRA2PKgYIqYkwLcwus+AS/lGTjQ==","signatures":[{"sig":"MEQCIFiGvH7eir3Ngpd6HhZy21ADA+4rDa6H8KvbJ8gQ4WWDAiBeXrD2U1QZcGTMO4+xRXDnl449/cYACa7kHYhv1yejYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302998},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.3_1773951284228_0.23518012238930153","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"dom-locator-guard","version":"0.3.4","_id":"dom-locator-guard@0.3.4","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"b1d0126353607aaa044958f8810f5273e497f51a","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.4.tgz","fileCount":57,"integrity":"sha512-2QYfmCWsLYJxChg0/b80RQtGXmkLZ+m/9SwyBm9bDL7WbiIJn7KXnFTzth13lH3N2fvQqNmARbpjDKuwgTtYnQ==","signatures":[{"sig":"MEQCIBGoUQ1b58ibhZY9VdTIEmpTWUsij7xncH1GoBQKVE8XAiBWIpJFulDJUYc248vtXttkX1smXPn5bqM/AyalNV3pGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303534},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.4_1773951523850_0.5241121754668641","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"dom-locator-guard","version":"0.3.5","_id":"dom-locator-guard@0.3.5","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"35b04958cc9a98d8569423e7ea451fde3086821d","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.5.tgz","fileCount":57,"integrity":"sha512-A41j0rqKxpPU8hjosHFs4EYRAINYn7YF2Hb5HQghXJ5P+qcD5+1mcq09pc+6HVlA6xUoIv77Iw7CYUSsBzUyEA==","signatures":[{"sig":"MEYCIQD+hnP/mcUBH27Y1uBKJldftFnI7slVgtbpSbFXNah8LAIhAIRTweVfhm6US5LFP747RdAa/yOBj975FT/bgIwQbl+t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303534},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.5_1773952097650_0.738793800507201","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"dom-locator-guard","version":"0.3.6","_id":"dom-locator-guard@0.3.6","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"97e58d8238f2f9075217933f66c0be5a6f831715","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.6.tgz","fileCount":57,"integrity":"sha512-K+KWJRGJl+3WKkr1zCIw8NVNz/s9tnlU/u+pZSlVpro58Q6zBOmuB/KaubTg+rzg3sbyw1/sETpPc69aHGCEcA==","signatures":[{"sig":"MEQCIAeYHl6twS4YRZmmsPH8YRMSFZcRuAstgxABfprPvfwWAiAnCOb2sWSu0BnvgJLmCe8fVjlvJ4qwashiYLsA2nd5Og==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304688},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.6_1773952169085_0.763706965702345","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"dom-locator-guard","version":"0.3.7","_id":"dom-locator-guard@0.3.7","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"3f6ec1c89040dc79fe2c898cee8baee5e789c7ac","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.7.tgz","fileCount":57,"integrity":"sha512-HezuLGu5Jph5h5JGS9oJ+mOYrDBim79bxSjKUahDuoE6P4CxwszXm6X2hqHK6HAdSjITxpXF6+U8Y1OExaXiew==","signatures":[{"sig":"MEYCIQDCvQdV5Pkt9osY9MqEMudR3RbIprSJM+azKQjLDR0B9QIhAIz0BiSGSdeKd+EjkkQWZk6fXjf6mcA1G7ZECVGKeWaN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305277},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.7_1773952607129_0.25383465491133905","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"dom-locator-guard","version":"0.3.8","_id":"dom-locator-guard@0.3.8","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"deb03c408471ec38987ef340fa394f7d0b96441a","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.8.tgz","fileCount":57,"integrity":"sha512-i5lB9mgawzuLap3Pr30xC8qqvSL2PW2+tMCQ+KOIpK1PETBs0vZYtsR1dPw3szDJwTiN6Ubpm2dcr3Y5Xdzlfw==","signatures":[{"sig":"MEUCIQDOgfWwk3M27WNDp3itGl2hSBTSYuHQYszd5prEBrR1hwIgTlYzS3vQnMK2aE8IsPQWHh/e+2MGC2zTvuGfxKGb+6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306887},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.8_1773952637259_0.1162258454615015","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"dom-locator-guard","version":"0.3.9","_id":"dom-locator-guard@0.3.9","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"0278eb056d0d59dee1fa93ccab14eac4c09d2a14","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.3.9.tgz","fileCount":57,"integrity":"sha512-yP7g8gYknrbnYGXRcTqMU2bm4h3Ak8ldAaSY0pRq0qbR4xmqajWIY3wpvpu+Z9qRj5+gZfVluE4y9y+RLcNHtg==","signatures":[{"sig":"MEQCICCyB1yUd2OqDTyYOaFxo0RAbOh8GowAfnekV3SFukVMAiAUrlYnBvuT9Vblw7G1+FZgjV9b7W6B7V208HYmHnrJvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302186},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.3.9_1773952992520_0.3037386888837441","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"dom-locator-guard","version":"0.4.0","_id":"dom-locator-guard@0.4.0","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"e383edb2eff46465e64669e99a9be51d97fe6d20","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.4.0.tgz","fileCount":57,"integrity":"sha512-mVqto4xKNRogmKBIv8wIHBjUngBA/kagjBZSfl0KenjAcFtoVfXR+YJ8Cq3UD9QDLWUctOi2002gLXXc+ur3/g==","signatures":[{"sig":"MEUCIFkrk5Fh0EqDeB8vCApOJvwfpVD6xK8n7xBgLMaSft48AiEA9wt0FcpiFoQ10vrq+jyvg8OFcD0i613DOa2F33YFux4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302404},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.4.0_1773953734877_0.26716810979530825","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"dom-locator-guard","version":"0.4.1","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@0.4.1","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"192580bc412bffd837a07e14e132e86dea7bdfc5","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.4.1.tgz","fileCount":58,"integrity":"sha512-cztmtkRwVweHHXjdQz58Wg7y7TrSeV+R8HifUZ5ZSOGt1+H9WKAyS9uIOeJNMYkBn27cd01NmMOBwhPh1PtVwQ==","signatures":[{"sig":"MEUCIQCFhbtMhjbCcqP1fEGFLMTwwYWSdEx81HfuQVyHpCnfQQIgNmgncBUf0iQ9E+8QTAIJp5eYtapG8OK7MWlsSj+DGrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":307777},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.4.1_1773954839462_0.9961896698990045","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"dom-locator-guard","version":"0.4.2","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@0.4.2","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"143e123de489b4211fbdc705272256b45dfb7d4a","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-0.4.2.tgz","fileCount":58,"integrity":"sha512-Yt6R0tg/P7WHQlg52x0xmK2w9+xZP2wd8jvpyZIjl7DKNi0fW69S0RO+1iXPGS204NOAGxkw5BbKm60dKGy9dg==","signatures":[{"sig":"MEQCIF+2UbKXJZPH7YhsrH7dM1gmpV5Juz4VUWOFAiFKCNiCAiBqibaGekc18Z/WyPe21pRT1D+0Pby5GoqtrGY7TjhLfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308619},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_0.4.2_1773955805343_0.7666795680651004","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"dom-locator-guard","version":"1.0.0","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.0","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"09f9d19308d35d10f64771b643407f6223e73f95","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.0.tgz","fileCount":58,"integrity":"sha512-huTwmD7bbkhjrsiMoBRR3uGq062DCV3BfBdkEO0e518stKLBbTHccnF4MvQF5spnzGrO6JqecY+z6Rhh458D2Q==","signatures":[{"sig":"MEUCIQCOuLpyMoqCPb2jyOaDq6Q1g0cjzeyf/26buMLlT2XCsQIgDv9/nZYsqiM9B/GkTXPkr9x9TkcD07eD3Zjy/5WoL48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308620},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.0_1773957307074_0.6219993885446213","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"dom-locator-guard","version":"1.0.1","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.1","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"b2a308f9baae55ca2e7e386208893189a4c88c66","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.1.tgz","fileCount":58,"integrity":"sha512-Lj+HWmPbc6LOSSy5AmwUU5vugZkwiPSxnB3zkWqgT7wFU5rAB7H7vNzECcwzxO3/+hag0k47U5FtltOJaELX1Q==","signatures":[{"sig":"MEUCIG3ujqER/Olh+XBW0zEFm4sh+0EvA726BdSR5+M9aTWjAiEAx0SUDB+Re2l1/H60514B/nGQp/EO6IVY/xIzbBO6dnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309105},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.1_1773958037182_0.6848950613985019","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"dom-locator-guard","version":"1.0.2","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.2","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"33a189a082c86131defefe51cb42f6eb825204b8","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.2.tgz","fileCount":63,"integrity":"sha512-0EiGMQt0OasGyuIftjsaALRCkPszm8exR5cmzRSfpa24s8toB5pVY58mgjeeE/WxAIZuJNp3F04OVDw+O6R1Kw==","signatures":[{"sig":"MEYCIQD59nNiLKvuBEVn16RbEnYAVX+09UDZMQLOOHQcKAjd9QIhAMUG3Kwihpat2NI/x3Q6MJnPEnJMUtFcY6bV1aOlObb3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354826},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.2_1773977634756_0.852966088315706","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"dom-locator-guard","version":"1.0.3","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.3","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"17c56ebedf35dd3834d14306bebc5a0776c04258","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.3.tgz","fileCount":63,"integrity":"sha512-DOoZZQNOmLQ5mLl1v4z5A6Y/+CYnLFXIDWCr48BOgD2bDHBSe0pXqECw4CetHz2G3InpZN4eJjshmQGmTzud4g==","signatures":[{"sig":"MEUCIQCfYZz+vJ0EIMg649bITI2j3c8GwrHCuS6n2bkGIa/f9gIgAkeUITDzu/ACqJIU5mlY1EFcrtv/Xf2sLz8VlQ64Gug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354834},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.3_1773977979989_0.46278897170788236","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"dom-locator-guard","version":"1.0.4","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.4","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"32060ef5e8db0cfe717556236efc2564ad08f781","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.4.tgz","fileCount":63,"integrity":"sha512-LFSUjhFtHhk5PQFWifejJVzJR95nzazGimNUpSixnGahtR1YWzUavaB7ceYQ3dPmqu1sPYaAiE32cPTJUuqClQ==","signatures":[{"sig":"MEUCIQCsMYVRgeorWZSP9J4K1EKYyPM5oWnkF4b4RfhwATBGHgIgR7iCeEopIHYKLGqkexnadLt2/8NGuxrxWc1gGFzRUM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357737},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.4_1773978238989_0.5158920217768295","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"dom-locator-guard","version":"1.0.5","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.5","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"65d646207721894821ae90a1ac314a980286a970","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.5.tgz","fileCount":63,"integrity":"sha512-XB1aVU89woa10WeZY7D3kYlz7Mnm08d0NMrmMsTra8HZORTYG0IMvH5TjYO4ejf178UHfVclDzNfkFU3D8jf2Q==","signatures":[{"sig":"MEQCIEE/qs76hNFyCsLblexHChRo69Lay3gttuv2Ld7oJudNAiBlJcvqOcS/ZtT0SrnzngtdMEYlsZnveqsqaVjm1+E+AA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367281},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.5_1773978859965_0.9900191482311778","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"dom-locator-guard","version":"1.0.6","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"author":{"name":"Joan Purba"},"license":"MIT","_id":"dom-locator-guard@1.0.6","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"homepage":"https://github.com/joanpurbaa/tes-tools","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"bin":{"dlg":"dist/cli.js"},"dist":{"shasum":"7060a5ef1751b4b5225af2c0fee58206e79f4283","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.6.tgz","fileCount":62,"integrity":"sha512-zZYNZTr1OdWo6jbvaeA72g7eEEhpsHrqLjPGREtwDSGTcSCURgSlnSAMZlsdS/DKF2N6HFyNCAJxCNF0PQ+adw==","signatures":[{"sig":"MEUCIQDmXs5w17QxdrKm0RUklpw2a0g9J5HGmadzmSIc09FS8gIgVZ8oUIa6hTTuQx7yGzEQFfJEFyWRqIqkwmnucfzX3js=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340513},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","scripts":{"dev":"tsc --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsc"},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"repository":{"url":"git+https://github.com/joanpurbaa/dom-locator-guard.git","type":"git"},"_npmVersion":"11.7.0","description":"Core engine: snapshot, diff, similarity scoring, report","directories":{},"_nodeVersion":"24.14.0","dependencies":{"css-select":"^5.1.0","domhandler":"^5.0.3","htmlparser2":"^9.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","ts-jest":"^29.0.0","typescript":"^5.4.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@types/object-hash":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dom-locator-guard_1.0.6_1773979120441_0.5725448369619122","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"dom-locator-guard","version":"1.0.7","description":"Core engine: snapshot, diff, similarity scoring, report","main":"dist/index.js","types":"dist/index.d.ts","bin":{"dlg":"dist/cli.js"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","lint":"eslint src --ext .ts"},"dependencies":{"htmlparser2":"^9.1.0","domhandler":"^5.0.3","css-select":"^5.1.0","object-hash":"^3.0.0","fastest-levenshtein":"^1.0.16"},"devDependencies":{"@types/node":"^20.0.0","@types/object-hash":"^3.0.0","jest":"^29.0.0","ts-jest":"^29.0.0","@types/jest":"^29.0.0","typescript":"^5.4.0"},"keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"license":"MIT","author":{"name":"Joan Purba"},"homepage":"https://dom-locator-guard-documentations.vercel.app/","repository":{"type":"git","url":"git+https://github.com/joanpurbaa/dom-locator-guard.git"},"gitHead":"8d3e059e026633eeb4c11cbd989791df62707b6d","_id":"dom-locator-guard@1.0.7","bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"_nodeVersion":"24.14.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-QGIlsNiPm971kgcfRAK5T3Z/jorzYBr2SXNeZG5eqGByApFk9yZYgU0/9ADWWVPxiTnWOghs/wGob4iIIwtgIQ==","shasum":"5826c5a84f4154bc0a730d23cb851ed4a43782f2","tarball":"https://registry.npmjs.org/dom-locator-guard/-/dom-locator-guard-1.0.7.tgz","fileCount":62,"unpackedSize":340525,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICekJ2XB0riM/cJ4eS6vUwyipkDinlN3aToi0FnTKefTAiEAlqTRVxs1UsTD/rwWqxPPtigyQuroI/HrSNNiQIgpcKg="}]},"_npmUser":{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"},"directories":{},"maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dom-locator-guard_1.0.7_1774050689413_0.7022301815222445"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T08:32:38.751Z","modified":"2026-03-20T23:51:29.679Z","0.1.0":"2026-03-17T08:32:39.029Z","0.1.1":"2026-03-17T08:37:57.917Z","0.2.0":"2026-03-17T12:34:14.544Z","0.2.1":"2026-03-17T12:38:32.134Z","0.2.2":"2026-03-17T12:41:19.907Z","0.2.3":"2026-03-17T12:54:47.953Z","0.2.4":"2026-03-17T14:58:43.398Z","0.2.5":"2026-03-17T15:43:52.617Z","0.2.6":"2026-03-17T15:57:46.674Z","0.2.7":"2026-03-17T18:19:59.724Z","0.2.8":"2026-03-17T18:29:19.704Z","0.2.9":"2026-03-19T19:17:30.854Z","0.3.0":"2026-03-19T19:35:14.498Z","0.3.1":"2026-03-19T19:39:15.414Z","0.3.2":"2026-03-19T20:12:21.143Z","0.3.3":"2026-03-19T20:14:44.395Z","0.3.4":"2026-03-19T20:18:43.995Z","0.3.5":"2026-03-19T20:28:17.792Z","0.3.6":"2026-03-19T20:29:29.221Z","0.3.7":"2026-03-19T20:36:47.281Z","0.3.8":"2026-03-19T20:37:17.407Z","0.3.9":"2026-03-19T20:43:12.686Z","0.4.0":"2026-03-19T20:55:35.025Z","0.4.1":"2026-03-19T21:13:59.631Z","0.4.2":"2026-03-19T21:30:05.499Z","1.0.0":"2026-03-19T21:55:07.240Z","1.0.1":"2026-03-19T22:07:17.342Z","1.0.2":"2026-03-20T03:33:54.932Z","1.0.3":"2026-03-20T03:39:40.181Z","1.0.4":"2026-03-20T03:43:59.169Z","1.0.5":"2026-03-20T03:54:20.124Z","1.0.6":"2026-03-20T03:58:40.590Z","1.0.7":"2026-03-20T23:51:29.576Z"},"bugs":{"url":"https://github.com/joanpurbaa/dom-locator-guard/issues"},"author":{"name":"Joan Purba"},"license":"MIT","homepage":"https://dom-locator-guard-documentations.vercel.app/","keywords":["qa","testing","automation","locator","dom","html","playwright","cypress","selenium","test-automation","locator-guard","dom-diff","change-detection","pre-push","git-hook","cli"],"repository":{"type":"git","url":"git+https://github.com/joanpurbaa/dom-locator-guard.git"},"description":"Core engine: snapshot, diff, similarity scoring, report","maintainers":[{"name":"joanorlandopurba","email":"joanpurba562@gmail.com"}],"readme":"# 🛡️ dom-locator-guard\r\n\r\n**Stop broken tests before they happen.**\r\n\r\nDetect unintended locator changes in your HTML before they silently break your automation tests.\r\n\r\n> \"If your tests ever failed because of a renamed `id` or `data-testid`, this tool is for you.\"\r\n\r\n---\r\n\r\n## 😵 The Problem\r\n\r\nYour test targets:\r\n\r\n```\r\n#loginbtn\r\n```\r\n\r\nA developer refactors the UI and changes it to:\r\n\r\n```\r\n#loginBtn\r\n```\r\n\r\n✅ UI still works perfectly &nbsp;&nbsp;&nbsp; 💥 But your entire test suite fails\r\n\r\nAnd you only find out... in CI. 😐\r\n\r\n---\r\n\r\n## 🚀 The Solution\r\n\r\n**dom-locator-guard** catches this instantly — before it reaches CI.\r\n\r\nIt:\r\n- 📸 Snapshots your HTML\r\n- 🔍 Tracks critical locators (`id`, `class`, `data-testid`, etc.)\r\n- ⚠️ Detects changes the moment they happen\r\n- 📍 Shows exact line + what changed + what to fix\r\n\r\n---\r\n\r\n## 📦 Install\r\n\r\n```bash\r\nnpm install --save-dev dom-locator-guard\r\n```\r\n\r\n---\r\n\r\n## ⚡ Quick Start\r\n\r\n```bash\r\n# 1. Initialize (one-time setup)\r\nnpx dlg init\r\n\r\n# 2. Save baseline — your \"source of truth\"\r\nnpx dlg baseline .\r\n\r\n# 3. After changes, detect locator drift\r\nnpx dlg check .\r\n\r\n# 4. View reports in browser\r\nnpx dlg dashboard\r\n```\r\n\r\n---\r\n\r\n## 🧠 Why This Matters\r\n\r\n| Without this tool | With dom-locator-guard |\r\n|---|---|\r\n| ❌ Tests fail randomly | ✅ Catch issues before push |\r\n| ❌ Debugging takes hours | ✅ See the exact line that changed |\r\n| ❌ CI gets noisy | ✅ Keep your pipeline clean |\r\n| ❌ QA & dev blame each other 😅 | ✅ Ship faster with confidence |\r\n\r\n---\r\n\r\n## 🧰 Commands\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `npx dlg init` | Setup project, create `.dlg/`, install git hook |\r\n| `npx dlg baseline <file\\|.> [files...]` | Save baseline snapshot |\r\n| `npx dlg check <file\\|.> [files...]` | Detect locator changes |\r\n| `npx dlg report` | Show summary in terminal |\r\n| `npx dlg dashboard` | Open web dashboard |\r\n\r\n---\r\n\r\n## 🎯 Targeting Files\r\n\r\n**All files:**\r\n```bash\r\nnpx dlg baseline .\r\nnpx dlg check .\r\n```\r\n\r\n**Single file:**\r\n```bash\r\nnpx dlg baseline login.html\r\nnpx dlg check login.html\r\n```\r\n\r\n**Multiple files:**\r\n```bash\r\nnpx dlg baseline login.html register.html checkout.html\r\nnpx dlg check login.html register.html checkout.html\r\n```\r\n\r\n📌 Supported: `.html` · `.jsx` · `.tsx`\r\n\r\n---\r\n\r\n## ⚙️ How It Works\r\n\r\n**1️⃣ Save baseline**\r\n\r\n```bash\r\nnpx dlg baseline login.html\r\n```\r\n\r\nStores the current locator state as the reference point.\r\n\r\n**2️⃣ Developer changes something**\r\n\r\n```html\r\n<!-- before -->\r\n<button id=\"loginbtn\">Login</button>\r\n\r\n<!-- after (no one notices 👀) -->\r\n<button id=\"loginBtn\">Login</button>\r\n```\r\n\r\n**3️⃣ Run check**\r\n\r\n```bash\r\nnpx dlg check login.html\r\n```\r\n\r\n```\r\n⚠  login  ·  login.html\r\n\r\n1 locator change(s) detected\r\n\r\n┌ <button> \"Login\"  (93% confidence)\r\n│\r\n│  📍 Line 9, Col 3\r\n│\r\n│     7      </head>\r\n│     8      <body>\r\n│     9      <button id=\"loginBtn\">Login</button>  ← changed\r\n│    10      </body>\r\n│\r\n│  action  →  #loginBtn\r\n│  id changed from \"loginbtn\" to \"loginBtn\". Update your test from #loginbtn to #loginBtn.\r\n└──────────────────────────────────────────────────\r\n```\r\n\r\n**4️⃣ Decide**\r\n\r\n- ❌ Not intended → ask developer to revert → run check again → clean\r\n- ✅ Intended → update baseline: `npx dlg baseline login.html`\r\n\r\n---\r\n\r\n## 🔐 Git Pre-Push Protection\r\n\r\nAutomatically installed when you run `npx dlg init`.\r\n\r\nEvery `git push` triggers a locator check:\r\n\r\n```\r\n🛡  Locator Guard — running pre-push checks...\r\n\r\n  ✓  login.html — all locators stable\r\n  ✓  checkout.html — all locators stable\r\n\r\n✅  All checks passed — push allowed\r\n```\r\n\r\nIf something changed:\r\n\r\n```\r\n❌  Push blocked — fix the locator changes above, then push again.\r\n  Or if intentional, run: npx dlg baseline checkout.html\r\n```\r\n\r\nNo more surprises in CI.\r\n\r\n---\r\n\r\n## 📊 Web Dashboard\r\n\r\n```bash\r\nnpx dlg dashboard\r\n```\r\n\r\n🌐 Open: `http://localhost:3333`\r\n\r\nSee:\r\n- 📈 Change history across all features\r\n- 🎯 Confidence score per element\r\n- 📍 Exact code diff with line numbers\r\n- 📂 All tracked files in one place\r\n\r\n---\r\n\r\n## 🧬 Tracked Attributes\r\n\r\n| Attribute | Severity |\r\n|---|---|\r\n| `data-testid`, `data-cy` | 🔴 Critical |\r\n| `id`, `name` | 🟠 High |\r\n| `aria-label`, `role`, `class` | 🟡 Medium |\r\n\r\n---\r\n\r\n## ⚙️ Configuration\r\n\r\n`npx dlg init` creates `dlg.config.json`:\r\n\r\n```json\r\n{\r\n  \"threshold\": 0.75,\r\n  \"trackedAttributes\": [\"id\", \"name\", \"dataTestId\", \"dataCy\", \"ariaLabel\", \"class\"],\r\n  \"ignoreSelectors\": []\r\n}\r\n```\r\n\r\n| Option | Description |\r\n|---|---|\r\n| `threshold` | Similarity score (0–1) for element matching. Default: `0.75` |\r\n| `trackedAttributes` | Attributes to monitor |\r\n| `ignoreSelectors` | Selectors to ignore (e.g. ad banners, dynamic timestamps) |\r\n\r\n---\r\n\r\n## 🗂 Project Structure\r\n\r\n```\r\nyour-project/\r\n├── .dlg/                  ← gitignored automatically\r\n│   ├── baselines/         ← stored snapshots\r\n│   └── reports/           ← generated reports\r\n├── .git/hooks/\r\n│   └── pre-push           ← auto-installed by dlg init\r\n├── dlg.config.json\r\n└── .gitignore             ← .dlg/ and node_modules/ added automatically\r\n```\r\n\r\n---\r\n\r\n## 💡 Pro Tip\r\n\r\nRun this before every commit:\r\n\r\n```bash\r\nnpx dlg check .\r\n```\r\n\r\nThink of it like:\r\n- **ESLint** → catches code issues\r\n- **Prettier** → catches formatting issues\r\n- **dom-locator-guard** → catches locator drift 🔥\r\n\r\n---\r\n\r\n## 🧾 License\r\n\r\nMIT — [Joan Purba](https://github.com/joanpurbaa)","readmeFilename":"README.md"}