{"_id":"@altano/html-cdnify","_rev":"14-e90a8f6482726687edae549746742310","name":"@altano/html-cdnify","dist-tags":{"latest":"6.0.0"},"versions":{"1.0.0":{"name":"@altano/html-cdnify","version":"1.0.0","keywords":["cdn","html","cdnify","cdnification"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@1.0.0","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"9cb82553e2c5edbe527c9baa4f871516339ff707","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-1.0.0.tgz","fileCount":17,"integrity":"sha512-jt00ejX24ZYnCg0mMFXHoPkYH2FI6jHK0w53SwwGi1lZNat0P69+QBGVccQcO+EPinCI+7CN4fjrU4Y6Rw02Cw==","signatures":[{"sig":"MEQCID/zWn2PAbNo/HSPhU/vCZWN5iWOwPCt8g4hsm05ALW6AiBH0jp+8oaT8JX3mpwKo3dPTRZ69+x69itISSIYPyM/ug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31800},"main":"dist/index.js","type":"module","_from":"file:altano-html-cdnify-1.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=5.10.1"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts*","test":"vitest --run","build":"tsup","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --write src","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","build:types":"tsc --emitDeclarationOnly --declaration","lint:timing":"TIMING=1 eslint src/**/*.ts*"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/private/var/folders/b2/jwtfxknj2sb_1xh_c60vxqrh0000gn/T/4ada4ebee591a8a64876a5072a7336bc/altano-html-cdnify-1.0.0.tgz","_integrity":"sha512-jt00ejX24ZYnCg0mMFXHoPkYH2FI6jHK0w53SwwGi1lZNat0P69+QBGVccQcO+EPinCI+7CN4fjrU4Y6Rw02Cw==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"9.5.1","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.1","dependencies":{"glob":"^10.3.3","lodash":"^4.17.21","trumpet":"^1.7.2","streamifier":"^0.1.1","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","eslint":"^8.47.0","vitest":"^0.34.2","prettier":"^3.0.2","typescript":"^5.1.6","@types/glob":"^8.1.0","@types/node":"^20.5.3","@types/lodash":"^4.14.197","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.0","eslint-config-altano":"0.0.0","@types/stream-to-promise":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_1.0.0_1692782275761_0.5702592598007359","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@altano/html-cdnify","version":"1.0.1","keywords":["cdn","html","cdnify","cdnification"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@1.0.1","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"f9a96a14dc75f7328364aa439d5a23ba9ea140bc","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-1.0.1.tgz","fileCount":17,"integrity":"sha512-D5j41gotm184nlMco4VNjGqfnekBkzoyFfYW5cI+PJ55Xk1Ezu5NBZt53btRtIX3h5IyGSaKN2DvQWTGrNY6OQ==","signatures":[{"sig":"MEUCIQCJbihqW570klaS9yKARuneY/YEaWjGf1XcTt4gv/n2QgIgb4PUgRsl2uDlZNS/hPnnp0dOAg/1B1hDE2y+wtBg+Eo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31824},"main":"dist/index.js","type":"module","_from":"file:altano-html-cdnify-1.0.1.tgz","types":"dist/index.d.ts","engines":{"node":">=5.10.1"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts*","test":"vitest --run","build":"tsup","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --write src","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","build:types":"tsc --emitDeclarationOnly --declaration","lint:timing":"TIMING=1 eslint src/**/*.ts*"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/private/var/folders/b2/jwtfxknj2sb_1xh_c60vxqrh0000gn/T/6037a93b6fcce1200195f4e0094d8c8a/altano-html-cdnify-1.0.1.tgz","_integrity":"sha512-D5j41gotm184nlMco4VNjGqfnekBkzoyFfYW5cI+PJ55Xk1Ezu5NBZt53btRtIX3h5IyGSaKN2DvQWTGrNY6OQ==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"9.5.1","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"18.16.1","dependencies":{"glob":"^10.3.3","lodash":"^4.17.21","trumpet":"^1.7.2","streamifier":"^0.1.1","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.2.0","eslint":"^8.47.0","vitest":"^0.34.2","prettier":"^3.0.2","typescript":"^5.1.6","@types/glob":"^8.1.0","@types/node":"^20.5.3","@types/lodash":"^4.14.197","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.0","eslint-config-altano":"0.0.0","@types/stream-to-promise":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_1.0.1_1692782548068_0.7200059654119306","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@altano/html-cdnify","version":"2.0.0","keywords":["cdn","html","cdnify","cdnification"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@2.0.0","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"ff31c448482d5859910d3ac9713c395544a7e520","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-2.0.0.tgz","fileCount":17,"integrity":"sha512-jjx/IYAycHDMyP8jer/LBBfLhr5f+uHGE87p2b/pkzCQhLM/YSgaHcxWfe7ePGBxmB2DI0CWSRzLRbhj4iqwRg==","signatures":[{"sig":"MEYCIQDCYpekXm6Zt5ywwIsecbuG4Q2umubsqkYYngxRxOv+ugIhAJaYu0MknDrq9teZgT8JxneoVc8n7N4+4SkZxvgcAOJA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31967},"main":"dist/index.js","type":"module","_from":"file:altano-html-cdnify-2.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=5.10.1"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts*","test":"vitest --run","build":"tsup","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","format:fix":"prettier --write src","build:types":"tsc --emitDeclarationOnly --declaration","lint:timing":"TIMING=1 eslint src/**/*.ts*"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/9815738c582860a7a6d5e8232c3f5cd9/altano-html-cdnify-2.0.0.tgz","_integrity":"sha512-jjx/IYAycHDMyP8jer/LBBfLhr5f+uHGE87p2b/pkzCQhLM/YSgaHcxWfe7ePGBxmB2DI0CWSRzLRbhj4iqwRg==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.2.4","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"glob":"^10.3.10","lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","eslint":"^8.57.0","vitest":"^1.3.1","prettier":"^3.2.5","typescript":"^5.4.2","@types/glob":"^8.1.0","@types/node":"^20.11.25","@types/lodash":"^4.14.202","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","eslint-config-altano":"0.0.1","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_2.0.0_1710032894181_0.5834214750744764","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@altano/html-cdnify","version":"3.0.0","keywords":["cdn","html","cdnify","cdnification"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@3.0.0","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"a345fce2233a0cddf095c5ed92fb8a467c1a0bd7","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-3.0.0.tgz","fileCount":15,"integrity":"sha512-PwP04VetpeFJrCzO98/IZPLrHfaxVsORZOnafJoAd+vBjMTngjLqIDpubNfXrCSEXAQtmPrkufub9Z2cvw4wqQ==","signatures":[{"sig":"MEUCIFnh61yBCsMXaKHYUv7Zd8dAHil6vQ6swcnhJSAojYRyAiEA6EVFG7d/IEeryhV5kXbXvLk982iNymPeUaBfKgfeMJE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31279},"type":"module","_from":"file:altano-html-cdnify-3.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint package.json src/**/*.ts*","build":"tsup --config build-config/tsup.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","build:types":"tsc --project tsconfig.declarations.json","lint:timing":"TIMING=1 pnpm lint","typecheck:src":"tsc --noEmit","typecheck:test":"tsc --noEmit --project ./tests/tsconfig.json","test:unit:watch":"vitest"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/ae31eed48ea24595213554144e0be66e/altano-html-cdnify-3.0.0.tgz","_integrity":"sha512-PwP04VetpeFJrCzO98/IZPLrHfaxVsORZOnafJoAd+vBjMTngjLqIDpubNfXrCSEXAQtmPrkufub9Z2cvw4wqQ==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.2.4","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"glob":"^10.3.10","lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.4.0","prettier":"^3.2.5","typescript":"^5.4.2","@types/glob":"^8.1.0","@types/node":"^20.11.25","@types/lodash":"^4.14.202","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","eslint-config-altano":"0.0.0","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_3.0.0_1711962007815_0.6844944476822252","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@altano/html-cdnify","version":"3.0.1","keywords":["cdn","html","cdnify","cdnification"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@3.0.1","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"bc9ef882b936349a32e4b7748c4143ad3787828d","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-3.0.1.tgz","fileCount":15,"integrity":"sha512-U96pHNMfYXu0TqVCfoVVmPohfJW1fOXFy1rD5eoirCRIl5DcgZP4SvKA/D2JtAmv44WnAt+1o/sIteSqwtuTgA==","signatures":[{"sig":"MEQCIDVflmGOybZbmkEYxm/1o3VQ/SYdnkr548c8HSXVz6olAiBRS0q1Q31J2ekUhm9fYsIWhoOlEAQ+I1zuvgZAPAP8UQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31390},"type":"module","_from":"file:altano-html-cdnify-3.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint package.json src/**/*.ts*","build":"tsup --config build-config/tsup.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","build:types":"tsc --project tsconfig.declarations.json","lint:timing":"TIMING=1 pnpm lint","typecheck:src":"tsc --noEmit","typecheck:test":"tsc --noEmit --project ./tests/tsconfig.json","test:unit:watch":"vitest"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/944b575290c52f3a4234420c89e9fbab/altano-html-cdnify-3.0.1.tgz","_integrity":"sha512-U96pHNMfYXu0TqVCfoVVmPohfJW1fOXFy1rD5eoirCRIl5DcgZP4SvKA/D2JtAmv44WnAt+1o/sIteSqwtuTgA==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.2.4","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"glob":"^10.3.10","lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.8","eslint":"^8.57.0","vitest":"^1.4.0","prettier":"^3.2.5","typescript":"^5.4.2","@types/glob":"^8.1.0","@types/node":"^20.11.25","@types/lodash":"^4.14.202","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","eslint-config-altano":"0.0.0","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_3.0.1_1720233042376_0.1645231039109376","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@altano/html-cdnify","version":"3.0.2","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@3.0.2","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"ce8ea7940814df34068e93039569d85f91cc6e4c","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-3.0.2.tgz","fileCount":15,"integrity":"sha512-A7KveHcy/wYWoTUiLOOX7y7qsuZr1Jf8cRk0U4PrajrMfmdK3u3PeqaN6Y/39ga0B03ROYVSVQpf5uErTAfSEw==","signatures":[{"sig":"MEUCIEONifUJaGePazam1ipLTPPRsd5GKCJWjnpKsVfk3Sl4AiEAqVvJJKLFaiiIQZ2g370mTlz/vIMG+qL38HNR2sBVbs4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31213},"type":"module","_from":"file:altano-html-cdnify-3.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsup --config build-config/tsup.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","build:types":"tsc --project tsconfig.declarations.json","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --ignore-rules=cjs-resolves-to-esm","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/a3dd0f091017ff2a90bf8a61e77dfbc3/altano-html-cdnify-3.0.2.tgz","_integrity":"sha512-A7KveHcy/wYWoTUiLOOX7y7qsuZr1Jf8cRk0U4PrajrMfmdK3u3PeqaN6Y/39ga0B03ROYVSVQpf5uErTAfSEw==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.2.4","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"glob":"^10.3.10","lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.10","eslint":"^9.13.0","vitest":"^2.1.3","prettier":"^3.3.3","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^20.16.5","@types/lodash":"^4.14.202","@altano/testing":"0.0.0","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^2.1.3","@altano/build-config":"0.0.0","@arethetypeswrong/cli":"^0.15.4","@altano/vitest-plugins":"0.2.0","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_3.0.2_1730073857420_0.3089344275827941","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"@altano/html-cdnify","version":"3.0.3","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@3.0.3","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"57f1f7df4eff190324deffd0dd35688c47431fc0","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-3.0.3.tgz","fileCount":15,"integrity":"sha512-GRUVt2F0en0O6jcl7XGydwne+sqNdpIddEW7vim5ToaQNANtYBw7n9CEDJ892VwHWWqkY2jBVGHpDOEr14qTKA==","signatures":[{"sig":"MEYCIQC4kULGJWWrjsLLQGwIXdxUUQHJok4JiLvH4qBFM8D6LgIhALVjXybJCMBy2yr52mz+Zlzra5elTz1v21q4Gld2Cde9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31142},"type":"module","_from":"file:altano-html-cdnify-3.0.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsup --config build-config/tsup.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","build:types":"tsc --project tsconfig.declarations.json","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --ignore-rules=cjs-resolves-to-esm","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/ff93f9bc1701630d1b6eb839208bd07c/altano-html-cdnify-3.0.3.tgz","_integrity":"sha512-GRUVt2F0en0O6jcl7XGydwne+sqNdpIddEW7vim5ToaQNANtYBw7n9CEDJ892VwHWWqkY2jBVGHpDOEr14qTKA==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.2.4","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"glob":"^10.3.10","lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.10","eslint":"^9.13.0","vitest":"^2.1.3","prettier":"^3.3.3","typescript":"^5.6.3","@types/glob":"^8.1.0","@types/node":"^20.16.5","@types/lodash":"^4.14.202","@altano/testing":"0.0.0","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^2.1.3","@altano/build-config":"0.0.0","@arethetypeswrong/cli":"^0.15.4","@altano/vitest-plugins":"0.2.0","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_3.0.3_1730700931875_0.4639562692886723","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"@altano/html-cdnify","version":"3.0.4","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@3.0.4","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"8cb487a99159ee21fbf31b54ec03fcc21a98f9c5","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-3.0.4.tgz","fileCount":15,"integrity":"sha512-iodo7P9CkIGd9tr5iYMxUyXR7qqe8xVnoViXMKJn6ivQp/LMPSv1Zbys62uNWmjxaoHKmL4cqLxUGovVQJJgKA==","signatures":[{"sig":"MEQCIBoxUJdC/hp5h5qQimeNfoJlXt3hqqzpK8RsmWIIJhj/AiBr0+3DhEPgZw51DUTNSYd7qGhdbZoMURa9LLbAcdRUwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31174},"type":"module","_from":"file:altano-html-cdnify-3.0.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsup --config build-config/tsup.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","build:types":"tsc --project tsconfig.declarations.json","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --ignore-rules=cjs-resolves-to-esm","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/db7fc30a6048895e007f94b315c9f546/altano-html-cdnify-3.0.4.tgz","_integrity":"sha512-iodo7P9CkIGd9tr5iYMxUyXR7qqe8xVnoViXMKJn6ivQp/LMPSv1Zbys62uNWmjxaoHKmL4cqLxUGovVQJJgKA==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.9.2","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.3","eslint":"^9.22.0","vitest":"^3.0.9","depcheck":"^1.4.7","prettier":"^3.3.3","typescript":"^5.8.2","@types/node":"^22.13.10","@types/lodash":"^4.14.202","@altano/testing":"0.0.0","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^3.0.9","@altano/build-config":"0.0.0","@arethetypeswrong/cli":"^0.15.4","@altano/vitest-plugins":"1.0.0","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_3.0.4_1743414760635_0.019966260745695408","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@altano/html-cdnify","version":"3.0.5","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@3.0.5","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"9bd473619bfc760126b12cdba4b4fbbb05ca7622","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-3.0.5.tgz","fileCount":15,"integrity":"sha512-iEurjJ5JT2QHTyGlIt+nXRcLy/wMDB37Yb+pWlUT8GaCUZKliHgUGz1PHs4NnVThCr54kuiVwmo5hzmPWjRNpA==","signatures":[{"sig":"MEUCIBiQ/uXgObAm4sL1A9fWaqV79VG0Uj8qmAFL5jtpFx9RAiEAx0OKtvQrlai2X6bZxmgUpUDDQhhd8eH/zkCmfziEuDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31107},"type":"module","_from":"file:altano-html-cdnify-3.0.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsup --config build-config/tsup.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","build:types":"tsc --project tsconfig.declarations.json","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --ignore-rules=cjs-resolves-to-esm","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck"},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"_resolved":"/tmp/d86683130685d3eae4e559f098f8d09a/altano-html-cdnify-3.0.5.tgz","_integrity":"sha512-iEurjJ5JT2QHTyGlIt+nXRcLy/wMDB37Yb+pWlUT8GaCUZKliHgUGz1PHs4NnVThCr54kuiVwmo5hzmPWjRNpA==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.9.2","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.3","eslint":"^9.22.0","vitest":"^3.0.9","depcheck":"^1.4.7","prettier":"^3.3.3","typescript":"^5.8.2","@types/node":"^22.13.10","@types/lodash":"^4.14.202","@altano/testing":"0.0.0","@altano/tsconfig":"0.0.0","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^3.0.9","@altano/build-config":"0.0.0","@arethetypeswrong/cli":"^0.15.4","@altano/vitest-plugins":"1.0.0","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_3.0.5_1743459188681_0.46275525229448844","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@altano/html-cdnify","version":"4.0.0","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@4.0.0","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"4543895436162c11495a44c14db69c0021dbd32a","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-4.0.0.tgz","fileCount":15,"integrity":"sha512-j6XcA1nWVf3vNf/xkmn6O1n5IhsqZDes/u+l94xObOShLZqOrvm8jjO9AocVk9IIYpORvi0BCBu6cwAyUQIbhA==","signatures":[{"sig":"MEYCIQCp26SDi9RZzeR3ZeqYk+pk/4PdE6ZxMRqVuvy39Yve8wIhAMApPIKpZZ6I1EmdDkBNBI0pLXXDQ3j1MraahQ77fL6b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31911},"type":"module","_from":"file:altano-html-cdnify-4.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsdown --config ../build-config/tsdown.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --profile esm-only --quiet","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck"},"_npmUser":{"name":"altano","actor":{"name":"altano","type":"user","email":"altano@gmail.com"},"email":"altano@gmail.com"},"_resolved":"/tmp/613ab6e1e6722a35f75349d00adfd6af/altano-html-cdnify-4.0.0.tgz","_integrity":"sha512-j6XcA1nWVf3vNf/xkmn6O1n5IhsqZDes/u+l94xObOShLZqOrvm8jjO9AocVk9IIYpORvi0BCBu6cwAyUQIbhA==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.9.2","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.6","eslint":"^9.23.0","tsdown":"^0.12.3","vitest":"^3.1.4","depcheck":"^1.4.7","prettier":"^3.5.3","typescript":"^5.8.2","@types/node":"^22.13.10","@types/lodash":"^4.14.202","@altano/testing":"0.0.1","@altano/tsconfig":"0.0.1","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^3.1.4","@altano/build-config":"0.0.1","@arethetypeswrong/cli":"^0.17.4","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_4.0.0_1751327846490_0.20800082986874635","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@altano/html-cdnify","version":"4.0.1","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@4.0.1","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"6cfeaa2748a1f738850c05931e4c441a42ef5c21","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-4.0.1.tgz","fileCount":20,"integrity":"sha512-4ZkFPc+5dOyTfLYBal4ohZ2EdjbchdYqEp255sNq7VwpDpcr4LKwBXR+4cwX/OYzFEb5XdPLmx2ICWb2xWkPLg==","signatures":[{"sig":"MEQCIDKsIgoEPjoePRb4r4q3FVeNvZaV7pJFBrqnx5hHr4HwAiAUaygfSXCfvJocWLBnqRXWb9EcO6DaTlKqwFWMG1RqYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49272},"type":"module","_from":"file:altano-html-cdnify-4.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsdown --config ../build-config/tsdown.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --profile esm-only --quiet","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck"},"_npmUser":{"name":"altano","actor":{"name":"altano","type":"user","email":"altano@gmail.com"},"email":"altano@gmail.com"},"_resolved":"/tmp/a341470ca1b760967c46ee8907c96a73/altano-html-cdnify-4.0.1.tgz","_integrity":"sha512-4ZkFPc+5dOyTfLYBal4ohZ2EdjbchdYqEp255sNq7VwpDpcr4LKwBXR+4cwX/OYzFEb5XdPLmx2ICWb2xWkPLg==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"10.9.2","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"lodash":"^4.17.21","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.6","eslint":"^9.23.0","tsdown":"^0.12.9","vitest":"^3.1.4","depcheck":"^1.4.7","prettier":"^3.5.3","typescript":"^5.8.2","@types/node":"^22.13.10","@types/lodash":"^4.14.202","@altano/testing":"0.0.1","@altano/tsconfig":"0.0.1","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^3.1.4","@altano/build-config":"0.0.1","@arethetypeswrong/cli":"^0.17.4","@types/stream-to-promise":"^2.2.4"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_4.0.1_1751863785579_0.13854711687866916","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@altano/html-cdnify","version":"4.0.2","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"altano@gmail.com"},"license":"ISC","_id":"@altano/html-cdnify@4.0.2","maintainers":[{"name":"altano","email":"altano@gmail.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"dist":{"shasum":"10452f9978d4bb479bc14ecf3a7d95fe25aec0f3","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-4.0.2.tgz","fileCount":20,"integrity":"sha512-mStSxjfsYkDJBEE41yEgZ3cGDkkgP9TmmbdzqyMPKWB2EGALmZ+F3Gdx2VAij3CKSFYujYXbnhF4lhlOYQqXcA==","signatures":[{"sig":"MEQCIHz3nAv5I2iMYc+uypAqEqQmYpGL8U5p4SNOUNznmD+fAiAYD66vCzKKTN77f6p73Zgy9iR0+19Mw74guERzoOTsXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@altano%2fhtml-cdnify@4.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48570},"type":"module","_from":"file:altano-html-cdnify-4.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsdown --config-loader unrun --config ../build-config/tsdown.config.node.ts","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check src","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write src","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --profile esm-only --quiet","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:409f4f59-345f-45ba-b2ef-38d639c2038c"}},"_resolved":"/tmp/32842c60c6173eb862485d2b2a269cd7/altano-html-cdnify-4.0.2.tgz","_integrity":"sha512-mStSxjfsYkDJBEE41yEgZ3cGDkkgP9TmmbdzqyMPKWB2EGALmZ+F3Gdx2VAij3CKSFYujYXbnhF4lhlOYQqXcA==","repository":{"url":"git+https://github.com/altano/npm-packages.git","type":"git","directory":"packages/html-cdnify"},"_npmVersion":"11.11.0","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"lodash":"^4.17.23","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","eslint":"^9.39.4","tsdown":"^0.21.4","vitest":"^4.1.0","depcheck":"^1.4.7","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/lodash":"^4.17.23","@altano/testing":"0.0.1","@altano/tsconfig":"0.0.1","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^4.1.0","@altano/build-config":"0.0.1","@arethetypeswrong/cli":"^0.18.2","@types/stream-to-promise":"^2.2.5"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_4.0.2_1774241731525_0.3173335656520726","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@altano/html-cdnify","version":"5.0.0","keywords":["cdn","cdnification","cdnify","html"],"author":{"url":"https://alan.norbauer.com","name":"Alan Norbauer","email":"alan@norbauer.com"},"license":"ISC","_id":"@altano/html-cdnify@5.0.0","maintainers":[{"name":"altano","email":"alan@norbauer.com"}],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","dist":{"shasum":"925abe38d79f2cba3c9b0933c11eaef4723d5e6d","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-5.0.0.tgz","fileCount":20,"integrity":"sha512-SPN3HgVIEqVvsUpBLzNBnPQQkz3hTPKIxknnXhuajHAamRnBxpqJD2xHDH1j8U+Y46//E/2N6DgGUWOgaECCSw==","signatures":[{"sig":"MEYCIQDdNjX8zGLiUjuO/5Hb5w4PHZNfOWBTHlZSlzh9EUzFHAIhAKTnJOCDtAEwXro1050afxbGUDMcrr4xohjYYEs/WB6H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@altano%2fhtml-cdnify@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51465},"type":"module","types":"./dist/index.d.ts","engines":{"node":">=5.10.1"},"exports":"./dist/index.js","scripts":{"dev":"pnpm run build --watch","lint":"eslint","build":"tsdown","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","format":"prettier --check .","lint:fix":"TIMING=1 pnpm lint --fix","test:unit":"vitest --run","format:fix":"prettier --write .","lint:timing":"TIMING=1 pnpm lint","check:exports":"attw --pack . --profile esm-only --quiet","check:types:src":"tsc --noEmit","test:unit:watch":"vitest","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:409f4f59-345f-45ba-b2ef-38d639c2038c"}},"repository":{"url":"https://github.com/altano/npm-packages","type":"git","directory":"packages/html-cdnify"},"description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"lodash":"^4.18.1","streamifier":"^0.1.1","@gofunky/trumpet":"^3.0.3","stream-to-promise":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.5","eslint":"^9.39.5","tsdown":"^0.22.13","vitest":"^4.1.10","depcheck":"^1.4.7","prettier":"3.9.6","typescript":"^6.0.3","@types/node":"^26.1.1","@types/lodash":"^4.17.24","@altano/testing":"0.0.1","@altano/tsconfig":"0.0.1","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^4.1.10","@altano/build-config":"0.0.1","@arethetypeswrong/cli":"^0.18.5","@types/stream-to-promise":"^2.2.5"},"_npmOperationalInternal":{"tmp":"tmp/html-cdnify_5.0.0_1785618463645_0.5894543744140566","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@altano/html-cdnify","version":"6.0.0","description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","keywords":["cdn","cdnification","cdnify","html"],"homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","repository":{"type":"git","url":"https://github.com/altano/npm-packages","directory":"packages/html-cdnify"},"license":"ISC","author":{"name":"Alan Norbauer","email":"alan@norbauer.com","url":"https://alan.norbauer.com"},"sideEffects":false,"type":"module","exports":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"css-select":"^7.0.0","domhandler":"^6.0.1","lodash-es":"^4.18.1","parse5-html-rewriting-stream":"^8.0.1","streamifier":"^0.1.1"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.5","@types/lodash-es":"^4.17.12","@types/node":"^26.1.1","@types/streamifier":"^0.1.2","@vitest/coverage-v8":"^4.1.10","depcheck":"^1.4.7","eslint":"^9.39.5","prettier":"3.9.6","tsdown":"^0.22.14","typescript":"^6.0.3","vite":"^8.1.5","vitest":"^4.1.10","@altano/build-config":"0.0.1","@altano/testing":"0.0.1","@altano/tsconfig":"0.0.1"},"engines":{"node":">=16.7.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsdown","check:exports":"attw --pack . --profile esm-only --quiet","check:types:src":"tsc --noEmit","check:types:test":"tsc --noEmit --project ./tests/tsconfig.json","check:unused-dependencies":"depcheck","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","dev":"pnpm run build --watch","format":"prettier --check .","format:fix":"prettier --write .","lint":"eslint","lint:fix":"TIMING=1 pnpm lint --fix","lint:timing":"TIMING=1 pnpm lint","test:unit":"vitest --run","test:unit:watch":"vitest"},"_nodeVersion":"24.18.0","_id":"@altano/html-cdnify@6.0.0","dist":{"integrity":"sha512-GKgmdHz81JwJvOa+nc72i+r0bzdtycim9iFFoofeWaE8Q0/GHYdNUyIiMdC3LE00s59+l0jsq55hyZFHsvyFhA==","shasum":"14e56638c6356a6a1a4e47d2a9f618386b4ee7cd","tarball":"https://registry.npmjs.org/@altano/html-cdnify/-/html-cdnify-6.0.0.tgz","fileCount":23,"unpackedSize":63425,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@altano%2fhtml-cdnify@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGUswSoyBKAngbWrPa2qSvOLVs5A6FkDp5pgxfhy+lv8AiBLfVKwFwvcSKjbS2QmyQGwgYvZUdbD0syiIgfhSZig5w=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:409f4f59-345f-45ba-b2ef-38d639c2038c"}},"directories":{},"maintainers":[{"name":"altano","email":"alan@norbauer.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/html-cdnify_6.0.0_1785653520180_0.09327538583122497"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-23T09:17:55.652Z","modified":"2026-08-02T06:52:00.630Z","1.0.0":"2023-08-23T09:17:56.007Z","1.0.1":"2023-08-23T09:22:28.215Z","2.0.0":"2024-03-10T01:08:14.338Z","3.0.0":"2024-04-01T09:00:07.984Z","3.0.1":"2024-07-06T02:30:42.593Z","3.0.2":"2024-10-28T00:04:17.626Z","3.0.3":"2024-11-04T06:15:32.030Z","3.0.4":"2025-03-31T09:52:40.806Z","3.0.5":"2025-03-31T22:13:08.856Z","4.0.0":"2025-06-30T23:57:26.700Z","4.0.1":"2025-07-07T04:49:45.767Z","4.0.2":"2026-03-23T04:55:31.679Z","5.0.0":"2026-08-01T21:07:43.812Z","6.0.0":"2026-08-02T06:52:00.323Z"},"author":{"name":"Alan Norbauer","email":"alan@norbauer.com","url":"https://alan.norbauer.com"},"license":"ISC","homepage":"https://github.com/altano/npm-packages/tree/main/packages/html-cdnify","keywords":["cdn","cdnification","cdnify","html"],"repository":{"type":"git","url":"https://github.com/altano/npm-packages","directory":"packages/html-cdnify"},"description":"Transform the relative URLs in your HTML markup (e.g. scripts, stylesheets, images) to use your CDN URL.","maintainers":[{"name":"altano","email":"alan@norbauer.com"}],"readme":"# html-cdnify\n\n![logo](./assets/logo.png)\n\n[![npm][npm-badge]][npm-url]\n![Typed with TypeScript][types-badge]\n![ESM only][esm-badge]\n\n[npm-badge]: https://badgen.net/npm/v/@altano/html-cdnify\n[npm-url]: https://www.npmjs.com/package/@altano/html-cdnify\n[types-badge]: https://badgen.net/npm/types/@altano/html-cdnify\n[esm-badge]: https://badgen.net/badge/module/esm%20only?icon=js\n\nTransform the relative URLs in your HTML markup (e.g. scripts, stylesheets,\nimages) to use your CDN URL.\n\n- Uses a real HTML parser, [parse5](https://www.npmjs.com/package/parse5), not\n  regular expressions.\n- Doesn't require changes to your HTML, is a purely post-process\n  transformation.\n- Supports relative URLs in your HTML.\n- Will perform minimal modifications to your HTML, only modifying the element\n  that is having an attribute cdnified.\n- Like [grunt-cdnify](https://www.npmjs.com/package/grunt-cdnify) but usable\n  with or without grunt.\n- Like [cdnify](https://www.npmjs.com/package/cdnify) but you don't have to\n  mark up your HTML with magic attributes.\n- This library's scope is limited to HTML and is not meant to process CSS.\n\n## Simplest usage\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\ncdnify({\n  cdnUrl: \"//cdn.com\",\n  buffer: `<img src=\"/face.png\">`,\n})\n  .then((buffer) => buffer.toString())\n  .then((output) => console.log(output));\n\n// Output:\n// <img src=\"//cdn.com/face.png\">\n```\n\n## What gets cdnified\n\nAny URLs where only the path (and after) is specified which are found in the\nfollowing locations will be cdnified:\n\n```text\n   <img data-src=\"____\">\n   <img src=\"____\">\n   <img srcset=\"____\">\n <video poster=\"____\">\n<script src=\"____\">\n<source src=\"____\">\n  <link rel=\"apple-touch-icon\" href=\"____\">\n  <link rel=\"icon\" href=\"____\">\n  <link rel=\"shortcut icon\" href=\"____\">\n  <link rel=\"stylesheet\" href=\"____\">\n```\n\n### Will be cdnified\n\n- `<img src=\"/logo.png\">`\n- `<script src=\"jquery.js\"></script>`\n- `<link rel=\"stylesheet\" href=\"main.css\"></script>`\n\n### Won't be cdnified\n\n| HTMLElement                           | Reason not cdnified    |\n| ------------------------------------- | ---------------------- |\n| `<img src=\"http://foo.com/logo.png\">` | Absolute URL           |\n| `<img src=\"//foo.com/logo.png\">`      | Scheme-relative URL    |\n| `<img custom=\"/logo.png\">`            | Attribute not cdnified |\n\nAdding the `data-cdn-ignore` attribute to any element will cause the element to\nbe skipped during cdnification, and the `data-cdn-ignore` attribute will be\nremoved to clean up your HTML.\n\n## More Examples\n\n### Using `bufferPath` to deal with subdirectories\n\nYou can specify `bufferPath`, the relative path to the buffer being processed.\nIf this isn't specified, all resources with relative paths will be assumed to\nbe at the root of the domain before being cdnified.\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\nvar input = `\n<img src=\"figure1.png\">\n<img src=\"articleSubDirectory/figure2.png\">\n<img src=\"/images/logo.png\">\n`;\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com\",\n  bufferPath: \"articles/article1/index.html\",\n  buffer: input,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <img src=\"//cdn.com/articles/article1/figure1.png\">\n// <img src=\"//cdn.com/articles/article1/articleSubDirectory/figure2.png\">\n// <img src=\"//cdn.com/images/logo.png\">\n```\n\n_Without_ `bufferPath`, the output would be:\n\n```js\n// Output:\n// <img src=\"//cdn.com/figure1.png\">\n// <img src=\"//cdn.com/articleSubDirectory/figure2.png\">\n// <img src=\"//cdn.com/images/logo.png\">\n```\n\nIf your CDN has a path specified, it is assumed that both relative URLs AND\nroot-relative URLs in your HTML are relative to the CDN directory. In other\nwords, the CDN subdirectory will always be in the final URL. For example:\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\nvar input = `\n<img src=\"figure1.png\">\n<img src=\"articleSubDirectory/figure2.png\">\n<img src=\"/images/logo.png\">\n`;\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com/sub/directory/in/cdn/is/always/present\",\n  bufferPath: \"article/index.html\",\n  buffer: input,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <img src=\"//cdn.com/sub/directory/in/cdn/is/always/present/article/figure1.png\">\n// <img src=\"//cdn.com/sub/.../article/articleSubDirectory/figure2.png\">\n// <img src=\"//cdn.com/sub/directory/in/cdn/is/always/present/images/logo.png\">\n```\n\nIt should usually be the expectation that a CDN subdir is always present in the\ncdnified result. If you need to specify a CDN subdirectory AND you need to\nsometimes escape URLs in your HTML to the root of the CDN domain, you'll have\nto write a custom transformFunction.\n\n### Using the underlying stream instead of a Promise\n\nIf you are dealing with large files or network IO and would like to use the\nunderlying NodeJS Transform Stream rather than buffering all of the input and\noutput, feel free:\n\n```js\nimport streamifier from \"streamifier\";\nimport { CDNTransformer } from \"@altano/html-cdnify\");\n\nvar transformer = new CDNTransformer({\n  cdnUrl: \"http://cdn.com\",\n});\n\nvar outputStream = streamifier\n  .createReadStream(\n    `<img src=\"face1.png\">\n<img src=\"face2.png\">\n<img src=\"face3.png\">`,\n  )\n  .pipe(transformer.stream);\n\noutputStream.pipe(process.stdout);\n\n// Output:\n// <img src=\"http://cdn.com/face1.png\">\n// <img src=\"http://cdn.com/face2.png\">\n// <img src=\"http://cdn.com/face3.png\">\n```\n\n### Adding `<custom-element src=\"____\">` via a transform definition\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com/cdn/\",\n  transformDefinitions: [\n    {\n      selector: \"custom-element[src]\",\n      attribute: \"src\",\n    },\n  ],\n  buffer: `<custom-element src=\"/face7.png\">`,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <custom-element src=\"//cdn.com/cdn/face7.png\">\n```\n\n### Specifying a custom transform function\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com\",\n  transformFunction: (cdnUrl, oldUrl, bufferPath) => {\n    return cdnUrl + \"/subdir\" + oldUrl;\n  },\n  buffer: `<img src=\"/logo.png\">`,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <img src=\"//cdn.com/subdir/logo.png\">\n```\n\n### Specifying a custom transform function that delegates to the default\n\nIf your assets are on different CDNs, you might need to write something like:\n\n```js\nimport { cdnify, CDNTransformer } from \"@altano/html-cdnify\");\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com\",\n  transformFunction: (cdnUrl, oldUrl, bufferPath) => {\n    if (oldUrl.endsWith(\".png\")) {\n      var customCdnBaseUrl = \"//imagecdn.com\";\n    } else {\n      var customCdnBaseUrl = \"//assetcdn.com\";\n    }\n    return CDNTransformer.defaultTransformFunction(\n      customCdnBaseUrl,\n      oldUrl,\n      bufferPath,\n    );\n  },\n  buffer: `<img src=\"logo.png\"><script src=\"main.js\"></script>`,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <img src=\"//imagecdn.com/logo.png\"><script src=\"//assetcdn.com/main.js\"></script>\n```\n\n### Specifying a custom attributeParser\n\nA custom attributeParser is like a custom transformFunction, but is scoped to\njust one selector rather than being applied to every attribute transformation.\nFor example, to uppercase only PNG image names before cdnifying:\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com\",\n  transformDefinitions: [\n    {\n      selector: `img[src$=\"png\"]`,\n      attribute: \"src\",\n      attributeParser: (oldAttribute, transformFunction) =>\n        transformFunction(oldAttribute.toUpperCase()),\n    },\n  ],\n  buffer: `<img src=\"/logo.gif\"><img src=\"/logo.png\">`,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <img src=\"//cdn.com/logo.gif\"><img src=\"//cdn.com/LOGO.PNG\">\n```\n\n### Overriding an existing transform\n\nThe default transformDefinitions array is:\n\n```js\n[\n  {\n    selector: `video[poster]:not([data-cdn-ignore])`,\n    attribute: \"poster\",\n  },\n  {\n    selector: `img[data-src]:not([data-cdn-ignore])`,\n    attribute: \"data-src\",\n  },\n  {\n    selector: `script[src]:not([data-cdn-ignore])`,\n    attribute: \"src\",\n  },\n  {\n    selector: `source[src]:not([data-cdn-ignore])`,\n    attribute: \"src\",\n  },\n  {\n    selector: `link[rel=\"apple-touch-icon\"]:not([data-cdn-ignore])`,\n    attribute: \"href\",\n  },\n  {\n    selector: `link[rel=\"icon\"]:not([data-cdn-ignore])`,\n    attribute: \"href\",\n  },\n  {\n    selector: `link[rel=\"shortcut icon\"]:not([data-cdn-ignore])`,\n    attribute: \"href\",\n  },\n  {\n    selector: `link[rel=\"stylesheet\"]:not([data-cdn-ignore])`,\n    attribute: \"href\",\n  },\n  {\n    selector: `img[src]:not([data-cdn-ignore])`,\n    attribute: \"src\",\n  },\n  {\n    selector: `img[srcset]:not([data-cdn-ignore])`,\n    attribute: \"srcset\",\n    attributeParser: (attr, transformFunction) => {\n      return attr\n        .split(\",\")\n        .map((imgInfo) => imgInfo.replace(/([^ ]+)/, transformFunction))\n        .join(\",\");\n    },\n  },\n];\n```\n\nNote that any `transformDefinitions` you pass are **merged with** these\ndefaults rather than replacing them. To override one, specify the same selector\nand attribute but a different attributeParser. For example:\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\nvar noopFn = (oldAttribute) => oldAttribute;\n\nvar outputPromise = cdnify({\n  cdnUrl: \"//cdn.com\",\n  transformDefinitions: [\n    {\n      selector: \"img[src]:not([data-cdn-ignore])\",\n      attribute: \"src\",\n      attributeParser: noopFn, // pass-through attribute without modification\n    },\n  ],\n  buffer: `<img src=\"logo.gif\">`,\n}).then((buffer) => buffer.toString());\n\noutputPromise.then((output) => console.log(output));\n\n// Output:\n// <img src=\"logo.gif\">\n```\n\n## API\n\n### Promise-based API (recommended for simplicity)\n\n```js\nimport { cdnify } from \"@altano/html-cdnify\");\n\ncdnify({ ... Options ...}) => Promise<Buffer>\n```\n\n#### Promise-based options\n\nSame options as the stream-based API (see below), plus:\n\n| Property | Type               | Required | Description        |\n| -------- | ------------------ | -------- | ------------------ |\n| `buffer` | `Buffer \\| string` | yes      | Content to cdnify. |\n\n### Stream-based API\n\nUse the stream-based API when you are dealing with large files or network IO\nand would like to use the underlying NodeJS Transform Stream rather than\nbuffering all of the input and output. The Promise-based API is simpler but the\ninput/output must be completely buffered, which is obviously fine most of the\ntime.\n\n```js\nimport { CDNTransformer } from \"@altano/html-cdnify\");\n\nvar transformer = new CDNTransformer({ ... Options ... }) => CDNTransformer\ntransformer.stream => NodeJS TransformStream\n```\n\n#### Stream-based options\n\n| Property               | Type                    | Required |\n| ---------------------- | ----------------------- | -------- |\n| `cdnUrl`               | `string`                | yes      |\n| `bufferPath`           | `string`                | no       |\n| `transformDefinitions` | `TransformDefinition[]` | no       |\n| `transformFunction`    | `CDNTransformFunction`  | no       |\n\n- **`cdnUrl`** — the absolute (or scheme-relative/agnostic) URL to your CDN.\n- **`bufferPath`** — the relative path to the buffer being processed. If this\n  isn't specified, all resources with relative paths will be assumed to be at\n  the root of the domain before being cdnified.\n- **`transformDefinitions`** — see below.\n- **`transformFunction`** — see below.\n\n#### TransformDefinition\n\n```ts\ninterface TransformDefinition {\n  selector: string;\n  attribute: string;\n  attributeParser?: (\n    oldAttribute: string,\n    transformFunction: TransformFunction,\n  ) => string;\n}\n```\n\nThe default attributeParser when one isn't specified is:\n\n```js\nHtmlAttributeStreamTransformerOptions.attributeParsers = {\n  default: (attr, transformFunction) => transformFunction(attr),\n};\n```\n\n##### Selector support\n\nSelectors are matched against each start tag on its own, as the document\nstreams past. That means **only element-local selectors work** — a tag name\nplus any number of attribute predicates:\n\n| Selector                     | Works | Kind               |\n| ---------------------------- | ----- | ------------------ |\n| `img`                        | yes   | tag name           |\n| `*[src]`                     | yes   | universal          |\n| `img[src]`                   | yes   | attribute presence |\n| `link[rel=\"stylesheet\"]`     | yes   | attribute equals   |\n| `img[src$=\"png\"]`            | yes   | substring match    |\n| `img:not([data-cdn-ignore])` | yes   | negation           |\n| `div img`                    | no    | descendant         |\n| `div > img`                  | no    | child combinator   |\n| `p + img`                    | no    | sibling combinator |\n\nA selector using a combinator **will not throw — it will simply never match**,\nso nothing gets cdnified. If a transform silently does nothing, check whether\nits selector reaches outside the element.\n\nThis is a deliberate trade: matching one tag at a time is what lets the\ntransform stream, and lets everything a selector doesn't touch pass through\nbyte-for-byte.\n\n#### CDNTransformFunction\n\n```ts\n(cdnUrl: string, oldUrl: string, bufferPath: string) => string;\n```\n\n#### TransformFunction\n\n```ts\n(oldAttribute: string) => string;\n```\n\n---\n\nShield (in logo) by [Flaticon](http://www.flaticon.com) from\n[Freepik](http://www.freepik.com)\n","readmeFilename":""}