diff --git a/CHANGELOG.md b/CHANGELOG.md index c8472a7..7c7ab62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [v0.2.34] - 2026-03-13 + +### Changed +- Allow comments in sanitizer for `html` (needed for `@aegisjsproject/iota`) + ## [v0.2.33] - 2026-01-12 ### Added diff --git a/package-lock.json b/package-lock.json index 4a1222e..4ed35f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@aegisjsproject/core", - "version": "0.2.33", + "version": "0.2.34", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@aegisjsproject/core", - "version": "0.2.33", + "version": "0.2.34", "funding": [ { "type": "librepay", @@ -19,26 +19,26 @@ ], "license": "MIT", "dependencies": { - "@aegisjsproject/callback-registry": "^2.0.0", + "@aegisjsproject/callback-registry": "^2.0.2", "@aegisjsproject/escape": "^1.0.4", - "@aegisjsproject/parsers": "^0.1.5", - "@aegisjsproject/router": "^1.1.3", + "@aegisjsproject/parsers": "^0.1.6", + "@aegisjsproject/router": "^1.1.15", "@aegisjsproject/sanitizer": "^0.2.4", "@aegisjsproject/state": "^1.0.7", "@aegisjsproject/url": "^1.0.3" }, "devDependencies": { "@aegisjsproject/component": "^0.1.7", - "@aegisjsproject/dev-server": "^1.0.5", + "@aegisjsproject/dev-server": "^1.0.6", "@aegisjsproject/http-utils": "^1.0.4", "@aegisjsproject/styles": "^0.2.7", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^1.0.0", - "@shgysk8zer0/eslint-config": "^1.0.4", - "@shgysk8zer0/importmap": "^1.7.5", - "@shgysk8zer0/polyfills": "^0.6.0", - "eslint": "^10.0.0", - "rollup": "^4.9.6" + "@shgysk8zer0/eslint-config": "^1.0.7", + "@shgysk8zer0/importmap": "^1.8.1", + "@shgysk8zer0/polyfills": "^0.6.2", + "eslint": "^10.0.3", + "rollup": "^4.59.0" }, "engines": { "node": ">=18.0.0" @@ -237,9 +237,9 @@ } }, "node_modules/@aegisjsproject/parsers": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@aegisjsproject/parsers/-/parsers-0.1.5.tgz", - "integrity": "sha512-N4Mi7ZbrRy1KYMyrZscaIi3svHRqvbBH6l4S/I3YRD3Xal9flBAiDhcdoR6oes7L53i7CpiEtVD7rXReoLBffw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@aegisjsproject/parsers/-/parsers-0.1.6.tgz", + "integrity": "sha512-5Fy5G6lY4m61TyWhERBIbsIiW97efY40q5ocFHkkHPN1Yr3dCZsRaA00kvafAp/Elo0HDjO3U9c7vjncThMTTg==", "funding": [ { "type": "librepay", @@ -1285,6 +1285,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1420,6 +1421,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz", "integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", @@ -1649,10 +1651,11 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -1996,6 +1999,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -2247,9 +2251,9 @@ "dev": true }, "@aegisjsproject/parsers": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@aegisjsproject/parsers/-/parsers-0.1.5.tgz", - "integrity": "sha512-N4Mi7ZbrRy1KYMyrZscaIi3svHRqvbBH6l4S/I3YRD3Xal9flBAiDhcdoR6oes7L53i7CpiEtVD7rXReoLBffw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@aegisjsproject/parsers/-/parsers-0.1.6.tgz", + "integrity": "sha512-5Fy5G6lY4m61TyWhERBIbsIiW97efY40q5ocFHkkHPN1Yr3dCZsRaA00kvafAp/Elo0HDjO3U9c7vjncThMTTg==", "requires": { "@aegisjsproject/sanitizer": "^0.2.4", "@aegisjsproject/url": "^1.0.3" @@ -2802,7 +2806,8 @@ "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true + "dev": true, + "peer": true }, "acorn-jsx": { "version": "5.3.2", @@ -2899,6 +2904,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.3.tgz", "integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==", "dev": true, + "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", @@ -3061,9 +3067,9 @@ } }, "flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", "dev": true }, "fsevents": { @@ -3311,6 +3317,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "dev": true, + "peer": true, "requires": { "@rollup/rollup-android-arm-eabi": "4.59.0", "@rollup/rollup-android-arm64": "4.59.0", diff --git a/package.json b/package.json index cbd595e..f21e943 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aegisjsproject/core", - "version": "0.2.33", + "version": "0.2.34", "description": "A fast, secure, modern, light-weight, and simple JS library for creating web components and more!", "keywords": [ "aegis", @@ -92,22 +92,22 @@ "homepage": "https://github.com/AegisJSProject/core#readme", "devDependencies": { "@aegisjsproject/component": "^0.1.7", - "@aegisjsproject/dev-server": "^1.0.5", + "@aegisjsproject/dev-server": "^1.0.6", "@aegisjsproject/http-utils": "^1.0.4", "@aegisjsproject/styles": "^0.2.7", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^1.0.0", - "@shgysk8zer0/eslint-config": "^1.0.4", - "@shgysk8zer0/importmap": "^1.7.5", - "@shgysk8zer0/polyfills": "^0.6.0", - "eslint": "^10.0.0", - "rollup": "^4.9.6" + "@shgysk8zer0/eslint-config": "^1.0.7", + "@shgysk8zer0/importmap": "^1.8.1", + "@shgysk8zer0/polyfills": "^0.6.2", + "eslint": "^10.0.3", + "rollup": "^4.59.0" }, "dependencies": { - "@aegisjsproject/callback-registry": "^2.0.0", + "@aegisjsproject/callback-registry": "^2.0.2", "@aegisjsproject/escape": "^1.0.4", - "@aegisjsproject/parsers": "^0.1.5", - "@aegisjsproject/router": "^1.1.3", + "@aegisjsproject/parsers": "^0.1.6", + "@aegisjsproject/router": "^1.1.15", "@aegisjsproject/sanitizer": "^0.2.4", "@aegisjsproject/state": "^1.0.7", "@aegisjsproject/url": "^1.0.3" diff --git a/parsers/html.js b/parsers/html.js index 418b3e4..588f2fe 100644 --- a/parsers/html.js +++ b/parsers/html.js @@ -1,21 +1,22 @@ import { stringify } from '../stringify.js'; -import { sanitizer as sanitizerConfig } from '@aegisjsproject/sanitizer/config/base.js'; +import { elements, attributes } from '@aegisjsproject/sanitizer/config/base.js'; import { getRegisteredComponentTags } from '../componentRegistry.js'; import { createHTMLParser, doc } from '@aegisjsproject/parsers/html.js'; import { isTrustPolicy } from '../trust.js'; import { observeEvents } from '@aegisjsproject/callback-registry'; -const sanitizer = Object.freeze({ - ...sanitizerConfig, +const sanitizerConfig = Object.freeze({ + comments: true, + dataAttributes: true, get elements() { - return [...sanitizerConfig.elements, ...getRegisteredComponentTags()]; + return [...elements, ...getRegisteredComponentTags()]; }, get attributes() { - return ['theme', ...sanitizerConfig.attributes]; + return ['theme', ...attributes]; }, }); -export const html = createHTMLParser(sanitizer, { mapper: stringify }); +export const html = createHTMLParser(sanitizerConfig, { mapper: stringify }); export const el = (...args) => html.apply(null, args)?.firstElementChild; diff --git a/test/index.js b/test/index.js index bf6d1d5..f983d0d 100644 --- a/test/index.js +++ b/test/index.js @@ -70,7 +70,7 @@ h1.textContent = 'Hello, World!'; frag.append(h1); try { - document.body.append(html`
+ document.body.append(html`
${frag}

Click Me!