{"_id":"@adartem/adlib-attributes","_rev":"10-59f653661ef4b1f961533137a0bf0e1a","name":"@adartem/adlib-attributes","dist-tags":{"latest":"0.1.8"},"versions":{"0.0.0":{"name":"@adartem/adlib-attributes","version":"0.0.0","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"license":"MIT","_id":"@adartem/adlib-attributes@0.0.0","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"dist":{"shasum":"ca219fee7cbeb1f6922f0d3ff0c1f2baf0be0030","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.0.0.tgz","fileCount":15,"integrity":"sha512-sWYWPpmg1KVCi8euhrrYjhYpNeoV893+tns9Rpe1QA/JakkWzgPaa06KREynI+saYKnn9iRqSYSeTEVb48PROA==","signatures":[{"sig":"MEUCIBDVDozVL3RszALmP466+Dii5pnHofoKT/7OyKcSL1d7AiEA+2cychl4jQQ/f5goJw4E94bPbeyLJ4OOJdwAPkKglGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249682},"main":"./dist/index.cjs","type":"module","_from":"file:adartem-adlib-attributes-0.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js","require":"./dist/core/index.cjs"},"./attributes.js":{"import":"./attributes.js","default":"./attributes.js"}},"private":false,"scripts":{"dev":"tsup --config tsup.config.ts --watch","lint":"eslint . --ext .ts","test":"vitest run -c vitest.config.ts","build":"pnpm run build:js && pnpm run build:types","format":"prettier -w .","build:js":"tsup --config tsup.config.ts","lint:fix":"eslint . --ext .ts --fix","postbuild":"tsx ../../ops/adartem-ops/scripts/copy-attributes-entry.ts","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/7f4944f40d52d7ff092126f7ee63cbba/adartem-adlib-attributes-0.0.0.tgz","_integrity":"sha512-sWYWPpmg1KVCi8euhrrYjhYpNeoV893+tns9Rpe1QA/JakkWzgPaa06KREynI+saYKnn9iRqSYSeTEVb48PROA==","_npmVersion":"10.8.2","description":"Core unifié + runtime global des attributs AdLib (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.19.6","dependencies":{"@adartem/adlib-utils":"0.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.0.0_1766518912984_0.6651954788986374","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@adartem/adlib-attributes","version":"0.1.0","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"license":"MIT","_id":"@adartem/adlib-attributes@0.1.0","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"dist":{"shasum":"bf9b3437f7283c6f16fc9295663ca6fce226cf48","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.0.tgz","fileCount":15,"integrity":"sha512-s20NrJCXvDpQtYCSEEf5w6P96z6e5FmiXPayiVqAQBzzzsY41WSuv3eIMGAYFvMr6NIavJVYmuIMhx8n43MlgA==","signatures":[{"sig":"MEUCIF+FHnK1Iu0L34sNX/ejhrWvCkyzgWGBsJYEAV99u55AAiEAn+Z5yxfeyWkc4sfLO5Hey9l+Pw+k+V+J/0ffB3a5fAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249682},"main":"./dist/index.cjs","type":"module","_from":"file:adartem-adlib-attributes-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js","require":"./dist/core/index.cjs"},"./attributes.js":{"import":"./attributes.js","default":"./attributes.js"}},"private":false,"scripts":{"dev":"tsup --config tsup.config.ts --watch","lint":"eslint . --ext .ts","test":"vitest run -c vitest.config.ts","build":"pnpm run build:js && pnpm run build:types","format":"prettier -w .","build:js":"tsup --config tsup.config.ts","lint:fix":"eslint . --ext .ts --fix","postbuild":"tsx ../../ops/adartem-ops/scripts/copy-attributes-entry.ts","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/875f3c6f8659423b11ce149c552362ab/adartem-adlib-attributes-0.1.0.tgz","_integrity":"sha512-s20NrJCXvDpQtYCSEEf5w6P96z6e5FmiXPayiVqAQBzzzsY41WSuv3eIMGAYFvMr6NIavJVYmuIMhx8n43MlgA==","_npmVersion":"10.8.2","description":"Core unifié + runtime global des attributs AdLib (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.19.6","dependencies":{"@adartem/adlib-utils":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.0_1766519319764_0.06292982349812992","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adartem/adlib-attributes","version":"0.1.1","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.1","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"a05eb41a4e836a690ed23cf4d8651dba46255949","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.1.tgz","fileCount":11,"integrity":"sha512-zBjohPWqaZVWWxMu0NyTWaUmBK+g1BnsxaWEJOUVsI2p6yQL/j/AIqJIIIYJkptpmQtYQtRmdv04vd0deourwg==","signatures":[{"sig":"MEUCIQCp/epMD2LovtG/8rIkq/aa/YaNCukjyxquB0ADG/i0ZwIgGGyE5DyoiET3b0bfahB1lOy6cGS+fTKA0ibiUc0MlGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":949082},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.1.tgz","private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"vitest run -c ../../vitest.config.ts && pnpm playwright test --pass-with-no-tests","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint:fix":"eslint ./src --fix && prettier --write ./src","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/12460fdb0d3183aef3abd2290245761c/adartem-adlib-attributes-0.1.1.tgz","_integrity":"sha512-zBjohPWqaZVWWxMu0NyTWaUmBK+g1BnsxaWEJOUVsI2p6yQL/j/AIqJIIIYJkptpmQtYQtRmdv04vd0deourwg==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-list":"0.1.0","@adartem/adlib-utils":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.1_1769901244074_0.3545906131027561","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@adartem/adlib-attributes","version":"0.1.2","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.2","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"c517a4f5b6b796fe873ff8f97194757af9bd5a81","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.2.tgz","fileCount":50,"integrity":"sha512-QgawoEOBL/LZHHkZVDppf/1vC07/qVNeWhsM7KrvQv0KCMO0PrfWm+SoaLmtcMaehx2H2yuF758Eogw6KGS3PA==","signatures":[{"sig":"MEQCIBMALG90u4rajLXGUZX1+QiTs99Im1sWysS4zrgO8Z/IAiBVu6gNLjyY1Wx+3fXepz/NkiK05gYnji33LwfcTOQLVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":985104},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.2.tgz","private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"vitest run -c ../../vitest.config.ts && pnpm playwright test --pass-with-no-tests","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint:fix":"eslint ./src --fix && prettier --write ./src","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/737402330b56aaf413feb153ab82419f/adartem-adlib-attributes-0.1.2.tgz","_integrity":"sha512-QgawoEOBL/LZHHkZVDppf/1vC07/qVNeWhsM7KrvQv0KCMO0PrfWm+SoaLmtcMaehx2H2yuF758Eogw6KGS3PA==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-toc":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-modal":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-videohls":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-accordion":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-smartlightbox":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.2_1770554431833_0.14810544568354245","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@adartem/adlib-attributes","version":"0.1.3","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.3","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"e93d9dfe9a18b35b7614c18386db1d064a67e592","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.3.tgz","fileCount":36,"integrity":"sha512-/KGuDVnK/V6ewuwwWsvnqbI0YhD2SNDOwUw2Br0tKi8hJfHc9oQDXuQ5Gx1VOoIwiZEK/uemFjqD4k8igpMZIw==","signatures":[{"sig":"MEQCIBbPhzfUx5l5qYRLzrVOip/IiqH9BCSoUXbC0+jsJK7sAiBUte/8RGPsedmiVRIKuW719fbzyGUvoKViacyzA7w58Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1141726},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.3.tgz","types":"./src/attributes.ts","exports":{".":{"types":"./src/attributes.ts","import":"./attributes.js"},"./attributes.js":{"import":"./attributes.js"}},"private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"pnpm test:unit && pnpm test:e2e","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint:fix":"eslint ./src --fix && prettier --write ./src","test:e2e":"pnpm playwright test --pass-with-no-tests","test:unit":"vitest run -c ../../vitest.config.ts","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/3e6ddf84175e9bf9fe05495439f617e2/adartem-adlib-attributes-0.1.3.tgz","_integrity":"sha512-/KGuDVnK/V6ewuwwWsvnqbI0YhD2SNDOwUw2Br0tKi8hJfHc9oQDXuQ5Gx1VOoIwiZEK/uemFjqD4k8igpMZIw==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-toc":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-modal":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-videohls":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-accordion":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-smartlightbox":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.3_1770948326554_0.3508592598053124","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@adartem/adlib-attributes","version":"0.1.4","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.4","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"848e60c7076d95a3179cab67330664ed164c22eb","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.4.tgz","fileCount":36,"integrity":"sha512-P+KlYE4x4WJ7DdCf0SvdB1Z575XPQOhcCgOLDufw5aeQQp7QO0MP8Q00i2QHoQFT1sZd2iOjzonOxSO/lCQnAw==","signatures":[{"sig":"MEUCIQDGL1eh6we5wcZ7xxSSzyqtAOcIGfr3eSOdQQ2E5UkhkAIgK9a4IelUMrN8y3BuEvlOBFmoL4nqDAAUrU6M9tNd6gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1141731},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.4.tgz","types":"./src/attributes.ts","exports":{".":{"types":"./src/attributes.ts","import":"./attributes.js"},"./attributes.js":{"import":"./attributes.js"}},"private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"pnpm test:unit && pnpm test:e2e","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint:fix":"eslint ./src --fix && prettier --write ./src","test:e2e":"pnpm playwright test --pass-with-no-tests","test:unit":"vitest run -c ../../vitest.config.ts","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/7d9a6ee0d0bd76c0c72495ecaaf117b8/adartem-adlib-attributes-0.1.4.tgz","_integrity":"sha512-P+KlYE4x4WJ7DdCf0SvdB1Z575XPQOhcCgOLDufw5aeQQp7QO0MP8Q00i2QHoQFT1sZd2iOjzonOxSO/lCQnAw==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-toc":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-modal":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-videohls":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-accordion":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-smartlightbox":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.4_1770952357944_0.0692861607498727","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@adartem/adlib-attributes","version":"0.1.5","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.5","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"6f2bc70c0623db840fef52e2d3e1252a40f08d1f","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.5.tgz","fileCount":98,"integrity":"sha512-Vy6s/8pNu3ZC0ISpfbS7T7G+pfcfh9zYP40Gw+79yW6PF5BWjcJDisNpmI5e3HsoQixTm7uJhzaueLGzYKQm3Q==","signatures":[{"sig":"MEUCIQC3jBdoiDCgRnkz8d5QzB1nBlAJf3sakCz4gazm7AJNGwIgZK9Fo777006aa98iy0QWGoVf5YPUuUhisdvvqTyL3qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8204850},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.5.tgz","types":"./src/attributes.ts","exports":{".":{"types":"./src/attributes.ts","import":"./attributes.js"},"./attributes.js":{"import":"./attributes.js"}},"private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"pnpm test:unit && pnpm test:e2e","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint:fix":"eslint ./src --fix && prettier --write ./src","test:e2e":"pnpm playwright test --pass-with-no-tests","test:unit":"vitest run -c ../../vitest.config.ts","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/aad43cdf778a5e8dcb6e1a719c77d6e1/adartem-adlib-attributes-0.1.5.tgz","_integrity":"sha512-Vy6s/8pNu3ZC0ISpfbS7T7G+pfcfh9zYP40Gw+79yW6PF5BWjcJDisNpmI5e3HsoQixTm7uJhzaueLGzYKQm3Q==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-toc":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-modal":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-videohls":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-accordion":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-smartlightbox":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.5_1771030074668_0.1882752078974168","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@adartem/adlib-attributes","version":"0.1.6","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.6","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"4425f2a244098e5a535582e864336c10d0d69fc4","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.6.tgz","fileCount":98,"integrity":"sha512-erOUugvcOIRhuxRwaMhuXRlT7H6MawegWR7puOk88osSgMxUBbVpbtWrzSCRsc7nN/uHtadZsjTzWeepPsdNJw==","signatures":[{"sig":"MEUCIQDTOtLwD8/+DQkVVbslM/9UrINA9o81SP3ca1v5oLJttQIgEi+6p0JwBGYjwg6y0E8nmA6GTvXfdb6J0grMMrzSfiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8204850},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.6.tgz","types":"./src/attributes.ts","exports":{".":{"types":"./src/attributes.ts","import":"./attributes.js"},"./attributes.js":{"import":"./attributes.js"}},"private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"pnpm test:unit && pnpm test:e2e","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint:fix":"eslint ./src --fix && prettier --write ./src","test:e2e":"pnpm playwright test --pass-with-no-tests","test:unit":"vitest run -c ../../vitest.config.ts","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/90106f1360be7d2cd3c5551b82a04cea/adartem-adlib-attributes-0.1.6.tgz","_integrity":"sha512-erOUugvcOIRhuxRwaMhuXRlT7H6MawegWR7puOk88osSgMxUBbVpbtWrzSCRsc7nN/uHtadZsjTzWeepPsdNJw==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-toc":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-modal":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-videohls":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-accordion":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-smartlightbox":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.6_1771031947848_0.44861733871369047","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@adartem/adlib-attributes","version":"0.1.7","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"url":"https://adartem.fr/","name":"Adartem"},"license":"MIT","_id":"@adartem/adlib-attributes@0.1.7","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"homepage":"https://adartem.fr/attributes","bugs":{"url":"https://github.com/adartem/adlib/issues"},"dist":{"shasum":"b63b02e35dbe32b1759f20ef5dd14006726609db","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.7.tgz","fileCount":98,"integrity":"sha512-IX+uSaXPyPOVM8plqoUOopiwBHCiLjnalEAZ/ZqiKL46IT+xkHllbe7YgS66vZgcB0PUbAeTEu30poGusyxEZw==","signatures":[{"sig":"MEUCIDJqmUEfjobwA1jui+emjVO7w+cgPXVj72+KXnqbs5rlAiEAx5SGqIszTTjcm4ic8blbj/ENBwZcZQLaXSm5H3ELfIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8205063},"main":"attributes.js","type":"module","_from":"file:adartem-adlib-attributes-0.1.7.tgz","types":"./src/attributes.ts","exports":{".":{"types":"./src/attributes.ts","import":"./attributes.js"},"./attributes.js":{"import":"./attributes.js"}},"private":false,"scripts":{"dev":"cross-env NODE_ENV=development tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","test":"pnpm test:unit && pnpm test:e2e","build":"cross-env NODE_ENV=production tsx ./bin/build.ts","clean":"rimraf dist node_modules test-results playwright-report attributes.js attributes.js.map","lint:fix":"eslint ./src --fix && prettier --write ./src","test:e2e":"pnpm playwright test --pass-with-no-tests","test:unit":"vitest run -c ../../vitest.config.ts","typecheck":"tsc --noEmit","test:headed":"pnpm playwright test --headed --pass-with-no-tests"},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"_resolved":"/tmp/078327f9d18cdc6259aef584a64ecbe5/adartem-adlib-attributes-0.1.7.tgz","_integrity":"sha512-IX+uSaXPyPOVM8plqoUOopiwBHCiLjnalEAZ/ZqiKL46IT+xkHllbe7YgS66vZgcB0PUbAeTEu30poGusyxEZw==","repository":{"url":"git+https://github.com/adartem/adlib.git","type":"git","directory":"packages/adlib-attributes"},"_npmVersion":"10.8.2","description":"ADARTEM AdLib Attributes (ad-*).","directories":{},"sideEffects":["./attributes.js"],"_nodeVersion":"20.20.0","dependencies":{"@adartem/ad-toc":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-modal":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-videohls":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-accordion":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-smartlightbox":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","esbuild":"^0.27.2","cross-env":"^10.1.0","@types/node":"^20.14.9","esbuild-plugin-inline-worker":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/adlib-attributes_0.1.7_1771033732253_0.9352274777212861","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@adartem/adlib-attributes","version":"0.1.8","description":"ADARTEM AdLib Attributes (ad-*).","homepage":"https://adartem.fr/attributes","license":"MIT","private":false,"publishConfig":{"access":"public"},"type":"module","main":"attributes.js","types":"./src/attributes.ts","exports":{".":{"types":"./src/attributes.ts","import":"./attributes.js"},"./attributes.js":{"import":"./attributes.js"}},"sideEffects":["./attributes.js"],"repository":{"type":"git","url":"git+https://github.com/adartem/adlib.git","directory":"packages/adlib-attributes"},"keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"author":{"name":"Adartem","url":"https://adartem.fr/"},"bugs":{"url":"https://github.com/adartem/adlib/issues"},"dependencies":{"@adartem/ad-accordion":"0.1.0","@adartem/adlib-utils":"0.1.0","@adartem/ad-codehighlight":"0.1.0","@adartem/ad-autovideo":"0.1.0","@adartem/ad-combobox":"0.1.0","@adartem/ad-copyclip":"0.1.0","@adartem/ad-displayvalues":"0.1.0","@adartem/ad-favcustom":"0.1.0","@adartem/ad-formsubmit":"0.1.0","@adartem/ad-inject":"0.1.0","@adartem/ad-inputactive":"0.1.0","@adartem/ad-inputcounter":"0.1.0","@adartem/ad-list":"0.1.1","@adartem/ad-mirrorclick":"0.1.0","@adartem/ad-mirrorinput":"0.1.0","@adartem/ad-modal":"0.1.0","@adartem/ad-numbercount":"0.1.0","@adartem/ad-rangeslider":"0.1.0","@adartem/ad-readtime":"0.1.0","@adartem/ad-removequery":"0.1.0","@adartem/ad-scrolldisable":"0.1.0","@adartem/ad-selectcustom":"0.1.0","@adartem/ad-queryparam":"0.1.0","@adartem/ad-sliderdots":"0.1.0","@adartem/ad-socialshare":"0.1.0","@adartem/ad-starrating":"0.1.0","@adartem/ad-smartlightbox":"0.1.0","@adartem/ad-toc":"0.1.0","@adartem/ad-videohls":"0.1.0"},"devDependencies":{"@types/node":"^20.14.9","cross-env":"^10.1.0","esbuild":"^0.27.2","esbuild-plugin-inline-worker":"^0.1.1","tsx":"^4.19.2"},"scripts":{"build":"cross-env NODE_ENV=production tsx ./bin/build.ts","lint":"eslint ./src && prettier --check ./src","lint:fix":"eslint ./src --fix && prettier --write ./src","typecheck":"tsc --noEmit","test:unit":"vitest run -c ../../vitest.config.ts","test:e2e":"pnpm playwright test --pass-with-no-tests","test:headed":"pnpm playwright test --headed --pass-with-no-tests","test":"pnpm test:unit && pnpm test:e2e","clean":"rimraf dist node_modules test-results playwright-report attributes.js attributes.js.map","dev":"cross-env NODE_ENV=development tsx ./bin/build.ts"},"_id":"@adartem/adlib-attributes@0.1.8","_integrity":"sha512-g0Pv/mooQzcBXa4pn0akbvhl3FLKd9CFbydAVI/j1iw24Hfi7IfX/YyyYskIjVKf5zVeNufnRA+WpkvTWsSUdw==","_resolved":"/tmp/90c95a5e0745e6286aa787f95b339e87/adartem-adlib-attributes-0.1.8.tgz","_from":"file:adartem-adlib-attributes-0.1.8.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-g0Pv/mooQzcBXa4pn0akbvhl3FLKd9CFbydAVI/j1iw24Hfi7IfX/YyyYskIjVKf5zVeNufnRA+WpkvTWsSUdw==","shasum":"62307b33317a1be4f5cd0a6b03b750f7a9282b03","tarball":"https://registry.npmjs.org/@adartem/adlib-attributes/-/adlib-attributes-0.1.8.tgz","fileCount":98,"unpackedSize":8205464,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIErP4Yk7YRYOF33brB9zBMOBms1KeoEO2zFqIZsgGkQWAiEAp5/3oonSHZdnrM3fsB4kkGElcDOQn6rZ96CaZLchhgg="}]},"_npmUser":{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"},"directories":{},"maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adlib-attributes_0.1.8_1771091016929_0.10346890784623186"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-23T19:41:52.882Z","modified":"2026-02-14T17:43:37.324Z","0.0.0":"2025-12-23T19:41:53.126Z","0.1.0":"2025-12-23T19:48:39.914Z","0.1.1":"2026-01-31T23:14:04.258Z","0.1.2":"2026-02-08T12:40:32.025Z","0.1.3":"2026-02-13T02:05:26.875Z","0.1.4":"2026-02-13T03:12:38.125Z","0.1.5":"2026-02-14T00:47:54.966Z","0.1.6":"2026-02-14T01:19:08.104Z","0.1.7":"2026-02-14T01:48:52.536Z","0.1.8":"2026-02-14T17:43:37.177Z"},"bugs":{"url":"https://github.com/adartem/adlib/issues"},"author":{"name":"Adartem","url":"https://adartem.fr/"},"license":"MIT","homepage":"https://adartem.fr/attributes","keywords":["adlib","adartem","attributes","runtime","cdn","declarative"],"repository":{"type":"git","url":"git+https://github.com/adartem/adlib.git","directory":"packages/adlib-attributes"},"description":"ADARTEM AdLib Attributes (ad-*).","maintainers":[{"name":"joshua-divialle","email":"divialle.joshua2@gmail.com"}],"readme":"# @adartem/adlib-attributes\n\n`@adartem/adlib-attributes` est le **package central** de la plateforme **AdLib**.\n\nIl fournit un **point d’entrée unique côté navigateur**, combinant :\n\n- le loader officiel `attributes.js` (ESM)\n- le runtime global singleton (`window.AdLibAttributes`)\n- le core unifié de gestion des modules et du DOM\n\n👉 **Aucun autre package n’est requis côté navigateur pour utiliser AdLib.**\n\n---\n\n## ✅ Loader officiel : 2 URLs équivalentes\n\nAdLib expose **deux formes** de loader **strictement équivalentes** :\n\n### ✅ Loader court (recommandé — Webflow / copy-paste)\n\n```html\n<script\n  type=\"module\"\n  src=\"<https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js>\"\n></script>\n```\n\n### 🔁 Loader long (équivalent — chemin dist)\n\n```html\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/dist/attributes.js\"\n></script>\n```\n\n👉 Recommandation : utilise **le loader court** pour Webflow/live (DX + robustesse).\n\n---\n\n## ⚡ Quickstart — API Queue (copy / paste)\n\nLe moyen **le plus simple et recommandé** pour exécuter du code\n\nlorsqu’un module AdLib est prêt :\n\n```html\n<script>\nwindow.AdLibAttributes ||= [];\nwindow.AdLibAttributes.push([\n\"ad-click\",\n(state) => {\nif (state.status ===\"ready\") {\nconsole.log(\"ad-click prêt\");\n      }\n    },\n  ]);\n</script>\n\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js\"\ndata-adlib-auto=\"true\"\nad-click\n></script>\n```\n\n### Garanties\n\n- si le module est déjà `ready` ou `error`, le callback est exécuté immédiatement\n- sinon, il est attaché au chargement en cours\n- un même callback ne s’exécute **jamais deux fois** pour un même `push`\n\n### Plusieurs modules\n\n```jsx\nwindow.AdLibAttributes ||= [];\nwindow.AdLibAttributes.push(\n  [\"ad-click\",(st) =>console.log(\"click\", st.status)],\n  [\"ad-modal\",(st) =>console.log(\"modal\", st.status)]\n);\n```\n\n### Pattern de compatibilité\n\n```jsx\nwindow.AdLibAttributesQueue = [\n  [\"ad-click\",(state) =>console.log(state.status)],\n];\n```\n\n👉 Les deux patterns sont automatiquement détectés et drainés au bootstrap.\n\n---\n\n## 🎯 Objectifs du package\n\n- Loader ESM universel (`attributes.js` recommandé, `dist/attributes.js` équivalent)\n- Runtime global singleton (`window.AdLibAttributes`)\n- Core d’événements et de délégation DOM\n- Chargement dynamique des modules `ad-*`\n- Scan automatique (optionnel) du DOM\n- API publique **stable**, **idempotente** et **observable**\n\n---\n\n## 🧱 Architecture générale\n\n```\nattributes.js (loader)\n        ↓\nRuntime global (singleton)\n        ↓\nCore (events, delegation, lifecycle)\n        ↓\nModules ad-* (chargés dynamiquement)\n```\n\nLe runtime est conçu pour être :\n\n- **idempotent** (re-import ESM, init safe)\n- **déterministe**\n- **observable** (événements + état)\n- **robuste aux erreurs**\n\n---\n\n## 📦 Contenu\n\n### Loader (`attributes.js`)\n\n- Fichiers distribués :\n    - `attributes.js` (entrée courte, recommandée)\n    - `dist/attributes.js` (entrée longue, équivalente)\n- Chargement via CDN ou bundler\n- Initialisation automatique du runtime navigateur\n- Lecture de la configuration via `data-adlib-*`\n- Détection des modules demandés via attributs `ad-*`\n- Consommation automatique de la file d’attente globale (queue)\n\n---\n\n### Runtime\n\n- Orchestration complète du cycle de vie des modules `ad-*`\n- États gérés : `idle`, `loading`, `ready`, `error`\n- Import dynamique ESM\n- API publique stable\n- Dispatch d’événements globaux\n- Gestion centralisée des erreurs\n- Support de la queue `window.AdLibAttributes.push(...)`\n\n👉 Le **contrat runtime** est documenté ici : `docs/runtime-contract.md`\n\n---\n\n### Core\n\n- Délégation d’événements DOM\n- Émission d’événements internes\n- Gestion des instances de modules\n- Support du DOM statique et dynamique\n- Aucune dépendance à un framework\n\n---\n\n## 📜 Contrat des modules (référence)\n\nLes modules `ad-*` doivent respecter un **contrat strict** :\n\n- `default export` : `{ key, init(core) }`\n- `init()` retourne une instance : `{ key, destroy(), restart?() }`\n- délégation DOM (pas de listeners par élément)\n- parsing d’options stable\n- guards réutilisables\n- accessibilité sur triggers non interactifs\n- cleanup complet et idempotent\n\n👉 Spécification complète : `src/contracts/module-contract.md`\n\n---\n\n## 🚀 Installation\n\n### Via CDN (recommandé)\n\n✅ Loader court :\n\n```html\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js\"\ndata-adlib-auto=\"true\"\nad-click\n></script>\n```\n\n🔁 Loader long (équivalent) :\n\n```html\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/dist/attributes.js\"\ndata-adlib-auto=\"true\"\nad-click\n></script>\n```\n\nL’attribut `ad-click` sur le script loader indique au runtime de charger le module `ad-click`.\n\n---\n\n### Via bundler\n\n```tsx\nimport\"@adartem/adlib-attributes/attributes.js\";\n```\n\nLe loader s’exécute automatiquement en environnement navigateur.\n\n---\n\n## 🌍 API globale\n\nUne fois le loader exécuté, le runtime est accessible globalement :\n\n```tsx\nwindow.AdLibAttributes;\n```\n\n---\n\n## 🧩 Interface publique du runtime\n\n> Ce bloc est une représentation de l’API publique (pour lecture rapide).\n> \n\n```tsx\ninterfaceAdLibRuntime {\nversion:string;\nconfig:RuntimeConfig;\n\ncore:Core;\ndebug:boolean;\n\nauto:boolean;\nobserveAttributes:boolean;\n\nmodules:Partial<Record<ModuleKey,RuntimeModuleState>>;\nscripts:HTMLScriptElement[];\n\nload(key:ModuleKey):Promise<RuntimeModuleState>;\n\nreload(\nkey:ModuleKey,\noptions?: {rescan?:boolean }\n  ):Promise<RuntimeModuleState>;\n\npush(\n    ...items: (\n      | [ModuleKey,(state:RuntimeModuleState) =>void]\n      | {key:ModuleKey;cb:(state:RuntimeModuleState) =>void }\n    )[]\n  ):void;\n\ninitFromScripts(source:InitSource):void;\n\ndestroy(options?: {keepGlobal?:boolean }):void;\n}\n```\n\n👉 **Seules ces méthodes constituent l’API publique stable.**\n\n---\n\n## 🧭 États des modules (runtime)\n\nChaque module `ad-*` possède un état runtime explicite :\n\n- `idle` — module connu mais non chargé\n- `loading` — import ou initialisation en cours\n- `ready` — module initialisé et actif\n- `error` — échec d’import ou d’initialisation\n\nExemple :\n\n```jsx\nconst state =window.AdLibAttributes.modules[\"ad-click\"];\n\nif (state?.status ===\"ready\") {\n// state.instance disponible\n}\n```\n\n👉 Les invariants complets sont documentés ici : `docs/runtime-contract.md`\n\n---\n\n## 📣 Événements runtime globaux\n\nÉmis sur `window` :\n\n- `ad:module:before`\n- `ad:module:after`\n- `ad:module:error`\n\n```jsx\nwindow.addEventListener(\"ad:module:after\",(e) => {\nconst { key, state } = e.detail;\nconsole.log(`${key} prêt`, state.status);\n});\n```\n\n👉 L’état transmis est un **snapshot immuable**.\n\n---\n\n## 🔍 Scan du DOM & conventions\n\n### Attributs reconnus\n\n- `ad-*`\n- `data-ad-*`\n\n```html\n<button ad-click></button>\n<button data-ad-click></button>\n```\n\n### Auto-scan (recommandé)\n\nActive le scan initial + observation DOM :\n\n```html\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js\"\ndata-adlib-auto=\"true\"\nad-click\n></script>\n```\n\n### Observation des mutations d’attributs (opt-in)\n\n```html\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js\"\ndata-adlib-observe-attributes=\"true\"\nad-click\n></script>\n\n```\n\nDésactivé par défaut pour des raisons de performance.\n\n---\n\n## ⚙️ Configuration loader (`data-adlib-*`)\n\n```html\n<script\ntype=\"module\"\nsrc=\"https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js\"\nad-click\ndata-adlib-auto=\"true\"\ndata-adlib-debug=\"true\"\ndata-adlib-registry=\"https://cdn.jsdelivr.net/npm\"\ndata-adlib-base=\"@adartem\"\ndata-adlib-version=\"latest\"\ndata-adlib-observe-attributes=\"false\"\n></script>\n```\n\n---\n\n## ⚠️ Règles importantes (actuelles)\n\n- ❌ **Un seul loader par page**\n- ❌ Ne pas charger `attributes.js` plusieurs fois\n    \n    *(une évolution “multi-loader idempotent” est prévue)*\n    \n\n---\n\n## 🧪 Développement\n\n```bash\npnpm -r --filter @adartem/adlib-attributes lint\npnpm -r --filter @adartem/adlib-attributes typecheck\npnpm -r --filter @adartem/adlib-attributes test\n```\n\n---\n\n## 🪪 Licence\n\nMIT © ADARTEM","readmeFilename":"README.md"}