diff --git a/bin/RapidElements.js b/bin/RapidElements.js index 7efe472..2b7b977 100644 --- a/bin/RapidElements.js +++ b/bin/RapidElements.js @@ -1,70 +1,4 @@ -(() => { - var __getOwnPropNames = Object.getOwnPropertyNames; - var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - }; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - - // src/utils.js - function generateRandomString(length) { - const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - let result = ""; - for (let i2 = 0; i2 < length; i2++) { - result += characters.charAt(Math.floor(Math.random() * characters.length)); - } - return result; - } - var init_utils = __esm({ - "src/utils.js"() { - } - }); - - // src/Component.js - var Component; - var init_Component = __esm({ - "src/Component.js"() { - Component = class { - constructor() { - this.self = "asd"; - this.props = {}; - } - /** - * This function will be called when the component is loaded on the page - * use this as a constructor. - * */ - onComponentLoad() { - } - /** - * This function returns the element with the child-id provided. - * REMEMEBER this function will not work before onComponentLoad is run - * */ - getChild(name) { - let res = document.querySelectorAll( - `[child-id="RAPID${this.self + name}"]` - ); - return res[0]; - } - /** - * This function retusns instance of the child component if there is one otherwise undefined. - * REMEMEBER this function will not work before onComponentLoad is run - * */ - getChildInstance(name) { - let child = document.querySelectorAll( - `[child-id="RAPID${this.self + name}"]` - )[0]; - if (child === void 0) return void 0; - return getInstance(child); - } - }; - } - }); - - // src/md.js - function createNoTailwindClass() { - const style = document.createElement("style"); - style.innerHTML = ` +(()=>{var d=(t,e)=>()=>(t&&(e=t(t=0)),e);var v=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);function A(t){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",n="";for(let l=0;l{});var p,M=d(()=>{p=class{constructor(){this.self="asd",this.props={},this.className="Component"}onComponentLoad(){}getChild(e){return document.querySelectorAll(`[child-id="RAPID${this.self+e}"]`)[0]}getChildInstance(e){let n=document.querySelectorAll(`[child-id="RAPID${this.self+e}"]`)[0];if(n!==void 0)return getInstance(n)}copyAttributes(e,n){Array.from(n.attributes).forEach(l=>{e.setAttribute(l.name,l.value)})}setState(e){for(let n in e)this.state[n]!==void 0&&(this.state[n]=e[n]);this.rerender()}rerender(){let e=new Comp;e.html=this.template,e.className=this.className,e.props=this.props,e.instanceName=this.self,e.replaceChildId(),e.replaceProps(),e.replaceSelf(),e.html=replaceJs(e.html);let n=document.querySelectorAll(`[instance="${this.self}"]`)[0];var l=new DOMParser().parseFromString(e.html,"text/html");let c=this;function a(s,o){for(let r=0;r0&&a(s[r].children,o[r].children)}a(n.children,l.body.children),rapidRefresh()}}});function b(){let t=document.createElement("style");t.innerHTML=` .no-tailwind h1, .no-tailwind h2, .no-tailwind h3, @@ -86,318 +20,14 @@ color: inherit; background-color: inherit; } - `; - document.head.appendChild(style); - } - function parseMd(markdown) { - markdown = markdown.replace(/^\s*######\s+(.*)$/gim, "
$1
"); - markdown = markdown.replace(/^\s*#####\s+(.*)$/gim, "
$1
"); - markdown = markdown.replace(/^\s*####\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/^\s*###\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/^\s*##\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/^\s*#\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/\*\*(.*?)\*\*/gim, "$1"); - markdown = markdown.replace(/__(.*?)__/gim, "$1"); - markdown = markdown.replace(/\*(.*?)\*/gim, "$1"); - markdown = markdown.replace(/_(.*?)_/gim, "$1"); - markdown = markdown.replace(/\[(.*?)\]\((.*?)\)/gim, '$1'); - markdown = markdown.replace(/^\s*\* (.*)/gim, ""); - markdown = markdown.replace(/^\s*\n\*\s+(.*)/gim, ""); - markdown = markdown.replace( - /^\s*\d+\.\s+(.*)/gim, - "
    \n
  1. $1
  2. \n
" - ); - markdown = markdown.replace( - /^\s*\n\d+\.\s+(.*)/gim, - "
    \n
  1. $1
  2. \n
" - ); - markdown = markdown.replace( - /^\s*\>\s+(.*)/gim, - "
$1
" - ); - markdown = markdown.replace(/\n$/gim, "
"); - return markdown.trim(); - } - function replaceMd() { - let markdowns = document.querySelectorAll("[markdown]"); - for (let i2 = 0; i2 < markdowns.length; i2++) { - let elmnt = markdowns[i2]; - let to_convert = elmnt.innerHTML; - elmnt.classList.add("no-tailwind"); - let converted = parseMd(to_convert); - elmnt.innerHTML = converted; - } - } - var init_md = __esm({ - "src/md.js"() { - document.addEventListener("DOMContentLoaded", function() { - const elements = document.querySelectorAll("[include-md]"); - elements.forEach(function(elmnt) { - const include_md = elmnt.getAttribute("include-md"); - if (include_md) { - const xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4) { - if (this.status == 200) { - elmnt.innerHTML = parseMd(this.responseText); - elmnt.classList.add("no-tailwind"); - } - if (this.status == 404) { - elmnt.innerHTML = "Page not found."; - } - } - }; - xhttp.open("GET", include_md, true); - xhttp.send(); - } - }); - }); - } - }); - - // src/main2.js - var require_main2 = __commonJS({ - "src/main2.js"(exports, module) { - init_utils(); - init_Component(); - init_md(); - window.Component = Component; - var start_prop = "{"; - var end_prop = "}"; - var start_js = "{{"; - var end_js = "}}"; - var Template = class { - constructor() { - this.className = ""; - this.name = ""; - this.script = null; - this.html = null; - } - /** Adds script to body */ - createScript() { - if (document.querySelector(`[rapid-script="${this.getClassName()}"]`) == null) { - let script = document.createElement("script"); - script.setAttribute("rapid-script", this.getClassName()); - script.textContent = this.script.innerHTML; - document.body.appendChild(script); - } - } - /** returns the classname from the script */ - getClassName(scriptContent) { - if (this.script == null) return null; - const classNameMatch = this.script.innerHTML.match(/class\s+([^\s{]+)/); - if (classNameMatch && classNameMatch.length > 1) { - return classNameMatch[1]; - } else { - return null; - } - } - }; - var Comp = class { - constructor() { - this.instanceName; - this.defintion; - this.props; - this.html; - } - replaceProps() { - try { - this.props.children = this.defintion.innerHTML; - } catch (exception) { - console.log(exception); - } - this.html = this.html.replaceAll( - `${start_prop}children${end_prop}`, - this.defintion.innerHTML - ); - for (let prop of Object.entries(this.props)) { - let key = prop[0]; - let value = prop[1]; - if (key === "child-id") { - var tempContainer = document.createElement("div"); - tempContainer.innerHTML = this.html; - var element2 = tempContainer.firstElementChild; - tempContainer.setAttribute("child-id", value); - this.html = tempContainer.outerHTML; - } else { - this.html = this.html.replaceAll( - `${start_prop}${key}${end_prop}`, - value - ); - } - } - } - /** rreplace all selfs with instance name */ - replaceSelf() { - this.html = this.html.replaceAll("self", this.instanceName); - this.html = this.html.replaceAll("this.", this.instanceName + "."); - } - /** adds instance id to child-id id */ - replaceChildId() { - var parser = new DOMParser(); - var doc = parser.parseFromString(this.html, "text/html"); - var childElement = doc.querySelectorAll(`[child-id]`); - for (let i2 = 0; i2 < childElement.length; i2++) { - const was = childElement[i2].getAttribute("child-id"); - if (!was.includes("RAPID")) { - childElement[i2].setAttribute("child-id", "RAPIDself" + was); - } - } - this.html = doc.body.innerHTML; - } - /** Adds instance attriubte to the compnent first child */ - setInstance() { - this.instanceName = generateRandomString(10); - if (this.html != null) { - var parser = new DOMParser(); - var doc = parser.parseFromString(this.html, "text/html"); - doc.body.firstElementChild.setAttribute("instance", this.instanceName); - this.html = doc.body.innerHTML; - } - } - }; - window.isInsideCompontent = (element2, attributeName, value) => { - let currentElement = element2; - while (currentElement) { - if (currentElement.getAttribute(attributeName) === value) { - return true; - } - currentElement = currentElement.parentElement; - } - return false; - }; - window.replaceComponents = () => { - let htmltemplates = document.getElementsByTagName("template"); - let templates = new Object(); - for (let i2 = htmltemplates.length - 1; i2 >= 0; i2--) { - let template = new Template(); - template.name = htmltemplates[i2].getAttribute("rapid-name"); - template.script = htmltemplates[i2].content.querySelector("script"); - if (template.script !== null) { - template.html = htmltemplates[i2].innerHTML.replace( - template.script.outerHTML, - "" - ); - template.createScript(); - } else { - template.html = htmltemplates[i2].innerHTML; - } - templates[template.name] = template; - } - console.log(templates); - let components = []; - for (let [name, template] of Object.entries(templates)) { - let htmlcomponents = document.getElementsByTagName(name); - console.log("comp", htmlcomponents); - for (let i2 = 0; i2 < htmlcomponents.length; i2++) { - if (!isInsideCompontent(htmlcomponents[i2], "rapid-component", name)) { - let component = new Comp(); - component.defintion = htmlcomponents[i2]; - let d = document.createElement("div"); - d.innerHTML = template.html; - d.setAttribute("rapid-component", name); - component.html = d.outerHTML; - component.className = template.getClassName(); - component.props = Array.from(htmlcomponents[i2].attributes).reduce( - (acc, attr) => { - acc[attr.name] = attr.value; - return acc; - }, - {} - ); - component.setInstance(); - component.replaceChildId(); - component.replaceProps(); - component.replaceSelf(); - htmlcomponents[i2].outerHTML = component.html; - components.push(component); - i2--; - } - } - } - for (let i2 = components.length - 1; i2 >= 0; i2--) { - let component = components[i2]; - if (component.className != null) { - let js2 = `let ${component.instanceName} = new ${component.className}();`; - js2 += `${component.instanceName}.self = '${component.instanceName}';`; - js2 += `${component.instanceName}.props = ${JSON.stringify(component.props)};`; - js2 += `${component.instanceName}.onComponentLoad();`; - let script = document.createElement("script"); - script.textContent = js2; - document.body.appendChild(script); - } - } - replaceJs(); - }; - function includeHTML() { - const element2 = document.querySelector("[include-html]"); - if (element2 === null) return null; - const file = element2.getAttribute("include-html"); - if (file) { - fetch(file).then((response) => { - if (!response.ok) { - throw new Error("Network response was not ok"); - } - return response.text(); - }).then((html2) => { - element2.outerHTML = html2; - replaceComponents(); - includeHTML(); - }).catch((error) => { - element2.innerHTML = "Content not found."; - }); - } - } - window.rapidRefresh = () => { - replaceComponents(); - }; - async function main() { - includeHTML(); - replaceComponents(); - replaceMd(); - createNoTailwindClass(); - } - window.getInstanceById = (id) => { - let el = document.getElementById(id); - return getInstance(el); - }; - window.getInstance = (element) => { - console.log(element); - if (element.getAttribute("instance")) { - let instanceName = element.getAttribute("instance"); - if (instanceName === null) { - instanceName = element.firstElementChild.getAttribute("instance"); - if (instanceName === null) return null; - } - let instance = eval(`${instanceName}`); - return instance; - } else { - return getInstance(element.parentElement); - } - }; - window.replaceJs = () => { - const pattern = /\{{\s*.*?\s*\}}/g; - let html = document.documentElement.innerHTML; - const matches = html.match(pattern); - if (matches != null) { - for (let i = 0; i < matches.length; i++) { - let js = matches[i].replaceAll(start_js, ""); - js = js.replaceAll(end_js, ""); - js = js.replaceAll(">", ">"); - js = js.replaceAll("<", "<"); - try { - let js_value = eval(js); - html = html.replaceAll(matches[i], js_value); - } catch (exceprtion) { - html = html.replaceAll(matches[i], "undefined"); - } - } - document.documentElement.innerHTML = html; - } - }; - window.onload = main(); - window.replaceMd = replaceMd; - } - }); - require_main2(); -})(); + `,document.head.appendChild(t)}function y(t){return t=t.replace(/^\s*######\s+(.*)$/gim,"
$1
"),t=t.replace(/^\s*#####\s+(.*)$/gim,"
$1
"),t=t.replace(/^\s*####\s+(.*)$/gim,"

$1

"),t=t.replace(/^\s*###\s+(.*)$/gim,"

$1

"),t=t.replace(/^\s*##\s+(.*)$/gim,"

$1

"),t=t.replace(/^\s*#\s+(.*)$/gim,"

$1

"),t=t.replace(/\*\*(.*?)\*\*/gim,"$1"),t=t.replace(/__(.*?)__/gim,"$1"),t=t.replace(/\*(.*?)\*/gim,"$1"),t=t.replace(/_(.*?)_/gim,"$1"),t=t.replace(/\[(.*?)\]\((.*?)\)/gim,'$1'),t=t.replace(/^\s*\* (.*)/gim,``),t=t.replace(/^\s*\n\*\s+(.*)/gim,``),t=t.replace(/^\s*\d+\.\s+(.*)/gim,`
    +
  1. $1
  2. +
`),t=t.replace(/^\s*\n\d+\.\s+(.*)/gim,`
    +
  1. $1
  2. +
`),t=t.replace(/^\s*\>\s+(.*)/gim,"
$1
"),t=t.replace(/\n$/gim,"
"),t.trim()}function u(){let t=document.querySelectorAll("[markdown]");for(let e=0;e{document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("[include-md]").forEach(function(e){let n=e.getAttribute("include-md");if(n){let l=new XMLHttpRequest;l.onreadystatechange=function(){this.readyState==4&&(this.status==200&&(e.innerHTML=y(this.responseText),e.classList.add("no-tailwind")),this.status==404&&(e.innerHTML="Page not found."))},l.open("GET",n,!0),l.send()}})})});var j=v((g,$)=>{N();M();T();window.Component=p;var C="{",L="}",S="{{",E="}}",f=class{constructor(){this.className="",this.name="",this.script=null,this.html=null}createScript(){if(document.querySelector(`[rapid-script="${this.getClassName()}"]`)==null){let e=document.createElement("script");e.setAttribute("rapid-script",this.getClassName()),e.textContent=this.script.innerHTML,document.body.appendChild(e)}}getClassName(e){if(this.script==null)return null;let n=this.script.innerHTML.match(/class\s+([^\s{]+)/);return n&&n.length>1?n[1]:null}},m=class{constructor(){this.instanceName,this.defintion,this.props,this.html,this.template=""}replaceProps(){try{this.props.children=this.defintion.innerHTML}catch(l){console.log(l)}try{this.html=this.html.replaceAll(`${C}children${L}`,this.defintion.innerHTML)}catch(l){console.log(l)}for(let l of Object.entries(this.props)){let c=l[0],a=l[1];if(c==="child-id"){var e=document.createElement("div");e.innerHTML=this.html;var n=e.firstElementChild;e.setAttribute("child-id",a),this.html=e.outerHTML}else this.html=this.html.replaceAll(`${C}${c}${L}`,a)}}replaceSelf(){this.html=this.html.replaceAll("self.",this.instanceName+"."),this.html=this.html.replaceAll("this.",this.instanceName+".")}replaceChildId(){var e=new DOMParser,n=e.parseFromString(this.html,"text/html"),l=n.querySelectorAll("[child-id]");for(let c=0;c{let l=t;for(;l;){if(l.getAttribute(e)===n)return!0;l=l.parentElement}return!1};window.replaceComponentTagName=t=>{let e=document.querySelector(`[rapid-name="${t}"]`);replaceComponentTemplate(e)};window.replaceComponentTemplate=t=>{let e=new f;e.name=t.getAttribute("rapid-name"),e.script=t.content.querySelector("script"),e.script!==null?(e.html=t.innerHTML.replace(e.script.outerHTML,""),e.createScript()):e.html=t.innerHTML;let n=e.name,l=[],c=document.getElementsByTagName(n);for(let a=0;a(r[h.name]=h.value,r),{}),s.setInstance(),s.replaceChildId(),s.replaceProps(),s.replaceSelf(),s.className!=null){let r=`let ${s.instanceName} = new ${s.className}();`;r+=`${s.instanceName}.self = '${s.instanceName}';`,r+=`${s.instanceName}.props = ${JSON.stringify(s.props)};`,r+=`${s.instanceName}.onComponentLoad();`,r+=`${s.instanceName}.template = '${s.template.replaceAll(` +`,"")}';`,r+=`${s.instanceName}.className = '${s.className}';`;let h=document.createElement("script");h.setAttribute("instance",s.instanceName),h.textContent=r,document.body.appendChild(h)}c[a].outerHTML=replaceJs(s.html),l.push(s),a--}};window.replaceComponents=()=>{let t=document.getElementsByTagName("template");for(let e=t.length-1;e>=0;e--)replaceComponentTemplate(t[e])};function H(){let t=document.querySelector("[include-html]");if(t===null)return null;let e=t.getAttribute("include-html");e&&fetch(e).then(n=>{if(!n.ok)throw new Error("Network response was not ok");return n.text()}).then(n=>{t.outerHTML=n,replaceComponents(),H()}).catch(n=>{t.innerHTML="Content not found."})}window.rapidRefresh=()=>{replaceComponents()};function I(){H(),replaceComponents(),u(),b(),console.log("ehere")}window.getInstanceById=t=>{let e=document.getElementById(t);return getInstance(e)};window.getInstance=element=>{if(element.getAttribute("instance")){let instanceName=element.getAttribute("instance");if(instanceName===null&&(instanceName=element.firstElementChild.getAttribute("instance"),instanceName===null))return null;let instance=eval(`${instanceName}`);return instance}else return getInstance(element.parentElement)};window.replaceJs=html=>{let pattern=/\{{\s*.*?\s*\}}/g,matches=html.match(pattern);if(matches!=null)for(let i=0;i"),js=js.replaceAll("<","<");try{let js_value=eval(js);html=html.replaceAll(matches[i],js_value)}catch(t){html=html.replaceAll(matches[i],"undefined")}}return html};window.onload=I();window.replaceMd=u;window.Comp=m});j();})(); +//# sourceMappingURL=RapidElements.js.map diff --git a/bin/RapidElements.js.map b/bin/RapidElements.js.map index 0c22f14..36f9e5a 100644 --- a/bin/RapidElements.js.map +++ b/bin/RapidElements.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/utils.js", "../src/Component.js", "../src/md.js", "../src/main2.js"], - "sourcesContent": ["export function generateRandomString(length) {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return result;\n}\n", "/**\n * default component class which all component scripts have to extend\n * */\nexport default class Component {\n constructor() {\n this.self = \"asd\";\n this.props = {};\n }\n\n /**\n * This function will be called when the component is loaded on the page\n * use this as a constructor.\n * */\n onComponentLoad() {}\n /**\n * This function returns the element with the child-id provided.\n * REMEMEBER this function will not work before onComponentLoad is run\n * */\n getChild(name) {\n let res = document.querySelectorAll(\n `[child-id=\"RAPID${this.self + name}\"]`,\n );\n return res[0];\n }\n /**\n * This function retusns instance of the child component if there is one otherwise undefined.\n * REMEMEBER this function will not work before onComponentLoad is run\n * */\n getChildInstance(name) {\n let child = document.querySelectorAll(\n `[child-id=\"RAPID${this.self + name}\"]`,\n )[0];\n if (child === undefined) return undefined;\n\n return getInstance(child);\n }\n}\n", "export function createNoTailwindClass() {\n const style = document.createElement(\"style\");\n style.innerHTML = `\n .no-tailwind h1,\n .no-tailwind h2,\n .no-tailwind h3,\n .no-tailwind h4,\n .no-tailwind h5,\n .no-tailwind h6,\n .no-tailwind p,\n .no-tailwind div,\n .no-tailwind span,\n .no-tailwind a,\n .no-tailwind ul,\n .no-tailwind li,\n .no-tailwind table,\n .no-tailwind tr,\n .no-tailwind th,\n .no-tailwind td {\n all: revert;\n font-family: inherit;\n color: inherit;\n background-color: inherit;\n }\n `;\n document.head.appendChild(style);\n}\n\nexport function parseMd(markdown) {\n // Convert headers, allowing for leading whitespace\n markdown = markdown.replace(/^\\s*######\\s+(.*)$/gim, \"
$1
\");\n markdown = markdown.replace(/^\\s*#####\\s+(.*)$/gim, \"
$1
\");\n markdown = markdown.replace(/^\\s*####\\s+(.*)$/gim, \"

$1

\");\n markdown = markdown.replace(/^\\s*###\\s+(.*)$/gim, \"

$1

\");\n markdown = markdown.replace(/^\\s*##\\s+(.*)$/gim, \"

$1

\");\n markdown = markdown.replace(/^\\s*#\\s+(.*)$/gim, \"

$1

\");\n\n // Convert bold text\n markdown = markdown.replace(/\\*\\*(.*?)\\*\\*/gim, \"$1\");\n markdown = markdown.replace(/__(.*?)__/gim, \"$1\");\n\n // Convert italic text\n markdown = markdown.replace(/\\*(.*?)\\*/gim, \"$1\");\n markdown = markdown.replace(/_(.*?)_/gim, \"$1\");\n\n // Convert links\n markdown = markdown.replace(/\\[(.*?)\\]\\((.*?)\\)/gim, '$1');\n\n // Convert unordered lists, allowing for leading whitespace\n markdown = markdown.replace(/^\\s*\\* (.*)/gim, \"
    \\n
  • $1
  • \\n
\");\n markdown = markdown.replace(/^\\s*\\n\\*\\s+(.*)/gim, \"
    \\n
  • $1
  • \\n
\");\n\n // Convert ordered lists, allowing for leading whitespace\n markdown = markdown.replace(\n /^\\s*\\d+\\.\\s+(.*)/gim,\n \"
    \\n
  1. $1
  2. \\n
\",\n );\n markdown = markdown.replace(\n /^\\s*\\n\\d+\\.\\s+(.*)/gim,\n \"
    \\n
  1. $1
  2. \\n
\",\n );\n\n // Convert blockquotes, allowing for leading whitespace\n markdown = markdown.replace(\n /^\\s*\\>\\s+(.*)/gim,\n \"
$1
\",\n );\n\n // Convert line breaks\n markdown = markdown.replace(/\\n$/gim, \"
\");\n\n return markdown.trim();\n}\n\n// searches all elements with attribute markdown and replaces the markdown inside with\n// html code\nexport function replaceMd() {\n console.log(\"replace md\");\n console.log(document.body.innerHTML);\n let markdowns = document.querySelectorAll(\"[markdown]\");\n console.log(markdowns);\n for (let i = 0; i < markdowns.length; i++) {\n let elmnt = markdowns[i];\n let to_convert = elmnt.innerHTML;\n elmnt.classList.add(\"no-tailwind\");\n console.log(to_convert);\n let converted = parseMd(to_convert);\n elmnt.innerHTML = converted;\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n const elements = document.querySelectorAll(\"[include-md]\");\n\n elements.forEach(function (elmnt) {\n const include_md = elmnt.getAttribute(\"include-md\");\n if (include_md) {\n const xhttp = new XMLHttpRequest();\n xhttp.onreadystatechange = function () {\n if (this.readyState == 4) {\n if (this.status == 200) {\n elmnt.innerHTML = parseMd(this.responseText);\n elmnt.classList.add(\"no-tailwind\");\n }\n if (this.status == 404) {\n elmnt.innerHTML = \"Page not found.\";\n }\n }\n };\n xhttp.open(\"GET\", include_md, true);\n xhttp.send();\n }\n });\n});\n", "import { generateRandomString } from \"./utils.js\";\nimport Component from \"./Component.js\";\n\nwindow.Component = Component;\n\nimport * as md from \"./md.js\";\n\nconst start_prop = \"{\";\nconst end_prop = \"}\";\n\nconst start_js = \"{{\";\nconst end_js = \"}}\";\n\nclass Template {\n constructor() {\n this.className = \"\";\n this.name = \"\";\n this.script = null;\n this.html = null;\n }\n /** Adds script to body */\n createScript() {\n if (\n document.querySelector(`[rapid-script=\"${this.getClassName()}\"]`) == null\n ) {\n let script = document.createElement(\"script\");\n script.setAttribute(\"rapid-script\", this.getClassName());\n script.textContent = this.script.innerHTML;\n document.body.appendChild(script);\n }\n }\n /** returns the classname from the script */\n getClassName(scriptContent) {\n // Match the class name using a regular expression\n if (this.script == null) return null;\n const classNameMatch = this.script.innerHTML.match(/class\\s+([^\\s{]+)/);\n // Check if a match was found\n if (classNameMatch && classNameMatch.length > 1) {\n return classNameMatch[1];\n } else {\n return null;\n }\n }\n}\n\nclass Comp {\n constructor() {\n this.instanceName;\n this.defintion;\n this.props;\n this.html;\n }\n replaceProps() {\n //replace the the {children} with the components innerhtml\n try {\n this.props.children = this.defintion.innerHTML;\n } catch (exception) {\n console.log(exception);\n }\n this.html = this.html.replaceAll(\n `${start_prop}children${end_prop}`,\n this.defintion.innerHTML,\n );\n\n // for each prop replace it with the value\n for (let prop of Object.entries(this.props)) {\n let key = prop[0];\n let value = prop[1];\n // if the prop is child id it with div\n if (key === \"child-id\") {\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = this.html;\n\n var element = tempContainer.firstElementChild;\n tempContainer.setAttribute(\"child-id\", value);\n this.html = tempContainer.outerHTML;\n } else {\n this.html = this.html.replaceAll(\n `${start_prop}${key}${end_prop}`,\n value,\n );\n }\n }\n }\n /** rreplace all selfs with instance name */\n replaceSelf() {\n this.html = this.html.replaceAll(\"self\", this.instanceName);\n }\n /** adds instance id to child-id id */\n replaceChildId() {\n var parser = new DOMParser();\n var doc = parser.parseFromString(this.html, \"text/html\");\n var childElement = doc.querySelectorAll(`[child-id]`);\n for (let i = 0; i < childElement.length; i++) {\n const was = childElement[i].getAttribute(\"child-id\");\n // if the child-id attribute has RAPID it has already\n // been changed so we should not change it now\n // (this comes from when a component is inside another component\n // and has the child-id on it)\n if (!was.includes(\"RAPID\")) {\n childElement[i].setAttribute(\"child-id\", \"RAPIDself\" + was);\n }\n }\n this.html = doc.body.innerHTML;\n }\n /** Adds instance attriubte to the compnent first child */\n setInstance() {\n this.instanceName = generateRandomString(10);\n if (this.html != null) {\n var parser = new DOMParser();\n var doc = parser.parseFromString(this.html, \"text/html\");\n doc.body.firstElementChild.setAttribute(\"instance\", this.instanceName);\n this.html = doc.body.innerHTML;\n }\n }\n}\nwindow.isInsideCompontent = (element, attributeName, value) => {\n let currentElement = element;\n\n while (currentElement) {\n if (currentElement.getAttribute(attributeName) === value) {\n return true;\n }\n currentElement = currentElement.parentElement; // Move up to the parent element\n }\n\n return false; // No parent has the attribute\n};\n\nwindow.replaceComponents = () => {\n // find all templates\n let htmltemplates = document.getElementsByTagName(\"template\");\n // dict that holds the templates and thier name\n let templates = new Object();\n // we loop though the templates down up so the templates\n // down can use the templates above\n for (let i = htmltemplates.length - 1; i >= 0; i--) {\n let template = new Template();\n template.name = htmltemplates[i].getAttribute(\"rapid-name\");\n template.script = htmltemplates[i].content.querySelector(\"script\");\n\n // if the template does not have a script we dont want to remove it from the html\n // or create a script\n if (template.script !== null) {\n template.html = htmltemplates[i].innerHTML.replace(\n template.script.outerHTML,\n \"\",\n );\n template.createScript();\n } else {\n template.html = htmltemplates[i].innerHTML;\n }\n //set the new template in dictonary\n templates[template.name] = template;\n }\n console.log(templates);\n\n // list that holds all components\n let components = [];\n // for each template\n for (let [name, template] of Object.entries(templates)) {\n // find all components that uses template name\n let htmlcomponents = document.getElementsByTagName(name);\n console.log(\"comp\", htmlcomponents);\n // for each component that uses this template\n for (let i = 0; i < htmlcomponents.length; i++) {\n // If the compontent found has a parent with the attribute\n // rapid-compontent and its value is the compontent we try to compile\n // we will ignore it because it is part of the the compontent which is compiled\n if (!isInsideCompontent(htmlcomponents[i], \"rapid-component\", name)) {\n let component = new Comp();\n component.defintion = htmlcomponents[i];\n\n let d = document.createElement(\"div\");\n d.innerHTML = template.html;\n // set the name of the compiled compontent (used in the if-statement above)\n d.setAttribute(\"rapid-component\", name);\n component.html = d.outerHTML;\n component.className = template.getClassName();\n\n // parse attributes to a object\n component.props = Array.from(htmlcomponents[i].attributes).reduce(\n (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n },\n {},\n );\n component.setInstance();\n component.replaceChildId();\n\n component.replaceProps();\n component.replaceSelf();\n // component.replaceJs();\n\n //update dom with the new html\n htmlcomponents[i].outerHTML = component.html;\n components.push(component);\n // we goback to look for more components to compile\n i--;\n }\n }\n }\n\n // Instantiate the components instancess\n for (let i = components.length - 1; i >= 0; i--) {\n // for (let i = 0; i < components.length; i++) {\n let component = components[i];\n if (component.className != null) {\n let js = `let ${component.instanceName} = new ${component.className}();`;\n js += `${component.instanceName}.self = '${component.instanceName}';`;\n js += `${component.instanceName}.props = ${JSON.stringify(component.props)};`;\n js += `${component.instanceName}.onComponentLoad();`;\n\n let script = document.createElement(\"script\");\n script.textContent = js;\n document.body.appendChild(script);\n }\n }\n replaceJs();\n};\n\n// simple chatgpt say\nfunction includeHTML() {\n const element = document.querySelector(\"[include-html]\");\n if (element === null) return null;\n const file = element.getAttribute(\"include-html\");\n if (file) {\n fetch(file)\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.text();\n })\n .then((html) => {\n element.outerHTML = html;\n replaceComponents();\n includeHTML();\n })\n .catch((error) => {\n element.innerHTML = \"Content not found.\";\n });\n }\n}\n/**\n * this function recompiles new components added to the dom\n * */\nwindow.rapidRefresh = () => {\n replaceComponents();\n};\n\nasync function main() {\n // try to include html\n includeHTML();\n // document = doc;\n\n //replace all componments\n replaceComponents();\n\n md.replaceMd();\n // creates a tailwind override class, to be applied to markdown defined elements.\n md.createNoTailwindClass();\n}\n\nwindow.getInstanceById = (id) => {\n let el = document.getElementById(id);\n return getInstance(el);\n};\n\nwindow.getInstance = (element) => {\n console.log(element);\n if (element.getAttribute(\"instance\")) {\n let instanceName = element.getAttribute(\"instance\");\n if (instanceName === null) {\n instanceName = element.firstElementChild.getAttribute(\"instance\");\n if (instanceName === null) return null;\n }\n let instance = eval(`${instanceName}`);\n return instance;\n } else {\n return getInstance(element.parentElement);\n }\n};\nwindow.replaceJs = () => {\n // Regular expression to match {%...%} pattern\n const pattern = /\\{{\\s*.*?\\s*\\}}/g;\n\n let html = document.documentElement.innerHTML;\n\n const matches = html.match(pattern);\n if (matches != null) {\n for (let i = 0; i < matches.length; i++) {\n let js = matches[i].replaceAll(start_js, \"\");\n js = js.replaceAll(end_js, \"\");\n js = js.replaceAll(\">\", \">\");\n js = js.replaceAll(\"<\", \"<\");\n try {\n let js_value = eval(js);\n html = html.replaceAll(matches[i], js_value);\n } catch (exceprtion) {\n html = html.replaceAll(matches[i], \"undefined\");\n }\n }\n document.documentElement.innerHTML = html;\n }\n};\n\nwindow.onload = main();\n\nwindow.replaceMd = md.replaceMd;\n"], - "mappings": "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", - "names": ["generateRandomString", "length", "characters", "result", "i", "init_utils", "__esmMin", "Component", "init_Component", "__esmMin", "name", "child", "createNoTailwindClass", "style", "parseMd", "markdown", "replaceMd", "markdowns", "i", "elmnt", "to_convert", "converted", "init_md", "__esmMin", "include_md", "xhttp", "require_main2", "__commonJSMin", "exports", "module", "init_utils", "init_Component", "init_md", "Component", "start_prop", "end_prop", "start_js", "end_js", "Template", "script", "scriptContent", "classNameMatch", "Comp", "exception", "prop", "key", "value", "tempContainer", "element", "parser", "doc", "childElement", "i", "was", "generateRandomString", "attributeName", "currentElement", "htmltemplates", "templates", "template", "components", "name", "htmlcomponents", "component", "d", "acc", "attr", "js", "includeHTML", "file", "response", "html", "error", "main", "replaceMd", "createNoTailwindClass", "id", "el", "exceprtion"] + "sourcesContent": ["export function generateRandomString(length) {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return result;\n}\n", "/**\n * default component class which all component scripts have to extend\n * */\nexport default class Component {\n constructor() {\n this.self = \"asd\";\n this.props = {};\n this.className = \"Component\";\n }\n\n /**\n * This function will be called when the component is loaded on the page\n * use this as a constructor.\n * */\n onComponentLoad() {}\n /**\n * This function returns the element with the child-id provided.\n * REMEMEBER this function will not work before onComponentLoad is run\n * */\n getChild(name) {\n let res = document.querySelectorAll(\n `[child-id=\"RAPID${this.self + name}\"]`,\n );\n return res[0];\n }\n /**\n * This function retusns instance of the child component if there is one otherwise undefined.\n * REMEMEBER this function will not work before onComponentLoad is run\n * */\n getChildInstance(name) {\n let child = document.querySelectorAll(\n `[child-id=\"RAPID${this.self + name}\"]`,\n )[0];\n if (child === undefined) return undefined;\n\n return getInstance(child);\n }\n copyAttributes(target, source) {\n Array.from(source.attributes).forEach((attr) => {\n target.setAttribute(attr.name, attr.value);\n });\n }\n\n setState(state) {\n for (let key in state) {\n if (this.state[key] !== undefined) {\n // Check if the value in obj1 is an array, replace it with the array's first element\n this.state[key] = state[key];\n }\n }\n\n this.rerender();\n }\n\n /** function to rerender this compotent\n * it works by taking the template and change it\n * then it creates elements of it and replace\n * the props from the generated elements with the\n * elements in dom. It will also change the inner html\n * if it isnt a input because inputs will lose focus\n * otherwise.\n */\n rerender() {\n // create a component to update the template\n let comp = new Comp();\n comp.html = this.template;\n comp.className = this.className;\n comp.props = this.props;\n comp.instanceName = this.self;\n comp.replaceChildId();\n comp.replaceProps();\n comp.replaceSelf();\n\n comp.html = replaceJs(comp.html); //replace the inline js\n // get the compontent holder\n let div = document.querySelectorAll(`[instance=\"${this.self}\"]`)[0];\n // parse elements from the parsed html\n var doc = new DOMParser().parseFromString(comp.html, \"text/html\");\n\n let s = this; // use this as this in function under\n // function for recursivly updateing the elements inside\n function rerender_comp(old, newhtml) {\n for (let i = 0; i < old.length; i++) {\n // update attributes\n s.copyAttributes(old[i], newhtml[i]);\n\n // We dont replace innerhtml if it is a input because then the focus will disspear\n // TODO: better check if the input contains elements\n if (!newhtml[i].innerHTML.includes(\"input\")) {\n old[i].innerHTML = newhtml[i].innerHTML;\n }\n\n // if there is more children run this again\n if (old[i].children.length > 0) {\n rerender_comp(old[i].children, newhtml[i].children);\n }\n }\n }\n rerender_comp(div.children, doc.body.children);\n\n //compile new added components\n rapidRefresh();\n }\n}\n", "export function createNoTailwindClass() {\n const style = document.createElement(\"style\");\n style.innerHTML = `\n .no-tailwind h1,\n .no-tailwind h2,\n .no-tailwind h3,\n .no-tailwind h4,\n .no-tailwind h5,\n .no-tailwind h6,\n .no-tailwind p,\n .no-tailwind div,\n .no-tailwind span,\n .no-tailwind a,\n .no-tailwind ul,\n .no-tailwind li,\n .no-tailwind table,\n .no-tailwind tr,\n .no-tailwind th,\n .no-tailwind td {\n all: revert;\n font-family: inherit;\n color: inherit;\n background-color: inherit;\n }\n `;\n document.head.appendChild(style);\n}\n\nexport function parseMd(markdown) {\n // Convert headers, allowing for leading whitespace\n markdown = markdown.replace(/^\\s*######\\s+(.*)$/gim, \"
$1
\");\n markdown = markdown.replace(/^\\s*#####\\s+(.*)$/gim, \"
$1
\");\n markdown = markdown.replace(/^\\s*####\\s+(.*)$/gim, \"

$1

\");\n markdown = markdown.replace(/^\\s*###\\s+(.*)$/gim, \"

$1

\");\n markdown = markdown.replace(/^\\s*##\\s+(.*)$/gim, \"

$1

\");\n markdown = markdown.replace(/^\\s*#\\s+(.*)$/gim, \"

$1

\");\n\n // Convert bold text\n markdown = markdown.replace(/\\*\\*(.*?)\\*\\*/gim, \"$1\");\n markdown = markdown.replace(/__(.*?)__/gim, \"$1\");\n\n // Convert italic text\n markdown = markdown.replace(/\\*(.*?)\\*/gim, \"$1\");\n markdown = markdown.replace(/_(.*?)_/gim, \"$1\");\n\n // Convert links\n markdown = markdown.replace(/\\[(.*?)\\]\\((.*?)\\)/gim, '$1');\n\n // Convert unordered lists, allowing for leading whitespace\n markdown = markdown.replace(/^\\s*\\* (.*)/gim, \"
    \\n
  • $1
  • \\n
\");\n markdown = markdown.replace(/^\\s*\\n\\*\\s+(.*)/gim, \"
    \\n
  • $1
  • \\n
\");\n\n // Convert ordered lists, allowing for leading whitespace\n markdown = markdown.replace(\n /^\\s*\\d+\\.\\s+(.*)/gim,\n \"
    \\n
  1. $1
  2. \\n
\",\n );\n markdown = markdown.replace(\n /^\\s*\\n\\d+\\.\\s+(.*)/gim,\n \"
    \\n
  1. $1
  2. \\n
\",\n );\n\n // Convert blockquotes, allowing for leading whitespace\n markdown = markdown.replace(\n /^\\s*\\>\\s+(.*)/gim,\n \"
$1
\",\n );\n\n // Convert line breaks\n markdown = markdown.replace(/\\n$/gim, \"
\");\n\n return markdown.trim();\n}\n\n// searches all elements with attribute markdown and replaces the markdown inside with\n// html code\nexport function replaceMd() {\n let markdowns = document.querySelectorAll(\"[markdown]\");\n for (let i = 0; i < markdowns.length; i++) {\n let elmnt = markdowns[i];\n let to_convert = elmnt.innerHTML;\n elmnt.classList.add(\"no-tailwind\");\n let converted = parseMd(to_convert);\n elmnt.innerHTML = converted;\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n const elements = document.querySelectorAll(\"[include-md]\");\n\n elements.forEach(function (elmnt) {\n const include_md = elmnt.getAttribute(\"include-md\");\n if (include_md) {\n const xhttp = new XMLHttpRequest();\n xhttp.onreadystatechange = function () {\n if (this.readyState == 4) {\n if (this.status == 200) {\n elmnt.innerHTML = parseMd(this.responseText);\n elmnt.classList.add(\"no-tailwind\");\n }\n if (this.status == 404) {\n elmnt.innerHTML = \"Page not found.\";\n }\n }\n };\n xhttp.open(\"GET\", include_md, true);\n xhttp.send();\n }\n });\n});\n", "import { generateRandomString } from \"./utils.js\";\nimport Component from \"./Component.js\";\n\nwindow.Component = Component;\n\nimport * as md from \"./md.js\";\n\nconst start_prop = \"{\";\nconst end_prop = \"}\";\n\nconst start_js = \"{{\";\nconst end_js = \"}}\";\n\nclass Template {\n constructor() {\n this.className = \"\";\n this.name = \"\";\n this.script = null;\n this.html = null;\n }\n /** Adds script to body */\n createScript() {\n if (\n document.querySelector(`[rapid-script=\"${this.getClassName()}\"]`) == null\n ) {\n let script = document.createElement(\"script\");\n script.setAttribute(\"rapid-script\", this.getClassName());\n script.textContent = this.script.innerHTML;\n document.body.appendChild(script);\n }\n }\n /** returns the classname from the script */\n getClassName(scriptContent) {\n // Match the class name using a regular expression\n if (this.script == null) return null;\n const classNameMatch = this.script.innerHTML.match(/class\\s+([^\\s{]+)/);\n // Check if a match was found\n if (classNameMatch && classNameMatch.length > 1) {\n return classNameMatch[1];\n } else {\n return null;\n }\n }\n}\n\nclass Comp {\n constructor() {\n this.instanceName;\n this.defintion;\n this.props;\n this.html;\n this.template = \"\";\n }\n replaceProps() {\n //replace the the {children} with the components innerhtml\n try {\n this.props.children = this.defintion.innerHTML;\n } catch (exception) {\n console.log(exception);\n }\n\n try {\n this.html = this.html.replaceAll(\n `${start_prop}children${end_prop}`,\n this.defintion.innerHTML,\n );\n } catch (exception) {\n console.log(exception);\n }\n // for each prop replace it with the value\n for (let prop of Object.entries(this.props)) {\n let key = prop[0];\n let value = prop[1];\n // if the prop is child id it with div\n if (key === \"child-id\") {\n var tempContainer = document.createElement(\"div\");\n tempContainer.innerHTML = this.html;\n\n var element = tempContainer.firstElementChild;\n tempContainer.setAttribute(\"child-id\", value);\n this.html = tempContainer.outerHTML;\n } else {\n this.html = this.html.replaceAll(\n `${start_prop}${key}${end_prop}`,\n value,\n );\n }\n }\n }\n /** rreplace all selfs with instance name */\n replaceSelf() {\n this.html = this.html.replaceAll(\"self.\", this.instanceName + \".\");\n this.html = this.html.replaceAll(\"this.\", this.instanceName + \".\");\n }\n /** adds instance id to child-id id */\n replaceChildId() {\n var parser = new DOMParser();\n var doc = parser.parseFromString(this.html, \"text/html\");\n var childElement = doc.querySelectorAll(`[child-id]`);\n for (let i = 0; i < childElement.length; i++) {\n const was = childElement[i].getAttribute(\"child-id\");\n // if the child-id attribute has RAPID it has already\n // been changed so we should not change it now\n // (this comes from when a component is inside another component\n // and has the child-id on it)\n if (!was.includes(\"RAPID\")) {\n childElement[i].setAttribute(\"child-id\", \"RAPIDself\" + was);\n }\n }\n this.html = doc.body.innerHTML;\n }\n /** Adds instance attriubte to the compnent first child */\n setInstance() {\n this.instanceName = generateRandomString(10);\n if (this.html != null) {\n var parser = new DOMParser();\n var doc = parser.parseFromString(this.html, \"text/html\");\n doc.body.firstElementChild.setAttribute(\"instance\", this.instanceName);\n this.html = doc.body.innerHTML;\n }\n }\n}\nwindow.isInsideCompontent = (element, attributeName, value) => {\n let currentElement = element;\n\n while (currentElement) {\n if (currentElement.getAttribute(attributeName) === value) {\n return true;\n }\n currentElement = currentElement.parentElement; // Move up to the parent element\n }\n\n return false; // No parent has the attribute\n};\n\nwindow.replaceComponentTagName = (tagName) => {\n let template = document.querySelector(`[rapid-name=\"${tagName}\"]`);\n // TODO add all templates which are dependences for this compontent\n replaceComponentTemplate(template);\n};\n\nwindow.replaceComponentTemplate = (template_element) => {\n let template = new Template();\n template.name = template_element.getAttribute(\"rapid-name\");\n template.script = template_element.content.querySelector(\"script\");\n\n if (template.script !== null) {\n template.html = template_element.innerHTML.replace(\n template.script.outerHTML,\n \"\",\n );\n template.createScript();\n } else {\n template.html = template_element.innerHTML;\n }\n\n let name = template.name;\n let components = [];\n let htmlcomponents = document.getElementsByTagName(name);\n // for each component that uses this template\n for (let i = 0; i < htmlcomponents.length; i++) {\n // If the compontent found has a parent with the attribute\n // rapid-compontent and its value is the compontent we try to compile\n // we will ignore it because it is part of the the compontent which is compiled\n if (!isInsideCompontent(htmlcomponents[i], \"rapid-component\", name)) {\n let component = new Comp();\n component.defintion = htmlcomponents[i];\n let d = document.createElement(\"div\");\n d.setAttribute(\"rapid-component\", name);\n d.innerHTML = template.html;\n component.html = d.outerHTML;\n component.template = d.innerHTML;\n component.className = template.getClassName();\n // parse attributes to a object\n component.props = Array.from(htmlcomponents[i].attributes).reduce(\n (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n },\n {},\n );\n component.setInstance();\n component.replaceChildId();\n component.replaceProps();\n component.replaceSelf();\n // component.replaceJs();\n\n if (component.className != null) {\n let js = `let ${component.instanceName} = new ${component.className}();`;\n js += `${component.instanceName}.self = '${component.instanceName}';`;\n js += `${component.instanceName}.props = ${JSON.stringify(component.props)};`;\n js += `${component.instanceName}.onComponentLoad();`;\n js += `${component.instanceName}.template = '${component.template.replaceAll(\"\\n\", \"\")}';`;\n js += `${component.instanceName}.className = '${component.className}';`;\n\n let script = document.createElement(\"script\");\n script.setAttribute(\"instance\", component.instanceName);\n script.textContent = js;\n document.body.appendChild(script);\n }\n //update dom with the new html\n htmlcomponents[i].outerHTML = replaceJs(component.html);\n components.push(component);\n // we goback to look for more components to compile\n i--;\n }\n }\n};\n\nwindow.replaceComponents = () => {\n // find all templates\n let htmltemplates = document.getElementsByTagName(\"template\");\n\n for (let i = htmltemplates.length - 1; i >= 0; i--) {\n replaceComponentTemplate(htmltemplates[i]);\n }\n};\n\n// simple chatgpt say\nfunction includeHTML() {\n const element = document.querySelector(\"[include-html]\");\n if (element === null) return null;\n const file = element.getAttribute(\"include-html\");\n if (file) {\n fetch(file)\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.text();\n })\n .then((html) => {\n element.outerHTML = html;\n replaceComponents();\n includeHTML();\n })\n .catch((error) => {\n element.innerHTML = \"Content not found.\";\n });\n }\n}\n\n/**\n * this function recompiles new components added to the dom\n * */\nwindow.rapidRefresh = () => {\n replaceComponents();\n};\n\nfunction main() {\n // try to include html\n includeHTML();\n // document = doc;\n //replace all componments\n replaceComponents();\n\n md.replaceMd();\n // creates a tailwind override class, to be applied to markdown defined elements.\n md.createNoTailwindClass();\n console.log(\"ehere\");\n}\n\nwindow.getInstanceById = (id) => {\n let el = document.getElementById(id);\n return getInstance(el);\n};\n\nwindow.getInstance = (element) => {\n if (element.getAttribute(\"instance\")) {\n let instanceName = element.getAttribute(\"instance\");\n if (instanceName === null) {\n instanceName = element.firstElementChild.getAttribute(\"instance\");\n if (instanceName === null) return null;\n }\n let instance = eval(`${instanceName}`);\n return instance;\n } else {\n return getInstance(element.parentElement);\n }\n};\nwindow.replaceJs = (html) => {\n // Regular expression to match {%...%} pattern\n const pattern = /\\{{\\s*.*?\\s*\\}}/g;\n\n const matches = html.match(pattern);\n if (matches != null) {\n for (let i = 0; i < matches.length; i++) {\n let js = matches[i].replaceAll(start_js, \"\");\n js = js.replaceAll(end_js, \"\");\n js = js.replaceAll(\">\", \">\");\n js = js.replaceAll(\"<\", \"<\");\n try {\n let js_value = eval(js);\n html = html.replaceAll(matches[i], js_value);\n } catch (exceprtion) {\n html = html.replaceAll(matches[i], \"undefined\");\n }\n }\n }\n return html;\n};\n\nwindow.onload = main();\n\nwindow.replaceMd = md.replaceMd;\n\nwindow.Comp = Comp;\n"], + "mappings": "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", + "names": ["generateRandomString", "length", "characters", "result", "i", "init_utils", "__esmMin", "Component", "init_Component", "__esmMin", "name", "child", "target", "source", "attr", "state", "key", "comp", "div", "doc", "s", "rerender_comp", "old", "newhtml", "i", "createNoTailwindClass", "style", "parseMd", "markdown", "replaceMd", "markdowns", "i", "elmnt", "to_convert", "converted", "init_md", "__esmMin", "include_md", "xhttp", "require_main2", "__commonJSMin", "exports", "module", "init_utils", "init_Component", "init_md", "Component", "start_prop", "end_prop", "start_js", "end_js", "Template", "script", "scriptContent", "classNameMatch", "Comp", "exception", "prop", "key", "value", "tempContainer", "element", "parser", "doc", "childElement", "i", "was", "generateRandomString", "attributeName", "currentElement", "tagName", "template", "template_element", "name", "components", "htmlcomponents", "component", "d", "acc", "attr", "js", "htmltemplates", "includeHTML", "file", "response", "html", "error", "main", "replaceMd", "createNoTailwindClass", "id", "el", "exceprtion"] } diff --git a/docs/RapidElements.js b/docs/RapidElements.js index db41912..b44c2a2 100644 --- a/docs/RapidElements.js +++ b/docs/RapidElements.js @@ -1,70 +1,4 @@ -(() => { - var __getOwnPropNames = Object.getOwnPropertyNames; - var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - }; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - - // src/utils.js - function generateRandomString(length) { - const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - let result = ""; - for (let i2 = 0; i2 < length; i2++) { - result += characters.charAt(Math.floor(Math.random() * characters.length)); - } - return result; - } - var init_utils = __esm({ - "src/utils.js"() { - } - }); - - // src/Component.js - var Component; - var init_Component = __esm({ - "src/Component.js"() { - Component = class { - constructor() { - this.self = "asd"; - this.props = {}; - } - /** - * This function will be called when the component is loaded on the page - * use this as a constructor. - * */ - onComponentLoad() { - } - /** - * This function returns the element with the child-id provided. - * REMEMEBER this function will not work before onComponentLoad is run - * */ - getChild(name) { - let res = document.querySelectorAll( - `[child-id="RAPID${this.self + name}"]` - ); - return res[0]; - } - /** - * This function retusns instance of the child component if there is one otherwise undefined. - * REMEMEBER this function will not work before onComponentLoad is run - * */ - getChildInstance(name) { - let child = document.querySelectorAll( - `[child-id="RAPID${this.self + name}"]` - )[0]; - if (child === void 0) return void 0; - return getInstance(child); - } - }; - } - }); - - // src/md.js - function createNoTailwindClass() { - const style = document.createElement("style"); - style.innerHTML = ` +(()=>{var h=(e,t)=>()=>(e&&(t=e(e=0)),t);var E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);function L(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",n="";for(let l=0;l{});var o,b=h(()=>{o=class{constructor(){this.self="asd",this.props={}}onComponentLoad(){}getChild(t){return document.querySelectorAll(`[child-id="RAPID${this.self+t}"]`)[0]}getChildInstance(t){let n=document.querySelectorAll(`[child-id="RAPID${this.self+t}"]`)[0];if(n!==void 0)return getInstance(n)}}});function T(){let e=document.createElement("style");e.innerHTML=` .no-tailwind h1, .no-tailwind h2, .no-tailwind h3, @@ -86,307 +20,13 @@ color: inherit; background-color: inherit; } - `; - document.head.appendChild(style); - } - function parseMd(markdown) { - markdown = markdown.replace(/^\s*######\s+(.*)$/gim, "
$1
"); - markdown = markdown.replace(/^\s*#####\s+(.*)$/gim, "
$1
"); - markdown = markdown.replace(/^\s*####\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/^\s*###\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/^\s*##\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/^\s*#\s+(.*)$/gim, "

$1

"); - markdown = markdown.replace(/\*\*(.*?)\*\*/gim, "$1"); - markdown = markdown.replace(/__(.*?)__/gim, "$1"); - markdown = markdown.replace(/\*(.*?)\*/gim, "$1"); - markdown = markdown.replace(/_(.*?)_/gim, "$1"); - markdown = markdown.replace(/\[(.*?)\]\((.*?)\)/gim, '$1'); - markdown = markdown.replace(/^\s*\* (.*)/gim, "
    \n
  • $1
  • \n
"); - markdown = markdown.replace(/^\s*\n\*\s+(.*)/gim, "
    \n
  • $1
  • \n
"); - markdown = markdown.replace( - /^\s*\d+\.\s+(.*)/gim, - "
    \n
  1. $1
  2. \n
" - ); - markdown = markdown.replace( - /^\s*\n\d+\.\s+(.*)/gim, - "
    \n
  1. $1
  2. \n
" - ); - markdown = markdown.replace( - /^\s*\>\s+(.*)/gim, - "
$1
" - ); - markdown = markdown.replace(/\n$/gim, "
"); - return markdown.trim(); - } - function replaceMd() { - console.log("replace md"); - console.log(document.body.innerHTML); - let markdowns = document.querySelectorAll("[markdown]"); - console.log(markdowns); - for (let i2 = 0; i2 < markdowns.length; i2++) { - let elmnt = markdowns[i2]; - let to_convert = elmnt.innerHTML; - elmnt.classList.add("no-tailwind"); - console.log(to_convert); - let converted = parseMd(to_convert); - elmnt.innerHTML = converted; - } - } - var init_md = __esm({ - "src/md.js"() { - document.addEventListener("DOMContentLoaded", function() { - const elements = document.querySelectorAll("[include-md]"); - elements.forEach(function(elmnt) { - const include_md = elmnt.getAttribute("include-md"); - if (include_md) { - const xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4) { - if (this.status == 200) { - elmnt.innerHTML = parseMd(this.responseText); - elmnt.classList.add("no-tailwind"); - } - if (this.status == 404) { - elmnt.innerHTML = "Page not found."; - } - } - }; - xhttp.open("GET", include_md, true); - xhttp.send(); - } - }); - }); - } - }); - - // src/main2.js - var require_main2 = __commonJS({ - "src/main2.js"(exports, module) { - init_utils(); - init_Component(); - init_md(); - window.Component = Component; - var start_prop = "{"; - var end_prop = "}"; - var start_js = "{%"; - var end_js = "%}"; - var Template = class { - constructor() { - this.className = ""; - this.name = ""; - this.script = null; - this.html = null; - } - /** Adds script to body */ - createScript() { - if (document.querySelector(`[rapid-script="${this.getClassName()}"]`) == null) { - let script = document.createElement("script"); - script.setAttribute("rapid-script", this.getClassName()); - script.textContent = this.script.innerHTML; - document.body.appendChild(script); - } - } - /** returns the classname from the script */ - getClassName(scriptContent) { - if (this.script == null) return null; - const classNameMatch = this.script.innerHTML.match(/class\s+([^\s{]+)/); - if (classNameMatch && classNameMatch.length > 1) { - return classNameMatch[1]; - } else { - return null; - } - } - }; - var Comp = class { - constructor() { - this.instanceName; - this.defintion; - this.props; - this.html; - } - replaceProps() { - try { - this.props.children = this.defintion.innerHTML; - } catch (exception) { - console.log(exception); - } - this.html = this.html.replaceAll( - `${start_prop}children${end_prop}`, - this.defintion.innerHTML - ); - for (let prop of Object.entries(this.props)) { - let key = prop[0]; - let value = prop[1]; - if (key === "child-id") { - var tempContainer = document.createElement("div"); - tempContainer.innerHTML = this.html; - var element2 = tempContainer.firstElementChild; - tempContainer.setAttribute("child-id", value); - this.html = tempContainer.outerHTML; - } else { - this.html = this.html.replaceAll( - `${start_prop}${key}${end_prop}`, - value - ); - } - } - } - /** rreplace all selfs with instance name */ - replaceSelf() { - this.html = this.html.replaceAll("self", this.instanceName); - } - /** adds instance id to child-id id */ - replaceChildId() { - var parser = new DOMParser(); - var doc = parser.parseFromString(this.html, "text/html"); - var childElement = doc.querySelectorAll(`[child-id]`); - for (let i2 = 0; i2 < childElement.length; i2++) { - const was = childElement[i2].getAttribute("child-id"); - if (!was.includes("RAPID")) { - childElement[i2].setAttribute("child-id", "RAPIDself" + was); - } - } - this.html = doc.body.innerHTML; - } - /** Adds instance attriubte to the compnent first child */ - setInstance() { - this.instanceName = generateRandomString(10); - if (this.html != null) { - var parser = new DOMParser(); - var doc = parser.parseFromString(this.html, "text/html"); - doc.body.firstElementChild.setAttribute("instance", this.instanceName); - this.html = doc.body.innerHTML; - } - } - }; - window.replaceComponents = () => { - let htmltemplates = document.getElementsByTagName("template"); - let templates = new Object(); - for (let i2 = htmltemplates.length - 1; i2 >= 0; i2--) { - let template = new Template(); - template.name = htmltemplates[i2].getAttribute("rapid-name"); - template.script = htmltemplates[i2].content.querySelector("script"); - if (template.script !== null) { - template.html = htmltemplates[i2].innerHTML.replace( - template.script.outerHTML, - "" - ); - template.createScript(); - } else { - template.html = htmltemplates[i2].innerHTML; - } - templates[template.name] = template; - } - console.log(templates); - let components = []; - for (let [name, template] of Object.entries(templates)) { - let htmlcomponents = document.getElementsByTagName(name); - console.log(htmlcomponents); - for (let i2 = 0; i2 < htmlcomponents.length; i2++) { - let component = new Comp(); - component.defintion = htmlcomponents[i2]; - let d = document.createElement("div"); - d.innerHTML = template.html; - component.html = d.outerHTML; - component.className = template.getClassName(); - component.props = Array.from(htmlcomponents[i2].attributes).reduce( - (acc, attr) => { - acc[attr.name] = attr.value; - return acc; - }, - {} - ); - component.setInstance(); - component.replaceChildId(); - component.replaceProps(); - component.replaceSelf(); - htmlcomponents[i2].outerHTML = component.html; - components.push(component); - i2--; - } - } - for (let i2 = components.length - 1; i2 >= 0; i2--) { - let component = components[i2]; - if (component.className != null) { - let js2 = `let ${component.instanceName} = new ${component.className}();`; - js2 += `${component.instanceName}.self = '${component.instanceName}';`; - js2 += `${component.instanceName}.props = ${JSON.stringify(component.props)};`; - js2 += `${component.instanceName}.onComponentLoad();`; - let script = document.createElement("script"); - script.textContent = js2; - document.body.appendChild(script); - } - } - replaceJs(); - }; - function includeHTML() { - const element2 = document.querySelector("[include-html]"); - if (element2 === null) return null; - const file = element2.getAttribute("include-html"); - if (file) { - fetch(file).then((response) => { - if (!response.ok) { - throw new Error("Network response was not ok"); - } - return response.text(); - }).then((html2) => { - element2.outerHTML = html2; - replaceComponents(); - includeHTML(); - }).catch((error) => { - element2.innerHTML = "Content not found."; - }); - } - } - window.rapidRefresh = () => { - replaceComponents(); - }; - async function main() { - includeHTML(); - replaceComponents(); - replaceMd(); - createNoTailwindClass(); - } - window.getInstanceById = (id) => { - let el = document.getElementById(id); - return getInstance(el); - }; - window.getInstance = (element) => { - console.log(element); - if (element.getAttribute("instance")) { - let instanceName = element.getAttribute("instance"); - if (instanceName === null) { - instanceName = element.firstElementChild.getAttribute("instance"); - if (instanceName === null) return null; - } - let instance = eval(`${instanceName}`); - return instance; - } else { - return getInstance(element.parentElement); - } - }; - window.replaceJs = () => { - const pattern = /\{%\s*.*?\s*\%}/g; - let html = document.documentElement.innerHTML; - const matches = html.match(pattern); - if (matches != null) { - for (let i = 0; i < matches.length; i++) { - let js = matches[i].replaceAll(start_js, ""); - js = js.replaceAll(end_js, ""); - js = js.replaceAll(">", ">"); - js = js.replaceAll("<", "<"); - try { - let js_value = eval(js); - html = html.replaceAll(matches[i], js_value); - } catch (exceprtion) { - html = html.replaceAll(matches[i], "undefined"); - } - } - document.documentElement.innerHTML = html; - } - }; - window.onload = main(); - } - }); - require_main2(); -})(); + `,document.head.appendChild(e)}function y(e){return e=e.replace(/^\s*######\s+(.*)$/gim,"
$1
"),e=e.replace(/^\s*#####\s+(.*)$/gim,"
$1
"),e=e.replace(/^\s*####\s+(.*)$/gim,"

$1

"),e=e.replace(/^\s*###\s+(.*)$/gim,"

$1

"),e=e.replace(/^\s*##\s+(.*)$/gim,"

$1

"),e=e.replace(/^\s*#\s+(.*)$/gim,"

$1

"),e=e.replace(/\*\*(.*?)\*\*/gim,"$1"),e=e.replace(/__(.*?)__/gim,"$1"),e=e.replace(/\*(.*?)\*/gim,"$1"),e=e.replace(/_(.*?)_/gim,"$1"),e=e.replace(/\[(.*?)\]\((.*?)\)/gim,'$1'),e=e.replace(/^\s*\* (.*)/gim,`
    +
  • $1
  • +
`),e=e.replace(/^\s*\n\*\s+(.*)/gim,`
    +
  • $1
  • +
`),e=e.replace(/^\s*\d+\.\s+(.*)/gim,`
    +
  1. $1
  2. +
`),e=e.replace(/^\s*\n\d+\.\s+(.*)/gim,`
    +
  1. $1
  2. +
`),e=e.replace(/^\s*\>\s+(.*)/gim,"
$1
"),e=e.replace(/\n$/gim,"
"),e.trim()}function m(){console.log("replace md"),console.log(document.body.innerHTML);let e=document.querySelectorAll("[markdown]");console.log(e);for(let t=0;t{document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("[include-md]").forEach(function(t){let n=t.getAttribute("include-md");if(n){let l=new XMLHttpRequest;l.onreadystatechange=function(){this.readyState==4&&(this.status==200&&(t.innerHTML=y(this.responseText),t.classList.add("no-tailwind")),this.status==404&&(t.innerHTML="Page not found."))},l.open("GET",n,!0),l.send()}})})});var _=E((u,f)=>{A();b();N();window.Component=o;var H="{",C="}",j="{{",w="}}",d=class{constructor(){this.className="",this.name="",this.script=null,this.html=null}createScript(){if(document.querySelector(`[rapid-script="${this.getClassName()}"]`)==null){let t=document.createElement("script");t.setAttribute("rapid-script",this.getClassName()),t.textContent=this.script.innerHTML,document.body.appendChild(t)}}getClassName(t){if(this.script==null)return null;let n=this.script.innerHTML.match(/class\s+([^\s{]+)/);return n&&n.length>1?n[1]:null}},p=class{constructor(){this.instanceName,this.defintion,this.props,this.html}replaceProps(){try{this.props.children=this.defintion.innerHTML}catch(l){console.log(l)}this.html=this.html.replaceAll(`${H}children${C}`,this.defintion.innerHTML);for(let l of Object.entries(this.props)){let s=l[0],r=l[1];if(s==="child-id"){var t=document.createElement("div");t.innerHTML=this.html;var n=t.firstElementChild;t.setAttribute("child-id",r),this.html=t.outerHTML}else this.html=this.html.replaceAll(`${H}${s}${C}`,r)}}replaceSelf(){this.html=this.html.replaceAll("self",this.instanceName)}replaceChildId(){var t=new DOMParser,n=t.parseFromString(this.html,"text/html"),l=n.querySelectorAll("[child-id]");for(let s=0;s{let e=document.getElementsByTagName("template"),t=new Object;for(let l=e.length-1;l>=0;l--){let s=new d;s.name=e[l].getAttribute("rapid-name"),s.script=e[l].content.querySelector("script"),s.script!==null?(s.html=e[l].innerHTML.replace(s.script.outerHTML,""),s.createScript()):s.html=e[l].innerHTML,t[s.name]=s}console.log(t);let n=[];for(let[l,s]of Object.entries(t)){let r=document.getElementsByTagName(l);console.log(r);for(let a=0;a($[M.name]=M.value,$),{}),c.setInstance(),c.replaceChildId(),c.replaceProps(),c.replaceSelf(),r[a].outerHTML=c.html,n.push(c),a--}}for(let l=n.length-1;l>=0;l--){let s=n[l];if(s.className!=null){let r=`let ${s.instanceName} = new ${s.className}();`;r+=`${s.instanceName}.self = '${s.instanceName}';`,r+=`${s.instanceName}.props = ${JSON.stringify(s.props)};`,r+=`${s.instanceName}.onComponentLoad();`;let a=document.createElement("script");a.textContent=r,document.body.appendChild(a)}}replaceJs()};function v(){let e=document.querySelector("[include-html]");if(e===null)return null;let t=e.getAttribute("include-html");t&&fetch(t).then(n=>{if(!n.ok)throw new Error("Network response was not ok");return n.text()}).then(n=>{e.outerHTML=n,replaceComponents(),v()}).catch(n=>{e.innerHTML="Content not found."})}window.rapidRefresh=()=>{replaceComponents()};async function I(){v(),replaceComponents(),m(),T()}window.getInstanceById=e=>{let t=document.getElementById(e);return getInstance(t)};window.getInstance=element=>{if(console.log(element),element.getAttribute("instance")){let instanceName=element.getAttribute("instance");if(instanceName===null&&(instanceName=element.firstElementChild.getAttribute("instance"),instanceName===null))return null;let instance=eval(`${instanceName}`);return instance}else return getInstance(element.parentElement)};window.replaceJs=()=>{let pattern=/\{{\s*.*?\s*\}}/g,html=document.documentElement.innerHTML,matches=html.match(pattern);if(matches!=null){for(let i=0;i"),js=js.replaceAll("<","<");try{let js_value=eval(js);html=html.replaceAll(matches[i],js_value)}catch(e){html=html.replaceAll(matches[i],"undefined")}}document.documentElement.innerHTML=html}};window.onload=I();window.replaceMd=m});_();})(); +//# sourceMappingURL=RapidElements.js.map diff --git a/docs/components/codeblock.html b/docs/components/codeblock.html index 0c7cf94..ebf12b2 100644 --- a/docs/components/codeblock.html +++ b/docs/components/codeblock.html @@ -1,3 +1,22 @@ + + + diff --git a/package-lock.json b/package-lock.json index 1662655..ae9e104 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,10 @@ "name": "rapidelements", "version": "1.0.0", "license": "ISC", + "dependencies": { + "jsx-to-string": "^1.4.0", + "nakedjsx": "^0.14.6" + }, "bin": { "rapidelements": "bin/RapidElements.js" }, @@ -424,6 +428,27 @@ "node": ">=18" } }, + "node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "license": "BSD-3-Clause OR MIT", + "engines": { + "node": ">=0.4.2" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -438,13 +463,36 @@ "node": ">= 8" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha512-qEdtR2UH78yyHX/AUNfXmJTlM48XoFZKBdwi1nzkI1mJL21cmbu0cvjxjpkXJ5NENMq42H+hNs8VLJcqXLerBQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, "license": "MIT" }, + "node_modules/base62": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.8.tgz", + "integrity": "sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA==", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -462,7 +510,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -507,11 +554,46 @@ "fsevents": "~2.3.2" } }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/commoner": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", + "integrity": "sha512-3/qHkNMM6o/KGXHITA14y78PcfmXh4+AOCJpSoF73h4VY1JpdGv3CHMS5+JW6SwLhfJt4RhNmLAa7+RRX/62EQ==", + "license": "MIT", + "dependencies": { + "commander": "^2.5.0", + "detective": "^4.3.1", + "glob": "^5.0.15", + "graceful-fs": "^4.1.2", + "iconv-lite": "^0.4.5", + "mkdirp": "^0.5.0", + "private": "^0.1.6", + "q": "^1.1.2", + "recast": "^0.11.17" + }, + "bin": { + "commonize": "bin/commonize" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "license": "MIT" }, "node_modules/debug": { @@ -532,6 +614,38 @@ } } }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detective": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", + "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", + "license": "MIT", + "dependencies": { + "acorn": "^5.2.1", + "defined": "^1.0.0" + } + }, + "node_modules/envify": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", + "integrity": "sha512-XLiBFsLtNF0MOZl+vWU59yPb3C2JtrQY2CNJn22KH75zPlHWY5ChcAQuf4knJeWT/lLkrx3sqvhP/J349bt4Bw==", + "license": "MIT", + "dependencies": { + "jstransform": "^11.0.3", + "through": "~2.3.4" + }, + "bin": { + "envify": "bin/envify" + } + }, "node_modules/esbuild": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", @@ -572,6 +686,44 @@ "@esbuild/win32-x64": "0.23.1" } }, + "node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima-fb": { + "version": "15001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", + "integrity": "sha512-59dDGQo2b3M/JfKIws0/z8dcXH2mnVHkfSPRhCYS91JNGfGNwr7GsSF6qzWZuOGvw5Ii0w9TtylrX07MGmlOoQ==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fbjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", + "integrity": "sha512-4KW7tT33ytfazK3Ekvesbsa4A5J79hUrdXONQGZ0wM6i3PFc70YknF9kj1eyx3mDupgJ7Z+ifFhcMJ+ps2eZIw==", + "license": "BSD-3-Clause", + "dependencies": { + "core-js": "^1.0.0", + "loose-envify": "^1.0.0", + "promise": "^7.0.3", + "ua-parser-js": "^0.7.9", + "whatwg-fetch": "^0.9.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -600,6 +752,23 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -613,6 +782,12 @@ "node": ">= 6" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -623,6 +798,18 @@ "node": ">=4" } }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -630,6 +817,29 @@ "dev": true, "license": "ISC" }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "license": "MIT" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -676,11 +886,64 @@ "node": ">=0.12.0" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-1.2.0.tgz", + "integrity": "sha512-/11Pj1OyX814QMKO7K8l85SHPTr/KsFxHp8GE2zVa0BtJgGimDjXHfM3FhC7keQdWDea7+nXf+f1de7ATZcZkQ==", + "license": "MIT" + }, + "node_modules/jstransform": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", + "integrity": "sha512-LGm87w0A8E92RrcXt94PnNHkFqHmgDy3mKHvNZOG7QepKCTCH/VB6S+IEN+bT4uLN3gVpOT0vvOOVd96osG71g==", + "license": "BSD-3-Clause", + "dependencies": { + "base62": "^1.1.0", + "commoner": "^0.10.1", + "esprima-fb": "^15001.1.0-dev-harmony-fb", + "object-assign": "^2.0.0", + "source-map": "^0.4.2" + }, + "bin": { + "jstransform": "bin/jstransform" + }, + "engines": { + "node": ">=0.8.8" + } + }, + "node_modules/jsx-to-string": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsx-to-string/-/jsx-to-string-1.4.0.tgz", + "integrity": "sha512-BmDM0gMngtBcjET7iEDuMxU+ZA4fTFWhMWAfbJeZP0X0VIaN7+At3wa64v48hzuE9rf77VAwlI/aMJrR+9LEZA==", + "license": "MIT", + "dependencies": { + "immutable": "^4.0.0-rc.9", + "json-stringify-pretty-compact": "^1.0.1", + "react": "^0.14.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -689,6 +952,27 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -696,146 +980,3059 @@ "dev": true, "license": "MIT" }, - "node_modules/nodemon": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", - "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/nakedjsx/-/nakedjsx-0.14.6.tgz", + "integrity": "sha512-ZFSgjudVNEErEC3EC1cig0o1iatgeLpGWkZk2Fx/FhSMjjXAPVBm9gE1Lk7KBuVAyAmfJlWc31UiKZwOOjqqNA==", + "hasShrinkwrap": true, + "license": "BSD-3-Clause", "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" + "@nakedjsx/core": "0.14.6", + "@nakedjsx/plugin-asset-image": "0.14.6", + "@nakedjsx/plugin-asset-prism": "0.14.6" }, "bin": { - "nodemon": "bin/nodemon.js" + "nakedjsx": "index.mjs" + } + }, + "node_modules/nakedjsx/node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/compat-data": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.0.tgz", + "integrity": "sha512-OgCMbbNCD/iA8cjMt+Zhp+nIC7XKaEaTG8zjvZPjGbhkppq1NIMWiZn7EaZRxUDHn4Ul265scRqg94N2WiFaGw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/core": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", + "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.22.0", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helpers": "^7.22.0", + "@babel/parser": "^7.22.0", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "url": "https://opencollective.com/babel" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx/node_modules/@babel/generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", + "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { - "node": ">=8.6" + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.0.tgz", + "integrity": "sha512-65sHfBfgwY7VAzJscbxFoNSdqWul2+dMfSPihzmTKRd3QEKdcGmWEy7qRaVzMYsH7oJ91UIGFIAzW3xg7ER13w==", + "dependencies": { + "@babel/types": "^7.22.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true, - "license": "MIT" + "node_modules/nakedjsx/node_modules/@babel/helper-compilation-targets": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz", + "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", + "dependencies": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx/node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", + "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", "dependencies": { - "picomatch": "^2.2.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "semver": "^6.3.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/nakedjsx/node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz", + "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", + "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", "dependencies": { - "semver": "^7.5.3" + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { - "node": ">=10" + "node": ">=6.9.0" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx/node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "has-flag": "^3.0.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", + "node_modules/nakedjsx/node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "is-number": "^7.0.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=8.0" + "node": ">=6.9.0" } }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "dev": true, - "license": "ISC", - "bin": { - "nodetouch": "bin/nodetouch.js" + "node_modules/nakedjsx/node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true, + "node_modules/nakedjsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-replace-supers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", + "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/helpers": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.0.tgz", + "integrity": "sha512-I/hZCYErxdjuUnJpJxHmCESB3AdcOAFjj+K6+of9JyWBeAhggR9NQoUHI481pRNH87cx77mbpx0cygzXlvGayA==", + "dependencies": { + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.0", + "@babel/types": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.0.tgz", + "integrity": "sha512-THA2q9FkS/RVTqWt0IXNns3zyHc8kzfiDEK9+vkIYGMlyaV6i6O3IpOg/oODSKqtRqu7gzwONjIJqwPlRQT41A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-transform-optional-chaining": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.0.tgz", + "integrity": "sha512-TFqy+gFAiTh8KlVS8/c6w97uhAVcCVyd2R0srMHVYymBcBK5N5P+bf8VG6tEAiYCZ3TLYvi6fpzU9Rq79t9oxw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.0.tgz", + "integrity": "sha512-SLpCXbF08XTYRJ/QM0hn4DdgSQB6aAtCaS+zfrjx374ectu4JbpwyQv3fF0kAtPdfQkeFdz86Dajj8A6oYRM9g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.0.tgz", + "integrity": "sha512-m04PcP0S4OR+NpRQNIOEPHVdGcXqbOEn+pIYzrqRTXMlOjKy6s7s30MZ1WzglHQhD/X/yhngun4yG0FqPszZzw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.0.tgz", + "integrity": "sha512-b6N2cduLeAmnZMHlLj0XB8108D4EHLtpv1fl7PudLjHf+yxFxnKvhuTn5vuQg61qzS+wxp5DBOcNo1W/GEsFWg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz", + "integrity": "sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.0.tgz", + "integrity": "sha512-NkqdpxXHZG1CbXuu31weYMjAOeZ785n4ip/yXYg/4oZxdCg1jH10iR7oPJbZeyF99HhnTxqFnis3FTlpnh5Ovw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.0.tgz", + "integrity": "sha512-6sSCmFYjv4czjub/ESDp46/TQGEM6oH0/t0Zd1gj8qb+j3XY/+s1M8h+2EtJ5JYNQ6ZBxpmazCDwhwQT950Aug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.0.tgz", + "integrity": "sha512-tSYLi4c8H5K1iSCLCjA4xaYgw+zQEl7WUP9YI2WpwXkmryDC7+Pu/uD43XQos7Sm326OIC6Yf+6LuWjBs8JJKQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.0.tgz", + "integrity": "sha512-hSo/4vBjCjwsol3nLDJG3QRDuNzvzofnyhKyCiSXpzqEVmkos9SODFC3xzDvvuE3AUjHUMgTpTRpJq16i62heA==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.0.tgz", + "integrity": "sha512-3bIivRwjbaMFYuP8OypIlTbZK0SxW3j9VpVQX/Yj2q0wG6GqOG30Vgmo5X7QW3TGi3rxrdYpKuwxqfb5aCnJkA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.0.tgz", + "integrity": "sha512-IZH0e2Fm8XmnZTXRzoRsHBBJ7wFzfeU22iiEZCi6EumrAjKOG6AdHpsxtBezG4SCQhqRS8DojQM8+bqtOBTQqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.0.tgz", + "integrity": "sha512-KU2Or7uQqYKcL6rVLh8jThUBAKy1H+mxPx4E1omUqdSL+hVM9NriMjGFnnv+9xSn3jUMV5FQHsLQxgGLr/MWTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.0.tgz", + "integrity": "sha512-dfbXAKlbPlDKXsY7fa/gRBWgI4n537TR4b5AnVCZ3RwQ1aVPxs52Xs3XHFxQMn3j4LmUhn8IL2nAYmNh6z2/Ew==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.0.tgz", + "integrity": "sha512-PHXQfxbe5EKp2+MuEdBFO4X1gsjvUZPjSDGvYz7PjWl8hZtYDCDxPrwZG+GwT/j6FnAmSz2bTZbQ5Jrh3fhRPg==", + "dependencies": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.0.tgz", + "integrity": "sha512-x8HEst6X74Aut0TxZI4s1UbUCtqR7IW764w/o/tTIDsm9OY9g+y9BeNhfZ+GrN0/TErN1dBoHNxqo1JXHdfxyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.0.tgz", + "integrity": "sha512-p5BZinFj92iSErcstoPK+e+MHJUEZ6Gmlu0EkP3DJ0Y/1XPNvlXxfAzuh8KkN+3wCsYRKLAxAsF6Sn8b/bfWaA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.0.tgz", + "integrity": "sha512-hlRM1lu7xeqW8EKKg9ByHwnCEIy0dNPd/fwffpwAck2H3C5mQCrWR9PdrjsywivsFuVAbyyAImU58vAR1cXrEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.0.tgz", + "integrity": "sha512-3ao+Yt2kGQEXC894aBRCPo+zzW6YbM/iba+znKsZgEmDkc8RU/ODBfRpWP11qerQ0/mDzqjLpIG7HhpiKx0/cg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.0.tgz", + "integrity": "sha512-P4bP+/4Rq6aQ/IZmAEUX+injSKhuOOMOZkXtB3x++P3k5BtyV8RkTvOtpqIv0mLpHge5ReGk0ijNBFRN0n2xEQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.0.tgz", + "integrity": "sha512-Li7gdm7eGZJidME4KlXmzQdnuUwE4jhPnICgGpWN56W7GWhmCQ2LmDepyZX4zBsoSNWP9bqDcJo5wQFndcAd9Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/types": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", + "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.0.tgz", + "integrity": "sha512-uQacKjQ46K+yDfrbEyhEGkqqf5Zbn9WTKWgHOioHrTnOSVGYZSITlNNe0cP4fTgt4ZtjvMp85s4Hj86XS3v3uQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.0.tgz", + "integrity": "sha512-w9ZRKNaJAk2vOhY6HTF7nmr+c5vJ//RCH7S0l4sWyts1x17W45oa6J3UYeZ/RXb74XHm1eFfLjqzY1Hg2mtyaw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.0", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/preset-env": { + "version": "7.22.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.2.tgz", + "integrity": "sha512-UPNK9pgphMULvA2EMKIWHU90C47PKyuvQ8pE1MzH7l9PgFcRabdrHhlePpBuWxYZQ+TziP2nycKoI5C1Yhdm9Q==", + "dependencies": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.0", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-attributes": "^7.22.0", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.0", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-class-properties": "^7.22.0", + "@babel/plugin-transform-class-static-block": "^7.22.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.21.5", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-dynamic-import": "^7.22.1", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-export-namespace-from": "^7.22.0", + "@babel/plugin-transform-for-of": "^7.21.5", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-json-strings": "^7.22.0", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.0", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.0", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.0", + "@babel/plugin-transform-new-target": "^7.22.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.0", + "@babel/plugin-transform-numeric-separator": "^7.22.0", + "@babel/plugin-transform-object-rest-spread": "^7.22.0", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-optional-catch-binding": "^7.22.0", + "@babel/plugin-transform-optional-chaining": "^7.22.0", + "@babel/plugin-transform-parameters": "^7.22.0", + "@babel/plugin-transform-private-methods": "^7.22.0", + "@babel/plugin-transform-private-property-in-object": "^7.22.0", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.21.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.0", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.22.0", + "babel-plugin-polyfill-corejs2": "^0.4.2", + "babel-plugin-polyfill-corejs3": "^0.8.1", + "babel-plugin-polyfill-regenerator": "^0.5.0", + "core-js-compat": "^3.30.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/preset-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", + "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/nakedjsx/node_modules/@babel/runtime": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.0.tgz", + "integrity": "sha512-TT6NB0oszYQ4oxLNUdG+FNHIc3MohXVCKA2BeyQ4WeM2VCSC6wBZ6P0Yfkdzxv+87D8Xk0LJyHeCKlWMvpZt0g==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nakedjsx/node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/nakedjsx/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/nakedjsx/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/nakedjsx/node_modules/@nakedjsx/core": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/@nakedjsx/core/-/core-0.14.6.tgz", + "integrity": "sha512-aWsctsq9qUhC9RgReiUYRQsdVrVW+6QPGFw7YfnpvLAVkujZ49SIZ0CmNliiu8Kx46/2mZN33N4oqucNnHaPSg==", + "dependencies": { + "@babel/core": "^7.20.12", + "@babel/generator": "^7.21.4", + "@babel/parser": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.20.13", + "@babel/preset-env": "^7.20.2", + "@babel/preset-typescript": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-inject": "^5.0.3", + "chokidar": "^3.5.3", + "css-tree": "^2.3.1", + "csso": "^5.0.5", + "postcss": "^8.4.21", + "postcss-nested": "^6.0.0", + "prettier": "3.2.5", + "rollup": "^3.10.1", + "terser": "^5.16.1" + }, + "bin": { + "nakedjsx": "build-system/cli-bin.mjs" + } + }, + "node_modules/nakedjsx/node_modules/@nakedjsx/plugin-asset-image": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/@nakedjsx/plugin-asset-image/-/plugin-asset-image-0.14.6.tgz", + "integrity": "sha512-nqhSvxs4JllqXCAapUka+SCqvsyun6vUjbR7MR6P5vg+u4cW561CgFJSFJ4fdFh0GNsHjP0YIPk6Y+Pm3SRJpQ==" + }, + "node_modules/nakedjsx/node_modules/@nakedjsx/plugin-asset-prism": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/@nakedjsx/plugin-asset-prism/-/plugin-asset-prism-0.14.6.tgz", + "integrity": "sha512-08eI6Fd8f9GkEodk0h6syBt7pv1TaIqB7TignPu0vX1NoGfmyCyNDBNjeJ59KPJ/1vvgO/7uBxnc3aZJsUzi/A==", + "dependencies": { + "prismjs": "1.29.0" + } + }, + "node_modules/nakedjsx/node_modules/@rollup/plugin-babel": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz", + "integrity": "sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/nakedjsx/node_modules/@rollup/plugin-inject": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", + "integrity": "sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/nakedjsx/node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/nakedjsx/node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + }, + "node_modules/nakedjsx/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/nakedjsx/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/nakedjsx/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", + "integrity": "sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.4.0", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", + "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.0", + "core-js-compat": "^3.30.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", + "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/nakedjsx/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/nakedjsx/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nakedjsx/node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/nakedjsx/node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/nakedjsx/node_modules/caniuse-lite": { + "version": "1.0.30001489", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz", + "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/nakedjsx/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/nakedjsx/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/nakedjsx/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/nakedjsx/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/nakedjsx/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/nakedjsx/node_modules/core-js-compat": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz", + "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/nakedjsx/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/nakedjsx/node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/nakedjsx/node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/nakedjsx/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nakedjsx/node_modules/electron-to-chromium": { + "version": "1.4.411", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.411.tgz", + "integrity": "sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==" + }, + "node_modules/nakedjsx/node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/nakedjsx/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nakedjsx/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/nakedjsx/node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nakedjsx/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nakedjsx/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nakedjsx/node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/nakedjsx/node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/nakedjsx/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/nakedjsx/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nakedjsx/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nakedjsx/node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/nakedjsx/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nakedjsx/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nakedjsx/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/nakedjsx/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/nakedjsx/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nakedjsx/node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/nakedjsx/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/nakedjsx/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nakedjsx/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/nakedjsx/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nakedjsx/node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nakedjsx/node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==" + }, + "node_modules/nakedjsx/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nakedjsx/node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/nakedjsx/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/nakedjsx/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/nakedjsx/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/nakedjsx/node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/nakedjsx/node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/nakedjsx/node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/nakedjsx/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/nakedjsx/node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/nakedjsx/node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/nakedjsx/node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/nakedjsx/node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/nakedjsx/node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/nakedjsx/node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/nakedjsx/node_modules/rollup": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.0.tgz", + "integrity": "sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/nakedjsx/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nakedjsx/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nakedjsx/node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/nakedjsx/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nakedjsx/node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nakedjsx/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/nakedjsx/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/nakedjsx/node_modules/terser": { + "version": "5.17.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.6.tgz", + "integrity": "sha512-V8QHcs8YuyLkLHsJO5ucyff1ykrLVsR4dNnS//L5Y3NiSXpbK1J+WMVUs67eI0KTxs9JtHhgEQpXQVHlHI92DQ==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nakedjsx/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/nakedjsx/node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nakedjsx/node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/nakedjsx/node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/nakedjsx/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/nodemon": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", + "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/react": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.10.tgz", + "integrity": "sha512-yxMw5aorZG4qsLVBfjae4wGFvd5708DhcxaXLJ3IOTgr1TCs8k9+ZheGgLGr5OfwWMhSahNbGvvoEDzrxVWouA==", + "license": "BSD-3-Clause", + "dependencies": { + "envify": "^3.0.0", + "fbjs": "^0.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha512-+nixG+3NugceyR8O1bLU45qs84JgI3+8EauyRZafLgC9XbdAOIVgwV1Pe2da0YzGo62KzWoZwUpVEQf6qNAXWA==", + "license": "MIT", + "dependencies": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==", + "license": "BSD-3-Clause", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", + "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, "license": "MIT" + }, + "node_modules/whatwg-fetch": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz", + "integrity": "sha512-DIuh7/cloHxHYwS/oRXGgkALYAntijL63nsgMQsNSnBj825AysosAqA2ZbYXGRqpPRiNH7335dTqV364euRpZw==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" } } } diff --git a/package.json b/package.json index d7fdfee..030a77f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "scripts": { "build": "esbuild src/main2.js --bundle --outfile=bin/RapidElements.js", - "build:prod": "esbuild src/main2.js --bundle --outfile=bin/RapidElements.js --minify --sourcemap", + "build:prod": "esbuild src/main2.js --loader:.js=jsx --bundle --outfile=bin/RapidElements.js --minify --sourcemap", "package": "tar -czvf package-$(npm pkg get version | tr -d '\"').tar.gz ./bin/RapidElements.js ./components", "watch": "nodemon --watch src --exec 'npm run build'" }, @@ -21,5 +21,9 @@ "devDependencies": { "esbuild": "^0.23.1", "nodemon": "^3.1.4" + }, + "dependencies": { + "jsx-to-string": "^1.4.0", + "nakedjsx": "^0.14.6" } } diff --git a/src/Component.js b/src/Component.js index c2169e2..072e4b4 100644 --- a/src/Component.js +++ b/src/Component.js @@ -5,6 +5,7 @@ export default class Component { constructor() { this.self = "asd"; this.props = {}; + this.className = "Component"; } /** @@ -34,4 +35,70 @@ export default class Component { return getInstance(child); } + copyAttributes(target, source) { + Array.from(source.attributes).forEach((attr) => { + target.setAttribute(attr.name, attr.value); + }); + } + + setState(state) { + for (let key in state) { + if (this.state[key] !== undefined) { + // Check if the value in obj1 is an array, replace it with the array's first element + this.state[key] = state[key]; + } + } + + this.rerender(); + } + + /** function to rerender this compotent + * it works by taking the template and change it + * then it creates elements of it and replace + * the props from the generated elements with the + * elements in dom. It will also change the inner html + * if it isnt a input because inputs will lose focus + * otherwise. + */ + rerender() { + // create a component to update the template + let comp = new Comp(); + comp.html = this.template; + comp.className = this.className; + comp.props = this.props; + comp.instanceName = this.self; + comp.replaceChildId(); + comp.replaceProps(); + comp.replaceSelf(); + + comp.html = replaceJs(comp.html); //replace the inline js + // get the compontent holder + let div = document.querySelectorAll(`[instance="${this.self}"]`)[0]; + // parse elements from the parsed html + var doc = new DOMParser().parseFromString(comp.html, "text/html"); + + let s = this; // use this as this in function under + // function for recursivly updateing the elements inside + function rerender_comp(old, newhtml) { + for (let i = 0; i < old.length; i++) { + // update attributes + s.copyAttributes(old[i], newhtml[i]); + + // We dont replace innerhtml if it is a input because then the focus will disspear + // TODO: better check if the input contains elements + if (!newhtml[i].innerHTML.includes("input")) { + old[i].innerHTML = newhtml[i].innerHTML; + } + + // if there is more children run this again + if (old[i].children.length > 0) { + rerender_comp(old[i].children, newhtml[i].children); + } + } + } + rerender_comp(div.children, doc.body.children); + + //compile new added components + rapidRefresh(); + } } diff --git a/src/main2.js b/src/main2.js index 919ab4d..893d2e2 100644 --- a/src/main2.js +++ b/src/main2.js @@ -49,6 +49,7 @@ class Comp { this.defintion; this.props; this.html; + this.template = ""; } replaceProps() { //replace the the {children} with the components innerhtml @@ -57,11 +58,15 @@ class Comp { } catch (exception) { console.log(exception); } - this.html = this.html.replaceAll( - `${start_prop}children${end_prop}`, - this.defintion.innerHTML, - ); + try { + this.html = this.html.replaceAll( + `${start_prop}children${end_prop}`, + this.defintion.innerHTML, + ); + } catch (exception) { + console.log(exception); + } // for each prop replace it with the value for (let prop of Object.entries(this.props)) { let key = prop[0]; @@ -128,97 +133,87 @@ window.isInsideCompontent = (element, attributeName, value) => { return false; // No parent has the attribute }; -window.replaceComponents = () => { - // find all templates - let htmltemplates = document.getElementsByTagName("template"); - // dict that holds the templates and thier name - let templates = new Object(); - // we loop though the templates down up so the templates - // down can use the templates above - for (let i = htmltemplates.length - 1; i >= 0; i--) { - let template = new Template(); - template.name = htmltemplates[i].getAttribute("rapid-name"); - template.script = htmltemplates[i].content.querySelector("script"); +window.replaceComponentTagName = (tagName) => { + let template = document.querySelector(`[rapid-name="${tagName}"]`); + // TODO add all templates which are dependences for this compontent + replaceComponentTemplate(template); +}; - // if the template does not have a script we dont want to remove it from the html - // or create a script - if (template.script !== null) { - template.html = htmltemplates[i].innerHTML.replace( - template.script.outerHTML, - "", - ); - template.createScript(); - } else { - template.html = htmltemplates[i].innerHTML; - } - //set the new template in dictonary - templates[template.name] = template; +window.replaceComponentTemplate = (template_element) => { + let template = new Template(); + template.name = template_element.getAttribute("rapid-name"); + template.script = template_element.content.querySelector("script"); + + if (template.script !== null) { + template.html = template_element.innerHTML.replace( + template.script.outerHTML, + "", + ); + template.createScript(); + } else { + template.html = template_element.innerHTML; } - console.log(templates); - // list that holds all components + let name = template.name; let components = []; - // for each template - for (let [name, template] of Object.entries(templates)) { - // find all components that uses template name - let htmlcomponents = document.getElementsByTagName(name); - console.log("comp", htmlcomponents); - // for each component that uses this template - for (let i = 0; i < htmlcomponents.length; i++) { - // If the compontent found has a parent with the attribute - // rapid-compontent and its value is the compontent we try to compile - // we will ignore it because it is part of the the compontent which is compiled - if (!isInsideCompontent(htmlcomponents[i], "rapid-component", name)) { - let component = new Comp(); - component.defintion = htmlcomponents[i]; - - let d = document.createElement("div"); - d.innerHTML = template.html; - // set the name of the compiled compontent (used in the if-statement above) - d.setAttribute("rapid-component", name); - component.html = d.outerHTML; - component.className = template.getClassName(); - - // parse attributes to a object - component.props = Array.from(htmlcomponents[i].attributes).reduce( - (acc, attr) => { - acc[attr.name] = attr.value; - return acc; - }, - {}, - ); - component.setInstance(); - component.replaceChildId(); + let htmlcomponents = document.getElementsByTagName(name); + // for each component that uses this template + for (let i = 0; i < htmlcomponents.length; i++) { + // If the compontent found has a parent with the attribute + // rapid-compontent and its value is the compontent we try to compile + // we will ignore it because it is part of the the compontent which is compiled + if (!isInsideCompontent(htmlcomponents[i], "rapid-component", name)) { + let component = new Comp(); + component.defintion = htmlcomponents[i]; + let d = document.createElement("div"); + d.setAttribute("rapid-component", name); + d.innerHTML = template.html; + component.html = d.outerHTML; + component.template = d.innerHTML; + component.className = template.getClassName(); + // parse attributes to a object + component.props = Array.from(htmlcomponents[i].attributes).reduce( + (acc, attr) => { + acc[attr.name] = attr.value; + return acc; + }, + {}, + ); + component.setInstance(); + component.replaceChildId(); + component.replaceProps(); + component.replaceSelf(); + // component.replaceJs(); - component.replaceProps(); - component.replaceSelf(); - // component.replaceJs(); + if (component.className != null) { + let js = `let ${component.instanceName} = new ${component.className}();`; + js += `${component.instanceName}.self = '${component.instanceName}';`; + js += `${component.instanceName}.props = ${JSON.stringify(component.props)};`; + js += `${component.instanceName}.onComponentLoad();`; + js += `${component.instanceName}.template = '${component.template.replaceAll("\n", "")}';`; + js += `${component.instanceName}.className = '${component.className}';`; - //update dom with the new html - htmlcomponents[i].outerHTML = component.html; - components.push(component); - // we goback to look for more components to compile - i--; + let script = document.createElement("script"); + script.setAttribute("instance", component.instanceName); + script.textContent = js; + document.body.appendChild(script); } + //update dom with the new html + htmlcomponents[i].outerHTML = replaceJs(component.html); + components.push(component); + // we goback to look for more components to compile + i--; } } +}; - // Instantiate the components instancess - for (let i = components.length - 1; i >= 0; i--) { - // for (let i = 0; i < components.length; i++) { - let component = components[i]; - if (component.className != null) { - let js = `let ${component.instanceName} = new ${component.className}();`; - js += `${component.instanceName}.self = '${component.instanceName}';`; - js += `${component.instanceName}.props = ${JSON.stringify(component.props)};`; - js += `${component.instanceName}.onComponentLoad();`; +window.replaceComponents = () => { + // find all templates + let htmltemplates = document.getElementsByTagName("template"); - let script = document.createElement("script"); - script.textContent = js; - document.body.appendChild(script); - } + for (let i = htmltemplates.length - 1; i >= 0; i--) { + replaceComponentTemplate(htmltemplates[i]); } - replaceJs(); }; // simple chatgpt say @@ -244,6 +239,7 @@ function includeHTML() { }); } } + /** * this function recompiles new components added to the dom * */ @@ -251,17 +247,17 @@ window.rapidRefresh = () => { replaceComponents(); }; -async function main() { +function main() { // try to include html includeHTML(); // document = doc; - //replace all componments replaceComponents(); md.replaceMd(); // creates a tailwind override class, to be applied to markdown defined elements. md.createNoTailwindClass(); + console.log("ehere"); } window.getInstanceById = (id) => { @@ -270,7 +266,6 @@ window.getInstanceById = (id) => { }; window.getInstance = (element) => { - console.log(element); if (element.getAttribute("instance")) { let instanceName = element.getAttribute("instance"); if (instanceName === null) { @@ -283,12 +278,10 @@ window.getInstance = (element) => { return getInstance(element.parentElement); } }; -window.replaceJs = () => { +window.replaceJs = (html) => { // Regular expression to match {%...%} pattern const pattern = /\{{\s*.*?\s*\}}/g; - let html = document.documentElement.innerHTML; - const matches = html.match(pattern); if (matches != null) { for (let i = 0; i < matches.length; i++) { @@ -303,10 +296,12 @@ window.replaceJs = () => { html = html.replaceAll(matches[i], "undefined"); } } - document.documentElement.innerHTML = html; } + return html; }; window.onload = main(); window.replaceMd = md.replaceMd; + +window.Comp = Comp; diff --git a/test/index.html b/test/index.html index ae9dde8..b3c2245 100644 --- a/test/index.html +++ b/test/index.html @@ -1,4 +1,4 @@ - + @@ -6,24 +6,67 @@ Testing - + -