mancha 0.16.6 → 0.16.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/safe_browser.js +1 -1
- package/dist/safe_browser.js.map +1 -1
- package/dist/trusted_attributes.d.ts +4 -0
- package/dist/trusted_attributes.js +28 -0
- package/dist/trusted_attributes.js.map +1 -0
- package/dist/type_checker.js +24 -3
- package/dist/type_checker.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -62,7 +62,13 @@ const args = yargs(hideBin(process.argv))
|
|
|
62
62
|
for (const input of inputs) {
|
|
63
63
|
const isDirectory = (await fs.stat(input)).isDirectory();
|
|
64
64
|
const pattern = isDirectory ? `${input}/**/*.{html,htm}` : input;
|
|
65
|
-
const
|
|
65
|
+
const globOptions = isDirectory
|
|
66
|
+
? {
|
|
67
|
+
nodir: true,
|
|
68
|
+
ignore: ["**/node_modules/**", "**/.git/**"],
|
|
69
|
+
}
|
|
70
|
+
: { nodir: true };
|
|
71
|
+
const files = await glob(pattern, globOptions);
|
|
66
72
|
filesToCheck.push(...files);
|
|
67
73
|
}
|
|
68
74
|
if (filesToCheck.length === 0) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/safe_browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const t={};function e(t){0}class s{constructor(t,e){this.privateDoNotAccessOrElseWrappedAttributePrefix=e}toString(){return this.privateDoNotAccessOrElseWrappedAttributePrefix}}const i=s;function r(t){if(function(t){return t instanceof s}(t))return t.privateDoNotAccessOrElseWrappedAttributePrefix;throw new Error("")}function n(t){return Object.isFrozen(t)&&Object.isFrozen(t.raw)}function a(t){return-1===t.toString().indexOf("`")}a(t=>t``)||a(t=>t`\0`)||a(t=>t`\n`)||a(t=>t`\u0000`),n``&&n`\0`&&n`\n`&&n`\u0000`;function o(e){const s=e[0].toLowerCase();return new i(t,s)}let l,c="google#safe";function h(){var t;return""!==c&&null!==(t=function(){if("undefined"!=typeof window)return window.trustedTypes}())&&void 0!==t?t:null}class u{constructor(t,s){e(),this.privateDoNotAccessOrElseWrappedHtml=t}toString(){return this.privateDoNotAccessOrElseWrappedHtml.toString()}}function d(e,s){return null!=s?s:new u(e,t)}"undefined"!=typeof window&&window.TrustedHTML;function p(t){var e;const s=t;return d(s,null===(e=function(){var t,e;if(void 0===l)try{l=null!==(e=null===(t=h())||void 0===t?void 0:t.createPolicy(c,{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t}))&&void 0!==e?e:null}catch(t){l=null}return l}())||void 0===e?void 0:e.createHTML(s))}function f(t){var e;if(null===(e=h())||void 0===e?void 0:e.isHTML(t))return t;if(t instanceof u)return t.privateDoNotAccessOrElseWrappedHtml;throw new Error("")}"undefined"!=typeof window&&window.TrustedScriptURL;"undefined"!=typeof window&&window.TrustedScript;function _(t,e){e.appendChild(t);let s=(new XMLSerializer).serializeToString(e);return s=s.slice(s.indexOf(">")+1,s.lastIndexOf("</")),p(s)}const m=["data:","http:","https:","mailto:","ftp:"],E=/^\s*(?!javascript:)(?:[\w+.-]+:|[^:/?#]*(?:[/?#]|$))/i;function w(t){if(!function(t){const e=!E.test(t);return e}(t))return t}function v(t){return w(t)}function b(t){const e=function(t){let e;try{e=new URL(t)}catch(t){return"https:"}return e.protocol}(t);return void 0!==e&&-1!==m.indexOf(e.toLowerCase())?t:"about:invalid#zClosurez"}function g(t,e){const s=e.createRange();s.selectNode(e.body);return function(t,e){return t.createContextualFragment(f(e))}(s,p(t))}function y(t){const e=t.nodeName;return"string"==typeof e?e:"FORM"}function A(t){return 3===t.nodeType}function T(t){const e=t.nodeType;return 1===e||"number"!=typeof e}var R,O;function N(t){try{return new URL(t,window.document.baseURI)}catch(t){return new URL("about:invalid")}}function I(t){return{valueOf:t}.valueOf()}!function(t){t[t.STYLE_TAG=0]="STYLE_TAG",t[t.STYLE_ATTRIBUTE=1]="STYLE_ATTRIBUTE",t[t.HTML_ATTRIBUTE=2]="HTML_ATTRIBUTE"}(R||(R={}));class P{constructor(t,e,s,i,r){this.allowedElements=t,this.elementPolicies=e,this.allowedGlobalAttributes=s,this.globalAttributePolicies=i,this.globallyAllowedAttributePrefixes=r}isAllowedElement(t){return"FORM"!==t&&(this.allowedElements.has(t)||this.elementPolicies.has(t))}getAttributePolicy(t,e){const s=this.elementPolicies.get(e);if(null==s?void 0:s.has(t))return s.get(t);if(this.allowedGlobalAttributes.has(t))return{policyAction:O.KEEP};const i=this.globalAttributePolicies.get(t);return i||(this.globallyAllowedAttributePrefixes&&[...this.globallyAllowedAttributePrefixes].some(e=>0===t.indexOf(e))?{policyAction:O.KEEP}:{policyAction:O.DROP})}}!function(t){t[t.DROP=0]="DROP",t[t.KEEP=1]="KEEP",t[t.KEEP_AND_SANITIZE_URL=2]="KEEP_AND_SANITIZE_URL",t[t.KEEP_AND_NORMALIZE=3]="KEEP_AND_NORMALIZE",t[t.KEEP_AND_SANITIZE_STYLE=4]="KEEP_AND_SANITIZE_STYLE",t[t.KEEP_AND_USE_RESOURCE_URL_POLICY=5]="KEEP_AND_USE_RESOURCE_URL_POLICY",t[t.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET=6]="KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET"}(O||(O={}));const S=new Set(["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"]);const x=["ARTICLE","SECTION","NAV","ASIDE","H1","H2","H3","H4","H5","H6","HEADER","FOOTER","ADDRESS","P","HR","PRE","BLOCKQUOTE","OL","UL","LH","LI","DL","DT","DD","FIGURE","FIGCAPTION","MAIN","DIV","EM","STRONG","SMALL","S","CITE","Q","DFN","ABBR","RUBY","RB","RT","RTC","RP","DATA","TIME","CODE","VAR","SAMP","KBD","SUB","SUP","I","B","U","MARK","BDI","BDO","SPAN","BR","WBR","INS","DEL","PICTURE","PARAM","TRACK","MAP","TABLE","CAPTION","COLGROUP","COL","TBODY","THEAD","TFOOT","TR","TD","TH","SELECT","DATALIST","OPTGROUP","OPTION","OUTPUT","PROGRESS","METER","FIELDSET","LEGEND","DETAILS","SUMMARY","MENU","DIALOG","SLOT","CANVAS","FONT","CENTER","ACRONYM","BASEFONT","BIG","DIR","HGROUP","STRIKE","TT"],C=[["A",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["AREA",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["LINK",new Map([["href",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY,conditions:new Map([["rel",new Set(["alternate","author","bookmark","canonical","cite","help","icon","license","next","prefetch","dns-prefetch","prerender","preconnect","preload","prev","search","subresource"])]])}]])],["SOURCE",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["IMG",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["VIDEO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])],["AUDIO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])]],L=["title","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-current","aria-disabled","aria-dropeffect","aria-expanded","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","alt","align","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","bgcolor","border","cellpadding","cellspacing","checked","color","cols","colspan","controls","datetime","disabled","download","draggable","enctype","face","formenctype","frameborder","height","hreflang","hidden","ismap","label","lang","loop","max","maxlength","media","minlength","min","multiple","muted","nonce","open","placeholder","preload","rel","required","reversed","role","rows","rowspan","selected","shape","size","sizes","slot","span","spellcheck","start","step","summary","translate","type","valign","value","width","wrap","itemscope","itemtype","itemid","itemprop","itemref"],k=[["dir",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["dir",new Set(["auto","ltr","rtl"])]]))}],["async",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["async",new Set(["async"])]]))}],["cite",{policyAction:O.KEEP_AND_SANITIZE_URL}],["loading",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["loading",new Set(["eager","lazy"])]]))}],["poster",{policyAction:O.KEEP_AND_SANITIZE_URL}],["target",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["target",new Set(["_self","_blank"])]]))}]],D=new P(new Set(x),new Map(C),new Set(L),new Map(k));new P(new Set(I(()=>x.concat(["STYLE"]))),new Map(C),new Set(I(()=>L.concat(["id","name","class"]))),new Map(I(()=>k.concat([["style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}]]))));class U{constructor(t,s,i,r,n){this.sanitizerTable=t,this.styleElementSanitizer=i,this.styleAttributeSanitizer=r,this.resourceUrlPolicy=n,this.changes=[],e()}sanitizeAssertUnchanged(t){return this.sanitize(t)}sanitize(t){const e=document.implementation.createHTMLDocument("");return _(this.sanitizeToFragmentInternal(t,e),e.body)}sanitizeToFragment(t){const e=document.implementation.createHTMLDocument("");return this.sanitizeToFragmentInternal(t,e)}sanitizeToFragmentInternal(t,e){const s=g(t,e),i=document.createTreeWalker(s,5,t=>this.nodeFilter(t));let r=i.nextNode();const n=e.createDocumentFragment();let a=n;for(;null!==r;){let t;if(A(r))if(this.styleElementSanitizer&&"STYLE"===a.nodeName){const e=this.styleElementSanitizer(r.data);t=this.createTextNode(e)}else t=this.sanitizeTextNode(r);else{if(!T(r)){throw new Error("")}t=this.sanitizeElementNode(r,e)}if(a.appendChild(t),r=i.firstChild(),r)a=t;else for(;!(r=i.nextSibling())&&(r=i.parentNode());)a=a.parentNode}return n}createTextNode(t){return document.createTextNode(t)}sanitizeTextNode(t){return this.createTextNode(t.data)}sanitizeElementNode(t,e){const s=y(t),i=e.createElement(s),r=t.attributes;for(const{name:t,value:e}of r){const n=this.sanitizerTable.getAttributePolicy(t,s);if(this.satisfiesAllConditions(n.conditions,r))switch(n.policyAction){case O.KEEP:z(i,t,e);break;case O.KEEP_AND_SANITIZE_URL:const r=b(e);r!==e&&this.recordChange(`Url in attribute ${t} was modified during sanitization. Original url:"${e}" was sanitized to: "${r}"`),z(i,t,r);break;case O.KEEP_AND_NORMALIZE:z(i,t,e.toLowerCase());break;case O.KEEP_AND_SANITIZE_STYLE:if(this.styleAttributeSanitizer){z(i,t,this.styleAttributeSanitizer(e))}else z(i,t,e);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY:if(this.resourceUrlPolicy){const r={type:R.HTML_ATTRIBUTE,attributeName:t,tagName:s},n=N(e),a=this.resourceUrlPolicy(n,r);a&&z(i,t,a.toString())}else z(i,t,e);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET:if(this.resourceUrlPolicy){const r={type:R.HTML_ATTRIBUTE,attributeName:t,tagName:s},n=$(e),a={parts:[]};for(const t of n.parts){const e=N(t.url),s=this.resourceUrlPolicy(e,r);s&&a.parts.push({url:s.toString(),descriptor:t.descriptor})}z(i,t,M(a))}else z(i,t,e);break;case O.DROP:this.recordChange(`Attribute: ${t} was dropped`)}else this.recordChange(`Not all conditions satisfied for attribute: ${t}.`)}return i}nodeFilter(t){if(A(t))return 1;if(!T(t))return 2;const e=y(t);return null===e?(this.recordChange(`Node name was null for node: ${t}`),2):this.sanitizerTable.isAllowedElement(e)?1:(this.recordChange(`Element: ${e} was dropped`),2)}recordChange(t){0}satisfiesAllConditions(t,e){var s;if(!t)return!0;for(const[i,r]of t){const t=null===(s=e.getNamedItem(i))||void 0===s?void 0:s.value;if(t&&!r.has(t))return!1}return!0}}function z(t,e,s){t.setAttribute(e,s)}function $(t){const e=[];for(const s of t.split(",")){const[t,i]=s.trim().split(/\s+/,2);e.push({url:t,descriptor:i})}return{parts:e}}function M(t){return t.parts.map(t=>{const{url:e,descriptor:s}=t;return`${e}${s?` ${s}`:""}`}).join(" , ")}class F{constructor(){this.calledBuild=!1,this.sanitizerTable=D}onlyAllowElements(t){const e=new Set,s=new Map;for(let i of t){if(i=i.toUpperCase(),!this.sanitizerTable.isAllowedElement(i))throw new Error(`Element: ${i}, is not allowed by html5_contract.textpb`);const t=this.sanitizerTable.elementPolicies.get(i);void 0!==t?s.set(i,t):e.add(i)}return this.sanitizerTable=new P(e,s,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}allowCustomElement(t,e){const s=new Set(this.sanitizerTable.allowedElements),i=new Map(this.sanitizerTable.elementPolicies);if(t=t.toUpperCase(),r=t,S.has(r.toUpperCase())||!/^[a-z][-_.a-z0-9]*-[-_.a-z0-9]*$/i.test(r))throw new Error(`Element: ${t} is not a custom element`);var r;if(e){const s=new Map;for(const t of e)s.set(t,{policyAction:O.KEEP});i.set(t,s)}else s.add(t);return this.sanitizerTable=new P(s,i,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}onlyAllowAttributes(t){const e=new Set,s=new Map,i=new Map;for(const i of t)this.sanitizerTable.allowedGlobalAttributes.has(i)&&e.add(i),this.sanitizerTable.globalAttributePolicies.has(i)&&s.set(i,this.sanitizerTable.globalAttributePolicies.get(i));for(const[e,s]of this.sanitizerTable.elementPolicies.entries()){const r=new Map;for(const[e,i]of s.entries())t.has(e)&&r.set(e,i);i.set(e,r)}return this.sanitizerTable=new P(this.sanitizerTable.allowedElements,i,e,s),this}allowDataAttributes(t){const e=new Set(this.sanitizerTable.allowedGlobalAttributes);for(const s of t){if(0!==s.indexOf("data-"))throw new Error(`data attribute: ${s} does not begin with the prefix "data-"`);e.add(s)}return this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,e,this.sanitizerTable.globalAttributePolicies),this}allowStyleAttributes(){const t=new Map(this.sanitizerTable.globalAttributePolicies);return t.set("style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,this.sanitizerTable.allowedGlobalAttributes,t),this}allowClassAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("class"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowIdAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("id"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowIdReferenceAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("aria-activedescendant").add("aria-controls").add("aria-labelledby").add("aria-owns").add("for").add("list"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}withResourceUrlPolicy(t){return this.resourceUrlPolicy=t,this}build(){if(this.calledBuild)throw new Error("this sanitizer has already called build");return this.calledBuild=!0,new U(this.sanitizerTable,t,void 0,void 0,this.resourceUrlPolicy)}}function G(t,e,s,i){if(0===t.length){throw new Error("")}const n=t.map(t=>r(t)),a=s.toLowerCase();if(n.every(t=>0!==a.indexOf(t)))throw new Error(`Attribute "${s}" does not match any of the allowed prefixes.`);e.setAttribute(s,i)}function K(t,e,s){return t.parseFromString(f(e),s)}Error;const H=[o`:`,o`style`,o`class`];function*W(t,e=new Set){const s=new Set,i=Array.from(t.childNodes).filter(t=>!e.has(t));for(yield t;i.length;){const t=i.shift();s.has(t)||(s.add(t),yield t),t.childNodes&&Array.from(t.childNodes).filter(t=>!e.has(t)).forEach(t=>i.push(t))}}function Y(t,e){return void 0!==t?.[e]}function B(t,e){return"function"==typeof t?.[e]}function V(t){return t.replace(/-./g,t=>t[1].toUpperCase())}function Z(t,e){return Y(t,"attribs")?t.attribs?.[e]??null:t.getAttribute?.(e)??null}function j(t,e,s=""){return Z(t,s+e)||(t.dataset?.[V(e)]??null)}function q(t,e,s){Y(t,"attribs")?t.attribs[e]=s:t.setAttribute?.(e,s)}function X(t,e,s){Y(t,"attribs")?t.attribs[e]=s:G(H,t,e,s)}function Q(t,e,s){switch(e){case"disabled":return void(t.disabled=s);case"selected":return void(t.selected=s);case"checked":return void(t.checked=s);default:t[e]=s}}function J(t,e){Y(t,"attribs")?delete t.attribs[e]:t.removeAttribute?.(e)}function tt(t,e,s=""){J(t,`${s}${e}`),J(t,`data-${e}`)}function et(t,e,s){if(Y(t,"attribs")&&Y(e,"attribs"))e.attribs[s]=t.attribs[s];else if(s.startsWith("data-")){const i=V(s.slice(5));e.dataset[i]=t.dataset?.[i]}else{const i=t?.getAttribute?.(s);X(e,s,i||"")}}function st(t){if(Y(t,"firstElementChild"))return t.firstElementChild;return Array.from(t.children).find(t=>1===t.nodeType)}function it(t,...e){if(B(t,"replaceWith"))return t.replaceWith(...e);{const s=t,i=s.parentNode,r=Array.from(i.childNodes).indexOf(s);e.forEach(t=>t.parentNode=i),i.childNodes=[].concat(Array.from(i.childNodes).slice(0,r)).concat(e).concat(Array.from(i.childNodes).slice(r+1))}}function rt(t,...e){B(t,"replaceChildren")?t.replaceChildren(...e):(t.childNodes=e,e.forEach(e=>e.parentNode=t))}function nt(t,e){return B(e,"appendChild")?t.appendChild(e):(t.childNodes.push(e),e.parentNode=t,e)}function at(t,e){return B(e,"removeChild")?t.removeChild(e):(rt(t,...Array.from(t.childNodes).filter(t=>t!==e)),e)}function ot(t,e,s){return s?B(t,"insertBefore")?t.insertBefore(e,s):(it(s,e,s),e):nt(t,e)}function lt(t,e=0){return t?t.length<=e?t:t.slice(0,e-1)+"…":""}function ct(t,e=0){return globalThis.DocumentFragment&&t instanceof DocumentFragment?Array.from(t.childNodes).map(t=>ct(t,e)).join(""):lt(t.outerHTML||t.nodeValue||String(t),e)}function ht(t){return t.includes("/")?t.split("/").slice(0,-1).join("/"):""}class ut{iterable;constructor(t){this.iterable=t}filter(t){return new ut(ut.filterGenerator(t,this.iterable))}map(t){return new ut(ut.mapGenerator(t,this.iterable))}find(t){for(const e of this.iterable)if(t(e))return e}array(){return Array.from(this.iterable)}*generator(){for(const t of this.iterable)yield t}static*filterGenerator(t,e){for(const s of e)t(s)&&(yield s)}static*mapGenerator(t,e){for(const s of e)yield t(s)}static equals(t,e){const s=t[Symbol.iterator](),i=e[Symbol.iterator]();let r=s.next(),n=i.next();for(;!r.done&&!n.done;){if(r.value!==n.value)return!1;r=s.next(),n=i.next()}return r.done===n.done}}var dt;!function(t){t.resolveIncludes=async function(t,e){const s=t,i=s.tagName?.toLowerCase();if(!["include","link"].includes(i))return;if("link"===i&&"subresource"!==Z(s,"rel"))return;this.log("include directive found in:\n",ct(t,128)),this.log("include params:",e);const r="link"===s.tagName.toLocaleLowerCase()?"href":"src",n=Z(s,r);if(!n)throw new Error(`"${r}" attribute missing from ${ct(t,128)}.`);const a=[];"include"===i&&a.push("src"),"link"===i&&a.push("rel","href");const o=e=>{const i=st(e);for(const t of Array.from(s.attributes))i&&!a.includes(t.name)&&et(s,i,t.name);it(t,...e.childNodes)},l={...e,rootDocument:!1,maxdepth:e?.maxdepth-1};if(0===l.maxdepth)throw new Error("Maximum recursion depth reached.");if(n.includes("://")||n.startsWith("//"))this.log("Including remote file from absolute path:",n),await this.preprocessRemote(n,l).then(o);else if(e?.dirpath?.includes("://")||e?.dirpath?.startsWith("//")){const t=n.startsWith("/")?n:`${e.dirpath}/${n}`;this.log("Including remote file from relative path:",t),await this.preprocessRemote(t,l).then(o)}else if("/"===n.charAt(0))this.log("Including local file from absolute path:",n),await this.preprocessLocal(n,l).then(o);else{const t=e?.dirpath&&"."!==e?.dirpath?`${e?.dirpath}/${n}`:n;this.log("Including local file from relative path:",t),await this.preprocessLocal(t,l).then(o)}},t.rebaseRelativePaths=async function(t,e){const s=t,i=s.tagName?.toLowerCase();if(!e?.dirpath)return;const r=Z(s,"src"),n=Z(s,"href"),a=r||n;if(!a||((o=a).includes("://")||o.startsWith("/")||o.startsWith("#")||o.startsWith("data:")))return;var o;const l=`${e.dirpath}/${a}`;this.log("Rebasing relative path as:",l),Y(s,"attribs")?X(s,r?"src":"href",l):"img"===i?s.src=l:"a"===i?function(t,e){const s=v(e);void 0!==s&&(t.href=s)}(s,l):"source"===i||"audio"===i||"video"===i||"track"===i||"input"===i?s.src=l:"area"===i?function(t,e){const s=v(e);void 0!==s&&(t.href=s)}(s,l):this.log("Unable to rebase relative path for element:",i)},t.registerCustomElements=async function(t,e){const s=t,i=s.tagName?.toLowerCase(),r=(Z(s,"is")||Z(s,"alt"))?.toLowerCase();if(["template","div"].includes(i)&&r){if("div"===i&&"template"!==Z(s,"role"))return;this._customElements.has(r)||(this.log(`Registering custom element: ${r}\n`,ct(s,128)),this._customElements.set(r,s),at(s.parentNode,s))}},t.resolveCustomElements=async function(t,e){const s=t,i=s.tagName?.toLowerCase();let r=i;if("div"===r&&(r=Z(s,"role")?.toLowerCase()||r),r&&this._customElements.has(r)){this.log(`Processing custom element: ${r}\n`,ct(s,128));const e=this._customElements.get(r),n=(e.content||e).cloneNode(!0),a=st(n);if(a)for(const t of Array.from(s.attributes))"div"===i&&"role"===t.name||et(s,a,t.name);const o=new ut(W(n)).find(t=>"slot"===t.tagName?.toLowerCase());o&&it(o,...s.childNodes),it(t,...n.childNodes)}},t.resolveTextNodeExpressions=async function(t,e){const s=t.nodeValue||"";if(3!==t.nodeType||!s?.trim())return;this.log("Processing node content value:\n",lt(s,128));const i=new RegExp(/{{ ([^}]+) }}/gm),r=Array.from(s.matchAll(i)).map(t=>t[1]);return this.effect(function(){let e=s;for(const s of r){const i=this.eval(s,{$elem:t});e=e.replace(`{{ ${s} }}`,String(i))}t.nodeValue=e})},t.resolveDataAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"data",":");if(i){this.log(":data attribute found in:\n",ct(t,128)),tt(s,"data",":");const r=e?.rootNode===t?this:this.subrenderer();t.renderer=r;const n=r.eval(i,{$elem:t});if(await Promise.all(Object.entries(n).map(([t,e])=>r._store.set(t,e))),r!==this)for(const e of W(t,this._skipNodes))this._skipNodes.add(e);await r.mount(t,e)}},t.resolveClassAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"class",":");if(i){this.log(":class attribute found in:\n",ct(t,128)),tt(s,"class",":");const e=Z(s,"class")||"";return this.effect(function(){const r=this.eval(i,{$elem:t});X(s,"class",(r?`${e} ${r}`:e).trim())})}},t.resolveTextAttributes=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"text",":");if(i){this.log(":text attribute found in:\n",ct(t,128)),tt(s,"text",":");const e=e=>this.textContent(t,e);return this.effect(function(){e(this.eval(i,{$elem:t}))})}},t.resolveHtmlAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"html",":");return i?(this.log(":html attribute found in:\n",ct(t,128)),tt(s,"html",":"),this.effect(function(){const r=this.eval(i,{$elem:t});return new Promise(async t=>{const i=await this.preprocessString(r,e);await this.renderNode(i),rt(s,i),t()})})):void 0},t.resolveEventAttributes=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[]))if(e.name.startsWith(":on:")||e.name.startsWith("data-on-")){let i="",r=[];if(e.name.startsWith(":on:")?[i,...r]=e.name.substring(4).split("."):e.name.startsWith("data-on-")&&([i,...r]=e.name.substring(8).split(".")),!i)throw new Error(`Invalid event attribute: ${e.name}`);this.log(e.name,"attribute found in:\n",ct(t,128)),tt(s,e.name);const n="submit"===i&&"FORM"===s.tagName.toUpperCase();t.addEventListener?.(i,s=>((r.includes("prevent")||n)&&s.preventDefault(),this.eval(e.value,{$elem:t,$event:s})))}},t.resolveForAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"for",":")?.trim();if(i){this.log(":for attribute found in:\n",ct(t,128)),tt(s,"for",":");for(const e of W(t,this._skipNodes))this._skipNodes.add(e);const r=Z(s,"style")||"";q(s,"style","display: none;");const n=t.parentNode,a=this.createElement("template",t.ownerDocument);ot(n,a,t),at(n,t),nt(a,t),this.log(":for template:\n",ct(a,128));const o=i.split(" in ",2);if(2!==o.length)throw new Error(`Invalid :for format: \`${i}\`. Expected "{key} in {expression}".`);const l=[],[c,h]=o;await this.effect(function(){const s=this.eval(h,{$elem:t});if(this.log(":for list items:",s),l.splice(0,l.length).forEach(t=>{at(n,t),this._skipNodes.delete(t)}),!Array.isArray(s))return console.error(`Expression did not yield a list: \`${h}\` => \`${s}\``),Promise.resolve();const i=[];for(const n of s){const s=this.subrenderer();s._store.set(c,n);const a=t.cloneNode(!0);q(a,"style",r),l.push(a),this._skipNodes.add(a),i.push(s.mount(a,e)),this.log("Rendered list child:\n",ct(a,128))}const o=a.nextSibling;for(const t of l)ot(n,t,o);return Promise.all(i)})}},t.resolveBindAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"bind",":");if(i){this.log(":bind attribute found in:\n",ct(t,128));const e=["change","input"],r=Z(s,":bind:on")?.split(",")||s.dataset?.bindOn?.split(",")||e;tt(s,"bind",":"),J(s,":bind:on"),J(s,"data-bind-on");const n="checkbox"===Z(s,"type")?"checked":"value";i.includes(".")||this.has(i)||this.set(i,""),this.effect(function(){const e=this.eval(i,{$elem:t});"checked"===n?s.checked=!!e:s.value=e});const a=`${i} = $elem.${n}`;for(const e of r)t.addEventListener(e,()=>this.eval(a,{$elem:t}))}},t.resolveShowAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"show",":");if(i){this.log(":show attribute found in:\n",ct(t,128)),tt(s,"show",":");const e="none"===s.style?.display?"":s.style?.display??Z(s,"style")?.split(";")?.find(t=>"display"===t.split(":")[0])?.split(":")?.at(1)?.trim();this.effect(function(){const r=this.eval(i,{$elem:t});s.style?s.style.display=r?e:"none":X(s,"style",`display: ${r?e:"none"};`)})}},t.resolveCustomAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[])){const i=":attr:",r="data-attr-";if(e.name.startsWith(i)||e.name.startsWith(r)){this.log(e.name,"attribute found in:\n",ct(t,128)),J(s,e.name);const n=e.name.split(i,2).at(-1)?.split(r,2).at(-1);this.effect(function(){const i=this.eval(e.value,{$elem:t});q(s,n,i)})}}},t.resolveCustomProperty=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[])){const i=":prop:",r="data-prop-";if(e.name.startsWith(i)||e.name.startsWith(r)){this.log(e.name,"property found in:\n",ct(t,128)),J(s,e.name);const n=e.name.split(i,2).at(-1)?.split(r,2).at(-1),a=V(n);this.effect(function(){const i=this.eval(e.value,{$elem:t});Q(s,a,i)})}}},t.stripTypes=async function(t,e){const s=t;Z(s,":types")&&J(s,":types"),Z(s,"data-types")&&J(s,"data-types")}}(dt||(dt={}));const pt=["this"],ft=["+","-","!"],_t=["=","+","-","*","/","%","^","==","!=",">","<",">=","<=","||","&&","??","&","===","!==","|","|>"],mt={"!":0,":":0,",":0,")":0,"]":0,"}":0,"|>":1,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"{":13},Et=["==","!=","<=",">=","||","&&","??","|>"],wt=["===","!=="];var vt;!function(t){t[t.STRING=1]="STRING",t[t.IDENTIFIER=2]="IDENTIFIER",t[t.DOT=3]="DOT",t[t.COMMA=4]="COMMA",t[t.COLON=5]="COLON",t[t.INTEGER=6]="INTEGER",t[t.DECIMAL=7]="DECIMAL",t[t.OPERATOR=8]="OPERATOR",t[t.GROUPER=9]="GROUPER",t[t.KEYWORD=10]="KEYWORD",t[t.ARROW=11]="ARROW"}(vt||(vt={}));const bt=(t,e,s=0)=>({kind:t,value:e,precedence:s}),gt=t=>9===t||10===t||13===t||32===t,yt=t=>95===t||36===t||65<=(t&=-33)&&t<=90,At=t=>yt(t)||Tt(t),Tt=t=>48<=t&&t<=57;class Rt{_input;_index=-1;_tokenStart=0;_next;constructor(t){this._input=t,this._advance()}nextToken(){for(;gt(this._next);)this._advance(!0);if(34===(t=this._next)||39===t)return this._tokenizeString();var t;if(yt(this._next))return this._tokenizeIdentOrKeyword();if(Tt(this._next))return this._tokenizeNumber();if(46===this._next)return this._tokenizeDot();if(44===this._next)return this._tokenizeComma();if(58===this._next)return this._tokenizeColon();if((t=>43===t||45===t||42===t||47===t||33===t||38===t||37===t||60===t||61===t||62===t||63===t||94===t||124===t)(this._next))return this._tokenizeOperator();if((t=>40===t||41===t||91===t||93===t||123===t||125===t)(this._next))return this._tokenizeGrouper();if(this._advance(),void 0!==this._next)throw new Error(`Expected end of input, got ${this._next}`)}_advance(t){this._index++,this._index<this._input.length?(this._next=this._input.charCodeAt(this._index),!0===t&&(this._tokenStart=this._index)):this._next=void 0}_getValue(t=0){const e=this._input.substring(this._tokenStart,this._index+t);return 0===t&&this._clearValue(),e}_clearValue(){this._tokenStart=this._index}_tokenizeString(){const t="unterminated string",e=this._next;for(this._advance(!0);this._next!==e;){if(void 0===this._next)throw new Error(t);if(92===this._next&&(this._advance(),void 0===this._next))throw new Error(t);this._advance()}const s=bt(vt.STRING,this._getValue().replace(/\\(.)/g,(t,e)=>{switch(e){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"f":return"\f";default:return e}}));return this._advance(),s}_tokenizeIdentOrKeyword(){do{this._advance()}while(At(this._next));const t=this._getValue(),e=(s=t,-1!==pt.indexOf(s)?vt.KEYWORD:vt.IDENTIFIER);var s;return bt(e,t)}_tokenizeNumber(){do{this._advance()}while(Tt(this._next));return 46===this._next?this._tokenizeDot():bt(vt.INTEGER,this._getValue())}_tokenizeDot(){return this._advance(),Tt(this._next)?this._tokenizeFraction():(this._clearValue(),bt(vt.DOT,".",13))}_tokenizeComma(){return this._advance(!0),bt(vt.COMMA,",")}_tokenizeColon(){return this._advance(!0),bt(vt.COLON,":")}_tokenizeFraction(){do{this._advance()}while(Tt(this._next));return bt(vt.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let t=this._getValue(2);if(-1!==wt.indexOf(t))this._advance(),this._advance();else{if(t=this._getValue(1),"=>"===t)return this._advance(),bt(vt.ARROW,t);-1!==Et.indexOf(t)&&this._advance()}return t=this._getValue(),bt(vt.OPERATOR,t,mt[t])}_tokenizeGrouper(){const t=String.fromCharCode(this._next),e=bt(vt.GROUPER,t,mt[t]);return this._advance(!0),e}}class Ot{_kind;_tokenizer;_ast;_token;_value;constructor(t,e){this._tokenizer=new Rt(t),this._ast=e}parse(){return this._advance(),this._parseExpression()}_advance(t,e){if(!this._matches(t,e))throw new Error(`Expected kind ${t} (${e}), was ${this._token?.kind} (${this._token?.value})`);const s=this._tokenizer.nextToken();this._token=s,this._kind=s?.kind,this._value=s?.value}_matches(t,e){return!(t&&this._kind!==t||e&&this._value!==e)}_parseExpression(){if(!this._token)return this._ast.empty();const t=this._parseUnary();return void 0===t?void 0:this._parsePrecedence(t,0)}_parsePrecedence(t,e){if(void 0===t)throw new Error("Expected left to be defined.");for(;this._token;)if(this._matches(vt.GROUPER,"(")){const e=this._parseArguments();t=this._ast.invoke(t,void 0,e)}else if(this._matches(vt.GROUPER,"[")){const e=this._parseIndex();t=this._ast.index(t,e)}else if(this._matches(vt.DOT)){this._advance();const e=this._parseUnary();t=this._makeInvokeOrGetter(t,e)}else{if(this._matches(vt.KEYWORD))break;if(!(this._matches(vt.OPERATOR)&&this._token.precedence>=e))break;t="?"===this._value?this._parseTernary(t):this._parseBinary(t,this._token)}return t}_makeInvokeOrGetter(t,e){if(void 0===e)throw new Error("expected identifier");if("ID"===e.type)return this._ast.getter(t,e.value);if("Invoke"===e.type&&"ID"===e.receiver.type){const s=e.receiver;return this._ast.invoke(t,s.value,e.arguments)}throw new Error(`expected identifier: ${e}`)}_parseBinary(t,e){if(-1===_t.indexOf(e.value))throw new Error(`unknown operator: ${e.value}`);this._advance();let s=this._parseUnary();for(;(this._kind===vt.OPERATOR||this._kind===vt.DOT||this._kind===vt.GROUPER)&&this._token.precedence>e.precedence;)s=this._parsePrecedence(s,this._token.precedence);return this._ast.binary(t,e.value,s)}_parseUnary(){if(this._matches(vt.OPERATOR)){const t=this._value;if(this._advance(),"+"===t||"-"===t){if(this._matches(vt.INTEGER))return this._parseInteger(t);if(this._matches(vt.DECIMAL))return this._parseDecimal(t)}if(-1===ft.indexOf(t))throw new Error(`unexpected token: ${t}`);const e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(t,e)}return this._parsePrimary()}_parseTernary(t){this._advance(vt.OPERATOR,"?");const e=this._parseExpression();this._advance(vt.COLON);const s=this._parseExpression();return this._ast.ternary(t,e,s)}_parsePrimary(){switch(this._kind){case vt.KEYWORD:const t=this._value;if("this"===t)return this._advance(),this._ast.id(t);if(-1!==pt.indexOf(t))throw new Error(`unexpected keyword: ${t}`);throw new Error(`unrecognized keyword: ${t}`);case vt.IDENTIFIER:return this._parseInvokeOrIdentifier();case vt.STRING:return this._parseString();case vt.INTEGER:return this._parseInteger();case vt.DECIMAL:return this._parseDecimal();case vt.GROUPER:return"("===this._value?this._parseParenOrFunction():"{"===this._value?this._parseMap():"["===this._value?this._parseList():void 0;case vt.COLON:throw new Error('unexpected token ":"');default:return}}_parseList(){const t=[];do{if(this._advance(),this._matches(vt.GROUPER,"]"))break;t.push(this._parseExpression())}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,"]"),this._ast.list(t)}_parseMap(){const t={};do{if(this._advance(),this._matches(vt.GROUPER,"}"))break;const e=this._value;(this._matches(vt.STRING)||this._matches(vt.IDENTIFIER))&&this._advance(),this._advance(vt.COLON),t[e]=this._parseExpression()}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,"}"),this._ast.map(t)}_parseInvokeOrIdentifier(){const t=this._value;if("true"===t)return this._advance(),this._ast.literal(!0);if("false"===t)return this._advance(),this._ast.literal(!1);if("null"===t)return this._advance(),this._ast.literal(null);if("undefined"===t)return this._advance(),this._ast.literal(void 0);const e=this._parseIdentifier(),s=this._parseArguments();return s?this._ast.invoke(e,void 0,s):e}_parseIdentifier(){if(!this._matches(vt.IDENTIFIER))throw new Error(`expected identifier: ${this._value}`);const t=this._value;return this._advance(),this._ast.id(t)}_parseArguments(){if(!this._matches(vt.GROUPER,"("))return;const t=[];do{if(this._advance(),this._matches(vt.GROUPER,")"))break;const e=this._parseExpression();t.push(e)}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,")"),t}_parseIndex(){this._advance();const t=this._parseExpression();return this._advance(vt.GROUPER,"]"),t}_parseParenOrFunction(){const t=this._parseArguments();if(this._matches(vt.ARROW)){this._advance();const e=this._parseExpression(),s=t?.map(t=>t.value)??[];return this._ast.arrowFunction(s,e)}return this._ast.paren(t[0])}_parseString(){const t=this._ast.literal(this._value);return this._advance(),t}_parseInteger(t=""){const e=this._ast.literal(parseInt(`${t}${this._value}`,10));return this._advance(),e}_parseDecimal(t=""){const e=this._ast.literal(parseFloat(`${t}${this._value}`));return this._advance(),e}}const Nt={"+":(t,e)=>t+e,"-":(t,e)=>t-e,"*":(t,e)=>t*e,"/":(t,e)=>t/e,"%":(t,e)=>t%e,"==":(t,e)=>t==e,"!=":(t,e)=>t!=e,"===":(t,e)=>t===e,"!==":(t,e)=>t!==e,">":(t,e)=>t>e,">=":(t,e)=>t>=e,"<":(t,e)=>t<e,"<=":(t,e)=>t<=e,"||":(t,e)=>t||e,"&&":(t,e)=>t&&e,"??":(t,e)=>t??e,"|":(t,e)=>e(t),"|>":(t,e)=>e(t)},It={"+":t=>t,"-":t=>-t,"!":t=>!t};class Pt{timeouts=new Map;debounce(t,e){return new Promise((s,i)=>{const r=this.timeouts.get(e);r&&clearTimeout(r),this.timeouts.set(e,setTimeout(()=>{try{s(e()),this.timeouts.delete(e)}catch(t){i(t)}},t))})}}const St=new class{empty(){return{type:"Empty",evaluate:t=>t,getIds:t=>t}}literal(t){return{type:"Literal",value:t,evaluate(t){return this.value},getIds:t=>t}}id(t){return{type:"ID",value:t,evaluate(t){return"this"===this.value?t:t?.[this.value]},getIds(t){return t.push(this.value),t}}}unary(t,e){const s=It[t];return{type:"Unary",operator:t,child:e,evaluate(t){return s(this.child.evaluate(t))},getIds(t){return this.child.getIds(t)}}}binary(t,e,s){const i=Nt[e];return{type:"Binary",operator:e,left:t,right:s,evaluate(t){if("="===this.operator){if("ID"!==this.left.type&&"Getter"!==this.left.type&&"Index"!==this.left.type)throw new Error(`Invalid assignment target: ${this.left}`);const e=this.right.evaluate(t);let s,i;return"Getter"===this.left.type?(s=this.left.receiver.evaluate(t),i=this.left.name):"Index"===this.left.type?(s=this.left.receiver.evaluate(t),i=this.left.argument.evaluate(t)):"ID"===this.left.type&&(s=t,i=this.left.value),void 0===s?void 0:s[i]=e}return i(this.left.evaluate(t),this.right.evaluate(t))},getIds(t){return this.left.getIds(t),this.right.getIds(t),t}}}getter(t,e){return{type:"Getter",receiver:t,name:e,evaluate(t){return this.receiver.evaluate(t)?.[this.name]},getIds(t){return this.receiver.getIds(t),t}}}invoke(t,e,s){if(null!=e&&"string"!=typeof e)throw new Error("method not a string");return{type:"Invoke",receiver:t,method:e,arguments:s,evaluate(t){const s=this.receiver.evaluate(t),i=this.method?s:t?.this??t,r=this.method?s?.[e]:s,n=(this.arguments??[]).map(e=>e?.evaluate(t));return r?.apply?.(i,n)},getIds(t){return this.receiver.getIds(t),this.arguments?.forEach(e=>e?.getIds(t)),t}}}paren(t){return t}index(t,e){return{type:"Index",receiver:t,argument:e,evaluate(t){return this.receiver.evaluate(t)?.[this.argument.evaluate(t)]},getIds(t){return this.receiver.getIds(t),t}}}ternary(t,e,s){return{type:"Ternary",condition:t,trueExpr:e,falseExpr:s,evaluate(t){return this.condition.evaluate(t)?this.trueExpr.evaluate(t):this.falseExpr.evaluate(t)},getIds(t){return this.condition.getIds(t),this.trueExpr.getIds(t),this.falseExpr.getIds(t),t}}}map(t){return{type:"Map",entries:t,evaluate(e){const s={};if(t&&this.entries)for(const i in t){const t=this.entries[i];t&&(s[i]=t.evaluate(e))}return s},getIds(e){if(t&&this.entries)for(const s in t){const t=this.entries[s];t&&t.getIds(e)}return e}}}list(t){return{type:"List",items:t,evaluate(t){return this.items?.map(e=>e?.evaluate(t))},getIds(t){return this.items?.forEach(e=>e?.getIds(t)),t}}}arrowFunction(t,e){return{type:"ArrowFunction",params:t,body:e,evaluate(t){const e=this.params,s=this.body;return function(...i){const r=Object.fromEntries(e.map((t,e)=>[t,i[e]])),n=new Proxy(t??{},{set:(t,e,s)=>(r.hasOwnProperty(e)&&(r[e]=s),t[e]=s),get:(t,e)=>r.hasOwnProperty(e)?r[e]:t[e]});return s.evaluate(n)}},getIds(t){return this.body.getIds(t).filter(t=>!this.params.includes(t))}}}};function xt(t,e){const s=t?._store;return s?.has(e)?s.get(e):s?.has("$parent")?xt(s.get("$parent"),e):null}function Ct(t,e){const s=t?._store;return s?.has(e)?t:s?.has("$parent")?Ct(s.get("$parent"),e):null}class Lt extends Pt{evalkeys=["$elem","$event"];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_observer=null;_store=new Map;_lock=Promise.resolve();constructor(t){super();for(let[e,s]of Object.entries(t||{}))this.set(e,s)}wrapFunction(t){return(...e)=>t.call(this.$,...e)}wrapObject(t,e){return null==t||((s=t)instanceof Lt||s.__is_proxy__)||t.constructor!==Object&&!Array.isArray(t)?t:new Proxy(t,{deleteProperty:(t,s)=>s in t&&(delete t[s],e(),!0),set:(s,i,r,n)=>{"object"==typeof r&&null!=t&&(r=this.wrapObject(r,e));const a=Reflect.set(s,i,r,n);return e(),a},get:(t,e,s)=>"__is_proxy__"===e||Reflect.get(t,e,s)});var s}watch(t,e){const s=Ct(this,t);if(!s)throw new Error(`Cannot watch key "${t}" as it does not exist in the store.`);s.observers.has(t)||s.observers.set(t,new Set),s.observers.get(t)?.has(e)||s.observers.get(t)?.add(e)}addKeyHandler(t,e){this.keyHandlers.has(t)||this.keyHandlers.set(t,new Set),this.keyHandlers.get(t).add(e)}async notify(t,e=10){const s=Ct(this,t),i=Array.from(s?.observers.get(t)||[]);await this.debounce(e,()=>Promise.all(i.map(t=>t.call(this.proxify(t)))))}get(t,e){return e&&this.watch(t,e),xt(this,t)}async set(t,e){if(e===this._store.get(t))return;const s=()=>this.notify(t);e&&"function"==typeof e&&(e=this.wrapFunction(e)),e&&"object"==typeof e&&(e=this.wrapObject(e,s)),function(t,e,s){const i=Ct(t,e);i?i._store.set(e,s):t._store.set(e,s)}(this,t,e);for(const[s,i]of this.keyHandlers.entries())if(s.test(t))for(const s of i)await Promise.resolve(s.call(this.$,t,e));await s()}async del(t){await this.set(t,null),this._store.delete(t),this.observers.delete(t)}keys(){return Array.from(this._store.keys())}has(t){return this._store.has(t)}effect(t){return t.call(this.proxify(t))}proxify(t){const e=Array.from(this._store.entries()).map(([t])=>t),s=Object.fromEntries(e.map(t=>[t,null]));return new Proxy(s,{get:(e,s,i)=>"string"==typeof s&&Ct(this,s)?this.get(s,t):"$"===s?this.proxify(t):Reflect.get(this,s,i),set:(t,e,s,i)=>("string"!=typeof e||e in this?Reflect.set(this,e,s,i):this.set(e,s),!0)})}get $(){return this.proxify()}makeEvalFunction(t){if(t.includes(";"))throw new Error("Complex expressions are not supported.");let e=null;if(t.includes(" = ")){const[s,i]=t.split(" = ");e=s.trim(),t=i.trim()}return(s,i)=>{const r=((t,e)=>new Ot(t,e).parse())(t,St),n=r?.getIds([])?.map(t=>[t,i[t]??s[t]??globalThis[t]]),a=r?.evaluate(Object.fromEntries(n||[]));if(!e)return a;!function(t,e,s){const i=e.split(".");for(let e=0;e<i.length-1;e++)i[e]in t||(t[i[e]]={}),t=t[i[e]];t[i[i.length-1]]=s}(s,e,a)}}cachedExpressionFunction(t){return t=t.trim(),this.expressionCache.has(t)||this.expressionCache.set(t,this.makeEvalFunction(t)),this.expressionCache.get(t)}eval(t,e={}){const s=this._observer?this:this.$;if(this._store.has(t))return s[t];{const i=this.cachedExpressionFunction(t);try{return i(s,e)}catch(e){return console.error(`Failed to evaluate expression: ${t}`),console.error(e),null}}}}const kt="$$";function Dt(){return new URL(globalThis.window?.location?.href||"http://localhost/")}function Ut(t){return`${kt}${t}`}function zt(t){return t.keys().filter(t=>t.startsWith(kt))}function $t(t,e,s){const i=function(t){return t.substring(2)}(e);let r=!1;if(s){const e=String(s);t.searchParams.get(i)!==e&&(t.searchParams.set(i,e),r=!0)}else t.searchParams.has(i)&&(t.searchParams.delete(i),r=!0);return r}async function Mt(t){const e=Dt();await async function(t,e){for(const[s,i]of e.searchParams.entries()){const e=Ut(s);t.get(e)!==i&&await t.set(e,i)}}(t,e),function(t,e){let s=!1;for(const i of zt(e))$t(t,i,e.get(i))&&(s=!0);s&&globalThis.window?.history?.replaceState({},"",t.toString())}(e,t),t.addKeyHandler(new RegExp("^\\$\\$"),(t,e)=>{const s=Dt();$t(s,t,e)&&globalThis.window?.history?.replaceState({},"",s.toString())}),globalThis.window?.addEventListener("popstate",function(t){return async()=>{const e=Dt(),s=new Set;for(const[i,r]of e.searchParams.entries()){const e=Ut(i);s.add(e),t.get(e)!==r&&t.set(e,r)}const i=zt(t);for(const e of i)s.has(e)||t.del(e)}}(t))}class Ft extends Lt{debugging=!1;dirpath="";_skipNodes=new Set;_customElements=new Map;debug(t){return this.debugging=t,this}async fetchRemote(t,e){return fetch(t,{cache:e?.cache??"default"}).then(t=>t.text())}async fetchLocal(t,e){return this.fetchRemote(t,e)}async preprocessString(t,e){this.log("Preprocessing string content with params:\n",e);const s=this.parseHTML(t,e);return await this.preprocessNode(s,e),s}async preprocessRemote(t,e){const s={};e?.cache&&(s.cache=e.cache);const i=await fetch(t,s).then(t=>t.text());return this.preprocessString(i,{...e,dirpath:ht(t),rootDocument:e?.rootDocument??!t.endsWith(".tpl.html")})}async preprocessLocal(t,e){const s=await this.fetchLocal(t,e);return this.preprocessString(s,{...e,dirpath:ht(t),rootDocument:e?.rootDocument??!t.endsWith(".tpl.html")})}subrenderer(){const t=(new this.constructor).debug(this.debugging);return t._store.set("$parent",this),t._store.set("$rootRenderer",this.get("$rootRenderer")??this),t._customElements=this._customElements,t}log(...t){this.debugging&&console.debug(...t)}async preprocessNode(t,e){e={dirpath:this.dirpath,maxdepth:10,...e};const s=new ut(W(t,this._skipNodes)).map(async t=>{this.log("Preprocessing node:\n",ct(t,128)),await dt.resolveIncludes.call(this,t,e),await dt.rebaseRelativePaths.call(this,t,e),await dt.registerCustomElements.call(this,t,e),await dt.resolveCustomElements.call(this,t,e)});return await Promise.all(s.generator()),t}async renderNode(t,e){for(const s of W(t,this._skipNodes))this.log("Rendering node:\n",ct(s,128)),await dt.resolveForAttribute.call(this,s,e),await dt.resolveDataAttribute.call(this,s,e),await dt.resolveTextAttributes.call(this,s,e),await dt.resolveHtmlAttribute.call(this,s,e),await dt.resolveShowAttribute.call(this,s,e),await dt.resolveClassAttribute.call(this,s,e),await dt.resolveBindAttribute.call(this,s,e),await dt.resolveEventAttributes.call(this,s,e),await dt.resolveTextNodeExpressions.call(this,s,e),await dt.resolveCustomAttribute.call(this,s,e),await dt.resolveCustomProperty.call(this,s,e),await dt.stripTypes.call(this,s,e);return t}async mount(t,e){e={...e,rootNode:t},Q(t,"renderer",this),this._store.set("$rootNode",t),this.has("$rootRenderer")||this._store.set("$rootRenderer",this),this.get("$rootRenderer")===this&&await Mt(this),await this.preprocessNode(t,e),await this.renderNode(t,e)}}const Gt=[":data",":for",":text",":html",":show",":class",":bind",":on:click",":on:click.prevent",":on:input",":on:input.prevent",":on:change",":on:change.prevent",":on:submit",":on:submit.prevent",":attr:src",":attr:href",":attr:title",":prop:checked",":prop:selected",":prop:disabled"];class Kt extends Ft{impl="safe_browser";dirpath=ht(globalThis.location?.href??"http://localhost/");parseHTML(t,e={rootDocument:!1}){for(const e of Gt)t=t.replace(new RegExp(`\\s:${e.slice(1)}=`,"g"),` data-${e.slice(1).replace(":","-")}=`);t=(t=(t=t.replace(/<include(.*) src="([^"]+)"(.*)><\/include>/g,'<link $1 rel="subresource" href="$2" $3>')).replace(/<template is="([^"]+)">([\s\S]*)<\/template>/g,'<div role="template" alt="$1">$2</div>')).replace(/<(\w+)-(\w+)(.*)>([\s\S]*)<\/(\w+)-(\w+)>/g,'<div role="$1-$2" $3>$4</div>');const s=Gt.map(t=>`data-${t.slice(1).replace(":","-")}`);s.push("data-testid");const i=(new F).allowDataAttributes(s).allowClassAttributes().allowStyleAttributes().build();if(this.log("parseHTML",t),this.log("sanitized",String(i.sanitize(t))),e.rootDocument){return K(new DOMParser,i.sanitize(t),"text/html")}return i.sanitizeToFragment(t)}serializeHTML(t){return(new XMLSerializer).serializeToString(t).replace(/\s?xmlns="[^"]+"/gm,"")}preprocessLocal(t,e){return this.preprocessRemote(t,e)}createElement(t,e){return(e||document).createElement(t)}textContent(t,e){t.textContent=e}}const Ht=new Kt;export{Ht as Mancha,Kt as Renderer};
|
|
1
|
+
const t={};function e(t){0}class s{constructor(t,e){this.privateDoNotAccessOrElseWrappedAttributePrefix=e}toString(){return this.privateDoNotAccessOrElseWrappedAttributePrefix}}const i=s;function r(t){if(function(t){return t instanceof s}(t))return t.privateDoNotAccessOrElseWrappedAttributePrefix;throw new Error("")}function n(t){return Object.isFrozen(t)&&Object.isFrozen(t.raw)}function a(t){return-1===t.toString().indexOf("`")}a(t=>t``)||a(t=>t`\0`)||a(t=>t`\n`)||a(t=>t`\u0000`),n``&&n`\0`&&n`\n`&&n`\u0000`;function o(e){const s=e[0].toLowerCase();return new i(t,s)}let l,c="google#safe";function h(){var t;return""!==c&&null!==(t=function(){if("undefined"!=typeof window)return window.trustedTypes}())&&void 0!==t?t:null}class u{constructor(t,s){e(),this.privateDoNotAccessOrElseWrappedHtml=t}toString(){return this.privateDoNotAccessOrElseWrappedHtml.toString()}}function d(e,s){return null!=s?s:new u(e,t)}"undefined"!=typeof window&&window.TrustedHTML;function p(t){var e;const s=t;return d(s,null===(e=function(){var t,e;if(void 0===l)try{l=null!==(e=null===(t=h())||void 0===t?void 0:t.createPolicy(c,{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t}))&&void 0!==e?e:null}catch(t){l=null}return l}())||void 0===e?void 0:e.createHTML(s))}function f(t){var e;if(null===(e=h())||void 0===e?void 0:e.isHTML(t))return t;if(t instanceof u)return t.privateDoNotAccessOrElseWrappedHtml;throw new Error("")}"undefined"!=typeof window&&window.TrustedScriptURL;"undefined"!=typeof window&&window.TrustedScript;function _(t,e){e.appendChild(t);let s=(new XMLSerializer).serializeToString(e);return s=s.slice(s.indexOf(">")+1,s.lastIndexOf("</")),p(s)}const m=["data:","http:","https:","mailto:","ftp:"],E=/^\s*(?!javascript:)(?:[\w+.-]+:|[^:/?#]*(?:[/?#]|$))/i;function w(t){if(!function(t){const e=!E.test(t);return e}(t))return t}function v(t){return w(t)}function b(t){const e=function(t){let e;try{e=new URL(t)}catch(t){return"https:"}return e.protocol}(t);return void 0!==e&&-1!==m.indexOf(e.toLowerCase())?t:"about:invalid#zClosurez"}function g(t,e){const s=e.createRange();s.selectNode(e.body);return function(t,e){return t.createContextualFragment(f(e))}(s,p(t))}function y(t){const e=t.nodeName;return"string"==typeof e?e:"FORM"}function A(t){return 3===t.nodeType}function T(t){const e=t.nodeType;return 1===e||"number"!=typeof e}var R,O;function N(t){try{return new URL(t,window.document.baseURI)}catch(t){return new URL("about:invalid")}}function I(t){return{valueOf:t}.valueOf()}!function(t){t[t.STYLE_TAG=0]="STYLE_TAG",t[t.STYLE_ATTRIBUTE=1]="STYLE_ATTRIBUTE",t[t.HTML_ATTRIBUTE=2]="HTML_ATTRIBUTE"}(R||(R={}));class P{constructor(t,e,s,i,r){this.allowedElements=t,this.elementPolicies=e,this.allowedGlobalAttributes=s,this.globalAttributePolicies=i,this.globallyAllowedAttributePrefixes=r}isAllowedElement(t){return"FORM"!==t&&(this.allowedElements.has(t)||this.elementPolicies.has(t))}getAttributePolicy(t,e){const s=this.elementPolicies.get(e);if(null==s?void 0:s.has(t))return s.get(t);if(this.allowedGlobalAttributes.has(t))return{policyAction:O.KEEP};const i=this.globalAttributePolicies.get(t);return i||(this.globallyAllowedAttributePrefixes&&[...this.globallyAllowedAttributePrefixes].some(e=>0===t.indexOf(e))?{policyAction:O.KEEP}:{policyAction:O.DROP})}}!function(t){t[t.DROP=0]="DROP",t[t.KEEP=1]="KEEP",t[t.KEEP_AND_SANITIZE_URL=2]="KEEP_AND_SANITIZE_URL",t[t.KEEP_AND_NORMALIZE=3]="KEEP_AND_NORMALIZE",t[t.KEEP_AND_SANITIZE_STYLE=4]="KEEP_AND_SANITIZE_STYLE",t[t.KEEP_AND_USE_RESOURCE_URL_POLICY=5]="KEEP_AND_USE_RESOURCE_URL_POLICY",t[t.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET=6]="KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET"}(O||(O={}));const S=new Set(["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"]);const x=["ARTICLE","SECTION","NAV","ASIDE","H1","H2","H3","H4","H5","H6","HEADER","FOOTER","ADDRESS","P","HR","PRE","BLOCKQUOTE","OL","UL","LH","LI","DL","DT","DD","FIGURE","FIGCAPTION","MAIN","DIV","EM","STRONG","SMALL","S","CITE","Q","DFN","ABBR","RUBY","RB","RT","RTC","RP","DATA","TIME","CODE","VAR","SAMP","KBD","SUB","SUP","I","B","U","MARK","BDI","BDO","SPAN","BR","WBR","INS","DEL","PICTURE","PARAM","TRACK","MAP","TABLE","CAPTION","COLGROUP","COL","TBODY","THEAD","TFOOT","TR","TD","TH","SELECT","DATALIST","OPTGROUP","OPTION","OUTPUT","PROGRESS","METER","FIELDSET","LEGEND","DETAILS","SUMMARY","MENU","DIALOG","SLOT","CANVAS","FONT","CENTER","ACRONYM","BASEFONT","BIG","DIR","HGROUP","STRIKE","TT"],C=[["A",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["AREA",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["LINK",new Map([["href",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY,conditions:new Map([["rel",new Set(["alternate","author","bookmark","canonical","cite","help","icon","license","next","prefetch","dns-prefetch","prerender","preconnect","preload","prev","search","subresource"])]])}]])],["SOURCE",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["IMG",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["VIDEO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])],["AUDIO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])]],L=["title","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-current","aria-disabled","aria-dropeffect","aria-expanded","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","alt","align","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","bgcolor","border","cellpadding","cellspacing","checked","color","cols","colspan","controls","datetime","disabled","download","draggable","enctype","face","formenctype","frameborder","height","hreflang","hidden","ismap","label","lang","loop","max","maxlength","media","minlength","min","multiple","muted","nonce","open","placeholder","preload","rel","required","reversed","role","rows","rowspan","selected","shape","size","sizes","slot","span","spellcheck","start","step","summary","translate","type","valign","value","width","wrap","itemscope","itemtype","itemid","itemprop","itemref"],k=[["dir",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["dir",new Set(["auto","ltr","rtl"])]]))}],["async",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["async",new Set(["async"])]]))}],["cite",{policyAction:O.KEEP_AND_SANITIZE_URL}],["loading",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["loading",new Set(["eager","lazy"])]]))}],["poster",{policyAction:O.KEEP_AND_SANITIZE_URL}],["target",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["target",new Set(["_self","_blank"])]]))}]],D=new P(new Set(x),new Map(C),new Set(L),new Map(k));new P(new Set(I(()=>x.concat(["STYLE"]))),new Map(C),new Set(I(()=>L.concat(["id","name","class"]))),new Map(I(()=>k.concat([["style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}]]))));class U{constructor(t,s,i,r,n){this.sanitizerTable=t,this.styleElementSanitizer=i,this.styleAttributeSanitizer=r,this.resourceUrlPolicy=n,this.changes=[],e()}sanitizeAssertUnchanged(t){return this.sanitize(t)}sanitize(t){const e=document.implementation.createHTMLDocument("");return _(this.sanitizeToFragmentInternal(t,e),e.body)}sanitizeToFragment(t){const e=document.implementation.createHTMLDocument("");return this.sanitizeToFragmentInternal(t,e)}sanitizeToFragmentInternal(t,e){const s=g(t,e),i=document.createTreeWalker(s,5,t=>this.nodeFilter(t));let r=i.nextNode();const n=e.createDocumentFragment();let a=n;for(;null!==r;){let t;if(A(r))if(this.styleElementSanitizer&&"STYLE"===a.nodeName){const e=this.styleElementSanitizer(r.data);t=this.createTextNode(e)}else t=this.sanitizeTextNode(r);else{if(!T(r)){throw new Error("")}t=this.sanitizeElementNode(r,e)}if(a.appendChild(t),r=i.firstChild(),r)a=t;else for(;!(r=i.nextSibling())&&(r=i.parentNode());)a=a.parentNode}return n}createTextNode(t){return document.createTextNode(t)}sanitizeTextNode(t){return this.createTextNode(t.data)}sanitizeElementNode(t,e){const s=y(t),i=e.createElement(s),r=t.attributes;for(const{name:t,value:e}of r){const n=this.sanitizerTable.getAttributePolicy(t,s);if(this.satisfiesAllConditions(n.conditions,r))switch(n.policyAction){case O.KEEP:z(i,t,e);break;case O.KEEP_AND_SANITIZE_URL:const r=b(e);r!==e&&this.recordChange(`Url in attribute ${t} was modified during sanitization. Original url:"${e}" was sanitized to: "${r}"`),z(i,t,r);break;case O.KEEP_AND_NORMALIZE:z(i,t,e.toLowerCase());break;case O.KEEP_AND_SANITIZE_STYLE:if(this.styleAttributeSanitizer){z(i,t,this.styleAttributeSanitizer(e))}else z(i,t,e);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY:if(this.resourceUrlPolicy){const r={type:R.HTML_ATTRIBUTE,attributeName:t,tagName:s},n=N(e),a=this.resourceUrlPolicy(n,r);a&&z(i,t,a.toString())}else z(i,t,e);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET:if(this.resourceUrlPolicy){const r={type:R.HTML_ATTRIBUTE,attributeName:t,tagName:s},n=$(e),a={parts:[]};for(const t of n.parts){const e=N(t.url),s=this.resourceUrlPolicy(e,r);s&&a.parts.push({url:s.toString(),descriptor:t.descriptor})}z(i,t,M(a))}else z(i,t,e);break;case O.DROP:this.recordChange(`Attribute: ${t} was dropped`)}else this.recordChange(`Not all conditions satisfied for attribute: ${t}.`)}return i}nodeFilter(t){if(A(t))return 1;if(!T(t))return 2;const e=y(t);return null===e?(this.recordChange(`Node name was null for node: ${t}`),2):this.sanitizerTable.isAllowedElement(e)?1:(this.recordChange(`Element: ${e} was dropped`),2)}recordChange(t){0}satisfiesAllConditions(t,e){var s;if(!t)return!0;for(const[i,r]of t){const t=null===(s=e.getNamedItem(i))||void 0===s?void 0:s.value;if(t&&!r.has(t))return!1}return!0}}function z(t,e,s){t.setAttribute(e,s)}function $(t){const e=[];for(const s of t.split(",")){const[t,i]=s.trim().split(/\s+/,2);e.push({url:t,descriptor:i})}return{parts:e}}function M(t){return t.parts.map(t=>{const{url:e,descriptor:s}=t;return`${e}${s?` ${s}`:""}`}).join(" , ")}class F{constructor(){this.calledBuild=!1,this.sanitizerTable=D}onlyAllowElements(t){const e=new Set,s=new Map;for(let i of t){if(i=i.toUpperCase(),!this.sanitizerTable.isAllowedElement(i))throw new Error(`Element: ${i}, is not allowed by html5_contract.textpb`);const t=this.sanitizerTable.elementPolicies.get(i);void 0!==t?s.set(i,t):e.add(i)}return this.sanitizerTable=new P(e,s,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}allowCustomElement(t,e){const s=new Set(this.sanitizerTable.allowedElements),i=new Map(this.sanitizerTable.elementPolicies);if(t=t.toUpperCase(),r=t,S.has(r.toUpperCase())||!/^[a-z][-_.a-z0-9]*-[-_.a-z0-9]*$/i.test(r))throw new Error(`Element: ${t} is not a custom element`);var r;if(e){const s=new Map;for(const t of e)s.set(t,{policyAction:O.KEEP});i.set(t,s)}else s.add(t);return this.sanitizerTable=new P(s,i,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}onlyAllowAttributes(t){const e=new Set,s=new Map,i=new Map;for(const i of t)this.sanitizerTable.allowedGlobalAttributes.has(i)&&e.add(i),this.sanitizerTable.globalAttributePolicies.has(i)&&s.set(i,this.sanitizerTable.globalAttributePolicies.get(i));for(const[e,s]of this.sanitizerTable.elementPolicies.entries()){const r=new Map;for(const[e,i]of s.entries())t.has(e)&&r.set(e,i);i.set(e,r)}return this.sanitizerTable=new P(this.sanitizerTable.allowedElements,i,e,s),this}allowDataAttributes(t){const e=new Set(this.sanitizerTable.allowedGlobalAttributes);for(const s of t){if(0!==s.indexOf("data-"))throw new Error(`data attribute: ${s} does not begin with the prefix "data-"`);e.add(s)}return this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,e,this.sanitizerTable.globalAttributePolicies),this}allowStyleAttributes(){const t=new Map(this.sanitizerTable.globalAttributePolicies);return t.set("style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,this.sanitizerTable.allowedGlobalAttributes,t),this}allowClassAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("class"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowIdAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("id"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowIdReferenceAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("aria-activedescendant").add("aria-controls").add("aria-labelledby").add("aria-owns").add("for").add("list"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}withResourceUrlPolicy(t){return this.resourceUrlPolicy=t,this}build(){if(this.calledBuild)throw new Error("this sanitizer has already called build");return this.calledBuild=!0,new U(this.sanitizerTable,t,void 0,void 0,this.resourceUrlPolicy)}}function G(t,e,s,i){if(0===t.length){throw new Error("")}const n=t.map(t=>r(t)),a=s.toLowerCase();if(n.every(t=>0!==a.indexOf(t)))throw new Error(`Attribute "${s}" does not match any of the allowed prefixes.`);e.setAttribute(s,i)}function K(t,e,s){return t.parseFromString(f(e),s)}Error;const H=[o`:`,o`style`,o`class`];function*W(t,e=new Set){const s=new Set,i=Array.from(t.childNodes).filter(t=>!e.has(t));for(yield t;i.length;){const t=i.shift();s.has(t)||(s.add(t),yield t),t.childNodes&&Array.from(t.childNodes).filter(t=>!e.has(t)).forEach(t=>i.push(t))}}function Y(t,e){return void 0!==t?.[e]}function B(t,e){return"function"==typeof t?.[e]}function V(t){return t.replace(/-./g,t=>t[1].toUpperCase())}function Z(t,e){return Y(t,"attribs")?t.attribs?.[e]??null:t.getAttribute?.(e)??null}function j(t,e,s=""){return Z(t,s+e)||(t.dataset?.[V(e)]??null)}function q(t,e,s){Y(t,"attribs")?t.attribs[e]=s:t.setAttribute?.(e,s)}function X(t,e,s){Y(t,"attribs")?t.attribs[e]=s:G(H,t,e,s)}function Q(t,e,s){switch(e){case"disabled":return void(t.disabled=s);case"selected":return void(t.selected=s);case"checked":return void(t.checked=s);default:t[e]=s}}function J(t,e){Y(t,"attribs")?delete t.attribs[e]:t.removeAttribute?.(e)}function tt(t,e,s=""){J(t,`${s}${e}`),J(t,`data-${e}`)}function et(t,e,s){if(Y(t,"attribs")&&Y(e,"attribs"))e.attribs[s]=t.attribs[s];else if(s.startsWith("data-")){const i=V(s.slice(5));e.dataset[i]=t.dataset?.[i]}else{const i=t?.getAttribute?.(s);X(e,s,i||"")}}function st(t){if(Y(t,"firstElementChild"))return t.firstElementChild;return Array.from(t.children).find(t=>1===t.nodeType)}function it(t,...e){if(B(t,"replaceWith"))return t.replaceWith(...e);{const s=t,i=s.parentNode,r=Array.from(i.childNodes).indexOf(s);e.forEach(t=>t.parentNode=i),i.childNodes=[].concat(Array.from(i.childNodes).slice(0,r)).concat(e).concat(Array.from(i.childNodes).slice(r+1))}}function rt(t,...e){B(t,"replaceChildren")?t.replaceChildren(...e):(t.childNodes=e,e.forEach(e=>e.parentNode=t))}function nt(t,e){return B(e,"appendChild")?t.appendChild(e):(t.childNodes.push(e),e.parentNode=t,e)}function at(t,e){return B(e,"removeChild")?t.removeChild(e):(rt(t,...Array.from(t.childNodes).filter(t=>t!==e)),e)}function ot(t,e,s){return s?B(t,"insertBefore")?t.insertBefore(e,s):(it(s,e,s),e):nt(t,e)}function lt(t,e=0){return t?t.length<=e?t:t.slice(0,e-1)+"…":""}function ct(t,e=0){return globalThis.DocumentFragment&&t instanceof DocumentFragment?Array.from(t.childNodes).map(t=>ct(t,e)).join(""):lt(t.outerHTML||t.nodeValue||String(t),e)}function ht(t){return t.includes("/")?t.split("/").slice(0,-1).join("/"):""}class ut{iterable;constructor(t){this.iterable=t}filter(t){return new ut(ut.filterGenerator(t,this.iterable))}map(t){return new ut(ut.mapGenerator(t,this.iterable))}find(t){for(const e of this.iterable)if(t(e))return e}array(){return Array.from(this.iterable)}*generator(){for(const t of this.iterable)yield t}static*filterGenerator(t,e){for(const s of e)t(s)&&(yield s)}static*mapGenerator(t,e){for(const s of e)yield t(s)}static equals(t,e){const s=t[Symbol.iterator](),i=e[Symbol.iterator]();let r=s.next(),n=i.next();for(;!r.done&&!n.done;){if(r.value!==n.value)return!1;r=s.next(),n=i.next()}return r.done===n.done}}var dt;!function(t){t.resolveIncludes=async function(t,e){const s=t,i=s.tagName?.toLowerCase();if(!["include","link"].includes(i))return;if("link"===i&&"subresource"!==Z(s,"rel"))return;this.log("include directive found in:\n",ct(t,128)),this.log("include params:",e);const r="link"===s.tagName.toLocaleLowerCase()?"href":"src",n=Z(s,r);if(!n)throw new Error(`"${r}" attribute missing from ${ct(t,128)}.`);const a=[];"include"===i&&a.push("src"),"link"===i&&a.push("rel","href");const o=e=>{const i=st(e);for(const t of Array.from(s.attributes))i&&!a.includes(t.name)&&et(s,i,t.name);it(t,...e.childNodes)},l={...e,rootDocument:!1,maxdepth:e?.maxdepth-1};if(0===l.maxdepth)throw new Error("Maximum recursion depth reached.");if(n.includes("://")||n.startsWith("//"))this.log("Including remote file from absolute path:",n),await this.preprocessRemote(n,l).then(o);else if(e?.dirpath?.includes("://")||e?.dirpath?.startsWith("//")){const t=n.startsWith("/")?n:`${e.dirpath}/${n}`;this.log("Including remote file from relative path:",t),await this.preprocessRemote(t,l).then(o)}else if("/"===n.charAt(0))this.log("Including local file from absolute path:",n),await this.preprocessLocal(n,l).then(o);else{const t=e?.dirpath&&"."!==e?.dirpath?`${e?.dirpath}/${n}`:n;this.log("Including local file from relative path:",t),await this.preprocessLocal(t,l).then(o)}},t.rebaseRelativePaths=async function(t,e){const s=t,i=s.tagName?.toLowerCase();if(!e?.dirpath)return;const r=Z(s,"src"),n=Z(s,"href"),a=r||n;if(!a||((o=a).includes("://")||o.startsWith("/")||o.startsWith("#")||o.startsWith("data:")))return;var o;const l=`${e.dirpath}/${a}`;this.log("Rebasing relative path as:",l),Y(s,"attribs")?X(s,r?"src":"href",l):"img"===i?s.src=l:"a"===i?function(t,e){const s=v(e);void 0!==s&&(t.href=s)}(s,l):"source"===i||"audio"===i||"video"===i||"track"===i||"input"===i?s.src=l:"area"===i?function(t,e){const s=v(e);void 0!==s&&(t.href=s)}(s,l):this.log("Unable to rebase relative path for element:",i)},t.registerCustomElements=async function(t,e){const s=t,i=s.tagName?.toLowerCase(),r=(Z(s,"is")||Z(s,"alt"))?.toLowerCase();if(["template","div"].includes(i)&&r){if("div"===i&&"template"!==Z(s,"role"))return;this._customElements.has(r)||(this.log(`Registering custom element: ${r}\n`,ct(s,128)),this._customElements.set(r,s),at(s.parentNode,s))}},t.resolveCustomElements=async function(t,e){const s=t,i=s.tagName?.toLowerCase();let r=i;if("div"===r&&(r=Z(s,"role")?.toLowerCase()||r),r&&this._customElements.has(r)){this.log(`Processing custom element: ${r}\n`,ct(s,128));const e=this._customElements.get(r),n=(e.content||e).cloneNode(!0),a=st(n);if(a)for(const t of Array.from(s.attributes))"div"===i&&"role"===t.name||et(s,a,t.name);const o=new ut(W(n)).find(t=>"slot"===t.tagName?.toLowerCase());o&&it(o,...s.childNodes),it(t,...n.childNodes)}},t.resolveTextNodeExpressions=async function(t,e){const s=t.nodeValue||"";if(3!==t.nodeType||!s?.trim())return;this.log("Processing node content value:\n",lt(s,128));const i=new RegExp(/{{ ([^}]+) }}/gm),r=Array.from(s.matchAll(i)).map(t=>t[1]);return this.effect(function(){let e=s;for(const s of r){const i=this.eval(s,{$elem:t});e=e.replace(`{{ ${s} }}`,String(i))}t.nodeValue=e})},t.resolveDataAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"data",":");if(i){this.log(":data attribute found in:\n",ct(t,128)),tt(s,"data",":");const r=e?.rootNode===t?this:this.subrenderer();t.renderer=r;const n=r.eval(i,{$elem:t});if(await Promise.all(Object.entries(n).map(([t,e])=>r._store.set(t,e))),r!==this)for(const e of W(t,this._skipNodes))this._skipNodes.add(e);await r.mount(t,e)}},t.resolveClassAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"class",":");if(i){this.log(":class attribute found in:\n",ct(t,128)),tt(s,"class",":");const e=Z(s,"class")||"";return this.effect(function(){const r=this.eval(i,{$elem:t});X(s,"class",(r?`${e} ${r}`:e).trim())})}},t.resolveTextAttributes=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"text",":");if(i){this.log(":text attribute found in:\n",ct(t,128)),tt(s,"text",":");const e=e=>this.textContent(t,e);return this.effect(function(){e(this.eval(i,{$elem:t}))})}},t.resolveHtmlAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"html",":");return i?(this.log(":html attribute found in:\n",ct(t,128)),tt(s,"html",":"),this.effect(function(){const r=this.eval(i,{$elem:t});return new Promise(async t=>{const i=await this.preprocessString(r,e);await this.renderNode(i),rt(s,i),t()})})):void 0},t.resolveEventAttributes=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[]))if(e.name.startsWith(":on:")||e.name.startsWith("data-on-")){let i="",r=[];if(e.name.startsWith(":on:")?[i,...r]=e.name.substring(4).split("."):e.name.startsWith("data-on-")&&([i,...r]=e.name.substring(8).split(".")),!i)throw new Error(`Invalid event attribute: ${e.name}`);this.log(e.name,"attribute found in:\n",ct(t,128)),tt(s,e.name);const n="submit"===i&&"FORM"===s.tagName.toUpperCase();t.addEventListener?.(i,s=>((r.includes("prevent")||n)&&s.preventDefault(),this.eval(e.value,{$elem:t,$event:s})))}},t.resolveForAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"for",":")?.trim();if(i){this.log(":for attribute found in:\n",ct(t,128)),tt(s,"for",":");for(const e of W(t,this._skipNodes))this._skipNodes.add(e);const r=Z(s,"style")||"";q(s,"style","display: none;");const n=t.parentNode,a=this.createElement("template",t.ownerDocument);ot(n,a,t),at(n,t),nt(a,t),this.log(":for template:\n",ct(a,128));const o=i.split(" in ",2);if(2!==o.length)throw new Error(`Invalid :for format: \`${i}\`. Expected "{key} in {expression}".`);const l=[],[c,h]=o;await this.effect(function(){const s=this.eval(h,{$elem:t});if(this.log(":for list items:",s),l.splice(0,l.length).forEach(t=>{at(n,t),this._skipNodes.delete(t)}),!Array.isArray(s))return console.error(`Expression did not yield a list: \`${h}\` => \`${s}\``),Promise.resolve();const i=[];for(const n of s){const s=this.subrenderer();s._store.set(c,n);const a=t.cloneNode(!0);q(a,"style",r),l.push(a),this._skipNodes.add(a),i.push(s.mount(a,e)),this.log("Rendered list child:\n",ct(a,128))}const o=a.nextSibling;for(const t of l)ot(n,t,o);return Promise.all(i)})}},t.resolveBindAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"bind",":");if(i){this.log(":bind attribute found in:\n",ct(t,128));const e=["change","input"],r=Z(s,":bind:on")?.split(",")||s.dataset?.bindOn?.split(",")||e;tt(s,"bind",":"),J(s,":bind:on"),J(s,"data-bind-on");const n="checkbox"===Z(s,"type")?"checked":"value";i.includes(".")||this.has(i)||this.set(i,""),this.effect(function(){const e=this.eval(i,{$elem:t});"checked"===n?s.checked=!!e:s.value=e});const a=`${i} = $elem.${n}`;for(const e of r)t.addEventListener(e,()=>this.eval(a,{$elem:t}))}},t.resolveShowAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"show",":");if(i){this.log(":show attribute found in:\n",ct(t,128)),tt(s,"show",":");const e="none"===s.style?.display?"":s.style?.display??Z(s,"style")?.split(";")?.find(t=>"display"===t.split(":")[0])?.split(":")?.at(1)?.trim();this.effect(function(){const r=this.eval(i,{$elem:t});s.style?s.style.display=r?e:"none":X(s,"style",`display: ${r?e:"none"};`)})}},t.resolveCustomAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[])){const i=":attr:",r="data-attr-";if(e.name.startsWith(i)||e.name.startsWith(r)){this.log(e.name,"attribute found in:\n",ct(t,128)),J(s,e.name);const n=e.name.split(i,2).at(-1)?.split(r,2).at(-1);this.effect(function(){const i=this.eval(e.value,{$elem:t});q(s,n,i)})}}},t.resolveCustomProperty=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[])){const i=":prop:",r="data-prop-";if(e.name.startsWith(i)||e.name.startsWith(r)){this.log(e.name,"property found in:\n",ct(t,128)),J(s,e.name);const n=e.name.split(i,2).at(-1)?.split(r,2).at(-1),a=V(n);this.effect(function(){const i=this.eval(e.value,{$elem:t});Q(s,a,i)})}}},t.stripTypes=async function(t,e){const s=t;Z(s,":types")&&J(s,":types"),Z(s,"data-types")&&J(s,"data-types")}}(dt||(dt={}));const pt=["this"],ft=["+","-","!"],_t=["=","+","-","*","/","%","^","==","!=",">","<",">=","<=","||","&&","??","&","===","!==","|","|>"],mt={"!":0,":":0,",":0,")":0,"]":0,"}":0,"|>":1,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"{":13},Et=["==","!=","<=",">=","||","&&","??","|>"],wt=["===","!=="];var vt;!function(t){t[t.STRING=1]="STRING",t[t.IDENTIFIER=2]="IDENTIFIER",t[t.DOT=3]="DOT",t[t.COMMA=4]="COMMA",t[t.COLON=5]="COLON",t[t.INTEGER=6]="INTEGER",t[t.DECIMAL=7]="DECIMAL",t[t.OPERATOR=8]="OPERATOR",t[t.GROUPER=9]="GROUPER",t[t.KEYWORD=10]="KEYWORD",t[t.ARROW=11]="ARROW"}(vt||(vt={}));const bt=(t,e,s=0)=>({kind:t,value:e,precedence:s}),gt=t=>9===t||10===t||13===t||32===t,yt=t=>95===t||36===t||65<=(t&=-33)&&t<=90,At=t=>yt(t)||Tt(t),Tt=t=>48<=t&&t<=57;class Rt{_input;_index=-1;_tokenStart=0;_next;constructor(t){this._input=t,this._advance()}nextToken(){for(;gt(this._next);)this._advance(!0);if(34===(t=this._next)||39===t)return this._tokenizeString();var t;if(yt(this._next))return this._tokenizeIdentOrKeyword();if(Tt(this._next))return this._tokenizeNumber();if(46===this._next)return this._tokenizeDot();if(44===this._next)return this._tokenizeComma();if(58===this._next)return this._tokenizeColon();if((t=>43===t||45===t||42===t||47===t||33===t||38===t||37===t||60===t||61===t||62===t||63===t||94===t||124===t)(this._next))return this._tokenizeOperator();if((t=>40===t||41===t||91===t||93===t||123===t||125===t)(this._next))return this._tokenizeGrouper();if(this._advance(),void 0!==this._next)throw new Error(`Expected end of input, got ${this._next}`)}_advance(t){this._index++,this._index<this._input.length?(this._next=this._input.charCodeAt(this._index),!0===t&&(this._tokenStart=this._index)):this._next=void 0}_getValue(t=0){const e=this._input.substring(this._tokenStart,this._index+t);return 0===t&&this._clearValue(),e}_clearValue(){this._tokenStart=this._index}_tokenizeString(){const t="unterminated string",e=this._next;for(this._advance(!0);this._next!==e;){if(void 0===this._next)throw new Error(t);if(92===this._next&&(this._advance(),void 0===this._next))throw new Error(t);this._advance()}const s=bt(vt.STRING,this._getValue().replace(/\\(.)/g,(t,e)=>{switch(e){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"f":return"\f";default:return e}}));return this._advance(),s}_tokenizeIdentOrKeyword(){do{this._advance()}while(At(this._next));const t=this._getValue(),e=(s=t,-1!==pt.indexOf(s)?vt.KEYWORD:vt.IDENTIFIER);var s;return bt(e,t)}_tokenizeNumber(){do{this._advance()}while(Tt(this._next));return 46===this._next?this._tokenizeDot():bt(vt.INTEGER,this._getValue())}_tokenizeDot(){return this._advance(),Tt(this._next)?this._tokenizeFraction():(this._clearValue(),bt(vt.DOT,".",13))}_tokenizeComma(){return this._advance(!0),bt(vt.COMMA,",")}_tokenizeColon(){return this._advance(!0),bt(vt.COLON,":")}_tokenizeFraction(){do{this._advance()}while(Tt(this._next));return bt(vt.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let t=this._getValue(2);if(-1!==wt.indexOf(t))this._advance(),this._advance();else{if(t=this._getValue(1),"=>"===t)return this._advance(),bt(vt.ARROW,t);-1!==Et.indexOf(t)&&this._advance()}return t=this._getValue(),bt(vt.OPERATOR,t,mt[t])}_tokenizeGrouper(){const t=String.fromCharCode(this._next),e=bt(vt.GROUPER,t,mt[t]);return this._advance(!0),e}}class Ot{_kind;_tokenizer;_ast;_token;_value;constructor(t,e){this._tokenizer=new Rt(t),this._ast=e}parse(){return this._advance(),this._parseExpression()}_advance(t,e){if(!this._matches(t,e))throw new Error(`Expected kind ${t} (${e}), was ${this._token?.kind} (${this._token?.value})`);const s=this._tokenizer.nextToken();this._token=s,this._kind=s?.kind,this._value=s?.value}_matches(t,e){return!(t&&this._kind!==t||e&&this._value!==e)}_parseExpression(){if(!this._token)return this._ast.empty();const t=this._parseUnary();return void 0===t?void 0:this._parsePrecedence(t,0)}_parsePrecedence(t,e){if(void 0===t)throw new Error("Expected left to be defined.");for(;this._token;)if(this._matches(vt.GROUPER,"(")){const e=this._parseArguments();t=this._ast.invoke(t,void 0,e)}else if(this._matches(vt.GROUPER,"[")){const e=this._parseIndex();t=this._ast.index(t,e)}else if(this._matches(vt.DOT)){this._advance();const e=this._parseUnary();t=this._makeInvokeOrGetter(t,e)}else{if(this._matches(vt.KEYWORD))break;if(!(this._matches(vt.OPERATOR)&&this._token.precedence>=e))break;t="?"===this._value?this._parseTernary(t):this._parseBinary(t,this._token)}return t}_makeInvokeOrGetter(t,e){if(void 0===e)throw new Error("expected identifier");if("ID"===e.type)return this._ast.getter(t,e.value);if("Invoke"===e.type&&"ID"===e.receiver.type){const s=e.receiver;return this._ast.invoke(t,s.value,e.arguments)}throw new Error(`expected identifier: ${e}`)}_parseBinary(t,e){if(-1===_t.indexOf(e.value))throw new Error(`unknown operator: ${e.value}`);this._advance();let s=this._parseUnary();for(;(this._kind===vt.OPERATOR||this._kind===vt.DOT||this._kind===vt.GROUPER)&&this._token.precedence>e.precedence;)s=this._parsePrecedence(s,this._token.precedence);return this._ast.binary(t,e.value,s)}_parseUnary(){if(this._matches(vt.OPERATOR)){const t=this._value;if(this._advance(),"+"===t||"-"===t){if(this._matches(vt.INTEGER))return this._parseInteger(t);if(this._matches(vt.DECIMAL))return this._parseDecimal(t)}if(-1===ft.indexOf(t))throw new Error(`unexpected token: ${t}`);const e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(t,e)}return this._parsePrimary()}_parseTernary(t){this._advance(vt.OPERATOR,"?");const e=this._parseExpression();this._advance(vt.COLON);const s=this._parseExpression();return this._ast.ternary(t,e,s)}_parsePrimary(){switch(this._kind){case vt.KEYWORD:const t=this._value;if("this"===t)return this._advance(),this._ast.id(t);if(-1!==pt.indexOf(t))throw new Error(`unexpected keyword: ${t}`);throw new Error(`unrecognized keyword: ${t}`);case vt.IDENTIFIER:return this._parseInvokeOrIdentifier();case vt.STRING:return this._parseString();case vt.INTEGER:return this._parseInteger();case vt.DECIMAL:return this._parseDecimal();case vt.GROUPER:return"("===this._value?this._parseParenOrFunction():"{"===this._value?this._parseMap():"["===this._value?this._parseList():void 0;case vt.COLON:throw new Error('unexpected token ":"');default:return}}_parseList(){const t=[];do{if(this._advance(),this._matches(vt.GROUPER,"]"))break;t.push(this._parseExpression())}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,"]"),this._ast.list(t)}_parseMap(){const t={};do{if(this._advance(),this._matches(vt.GROUPER,"}"))break;const e=this._value;(this._matches(vt.STRING)||this._matches(vt.IDENTIFIER))&&this._advance(),this._advance(vt.COLON),t[e]=this._parseExpression()}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,"}"),this._ast.map(t)}_parseInvokeOrIdentifier(){const t=this._value;if("true"===t)return this._advance(),this._ast.literal(!0);if("false"===t)return this._advance(),this._ast.literal(!1);if("null"===t)return this._advance(),this._ast.literal(null);if("undefined"===t)return this._advance(),this._ast.literal(void 0);const e=this._parseIdentifier(),s=this._parseArguments();return s?this._ast.invoke(e,void 0,s):e}_parseIdentifier(){if(!this._matches(vt.IDENTIFIER))throw new Error(`expected identifier: ${this._value}`);const t=this._value;return this._advance(),this._ast.id(t)}_parseArguments(){if(!this._matches(vt.GROUPER,"("))return;const t=[];do{if(this._advance(),this._matches(vt.GROUPER,")"))break;const e=this._parseExpression();t.push(e)}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,")"),t}_parseIndex(){this._advance();const t=this._parseExpression();return this._advance(vt.GROUPER,"]"),t}_parseParenOrFunction(){const t=this._parseArguments();if(this._matches(vt.ARROW)){this._advance();const e=this._parseExpression(),s=t?.map(t=>t.value)??[];return this._ast.arrowFunction(s,e)}return this._ast.paren(t[0])}_parseString(){const t=this._ast.literal(this._value);return this._advance(),t}_parseInteger(t=""){const e=this._ast.literal(parseInt(`${t}${this._value}`,10));return this._advance(),e}_parseDecimal(t=""){const e=this._ast.literal(parseFloat(`${t}${this._value}`));return this._advance(),e}}const Nt={"+":(t,e)=>t+e,"-":(t,e)=>t-e,"*":(t,e)=>t*e,"/":(t,e)=>t/e,"%":(t,e)=>t%e,"==":(t,e)=>t==e,"!=":(t,e)=>t!=e,"===":(t,e)=>t===e,"!==":(t,e)=>t!==e,">":(t,e)=>t>e,">=":(t,e)=>t>=e,"<":(t,e)=>t<e,"<=":(t,e)=>t<=e,"||":(t,e)=>t||e,"&&":(t,e)=>t&&e,"??":(t,e)=>t??e,"|":(t,e)=>e(t),"|>":(t,e)=>e(t)},It={"+":t=>t,"-":t=>-t,"!":t=>!t};class Pt{timeouts=new Map;debounce(t,e){return new Promise((s,i)=>{const r=this.timeouts.get(e);r&&clearTimeout(r),this.timeouts.set(e,setTimeout(()=>{try{s(e()),this.timeouts.delete(e)}catch(t){i(t)}},t))})}}const St=new class{empty(){return{type:"Empty",evaluate:t=>t,getIds:t=>t}}literal(t){return{type:"Literal",value:t,evaluate(t){return this.value},getIds:t=>t}}id(t){return{type:"ID",value:t,evaluate(t){return"this"===this.value?t:t?.[this.value]},getIds(t){return t.push(this.value),t}}}unary(t,e){const s=It[t];return{type:"Unary",operator:t,child:e,evaluate(t){return s(this.child.evaluate(t))},getIds(t){return this.child.getIds(t)}}}binary(t,e,s){const i=Nt[e];return{type:"Binary",operator:e,left:t,right:s,evaluate(t){if("="===this.operator){if("ID"!==this.left.type&&"Getter"!==this.left.type&&"Index"!==this.left.type)throw new Error(`Invalid assignment target: ${this.left}`);const e=this.right.evaluate(t);let s,i;return"Getter"===this.left.type?(s=this.left.receiver.evaluate(t),i=this.left.name):"Index"===this.left.type?(s=this.left.receiver.evaluate(t),i=this.left.argument.evaluate(t)):"ID"===this.left.type&&(s=t,i=this.left.value),void 0===s?void 0:s[i]=e}return i(this.left.evaluate(t),this.right.evaluate(t))},getIds(t){return this.left.getIds(t),this.right.getIds(t),t}}}getter(t,e){return{type:"Getter",receiver:t,name:e,evaluate(t){return this.receiver.evaluate(t)?.[this.name]},getIds(t){return this.receiver.getIds(t),t}}}invoke(t,e,s){if(null!=e&&"string"!=typeof e)throw new Error("method not a string");return{type:"Invoke",receiver:t,method:e,arguments:s,evaluate(t){const s=this.receiver.evaluate(t),i=this.method?s:t?.this??t,r=this.method?s?.[e]:s,n=(this.arguments??[]).map(e=>e?.evaluate(t));return r?.apply?.(i,n)},getIds(t){return this.receiver.getIds(t),this.arguments?.forEach(e=>e?.getIds(t)),t}}}paren(t){return t}index(t,e){return{type:"Index",receiver:t,argument:e,evaluate(t){return this.receiver.evaluate(t)?.[this.argument.evaluate(t)]},getIds(t){return this.receiver.getIds(t),t}}}ternary(t,e,s){return{type:"Ternary",condition:t,trueExpr:e,falseExpr:s,evaluate(t){return this.condition.evaluate(t)?this.trueExpr.evaluate(t):this.falseExpr.evaluate(t)},getIds(t){return this.condition.getIds(t),this.trueExpr.getIds(t),this.falseExpr.getIds(t),t}}}map(t){return{type:"Map",entries:t,evaluate(e){const s={};if(t&&this.entries)for(const i in t){const t=this.entries[i];t&&(s[i]=t.evaluate(e))}return s},getIds(e){if(t&&this.entries)for(const s in t){const t=this.entries[s];t&&t.getIds(e)}return e}}}list(t){return{type:"List",items:t,evaluate(t){return this.items?.map(e=>e?.evaluate(t))},getIds(t){return this.items?.forEach(e=>e?.getIds(t)),t}}}arrowFunction(t,e){return{type:"ArrowFunction",params:t,body:e,evaluate(t){const e=this.params,s=this.body;return function(...i){const r=Object.fromEntries(e.map((t,e)=>[t,i[e]])),n=new Proxy(t??{},{set:(t,e,s)=>(r.hasOwnProperty(e)&&(r[e]=s),t[e]=s),get:(t,e)=>r.hasOwnProperty(e)?r[e]:t[e]});return s.evaluate(n)}},getIds(t){return this.body.getIds(t).filter(t=>!this.params.includes(t))}}}};function xt(t,e){const s=t?._store;return s?.has(e)?s.get(e):s?.has("$parent")?xt(s.get("$parent"),e):null}function Ct(t,e){const s=t?._store;return s?.has(e)?t:s?.has("$parent")?Ct(s.get("$parent"),e):null}class Lt extends Pt{evalkeys=["$elem","$event"];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_observer=null;_store=new Map;_lock=Promise.resolve();constructor(t){super();for(let[e,s]of Object.entries(t||{}))this.set(e,s)}wrapFunction(t){return(...e)=>t.call(this.$,...e)}wrapObject(t,e){return null==t||((s=t)instanceof Lt||s.__is_proxy__)||t.constructor!==Object&&!Array.isArray(t)?t:new Proxy(t,{deleteProperty:(t,s)=>s in t&&(delete t[s],e(),!0),set:(s,i,r,n)=>{"object"==typeof r&&null!=t&&(r=this.wrapObject(r,e));const a=Reflect.set(s,i,r,n);return e(),a},get:(t,e,s)=>"__is_proxy__"===e||Reflect.get(t,e,s)});var s}watch(t,e){const s=Ct(this,t);if(!s)throw new Error(`Cannot watch key "${t}" as it does not exist in the store.`);s.observers.has(t)||s.observers.set(t,new Set),s.observers.get(t)?.has(e)||s.observers.get(t)?.add(e)}addKeyHandler(t,e){this.keyHandlers.has(t)||this.keyHandlers.set(t,new Set),this.keyHandlers.get(t).add(e)}async notify(t,e=10){const s=Ct(this,t),i=Array.from(s?.observers.get(t)||[]);await this.debounce(e,()=>Promise.all(i.map(t=>t.call(this.proxify(t)))))}get(t,e){return e&&this.watch(t,e),xt(this,t)}async set(t,e){if(e===this._store.get(t))return;const s=()=>this.notify(t);e&&"function"==typeof e&&(e=this.wrapFunction(e)),e&&"object"==typeof e&&(e=this.wrapObject(e,s)),function(t,e,s){const i=Ct(t,e);i?i._store.set(e,s):t._store.set(e,s)}(this,t,e);for(const[s,i]of this.keyHandlers.entries())if(s.test(t))for(const s of i)await Promise.resolve(s.call(this.$,t,e));await s()}async del(t){await this.set(t,null),this._store.delete(t),this.observers.delete(t)}keys(){return Array.from(this._store.keys())}has(t){return this._store.has(t)}effect(t){return t.call(this.proxify(t))}proxify(t){const e=Array.from(this._store.entries()).map(([t])=>t),s=Object.fromEntries(e.map(t=>[t,null]));return new Proxy(s,{get:(e,s,i)=>"string"==typeof s&&Ct(this,s)?this.get(s,t):"$"===s?this.proxify(t):Reflect.get(this,s,i),set:(t,e,s,i)=>("string"!=typeof e||e in this?Reflect.set(this,e,s,i):this.set(e,s),!0)})}get $(){return this.proxify()}makeEvalFunction(t){if(t.includes(";"))throw new Error("Complex expressions are not supported.");let e=null;if(t.includes(" = ")){const[s,i]=t.split(" = ");e=s.trim(),t=i.trim()}return(s,i)=>{const r=((t,e)=>new Ot(t,e).parse())(t,St),n=r?.getIds([])?.map(t=>[t,i[t]??s[t]??globalThis[t]]),a=r?.evaluate(Object.fromEntries(n||[]));if(!e)return a;!function(t,e,s){const i=e.split(".");for(let e=0;e<i.length-1;e++)i[e]in t||(t[i[e]]={}),t=t[i[e]];t[i[i.length-1]]=s}(s,e,a)}}cachedExpressionFunction(t){return t=t.trim(),this.expressionCache.has(t)||this.expressionCache.set(t,this.makeEvalFunction(t)),this.expressionCache.get(t)}eval(t,e={}){const s=this._observer?this:this.$;if(this._store.has(t))return s[t];{const i=this.cachedExpressionFunction(t);try{return i(s,e)}catch(e){return console.error(`Failed to evaluate expression: ${t}`),console.error(e),null}}}}const kt="$$";function Dt(){return new URL(globalThis.window?.location?.href||"http://localhost/")}function Ut(t){return`${kt}${t}`}function zt(t){return t.keys().filter(t=>t.startsWith(kt))}function $t(t,e,s){const i=function(t){return t.substring(2)}(e);let r=!1;if(s){const e=String(s);t.searchParams.get(i)!==e&&(t.searchParams.set(i,e),r=!0)}else t.searchParams.has(i)&&(t.searchParams.delete(i),r=!0);return r}async function Mt(t){const e=Dt();await async function(t,e){for(const[s,i]of e.searchParams.entries()){const e=Ut(s);t.get(e)!==i&&await t.set(e,i)}}(t,e),function(t,e){let s=!1;for(const i of zt(e))$t(t,i,e.get(i))&&(s=!0);s&&globalThis.window?.history?.replaceState({},"",t.toString())}(e,t),t.addKeyHandler(new RegExp("^\\$\\$"),(t,e)=>{const s=Dt();$t(s,t,e)&&globalThis.window?.history?.replaceState({},"",s.toString())}),globalThis.window?.addEventListener("popstate",function(t){return async()=>{const e=Dt(),s=new Set;for(const[i,r]of e.searchParams.entries()){const e=Ut(i);s.add(e),t.get(e)!==r&&t.set(e,r)}const i=zt(t);for(const e of i)s.has(e)||t.del(e)}}(t))}class Ft extends Lt{debugging=!1;dirpath="";_skipNodes=new Set;_customElements=new Map;debug(t){return this.debugging=t,this}async fetchRemote(t,e){return fetch(t,{cache:e?.cache??"default"}).then(t=>t.text())}async fetchLocal(t,e){return this.fetchRemote(t,e)}async preprocessString(t,e){this.log("Preprocessing string content with params:\n",e);const s=this.parseHTML(t,e);return await this.preprocessNode(s,e),s}async preprocessRemote(t,e){const s={};e?.cache&&(s.cache=e.cache);const i=await fetch(t,s).then(t=>t.text());return this.preprocessString(i,{...e,dirpath:ht(t),rootDocument:e?.rootDocument??!t.endsWith(".tpl.html")})}async preprocessLocal(t,e){const s=await this.fetchLocal(t,e);return this.preprocessString(s,{...e,dirpath:ht(t),rootDocument:e?.rootDocument??!t.endsWith(".tpl.html")})}subrenderer(){const t=(new this.constructor).debug(this.debugging);return t._store.set("$parent",this),t._store.set("$rootRenderer",this.get("$rootRenderer")??this),t._customElements=this._customElements,t}log(...t){this.debugging&&console.debug(...t)}async preprocessNode(t,e){e={dirpath:this.dirpath,maxdepth:10,...e};const s=new ut(W(t,this._skipNodes)).map(async t=>{this.log("Preprocessing node:\n",ct(t,128)),await dt.resolveIncludes.call(this,t,e),await dt.rebaseRelativePaths.call(this,t,e),await dt.registerCustomElements.call(this,t,e),await dt.resolveCustomElements.call(this,t,e)});return await Promise.all(s.generator()),t}async renderNode(t,e){for(const s of W(t,this._skipNodes))this.log("Rendering node:\n",ct(s,128)),await dt.resolveForAttribute.call(this,s,e),await dt.resolveDataAttribute.call(this,s,e),await dt.resolveTextAttributes.call(this,s,e),await dt.resolveHtmlAttribute.call(this,s,e),await dt.resolveShowAttribute.call(this,s,e),await dt.resolveClassAttribute.call(this,s,e),await dt.resolveBindAttribute.call(this,s,e),await dt.resolveEventAttributes.call(this,s,e),await dt.resolveTextNodeExpressions.call(this,s,e),await dt.resolveCustomAttribute.call(this,s,e),await dt.resolveCustomProperty.call(this,s,e),await dt.stripTypes.call(this,s,e);return t}async mount(t,e){e={...e,rootNode:t},Q(t,"renderer",this),this._store.set("$rootNode",t),this.has("$rootRenderer")||this._store.set("$rootRenderer",this),this.get("$rootRenderer")===this&&await Mt(this),await this.preprocessNode(t,e),await this.renderNode(t,e)}}const Gt=[":data",":for",":text",":html",":show",":class",":bind",":on:click",":on:click.prevent",":on:input",":on:input.prevent",":on:change",":on:change.prevent",":on:submit",":on:submit.prevent",":attr:src",":attr:href",":attr:title",":prop:checked",":prop:selected",":prop:disabled"],Kt=[...Gt.map(t=>(t=>`data-${t.slice(1).replace(":","-")}`)(t)),"data-testid"];class Ht extends Ft{impl="safe_browser";dirpath=ht(globalThis.location?.href??"http://localhost/");parseHTML(t,e={rootDocument:!1}){for(const e of Gt)t=t.replace(new RegExp(`\\s:${e.slice(1)}=`,"g"),` data-${e.slice(1).replace(":","-")}=`);t=(t=(t=t.replace(/<include(.*) src="([^"]+)"(.*)><\/include>/g,'<link $1 rel="subresource" href="$2" $3>')).replace(/<template is="([^"]+)">([\s\S]*)<\/template>/g,'<div role="template" alt="$1">$2</div>')).replace(/<(\w+)-(\w+)(.*)>([\s\S]*)<\/(\w+)-(\w+)>/g,'<div role="$1-$2" $3>$4</div>');const s=(new F).allowDataAttributes(Kt).allowClassAttributes().allowStyleAttributes().build();if(this.log("parseHTML",t),this.log("sanitized",String(s.sanitize(t))),e.rootDocument){return K(new DOMParser,s.sanitize(t),"text/html")}return s.sanitizeToFragment(t)}serializeHTML(t){return(new XMLSerializer).serializeToString(t).replace(/\s?xmlns="[^"]+"/gm,"")}preprocessLocal(t,e){return this.preprocessRemote(t,e)}createElement(t,e){return(e||document).createElement(t)}textContent(t,e){t.textContent=e}}const Wt=new Ht;export{Wt as Mancha,Ht as Renderer};
|
package/dist/safe_browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe_browser.js","sourceRoot":"","sources":["../src/safe_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"safe_browser.js","sourceRoot":"","sources":["../src/safe_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,OAAO,QAAS,SAAQ,SAAS;IAC5B,IAAI,GAAG,cAAc,CAAC;IACZ,OAAO,GAAW,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,mBAAmB,CAAC,CAAC;IAC/F,SAAS,CACP,OAAe,EACf,SAAuB,EAAE,YAAY,EAAE,KAAK,EAAE;QAE9C,kFAAkF;QAClF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EACxC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAC5C,CAAC;QACJ,CAAC;QAED,kFAAkF;QAClF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,6CAA6C,EAC7C,0CAA0C,CAC3C,CAAC;QAEF,yEAAyE;QACzE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+CAA+C,EAC/C,wCAAwC,CACzC,CAAC;QAEF,kEAAkE;QAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,4CAA4C,EAC5C,+BAA+B,CAChC,CAAC;QAEF,+DAA+D;QAC/D,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE;aACzC,mBAAmB,CAAC,iBAAiB,CAAC;aACtC,oBAAoB,EAAE;aACtB,oBAAoB,EAAE;aACtB,KAAK,EAAE,CAAC;QAEX,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,OAAO,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,aAAa,CAAC,IAA6B;QACzC,OAAO,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,eAAe,CACb,KAAa,EACb,MAAoC;QAEpC,6EAA6E;QAC7E,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,WAAW,CAAC,IAAU,EAAE,OAAe;QACrC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const TRUSTED_ATTRIBS = [
|
|
2
|
+
":data",
|
|
3
|
+
":for",
|
|
4
|
+
":text",
|
|
5
|
+
":html",
|
|
6
|
+
":show",
|
|
7
|
+
":class",
|
|
8
|
+
":bind",
|
|
9
|
+
":on:click",
|
|
10
|
+
":on:click.prevent",
|
|
11
|
+
":on:input",
|
|
12
|
+
":on:input.prevent",
|
|
13
|
+
":on:change",
|
|
14
|
+
":on:change.prevent",
|
|
15
|
+
":on:submit",
|
|
16
|
+
":on:submit.prevent",
|
|
17
|
+
":attr:src",
|
|
18
|
+
":attr:href",
|
|
19
|
+
":attr:title",
|
|
20
|
+
":prop:checked",
|
|
21
|
+
":prop:selected",
|
|
22
|
+
":prop:disabled",
|
|
23
|
+
];
|
|
24
|
+
const colonToData = (attr) => `data-${attr.slice(1).replace(":", "-")}`;
|
|
25
|
+
export const TRUSTED_DATA_ATTRIBS = TRUSTED_ATTRIBS.map((attr) => colonToData(attr));
|
|
26
|
+
export const ADDITIONAL_DATA_ATTRIBS = ["data-testid"];
|
|
27
|
+
export const SAFE_DATA_ATTRIBS = [...TRUSTED_DATA_ATTRIBS, ...ADDITIONAL_DATA_ATTRIBS];
|
|
28
|
+
//# sourceMappingURL=trusted_attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trusted_attributes.js","sourceRoot":"","sources":["../src/trusted_attributes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,WAAW;IACX,mBAAmB;IACnB,WAAW;IACX,mBAAmB;IACnB,YAAY;IACZ,oBAAoB;IACpB,YAAY;IACZ,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,gBAAgB;CACjB,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAEhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,oBAAoB,EAAE,GAAG,uBAAuB,CAAC,CAAC"}
|
package/dist/type_checker.js
CHANGED
|
@@ -4,6 +4,7 @@ import * as path from "path";
|
|
|
4
4
|
import { JSDOM } from "jsdom";
|
|
5
5
|
import * as jexpr from "jexpr";
|
|
6
6
|
import { getAttributeOrDataset } from "./dome.js";
|
|
7
|
+
import { TRUSTED_DATA_ATTRIBS } from "./trusted_attributes.js";
|
|
7
8
|
async function getDiagnostics(content, options) {
|
|
8
9
|
// Create temp file in the same directory as the HTML file (or cwd if no filePath)
|
|
9
10
|
// This allows TypeScript's module resolution to find node_modules properly
|
|
@@ -348,6 +349,7 @@ async function processTypesElement(element, parentTypes, options, processedEleme
|
|
|
348
349
|
return allDiagnostics;
|
|
349
350
|
}
|
|
350
351
|
// Find nested :types elements that are direct descendants (not grandchildren through other :types)
|
|
352
|
+
const TRUSTED_DATA_ATTRIBUTE_SET = new Set(TRUSTED_DATA_ATTRIBS.map((attr) => attr.toLowerCase()));
|
|
351
353
|
function findDirectNestedTypesElements(element) {
|
|
352
354
|
const result = [];
|
|
353
355
|
const walker = element.ownerDocument.createTreeWalker(element, 1); // 1 = SHOW_ELEMENT
|
|
@@ -374,6 +376,19 @@ function findDirectNestedTypesElements(element) {
|
|
|
374
376
|
}
|
|
375
377
|
return result;
|
|
376
378
|
}
|
|
379
|
+
function isExpressionAttribute(attrName) {
|
|
380
|
+
const normalized = attrName.toLowerCase();
|
|
381
|
+
if (normalized === ":types" || normalized === "data-types") {
|
|
382
|
+
return false;
|
|
383
|
+
}
|
|
384
|
+
if (normalized.startsWith(":")) {
|
|
385
|
+
return true;
|
|
386
|
+
}
|
|
387
|
+
if (!normalized.startsWith("data-")) {
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
return TRUSTED_DATA_ATTRIBUTE_SET.has(normalized);
|
|
391
|
+
}
|
|
377
392
|
// Get expressions excluding those in nested :types elements
|
|
378
393
|
function getExpressionsExcludingNestedTypes(root, dom, html) {
|
|
379
394
|
const scope = { expressions: [], forLoops: [] };
|
|
@@ -418,9 +433,7 @@ function getExpressionsExcludingNestedTypes(root, dom, html) {
|
|
|
418
433
|
else {
|
|
419
434
|
// Process attributes
|
|
420
435
|
for (const attr of Array.from(element.attributes)) {
|
|
421
|
-
if ((attr.name
|
|
422
|
-
attr.name !== ":types" &&
|
|
423
|
-
attr.name !== "data-types") {
|
|
436
|
+
if (isExpressionAttribute(attr.name)) {
|
|
424
437
|
currentScope.expressions.push({
|
|
425
438
|
expression: attr.value,
|
|
426
439
|
source: {
|
|
@@ -541,6 +554,14 @@ export async function typeCheck(html, options) {
|
|
|
541
554
|
const diagnostics = await processTypesElement(node, new Map(), options, processedElements, dom, html, htmlSourceFile);
|
|
542
555
|
allDiagnostics.push(...diagnostics);
|
|
543
556
|
}
|
|
557
|
+
const documentRoot = dom.window.document.documentElement ??
|
|
558
|
+
dom.window.document.body ??
|
|
559
|
+
dom.window.document.firstElementChild;
|
|
560
|
+
if (documentRoot) {
|
|
561
|
+
const globalScope = getExpressionsExcludingNestedTypes(documentRoot, dom, html);
|
|
562
|
+
const globalJexprDiagnostics = validateExpressionsWithJexpr(globalScope, htmlSourceFile);
|
|
563
|
+
allDiagnostics.push(...globalJexprDiagnostics);
|
|
564
|
+
}
|
|
544
565
|
return allDiagnostics;
|
|
545
566
|
}
|
|
546
567
|
//# sourceMappingURL=type_checker.js.map
|
package/dist/type_checker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type_checker.js","sourceRoot":"","sources":["../src/type_checker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type_checker.js","sourceRoot":"","sources":["../src/type_checker.ts"],"names":[],"mappings":"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"}
|