@keload/node-red-dxp 1.3.2 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,52 +1,54 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';var le=require('process'),commander=require('commander'),consola=require('consola'),M=require('fs'),cosmiconfig=require('cosmiconfig'),glob=require('glob'),radash=require('radash'),q=require('path'),H=require('esbuild'),htmlMinifierTerser=require('html-minifier-terser'),F=require('fs/promises'),ve=require('@fullhuman/postcss-purgecss'),Oe=require('autoprefixer'),ke=require('cssnano'),U=require('postcss'),K=require('sass'),Ee=require('tailwindcss'),Ge=require('prettyjson'),Ve=require('browser-sync'),Ue=require('chokidar'),ne=require('nodemon');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var le__namespace=/*#__PURE__*/_interopNamespace(le);var M__default=/*#__PURE__*/_interopDefault(M);var q__default=/*#__PURE__*/_interopDefault(q);var H__default=/*#__PURE__*/_interopDefault(H);var F__default=/*#__PURE__*/_interopDefault(F);var ve__default=/*#__PURE__*/_interopDefault(ve);var Oe__default=/*#__PURE__*/_interopDefault(Oe);var ke__default=/*#__PURE__*/_interopDefault(ke);var U__default=/*#__PURE__*/_interopDefault(U);var K__namespace=/*#__PURE__*/_interopNamespace(K);var Ee__default=/*#__PURE__*/_interopDefault(Ee);var Ge__default=/*#__PURE__*/_interopDefault(Ge);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var ne__default=/*#__PURE__*/_interopDefault(ne);var me=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var O={name:"@keload/node-red-dxp",version:"1.3.1",description:"",type:"module",scripts:{build:"tsup",watch:"tsup --watch",format:"pnpm biome format",lint:"pnpm biome lint","lint:check":"pnpm biome check",release:"pnpm release-it","release:test":"pnpm release-it --dry-run","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},publishConfig:{access:"public"},bin:{"node-red-dxp":"./dist/cli/index.cjs"},exports:{".":{import:"./dist/index.js",require:"./dist/index.cjs"},"./builder":{import:"./dist/builder/index.js",require:"./dist/builder/index.cjs"},"./editor":{import:"./dist/editor/index.js",require:"./dist/editor/index.cjs"},"./package.json":"./package.json"},keywords:[],author:"Cl\xE9ment BERARD <contact@berard.dev>",license:"MIT",repository:{type:"git",url:"https://github.com/clement-berard/node-red-dxp.git"},bugs:{url:"https://github.com/clement-berard/node-red-dxp/issues"},homepage:"https://github.com/clement-berard/node-red-dxp",devDependencies:{"@biomejs/biome":"1.9.4","@release-it/conventional-changelog":"9.0.3","release-it":"17.10.0",tsup:"8.3.5",tsx:"4.19.2",typescript:"5.6.3",vitepress:"1.5.0"},dependencies:{"@fullhuman/postcss-purgecss":"^6.0.0","@types/html-minifier-terser":"7.0.2","@types/jquery":"3.5.32","@types/jqueryui":"1.12.23","@types/node-red":"1.3.5","@types/prettyjson":"0.0.33",autoprefixer:"^10.4.20","browser-sync":"3.0.3",chokidar:"4.0.1",commander:"12.1.0",consola:"3.2.3",cosmiconfig:"9.0.0",cssnano:"^7.0.6",esbuild:"0.24.0",glob:"11.0.0",handlebars:"4.7.8","html-minifier-terser":"7.2.0","merge-anything":"6.0.2",nodemon:"3.1.7",postcss:"^8.4.49",prettyjson:"1.2.5",radash:"12.1.0",sass:"1.81.0","solid-js":"1.9.3",tailwindcss:"^3.4.15"},files:["dist"]};function w(e){return Object.prototype.toString.call(e).slice(8,-1)}function h(e){if(w(e)!=="Object")return !1;let t=Object.getPrototypeOf(e);return !!t&&t.constructor===Object&&t===Object.prototype}function S(e){return w(e)==="Symbol"}function k(e,t,r,o){let n={}.propertyIsEnumerable.call(o,t)?"enumerable":"nonenumerable";n==="enumerable"&&(e[t]=r),n==="nonenumerable"&&Object.defineProperty(e,t,{value:r,enumerable:!1,writable:!0,configurable:!0});}function A(e,t,r){if(!h(t))return t;let o={};if(h(e)){let d=Object.getOwnPropertyNames(e),p=Object.getOwnPropertySymbols(e);o=[...d,...p].reduce((c,l)=>{let C=e[l];return (!S(l)&&!Object.getOwnPropertyNames(t).includes(l)||S(l)&&!Object.getOwnPropertySymbols(t).includes(l))&&k(c,l,C,e),c},{});}let n=Object.getOwnPropertyNames(t),s=Object.getOwnPropertySymbols(t);return [...n,...s].reduce((d,p)=>{let c=t[p],l=h(e)?e[p]:void 0;l!==void 0&&h(c)&&(c=A(l,c));let C=c;return k(d,p,C,t),d},o)}function E(e,...t){return t.reduce((r,o)=>A(r,o),e)}var R={libCacheDir:".node-red-dx",srcDir:"src",nodesDirName:"nodes",nodes:{controllerName:"index",editor:{dirName:"editor",htmlName:"index",tsName:"index"}},builder:{outputDir:"dist"},watcher:{nodeRed:{enabled:!0,path:"~/.node-red",url:"http://localhost:1880"}}};var he="node-red-dx",ye=e=>e.replace("@","").replace("/","-");function xe(){let e=cosmiconfig.cosmiconfigSync(he);try{let t=e.search();return E(R,t?t.config:{})}catch(t){throw console.error("Error while loading configuration",t),t}}var f=xe(),u=process.cwd(),L=JSON.parse(M.readFileSync(`${u}/package.json`,"utf-8")),j=`${u}/${f.srcDir}`,be=`${u}/resources`,$=`${j}/${f.nodesDirName}`,P=`${u}/${f.libCacheDir}`;function Ne(){return glob.globSync(`${$}/*`,{withFileTypes:!0}).map(t=>{let r=t.fullpath(),o=`${r}/${f.nodes.editor.dirName}`,n=r.replace(u,"").slice(1),s=`${n}/${f.nodes.editor.dirName}`,m=glob.globSync(`${o}/**/*.scss`),d=glob.globSync(`${r}/doc.mdx`),p=glob.globSync(`${r}/doc.md`),c=radash.dash(t.name);return {fullEditorPath:o,fullPath:r,name:t.name,pascalName:radash.pascal(t.name),dashName:c,relativeEditorPath:s,relativePath:n,nodeIdentifier:`${i.packageNameSlug}-${c}`,fullControllerPath:`${r}/${f.nodes.controllerName}.ts`,editor:{tsPath:`${o}/${f.nodes.editor.tsName}.ts`,htmlPath:`${o}/${f.nodes.editor.htmlName}.html`,scssFiles:m},doc:{mdxFiles:d,mdFiles:p}}})}function I(){return {currentDir:u,pathSrcDir:j,pathSrcNodesDir:$,additionalResourcesDir:be,pathDist:`${u}/${f.builder.outputDir}`,cacheDirFiles:{controllerIndex:`${P}/controller-index.ts`,editorIndex:`${P}/editor-index.ts`},pathLibCacheDir:P,packageName:L.name,packageNameSlug:ye(L.name),config:f,getResolvedSrcPathsScss:()=>glob.globSync(`${j}/**/*.scss`,{ignore:`${$}/**/*.scss`}),getResolvedNodesPaths:()=>glob.globSync(`${$}/*`),getListNodesFull:()=>Ne()}}var i=I();async function W(e=!1){return H__default.default.build({entryPoints:[i.cacheDirFiles.controllerIndex],outfile:`${i.pathDist}/index.js`,bundle:!0,minify:e,minifyWhitespace:e,minifyIdentifiers:e,minifySyntax:e,platform:"node",format:"cjs",target:"es2018",loader:{".ts":"ts"},packages:"external"})}async function T(e=!1){let t=await H__default.default.build({entryPoints:[i.cacheDirFiles.editorIndex],bundle:!0,platform:"browser",format:"iife",target:"es6",sourcemap:!1,minify:e,minifyWhitespace:e,minifySyntax:e,minifyIdentifiers:e,legalComments:"none",inject:[q__default.default.resolve(__dirname,"..","./editor/global-solid.ts")],write:!1,loader:{".ts":"ts"}});return t.outputFiles&&t.outputFiles.length>0?t.outputFiles[0].text:""}function B(){let e=i.getListNodesFull(),t=[];for(let r of e)if(r.doc.mdFiles[0]){let n=M__default.default.readFileSync(r.doc.mdFiles[0],"utf-8"),s=`
3
- <script type="text/markdown" data-help-name="${r.name}">
4
- ${n}
5
- </script>
6
- `;t.push(s);}return t.length?t.join(`
7
- `):""}function G(e){return e.trim().replace(/\n\s+/g,"")}async function J(e){for(let t of e)try{let r=q__default.default.resolve(t),o=await F__default.default.stat(r).catch(()=>null);o!=null&&o.isDirectory()?(await F__default.default.rm(r,{recursive:!0,force:!0}),console.log(`Successfully cleaned: ${r}`)):console.log(`Path does not exist or is not a directory: ${r}`);}catch(r){console.error(`Error cleaning path (${t}): ${r}`);}}function _(e){let t=q__default.default.resolve(e);M__default.default.existsSync(t)||M__default.default.mkdirSync(t,{recursive:!0});}async function b(e,t){try{await F__default.default.writeFile(e,t);}catch(r){console.error("Error writing controller index:",r);}}async function Pe(e){return htmlMinifierTerser.minify(e,{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!1,useShortDoctype:!0,removeEmptyAttributes:!1,minifyCSS:!1,minifyJS:!1})}function je(e,t){return `
8
- <script type="text/html" data-template-name="${e}">
9
- ${t}
10
- </script>
11
- `}async function Ie(e,t,r=!1){let o=M.readFileSync(e.editor.htmlPath,"utf8"),n=`
12
- <div class="${t}">
13
- <div class="${e.nodeIdentifier}">${o}</div>
14
- </div>
15
- `,s=r?await Pe(n):n,m=je(e.name,s);return {nodeName:e.name,nodeIdentifier:e.nodeIdentifier,html:s,wrappedHtml:m}}async function V(e){let{nodes:t,minify:r=!1}=e,o=await Promise.all(t.map(s=>Ie(s,e.packageNameSlug,r)));return {html:o.map(s=>s.html).join("").trim(),allWrappedHtml:o.map(s=>r?G(s.wrappedHtml):s.wrappedHtml).join("").trim()}}async function Re(e,t){return (await U__default.default([ve__default.default({content:[{raw:t,extension:"html"}]}),Oe__default.default,ke__default.default({preset:"default"})]).process(e,{from:void 0})).css}function Le(e){return K__namespace.compile(e,{style:"expanded"}).css}function z(e){let t={};for(let r=0;r<e.length;r++){let o=e[r];t[o]=Le(o);}return t}function He(e){return e.some(r=>r.editor.scssFiles.length)?e.filter(r=>r.editor.scssFiles.length).map(r=>{let o=z(r.editor.scssFiles),n=Object.values(o).join("");return {name:r.name,mergedCompiledStyles:n,scssFinal:`
16
- #${r.nodeIdentifier}{
17
- ${n}
18
- }`}}):[]}async function We(e,t={}){let o={...{content:[{raw:e}],theme:{}},...t},n=glob.globSync(`${q__default.default.resolve(__dirname,"..")}/${i.config.nodes.editor.dirName}/assets/tailwind.scss`)[0],s=n.length?M__default.default.readFileSync(n,"utf8"):"";return (await U__default.default([Ee__default.default(o),me("autoprefixer")]).process(s,{from:void 0})).css}function Te(){let e=i.getResolvedSrcPathsScss(),t=z([...e]);return Object.values(t).join("")}async function Q(e){let{rawHtml:t,minify:r=!1,nodes:o}=e||{},n=Te(),s=He(o),m=await We(t),d=l=>`.${i.packageNameSlug}{${l}}`,p=s.map(l=>l.scssFinal).join(`
19
- `),c=d(`${m}${n}${p}`);return r?Re(c,t):c}async function X(e){let{minify:t=!1}=e||{},r=await V({minify:t,nodes:e.nodes,packageNameSlug:i.packageNameSlug}),o=await T(t),n=await Q({rawHtml:r.html,minify:t,nodes:e.nodes}),s=B(),m=`<script type="application/javascript">${o.trim()}</script>`,d=`<style>${n}</style>`;return `
20
- ${r.allWrappedHtml}
21
- ${d}
22
- ${m}
23
- ${s}`.trim()}var Y=`
24
- // generated by @keload/node-red-dev-xp
25
- // do not modify this file
26
- // do not commit this file
27
- `;async function Z(e){return `
28
- ${Y}
2
+ 'use strict';var perf_hooks=require('perf_hooks'),C=require('process'),commander=require('commander'),kt=require('os'),Oe=require('tty'),at=require('fs'),Ft=require('path'),cosmiconfig=require('cosmiconfig'),glob=require('glob'),radash=require('radash'),be=require('fs/promises'),Su=require('esbuild'),htmlMinifierTerser=require('html-minifier-terser'),Lu=require('@fullhuman/postcss-purgecss'),Gu=require('autoprefixer'),Wu=require('cssnano'),pt=require('postcss'),Ct=require('sass'),Uu=require('tailwindcss'),consola=require('consola'),er=require('prettyjson'),Dr=require('handlebars'),ar=require('browser-sync'),Fr=require('chokidar'),yt=require('nodemon');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var C__namespace=/*#__PURE__*/_interopNamespace(C);var kt__default=/*#__PURE__*/_interopDefault(kt);var Oe__default=/*#__PURE__*/_interopDefault(Oe);var at__default=/*#__PURE__*/_interopDefault(at);var Ft__default=/*#__PURE__*/_interopDefault(Ft);var be__default=/*#__PURE__*/_interopDefault(be);var Su__default=/*#__PURE__*/_interopDefault(Su);var Lu__default=/*#__PURE__*/_interopDefault(Lu);var Gu__default=/*#__PURE__*/_interopDefault(Gu);var Wu__default=/*#__PURE__*/_interopDefault(Wu);var pt__default=/*#__PURE__*/_interopDefault(pt);var Ct__namespace=/*#__PURE__*/_interopNamespace(Ct);var Uu__default=/*#__PURE__*/_interopDefault(Uu);var er__default=/*#__PURE__*/_interopDefault(er);var Dr__default=/*#__PURE__*/_interopDefault(Dr);var ar__default=/*#__PURE__*/_interopDefault(ar);var Fr__default=/*#__PURE__*/_interopDefault(Fr);var yt__default=/*#__PURE__*/_interopDefault(yt);var vt=Object.create;var we=Object.defineProperty;var Nt=Object.getOwnPropertyDescriptor;var St=Object.getOwnPropertyNames;var Tt=Object.getPrototypeOf,Pt=Object.prototype.hasOwnProperty;var Ot=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,u)=>(typeof require<"u"?require:t)[u]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ve=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var It=(e,t,u,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let D of St(t))!Pt.call(e,D)&&D!==u&&we(e,D,{get:()=>t[D],enumerable:!(r=Nt(t,D))||r.enumerable});return e};var Ne=(e,t,u)=>(u=e!=null?vt(Tt(e)):{},It(we(u,"default",{value:e,enumerable:!0}),e));var qe=ve((Hr,ou)=>{ou.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}};});var me=ve((Ur,Ke)=>{var U=Object.assign({},qe()),Je=Object.keys(U);Object.defineProperty(U,"random",{get(){let e=Math.floor(Math.random()*Je.length),t=Je[e];return U[t]}});Ke.exports=U;});var Se=(e=0)=>t=>`\x1B[${t+e}m`,Te=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Pe=(e=0)=>(t,u,r)=>`\x1B[${38+e};2;${t};${u};${r}m`,a={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(a.modifier);var $t=Object.keys(a.color),Rt=Object.keys(a.bgColor);[...$t,...Rt];function jt(){let e=new Map;for(let[t,u]of Object.entries(a)){for(let[r,D]of Object.entries(u))a[r]={open:`\x1B[${D[0]}m`,close:`\x1B[${D[1]}m`},u[r]=a[r],e.set(D[0],D[1]);Object.defineProperty(a,t,{value:u,enumerable:!1});}return Object.defineProperty(a,"codes",{value:e,enumerable:!1}),a.color.close="\x1B[39m",a.bgColor.close="\x1B[49m",a.color.ansi=Se(),a.color.ansi256=Te(),a.color.ansi16m=Pe(),a.bgColor.ansi=Se(10),a.bgColor.ansi256=Te(10),a.bgColor.ansi16m=Pe(10),Object.defineProperties(a,{rgbToAnsi256:{value(t,u,r){return t===u&&u===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(u/255*5)+Math.round(r/255*5)},enumerable:!1},hexToRgb:{value(t){let u=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!u)return [0,0,0];let[r]=u;r.length===3&&(r=[...r].map(i=>i+i).join(""));let D=Number.parseInt(r,16);return [D>>16&255,D>>8&255,D&255]},enumerable:!1},hexToAnsi256:{value:t=>a.rgbToAnsi256(...a.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let u,r,D;if(t>=232)u=((t-232)*10+8)/255,r=u,D=u;else {t-=16;let n=t%36;u=Math.floor(t/36)/5,r=Math.floor(n/6)/5,D=n%6/5;}let i=Math.max(u,r,D)*2;if(i===0)return 30;let s=30+(Math.round(D)<<2|Math.round(r)<<1|Math.round(u));return i===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,u,r)=>a.ansi256ToAnsi(a.rgbToAnsi256(t,u,r)),enumerable:!1},hexToAnsi:{value:t=>a.ansi256ToAnsi(a.hexToAnsi256(t)),enumerable:!1}}),a}var Mt=jt(),d=Mt;function f(e,t=globalThis.Deno?globalThis.Deno.args:C__namespace.default.argv){let u=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(u+e),D=t.indexOf("--");return r!==-1&&(D===-1||r<D)}var{env:F}=C__namespace.default,j;f("no-color")||f("no-colors")||f("color=false")||f("color=never")?j=0:(f("color")||f("colors")||f("color=true")||f("color=always"))&&(j=1);function Lt(){if("FORCE_COLOR"in F)return F.FORCE_COLOR==="true"?1:F.FORCE_COLOR==="false"?0:F.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(F.FORCE_COLOR,10),3)}function Gt(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Wt(e,{streamIsTTY:t,sniffFlags:u=!0}={}){let r=Lt();r!==void 0&&(j=r);let D=u?j:r;if(D===0)return 0;if(u){if(f("color=16m")||f("color=full")||f("color=truecolor"))return 3;if(f("color=256"))return 2}if("TF_BUILD"in F&&"AGENT_NAME"in F)return 1;if(e&&!t&&D===void 0)return 0;let i=D||0;if(F.TERM==="dumb")return i;if(C__namespace.default.platform==="win32"){let s=kt__default.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in F)return "GITHUB_ACTIONS"in F||"GITEA_ACTIONS"in F?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in F)||F.CI_NAME==="codeship"?1:i;if("TEAMCITY_VERSION"in F)return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(F.TEAMCITY_VERSION)?1:0;if(F.COLORTERM==="truecolor"||F.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in F){let s=Number.parseInt((F.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(F.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return /-256(color)?$/i.test(F.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(F.TERM)||"COLORTERM"in F?1:i}function Ie(e,t={}){let u=Wt(e,{streamIsTTY:e&&e.isTTY,...t});return Gt(u)}var Ht={stdout:Ie({isTTY:Oe__default.default.isatty(1)}),stderr:Ie({isTTY:Oe__default.default.isatty(2)})},$e=Ht;function Re(e,t,u){let r=e.indexOf(t);if(r===-1)return e;let D=t.length,i=0,s="";do s+=e.slice(i,r)+t+u,i=r+D,r=e.indexOf(t,i);while(r!==-1);return s+=e.slice(i),s}function je(e,t,u,r){let D=0,i="";do{let s=e[r-1]==="\r";i+=e.slice(D,s?r-1:r)+t+(s?`\r
3
+ `:`
4
+ `)+u,D=r+1,r=e.indexOf(`
5
+ `,D);}while(r!==-1);return i+=e.slice(D),i}var{stdout:Me,stderr:ke}=$e,ue=Symbol("GENERATOR"),x=Symbol("STYLER"),T=Symbol("IS_EMPTY"),Le=["ansi","ansi","ansi256","ansi16m"],b=Object.create(null),Ut=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let u=Me?Me.level:0;e.level=t.level===void 0?u:t.level;};var Yt=e=>{let t=(...u)=>u.join(" ");return Ut(t,e),Object.setPrototypeOf(t,P.prototype),t};function P(e){return Yt(e)}Object.setPrototypeOf(P.prototype,Function.prototype);for(let[e,t]of Object.entries(d))b[e]={get(){let u=M(this,De(t.open,t.close,this[x]),this[T]);return Object.defineProperty(this,e,{value:u}),u}};b.visible={get(){let e=M(this,this[x],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var re=(e,t,u,...r)=>e==="rgb"?t==="ansi16m"?d[u].ansi16m(...r):t==="ansi256"?d[u].ansi256(d.rgbToAnsi256(...r)):d[u].ansi(d.rgbToAnsi(...r)):e==="hex"?re("rgb",t,u,...d.hexToRgb(...r)):d[u][e](...r),Vt=["rgb","hex","ansi256"];for(let e of Vt){b[e]={get(){let{level:u}=this;return function(...r){let D=De(re(e,Le[u],"color",...r),d.color.close,this[x]);return M(this,D,this[T])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);b[t]={get(){let{level:u}=this;return function(...r){let D=De(re(e,Le[u],"bgColor",...r),d.bgColor.close,this[x]);return M(this,D,this[T])}}};}var qt=Object.defineProperties(()=>{},{...b,level:{enumerable:!0,get(){return this[ue].level},set(e){this[ue].level=e;}}}),De=(e,t,u)=>{let r,D;return u===void 0?(r=e,D=t):(r=u.openAll+e,D=t+u.closeAll),{open:e,close:t,openAll:r,closeAll:D,parent:u}},M=(e,t,u)=>{let r=(...D)=>Jt(r,D.length===1?""+D[0]:D.join(" "));return Object.setPrototypeOf(r,qt),r[ue]=e,r[x]=t,r[T]=u,r},Jt=(e,t)=>{if(e.level<=0||!t)return e[T]?"":t;let u=e[x];if(u===void 0)return t;let{openAll:r,closeAll:D}=u;if(t.includes("\x1B"))for(;u!==void 0;)t=Re(t,u.close,u.open),u=u.parent;let i=t.indexOf(`
6
+ `);return i!==-1&&(t=je(t,D,r,i)),r+t+D};Object.defineProperties(P.prototype,b);var Kt=P();P({level:ke?ke.level:0});var p=Kt;var Zt=(e,t,u,r)=>{if(u==="length"||u==="prototype"||u==="arguments"||u==="caller")return;let D=Object.getOwnPropertyDescriptor(e,u),i=Object.getOwnPropertyDescriptor(t,u);!zt(D,i)&&r||Object.defineProperty(e,u,i);},zt=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},Xt=(e,t)=>{let u=Object.getPrototypeOf(t);u!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,u);},Qt=(e,t)=>`/* Wrapped ${e}*/
7
+ ${t}`,eu=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),tu=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),uu=(e,t,u)=>{let r=u===""?"":`with ${u.trim()}() `,D=Qt.bind(null,r,t.toString());Object.defineProperty(D,"name",tu);let{writable:i,enumerable:s,configurable:n}=eu;Object.defineProperty(e,"toString",{value:D,writable:i,enumerable:s,configurable:n});};function ie(e,t,{ignoreNonConfigurable:u=!1}={}){let{name:r}=e;for(let D of Reflect.ownKeys(t))Zt(e,t,D,u);return Xt(e,t),uu(e,t,r),e}var k=new WeakMap,Ge=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let u,r=0,D=e.displayName||e.name||"<anonymous>",i=function(...s){if(k.set(i,++r),r===1)u=e.apply(this,s),e=void 0;else if(t.throw===!0)throw new Error(`Function \`${D}\` can only be called once`);return u};return ie(i,e),k.set(i,r),i};Ge.callCount=e=>{if(!k.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return k.get(e)};var We=Ge;var g=[];g.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&g.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&g.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var L=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",oe=Symbol.for("signal-exit emitter"),se=globalThis,ru=Object.defineProperty.bind(Object),ne=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(se[oe])return se[oe];ru(se,oe,{value:this,writable:!1,enumerable:!1,configurable:!1});}on(t,u){this.listeners[t].push(u);}removeListener(t,u){let r=this.listeners[t],D=r.indexOf(u);D!==-1&&(D===0&&r.length===1?r.length=0:r.splice(D,1));}emit(t,u,r){if(this.emitted[t])return !1;this.emitted[t]=!0;let D=!1;for(let i of this.listeners[t])D=i(u,r)===!0||D;return t==="exit"&&(D=this.emit("afterExit",u,r)||D),D}},G=class{},Du=e=>({onExit(t,u){return e.onExit(t,u)},load(){return e.load()},unload(){return e.unload()}}),ae=class extends G{onExit(){return ()=>{}}load(){}unload(){}},Fe=class extends G{#o=le.platform==="win32"?"SIGINT":"SIGHUP";#u=new ne;#e;#D;#c;#t={};#i=!1;constructor(t){super(),this.#e=t,this.#t={};for(let u of g)this.#t[u]=()=>{let r=this.#e.listeners(u),{count:D}=this.#u,i=t;if(typeof i.__signal_exit_emitter__=="object"&&typeof i.__signal_exit_emitter__.count=="number"&&(D+=i.__signal_exit_emitter__.count),r.length===D){this.unload();let s=this.#u.emit("exit",null,u),n=u==="SIGHUP"?this.#o:u;s||t.kill(t.pid,n);}};this.#c=t.reallyExit,this.#D=t.emit;}onExit(t,u){if(!L(this.#e))return ()=>{};this.#i===!1&&this.load();let r=u!=null&&u.alwaysLast?"afterExit":"exit";return this.#u.on(r,t),()=>{this.#u.removeListener(r,t),this.#u.listeners.exit.length===0&&this.#u.listeners.afterExit.length===0&&this.unload();}}load(){if(!this.#i){this.#i=!0,this.#u.count+=1;for(let t of g)try{let u=this.#t[t];u&&this.#e.on(t,u);}catch{}this.#e.emit=(t,...u)=>this.#m(t,...u),this.#e.reallyExit=t=>this.#r(t);}}unload(){this.#i&&(this.#i=!1,g.forEach(t=>{let u=this.#t[t];if(!u)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,u);}catch{}}),this.#e.emit=this.#D,this.#e.reallyExit=this.#c,this.#u.count-=1);}#r(t){return L(this.#e)?(this.#e.exitCode=t||0,this.#u.emit("exit",this.#e.exitCode,null),this.#c.call(this.#e,this.#e.exitCode)):0}#m(t,...u){let r=this.#D;if(t==="exit"&&L(this.#e)){typeof u[0]=="number"&&(this.#e.exitCode=u[0]);let D=r.call(this.#e,t,...u);return this.#u.emit("exit",this.#e.exitCode,null),D}else return r.call(this.#e,t,...u)}},le=globalThis.process,{onExit:He,load:Or,unload:Ir}=Du(L(le)?new Fe(le):new ae);var Ue=C__namespace.default.stderr.isTTY?C__namespace.default.stderr:C__namespace.default.stdout.isTTY?C__namespace.default.stdout:void 0,iu=Ue?We(()=>{He(()=>{Ue.write("\x1B[?25h");},{alwaysLast:!0});}):()=>{},Ye=iu;var H=!1,A={};A.show=(e=C__namespace.default.stderr)=>{e.isTTY&&(H=!1,e.write("\x1B[?25h"));};A.hide=(e=C__namespace.default.stderr)=>{e.isTTY&&(Ye(),H=!0,e.write("\x1B[?25l"));};A.toggle=(e,t)=>{e!==void 0&&(H=e),H?A.show(t):A.hide(t);};var ce=A;var $=Ne(me());function fe(){return C__namespace.default.platform!=="win32"?C__namespace.default.env.TERM!=="linux":!!C__namespace.default.env.CI||!!C__namespace.default.env.WT_SESSION||!!C__namespace.default.env.TERMINUS_SUBLIME||C__namespace.default.env.ConEmuTask==="{cmd::Cmder}"||C__namespace.default.env.TERM_PROGRAM==="Terminus-Sublime"||C__namespace.default.env.TERM_PROGRAM==="vscode"||C__namespace.default.env.TERM==="xterm-256color"||C__namespace.default.env.TERM==="alacritty"||C__namespace.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var su={info:p.blue("\u2139"),success:p.green("\u2714"),warning:p.yellow("\u26A0"),error:p.red("\u2716")},nu={info:p.blue("i"),success:p.green("\u221A"),warning:p.yellow("\u203C"),error:p.red("\xD7")},au=fe()?su:nu,O=au;function de({onlyFirst:e=!1}={}){let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(u,e?void 0:"g")}var Fu=de();function I(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Fu,"")}function Ze(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function ze(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Xe(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function lu(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function Qe(e,{ambiguousAsWide:t=!1}={}){return lu(e),ze(e)||Xe(e)||t&&Ze(e)?2:1}var et=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;var cu=new Intl.Segmenter,mu=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function pe(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:u=!0,countAnsiEscapeCodes:r=!1}=t;if(r||(e=I(e)),e.length===0)return 0;let D=0,i={ambiguousAsWide:!u};for(let{segment:s}of cu.segment(e)){let n=s.codePointAt(0);if(!(n<=31||n>=127&&n<=159)&&!(n>=8203&&n<=8207||n===65279)&&!(n>=768&&n<=879||n>=6832&&n<=6911||n>=7616&&n<=7679||n>=8400&&n<=8447||n>=65056&&n<=65071)&&!(n>=55296&&n<=57343)&&!(n>=65024&&n<=65039)&&!mu.test(s)){if(et().test(s)){D+=2;continue}D+=Qe(n,i);}}return D}function Ce({stream:e=process.stdout}={}){return !!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}function Ee(){let{env:e}=C__namespace.default,{TERM:t,TERM_PROGRAM:u}=e;return C__namespace.default.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||u==="Terminus-Sublime"||u==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var fu=3,he=class{#o=0;start(){this.#o++,this.#o===1&&this.#u();}stop(){if(this.#o<=0)throw new Error("`stop` called more times than `start`");this.#o--,this.#o===0&&this.#e();}#u(){C__namespace.default.platform==="win32"||!C__namespace.default.stdin.isTTY||(C__namespace.default.stdin.setRawMode(!0),C__namespace.default.stdin.on("data",this.#D),C__namespace.default.stdin.resume());}#e(){C__namespace.default.stdin.isTTY&&(C__namespace.default.stdin.off("data",this.#D),C__namespace.default.stdin.pause(),C__namespace.default.stdin.setRawMode(!1));}#D(t){t[0]===fu&&C__namespace.default.emit("SIGINT");}},du=new he,Be=du;Ne(me());var ge=class{#o=0;#u=!1;#e=0;#D=-1;#c=0;#t;#i;#r;#m;#d;#a;#F;#l;#p;#s;#n;color;constructor(t){typeof t=="string"&&(t={text:t}),this.#t={color:"cyan",stream:C__namespace.default.stderr,discardStdin:!0,hideCursor:!0,...t},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#d=this.#t.interval,this.#r=this.#t.stream,this.#a=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:Ce({stream:this.#r}),this.#F=typeof this.#t.isSilent=="boolean"?this.#t.isSilent:!1,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent,C__namespace.default.env.NODE_ENV==="test"&&(this._stream=this.#r,this._isEnabled=this.#a,Object.defineProperty(this,"_linesToClear",{get(){return this.#o},set(u){this.#o=u;}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#D}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}));}get indent(){return this.#l}set indent(t=0){if(!(t>=0&&Number.isInteger(t)))throw new Error("The `indent` option must be an integer from 0 and up");this.#l=t,this.#f();}get interval(){return this.#d??this.#i.interval??100}get spinner(){return this.#i}set spinner(t){if(this.#D=-1,this.#d=void 0,typeof t=="object"){if(t.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#i=t;}else if(!Ee())this.#i=$.default.line;else if(t===void 0)this.#i=$.default.dots;else if(t!=="default"&&$.default[t])this.#i=$.default[t];else throw new Error(`There is no built-in spinner named '${t}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#p}set text(t=""){this.#p=t,this.#f();}get prefixText(){return this.#s}set prefixText(t=""){this.#s=t,this.#f();}get suffixText(){return this.#n}set suffixText(t=""){this.#n=t,this.#f();}get isSpinning(){return this.#m!==void 0}#C(t=this.#s,u=" "){return typeof t=="string"&&t!==""?t+u:typeof t=="function"?t()+u:""}#E(t=this.#n,u=" "){return typeof t=="string"&&t!==""?u+t:typeof t=="function"?u+t():""}#f(){let t=this.#r.columns??80,u=this.#C(this.#s,"-"),r=this.#E(this.#n,"-"),D=" ".repeat(this.#l)+u+"--"+this.#p+"--"+r;this.#e=0;for(let i of I(D).split(`
8
+ `))this.#e+=Math.max(1,Math.ceil(pe(i,{countAnsiEscapeCodes:!0})/t));}get isEnabled(){return this.#a&&!this.#F}set isEnabled(t){if(typeof t!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#a=t;}get isSilent(){return this.#F}set isSilent(t){if(typeof t!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#F=t;}frame(){let t=Date.now();(this.#D===-1||t-this.#c>=this.interval)&&(this.#D=++this.#D%this.#i.frames.length,this.#c=t);let{frames:u}=this.#i,r=u[this.#D];this.color&&(r=p[this.color](r));let D=typeof this.#s=="string"&&this.#s!==""?this.#s+" ":"",i=typeof this.text=="string"?" "+this.text:"",s=typeof this.#n=="string"&&this.#n!==""?" "+this.#n:"";return D+r+i+s}clear(){if(!this.#a||!this.#r.isTTY)return this;this.#r.cursorTo(0);for(let t=0;t<this.#o;t++)t>0&&this.#r.moveCursor(0,-1),this.#r.clearLine(1);return (this.#l||this.lastIndent!==this.#l)&&this.#r.cursorTo(this.#l),this.lastIndent=this.#l,this.#o=0,this}render(){return this.#F?this:(this.clear(),this.#r.write(this.frame()),this.#o=this.#e,this)}start(t){return t&&(this.text=t),this.#F?this:this.#a?this.isSpinning?this:(this.#t.hideCursor&&ce.hide(this.#r),this.#t.discardStdin&&C__namespace.default.stdin.isTTY&&(this.#u=!0,Be.start()),this.render(),this.#m=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#r.write(`- ${this.text}
9
+ `),this)}stop(){return this.#a?(clearInterval(this.#m),this.#m=void 0,this.#D=0,this.clear(),this.#t.hideCursor&&ce.show(this.#r),this.#t.discardStdin&&C__namespace.default.stdin.isTTY&&this.#u&&(Be.stop(),this.#u=!1),this):this}succeed(t){return this.stopAndPersist({symbol:O.success,text:t})}fail(t){return this.stopAndPersist({symbol:O.error,text:t})}warn(t){return this.stopAndPersist({symbol:O.warning,text:t})}info(t){return this.stopAndPersist({symbol:O.info,text:t})}stopAndPersist(t={}){if(this.#F)return this;let u=t.prefixText??this.#s,r=this.#C(u," "),D=t.symbol??" ",i=t.text??this.text,n=typeof i=="string"?(D?" ":"")+i:"",m=t.suffixText??this.#n,l=this.#E(m," "),c=r+D+n+l+`
10
+ `;return this.stop(),this.#r.write(c),this}};function _e(e){return new ge(e)}var ut={name:"@keload/node-red-dxp",version:"1.4.0",description:"",type:"module",scripts:{build:"tsup",watch:"tsup --watch",format:"pnpm biome format",lint:"pnpm biome lint","lint:check":"pnpm biome check",release:"pnpm release-it","release:test":"pnpm release-it --dry-run","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},publishConfig:{access:"public"},bin:{"node-red-dxp":"./dist/cli/index.cjs"},exports:{".":{import:"./dist/index.js",require:"./dist/index.cjs"},"./editor":{import:"./dist/editor/index.js",require:"./dist/editor/index.cjs"},"./package.json":"./package.json"},keywords:[],author:"Cl\xE9ment BERARD <contact@berard.dev>",license:"MIT",repository:{type:"git",url:"https://github.com/clement-berard/node-red-dxp.git"},bugs:{url:"https://github.com/clement-berard/node-red-dxp/issues"},homepage:"https://github.com/clement-berard/node-red-dxp",devDependencies:{"@biomejs/biome":"1.9.4","@release-it/conventional-changelog":"9.0.3","@types/handlebars":"4.1.0","release-it":"17.10.0",tsup:"8.3.5",tsx:"4.19.2",typescript:"5.6.3",vitepress:"1.5.0"},dependencies:{"@fullhuman/postcss-purgecss":"^6.0.0","@types/html-minifier-terser":"7.0.2","@types/jquery":"3.5.32","@types/jqueryui":"1.12.23","@types/node-red":"1.3.5","@types/prettyjson":"0.0.33",autoprefixer:"^10.4.20","browser-sync":"3.0.3",chokidar:"4.0.1",commander:"12.1.0",consola:"3.2.3",cosmiconfig:"9.0.0",cssnano:"^7.0.6",esbuild:"0.24.0",glob:"11.0.0",handlebars:"4.7.8","html-minifier-terser":"7.2.0","merge-anything":"6.0.2",nodemon:"3.1.7",ora:"8.1.1",postcss:"^8.4.49",prettyjson:"1.2.5",radash:"12.1.0",sass:"1.81.0","solid-js":"1.9.3",tailwindcss:"^3.4.15"},files:["dist"]};function V(e){return Object.prototype.toString.call(e).slice(8,-1)}function w(e){if(V(e)!=="Object")return !1;let t=Object.getPrototypeOf(e);return !!t&&t.constructor===Object&&t===Object.prototype}function q(e){return V(e)==="Symbol"}function rt(e,t,u,r){let D={}.propertyIsEnumerable.call(r,t)?"enumerable":"nonenumerable";D==="enumerable"&&(e[t]=u),D==="nonenumerable"&&Object.defineProperty(e,t,{value:u,enumerable:!1,writable:!0,configurable:!0});}function Dt(e,t,u){if(!w(t))return t;let r={};if(w(e)){let n=Object.getOwnPropertyNames(e),m=Object.getOwnPropertySymbols(e);r=[...n,...m].reduce((l,c)=>{let ee=e[c];return (!q(c)&&!Object.getOwnPropertyNames(t).includes(c)||q(c)&&!Object.getOwnPropertySymbols(t).includes(c))&&rt(l,c,ee,e),l},{});}let D=Object.getOwnPropertyNames(t),i=Object.getOwnPropertySymbols(t);return [...D,...i].reduce((n,m)=>{let l=t[m],c=w(e)?e[m]:void 0;c!==void 0&&w(l)&&(l=Dt(c,l));let ee=l;return rt(n,m,ee,t),n},r)}function it(e,...t){return t.reduce((u,r)=>Dt(u,r),e)}var ot={libCacheDir:".node-red-dx",srcDir:"src",nodesDirName:"nodes",nodes:{controllerName:"controller",editor:{dirName:"editor",htmlName:"index",tsName:"index"}},builder:{outputDir:"dist"},watcher:{nodeRed:{enabled:!0,path:"~/.node-red",url:"http://localhost:1880"}}};var yu="node-red-dx",xu=e=>e.replace("@","").replace("/","-");function bu(){let e=cosmiconfig.cosmiconfigSync(yu);try{let t=e.search();return it(ot,t?t.config:{})}catch(t){throw console.error("Error while loading configuration",t),t}}var h=bu(),_=process.cwd(),st=JSON.parse(at.readFileSync(`${_}/package.json`,"utf-8")),xe=`${_}/${h.srcDir}`,Au=`${_}/resources`,J=`${xe}/${h.nodesDirName}`,ye=`${_}/${h.libCacheDir}`,wu=`${Ft__default.default.resolve(__dirname,"..")}`,nt=xu(st.name);function vu(){return glob.globSync(`${J}/*`,{withFileTypes:!0}).map(t=>{let u=t.fullpath(),r=`${u}/${h.nodes.editor.dirName}`,D=u.replace(_,"").slice(1),i=`${D}/${h.nodes.editor.dirName}`,s=glob.globSync(`${r}/**/*.scss`),n=glob.globSync(`${u}/doc.mdx`),m=glob.globSync(`${u}/doc.md`),l=radash.dash(t.name);return {fullEditorPath:r,fullPath:u,name:t.name,pascalName:radash.pascal(t.name),dashName:l,relativeEditorPath:i,relativePath:D,nodeIdentifier:`${nt}-${l}`,fullControllerPath:`${u}/${h.nodes.controllerName}.ts`,editor:{tsPath:`${r}/${h.nodes.editor.tsName}.ts`,htmlPath:`${r}/${h.nodes.editor.htmlName}.html`,scssFiles:s},doc:{mdxFiles:n,mdFiles:m}}})}function Nu(){return {currentDir:_,pathSrcDir:xe,pathSrcNodesDir:J,additionalResourcesDir:Au,pathDist:`${_}/${h.builder.outputDir}`,currentPackagedDistPath:wu,cacheDirFiles:{controllerIndex:`${ye}/controller-index.ts`,editorIndex:`${ye}/editor-index.ts`},pathLibCacheDir:ye,packageName:st.name,packageNameSlug:nt,config:h,resolvedSrcPathsScss:glob.globSync(`${xe}/**/*.scss`,{ignore:`${J}/**/*.scss`}),resolvedNodesPaths:glob.globSync(`${J}/*`),listNodesFull:vu()}}var o=Nu();var lt=`${Ft__default.default.resolve(__dirname,"..")}`;function K(e){at__default.default.existsSync(e)||at__default.default.mkdirSync(e,{recursive:!0});}async function B(e,t){try{await be__default.default.writeFile(e,t);}catch(u){console.error("Error writing controller index:",u);}}async function ct(e){for(let t of e)try{let u=Ft__default.default.resolve(t),r=await be__default.default.stat(u).catch(()=>null);r!=null&&r.isDirectory()&&await be__default.default.rm(u,{recursive:!0,force:!0});}catch(u){console.error(`Error cleaning path (${t}): ${u}`);}}var Z=class{params;constructor(t){this.params={minify:!1,...t};}async getControllerIndexContent(){return `
29
11
  import type { NodeAPI } from 'node-red';
30
- ${e.map(t=>`import ${t.pascalName} from '${t.fullControllerPath}';`).join(`
12
+ ${o.listNodesFull.map(t=>`import ${t.pascalName} from '${t.fullControllerPath}';`).join(`
31
13
  `)}
32
14
 
33
15
 
34
16
  export default async (RED: NodeAPI): Promise<void> => {
35
17
  global.RED = RED;
36
18
 
37
- ${e.map(t=>`// @ts-ignore
19
+ ${o.listNodesFull.map(t=>`// @ts-ignore
38
20
  global.RED.nodes.registerType('${t.name}', ${t.pascalName});`).join(`
39
21
  `)}
40
22
  };
41
- `.trim()}async function ee(e){return `
42
- ${Y}
23
+ `.trim()}buildScript(){return Su__default.default.build({entryPoints:[o.cacheDirFiles.controllerIndex],outfile:`${o.pathDist}/index.js`,bundle:!0,minify:this.params.minify,minifyWhitespace:this.params.minify,minifyIdentifiers:this.params.minify,minifySyntax:this.params.minify,platform:"node",format:"cjs",target:"es2018",loader:{".ts":"ts"},packages:"external"})}async getControllerTask(){return this.getControllerIndexContent().then(t=>{B(`${o.cacheDirFiles.controllerIndex}`,t).then(()=>{this.buildScript();});})}};var z=class{getAllDocContent(){let t=[];for(let u of o.listNodesFull)if(u.doc.mdFiles[0]){let D=at__default.default.readFileSync(u.doc.mdFiles[0],"utf-8"),i=`
24
+ <script type="text/markdown" data-help-name="${u.name}">
25
+ ${D}
26
+ </script>
27
+ `;t.push(i);}return t.length?t.join(`
28
+ `):""}};function mt(e){return e.trim().replace(/\n\s+/g,"")}function ft(e=""){return {name:e,dashName:radash.dash(e),pascalName:radash.pascal(e)}}async function Ru(e){return htmlMinifierTerser.minify(e,{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!1,useShortDoctype:!0,removeEmptyAttributes:!1,minifyCSS:!1,minifyJS:!1})}function ju(e,t){return `
29
+ <script type="text/html" data-template-name="${e}">
30
+ ${t}
31
+ </script>
32
+ `}async function Mu(e,t,u=!1){let r=at.readFileSync(e.editor.htmlPath,"utf8"),D=`
33
+ <div class="${t}">
34
+ <div class="${e.nodeIdentifier}">${r}</div>
35
+ </div>
36
+ `,i=u?await Ru(D):D,s=ju(e.name,i);return {nodeName:e.name,nodeIdentifier:e.nodeIdentifier,html:i,wrappedHtml:s}}async function dt(e){let{nodes:t,minify:u=!1}=e,r=await Promise.all(t.map(i=>Mu(i,e.packageNameSlug,u)));return {html:r.map(i=>i.html).join("").trim(),allWrappedHtml:r.map(i=>u?mt(i.wrappedHtml):i.wrappedHtml).join("").trim()}}async function Yu(e,t){return (await pt__default.default([Lu__default.default({content:[{raw:t,extension:"html"}]}),Gu__default.default,Wu__default.default({preset:"default"})]).process(e,{from:void 0})).css}function Vu(e){return Ct__namespace.compile(e,{style:"expanded"}).css}function Et(e){let t={};for(let u=0;u<e.length;u++){let r=e[u];t[r]=Vu(r);}return t}function qu(e){return e.some(u=>u.editor.scssFiles.length)?e.filter(u=>u.editor.scssFiles.length).map(u=>{let r=Et(u.editor.scssFiles),D=Object.values(r).join("");return {name:u.name,mergedCompiledStyles:D,scssFinal:`
37
+ #${u.nodeIdentifier}{
38
+ ${D}
39
+ }`}}):[]}async function Ju(e,t={}){let r={...{content:[{raw:e}],theme:{}},...t},D=glob.globSync(`${lt}/${o.config.nodes.editor.dirName}/assets/tailwind.scss`)[0],i=D.length?at__default.default.readFileSync(D,"utf8"):"";return (await pt__default.default([Uu__default.default(r),Ot("autoprefixer")]).process(i,{from:void 0})).css}function Ku(){let e=o.resolvedSrcPathsScss,t=Et([...e]);return Object.values(t).join("")}async function ht(e){let{rawHtml:t,minify:u=!1,nodes:r}=e||{},D=Ku(),i=qu(r),s=await Ju(t),n=c=>`.${o.packageNameSlug}{${c}}`,m=i.map(c=>c.scssFinal).join(`
40
+ `),l=n(`${s}${D}${m}`);return u?Yu(l,t):l}var X=class{params;constructor(t){this.params={minify:!1,...t};}async getEditorIndexContent(){return `
43
41
  import type { NodeAPI } from 'node-red';
44
- ${e.map(t=>`import ${t.pascalName} from '${t.editor.tsPath}';`).join(`
42
+ ${o.listNodesFull.map(t=>`import ${t.pascalName} from '${t.editor.tsPath}';`).join(`
45
43
  `)}
46
44
 
47
45
  declare const RED: NodeAPI;
48
46
 
49
- ${e.map(t=>`// @ts-ignore
47
+ ${o.listNodesFull.map(t=>`// @ts-ignore
50
48
  window.RED.nodes.registerType('${t.name}', ${t.pascalName});`).join(`
51
49
  `)}
52
- `.trim()}var a=I();async function N(e){let{minify:t=!1}=e||{},r=a.getListNodesFull();_(a.pathLibCacheDir),await J([a.pathDist]);let o=Z(r).then(s=>{b(`${a.cacheDirFiles.controllerIndex}`,s).then(()=>{W(t);});}),n=ee(r).then(s=>{b(`${a.cacheDirFiles.editorIndex}`,s).then(()=>{X({minify:t,nodes:r}).then(async m=>{await b(`${a.pathDist}/index.html`,m);});});});await Promise.all([o,n,b(`${a.pathLibCacheDir}/config.json`,JSON.stringify(a.config,null,2))]);}function te(e){let t=new commander.Command("checks").description("[WIP] Commands to check the some stuff");t.command("nodes-structure").description("[WIP] Verify the structure of the nodes").action(()=>{console.log("In construction");}),e.addCommand(t);}function re(e){let t=new commander.Command("info").description("Command to get information").description("Get information about the package").action(()=>{consola.consola.log(Ge__default.default.render(i));});e.addCommand(t);}function oe(e){let t=new commander.Command("create-node").description("[WIP] Create a new node").action(async()=>{consola.consola.warn("Command in construction - not working yet");let r=await consola.consola.prompt("Enter node name:",{type:"text"}),o=radash.dash(r),n=await consola.consola.prompt(`This name is OK for you '${o}'?`,{type:"confirm"});console.log("userIsOk",n);});e.addCommand(t);}var ie,v;function Ke(){ie=ne__default.default({exec:`node-red -u ${a.config.watcher.nodeRed.path}`,ignore:["**/*"],ext:"js,html",verbose:!0}),ne__default.default.once("start",()=>{v=Ve__default.default.create(),v.init({ui:!1,proxy:{target:a.config.watcher.nodeRed.url,ws:!0},ghostMode:!1,open:!1,reloadDelay:4e3});}).on("quit",()=>{consola.consola.info("Nodemon has quit"),process.exit(0);});}function ze(){ie.restart(),v.reload();}var se=a.config.watcher.nodeRed.enabled&&a.config.watcher.nodeRed.path;function ae(){Ue__default.default.watch(a.pathSrcDir,{}).on("ready",async()=>{consola.consola.info("Initial scan complete. Ready for changes"),await N({minify:!1}),consola.consola.success("Initial Build completed"),se?Ke():consola.consola.warn("Node-Red watcher is disabled. Please enable it in the config file");}).on("change",async t=>{consola.consola.info(`File ${t.replace(a.currentDir,"")} has been changed`),await N({minify:!1}),consola.consola.success("Build completed"),se&&ze();});}var g=new commander.Command;g.name("node-red-dxp").description("node-red-dxp CLI").version(O.version);g.command("build").description("Build project").action(async e=>{consola.consola.start("Building..."),await N({minify:!0}),consola.consola.ready("Build completed");});g.command("watch").description("watch project").option("--minify <minify>","[WIP] Minify the output",!1).action(e=>{ae();});te(g);re(g);oe(g);g.parse(le__namespace.argv);
50
+ `.trim()}async getBuiltScript(){let t=await Su__default.default.build({entryPoints:[o.cacheDirFiles.editorIndex],bundle:!0,platform:"browser",format:"iife",target:"es6",sourcemap:!1,minify:this.params.minify,minifyWhitespace:this.params.minify,minifySyntax:this.params.minify,minifyIdentifiers:this.params.minify,legalComments:"none",inject:[`${o.currentPackagedDistPath}/editor/global-solid.ts`],write:!1,loader:{".ts":"ts"}});return t.outputFiles&&t.outputFiles.length>0?t.outputFiles[0].text:""}async prepareEditorIndex(){let t=await this.getBuiltScript(),u=await dt({minify:this.params.minify,nodes:o.listNodesFull,packageNameSlug:o.packageNameSlug}),r=await ht({rawHtml:u.html,minify:this.params.minify,nodes:o.listNodesFull}),i=new z().getAllDocContent(),s=`<script type="application/javascript">${t.trim()}</script>`,n=`<style>${r}</style>`;return `
51
+ ${u.allWrappedHtml}
52
+ ${n}
53
+ ${s}
54
+ ${i}`.trim()}async getEditorTask(){return this.getEditorIndexContent().then(t=>{B(`${o.cacheDirFiles.editorIndex}`,t).then(()=>{this.prepareEditorIndex().then(async u=>{await B(`${o.pathDist}/${o.config.nodes.editor.htmlName}.html`,u);});});})}};var N=class{params;builderController;builderEditor;constructor(t){this.params={minify:!1,...t},this.builderController=new Z({minify:this.params.minify}),this.builderEditor=new X({minify:this.params.minify});}prepare(){K(o.pathLibCacheDir);let t=[ct([o.pathDist]),B(`${o.pathLibCacheDir}/config.json`,JSON.stringify(o.config,null,2))];return Promise.all(t)}async buildAll(){return await this.prepare(),Promise.all([this.builderController.getControllerTask(),this.builderEditor.getEditorTask()])}};function Bt(e){let t=new commander.Command("checks").description("[WIP] Commands to check the some stuff");t.command("nodes-structure").description("[WIP] Verify the structure of the nodes").action(()=>{console.log("In construction");}),e.addCommand(t);}function gt(e){let t=new commander.Command("info").description("Command to get information").description("Get information about the package").action(()=>{consola.consola.log(er__default.default.render(o));});e.addCommand(t);}async function ir(e){try{let t=Ft__default.default.resolve(e);return await be__default.default.readFile(t,"utf-8")}catch(t){throw new Error(`Failed to load file: ${t.message}`)}}async function or(e,t){try{let u=await ir(e);return Dr__default.default.compile(u)(t)}catch(u){throw new Error(`Failed to render template: ${u.message}`)}}var Q=class{nodePascalName;nodeDashName;newNodeDistPath;newNodeEditorDistPath;scaffoldedDistHbs;constructor(t){let{pascalName:u,dashName:r}=ft(t);this.nodePascalName=u,this.nodeDashName=r,this.newNodeDistPath=`${o.pathSrcNodesDir}/${r}`,this.newNodeEditorDistPath=`${this.newNodeDistPath}/${o.config.nodes.editor.dirName}`,this.scaffoldedDistHbs=`${o.currentPackagedDistPath}/scaffolding/create-node/hbs`;}distFolderExist(){return at__default.default.existsSync(this.newNodeDistPath)}prepareStructure(){return [{finalPath:`${this.newNodeDistPath}/${o.config.nodes.controllerName}.ts`,templatePath:`${this.scaffoldedDistHbs}/controller.ts.hbs`,templateData:{nodePascalName:this.nodePascalName,nodeName:this.nodeDashName}},{finalPath:`${this.newNodeDistPath}/types.ts`,templatePath:`${this.scaffoldedDistHbs}/types.ts.hbs`,templateData:{nodePascalName:this.nodePascalName,nodeName:this.nodeDashName}},{finalPath:`${this.newNodeDistPath}/doc.md`,templatePath:`${this.scaffoldedDistHbs}/doc.md.hbs`,templateData:{}},{finalPath:`${this.newNodeEditorDistPath}/${o.config.nodes.editor.tsName}.ts`,templatePath:`${this.scaffoldedDistHbs}/editor/index.ts.hbs`,templateData:{nodePascalName:this.nodePascalName,nodeName:this.nodeDashName}},{finalPath:`${this.newNodeEditorDistPath}/styles.scss`,templatePath:`${this.scaffoldedDistHbs}/editor/styles.scss.hbs`,templateData:{nodeName:this.nodeDashName}},{finalPath:`${this.newNodeEditorDistPath}/${o.config.nodes.editor.htmlName}.html`,templatePath:`${this.scaffoldedDistHbs}/editor/index.html.hbs`,templateData:{}}]}async renderFilesTemplates(){let t=this.prepareStructure().map(async u=>or(u.templatePath,u.templateData).then(r=>({finalPath:u.finalPath,content:r})));return await Promise.all(t)}async writeNewNode(){let t=await this.renderFilesTemplates();await Promise.all(t.map(u=>B(u.finalPath,u.content)));}};function _t(e){let t=new commander.Command("create-node").description("Create new node").action(async()=>{let u=await consola.consola.prompt("Enter node name:",{type:"text"}),r=radash.dash(u);if(!await consola.consola.prompt(`This name is OK for you '${r}'?`,{type:"confirm"})){consola.consola.info("\u{1F44C} OK. Exiting...");return}let i=new Q(r);if(i.distFolderExist()){consola.consola.error(`Node ${i.nodeDashName} already exists`),consola.consola.info(`In ${i.newNodeDistPath}`);return}K(i.newNodeEditorDistPath),await i.writeNewNode();});e.addCommand(t);}var xt,Ae;function lr(){xt=yt__default.default({exec:`node-red -u ${o.config.watcher.nodeRed.path}`,ignore:["**/*"],ext:"js,html",verbose:!0}),yt__default.default.once("start",()=>{Ae=ar__default.default.create(),Ae.init({ui:!1,proxy:{target:o.config.watcher.nodeRed.url,ws:!0},ghostMode:!1,open:!1,reloadDelay:4e3});}).on("quit",()=>{consola.consola.info("Nodemon has quit"),process.exit(0);});}function cr(){xt.restart(),Ae.reload();}function bt(e){let t=o.config.watcher.nodeRed.enabled&&o.config.watcher.nodeRed.path,u=Fr__default.default.watch(o.pathSrcDir,{}),r=new N({minify:(e==null?void 0:e.minify)??!1});u.on("ready",async()=>{consola.consola.info("Initial scan complete. Ready for changes"),await r.buildAll(),consola.consola.success("Initial Build completed"),t?lr():consola.consola.warn("Node-Red watcher is disabled. Please enable it in the config file");}).on("change",async D=>{consola.consola.info(`File ${D.replace(o.currentDir,"")} has been changed`),await r.buildAll(),consola.consola.success("Build completed"),t&&cr();});}var y=new commander.Command;y.name("node-red-dxp").description("node-red-dxp CLI").version(ut.version);y.command("build").description("Build project").action(async e=>{let t=o.listNodesFull.length,u=perf_hooks.performance.now(),r=_e(`Building ${t} node(s)...`).start();await new N({minify:!0}).buildAll();let s=perf_hooks.performance.now()-u,n=s>1e3?`${(s/1e3).toFixed(2)}s`:`${s.toFixed(2)}ms`;r.succeed(`Build completed in ${n} for ${t} nodes(s)`);});y.command("watch").description("watch project").option("--minify","Minify the output",!1).action(e=>{bt({minify:e.minify});});Bt(y);gt(y);_t(y);y.parse(C__namespace.argv);
@@ -5,7 +5,7 @@ type NodeControllerInst<T> = Node & T;
5
5
  type NodeEditorProps<T> = EditorNodeProperties & T;
6
6
  declare namespace EditorDomHelper {
7
7
  type InitSelectParams = {
8
- selected?: string;
8
+ selected?: string | number | unknown;
9
9
  emptyValue?: string;
10
10
  };
11
11
  }
@@ -5,7 +5,7 @@ type NodeControllerInst<T> = Node & T;
5
5
  type NodeEditorProps<T> = EditorNodeProperties & T;
6
6
  declare namespace EditorDomHelper {
7
7
  type InitSelectParams = {
8
- selected?: string;
8
+ selected?: string | number | unknown;
9
9
  emptyValue?: string;
10
10
  };
11
11
  }
@@ -0,0 +1,12 @@
1
+ import type { NodeControllerConfig, NodeControllerInst } from '@keload/node-red-dxp/editor';
2
+ import type { Node{{nodePascalName}}Props } from './types';
3
+
4
+ export default function (this: NodeControllerInst<Node{{nodePascalName}}Props>, config: NodeControllerConfig<Node{{nodePascalName}}Props>) {
5
+ RED.nodes.createNode(this, config);
6
+
7
+ this.on('input', async (msg) => {
8
+ this.send({
9
+ payload: 'foo',
10
+ });
11
+ });
12
+ }
@@ -0,0 +1,32 @@
1
+ Connects to a MQTT broker and publishes messages.
2
+
3
+ ### Inputs
4
+
5
+ : payload (string | buffer) : the payload of the message to publish.
6
+ : *topic* (string) : the MQTT topic to publish to.
7
+
8
+
9
+ ### Outputs
10
+
11
+ 1. Standard output
12
+ : payload (string) : the standard output of the command.
13
+
14
+ 2. Standard error
15
+ : payload (string) : the standard error of the command.
16
+
17
+ ### Details
18
+
19
+ `msg.payload` is used as the payload of the published message.
20
+ If it contains an Object it will be converted to a JSON string before being sent.
21
+ If it contains a binary Buffer the message will be published as-is.
22
+
23
+ The topic used can be configured in the node or, if left blank, can be set
24
+ `msg.topic`.
25
+
26
+ Likewise the QoS and retain values can be configured in the node or, if left
27
+ blank, set by `msg.qos` and `msg.retain` respectively.
28
+
29
+ ### References
30
+
31
+ - [Twitter API docs]() - full description of `msg.tweet` property
32
+ - [GitHub]() - the nodes github repository
@@ -0,0 +1,8 @@
1
+ <div class="form-row">
2
+ <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
3
+ <input type="text" id="node-input-name" placeholder="custom name"/>
4
+ </div>
5
+ <div class="form-row">
6
+ <label for="node-input-age" ><i class="fa fa-tag"></i> Age</label>
7
+ <input type="text" id="node-input-age" placeholder="enter age"/>
8
+ </div>
@@ -0,0 +1,26 @@
1
+ import { type NodeEditorProps, createEditorNode, domHelper } from '@keload/node-red-dxp/editor';
2
+ import type { Node{{nodePascalName}}Props } from '../types';
3
+
4
+ const {{nodePascalName}} = createEditorNode<NodeEditorProps<Node{{nodePascalName}}Props>>({
5
+ category: 'my_cat',
6
+ color: '#a6bbcf',
7
+ defaults: {
8
+ name: { value: '', required: true },
9
+ age: { value: '' },
10
+ },
11
+ inputs: 1,
12
+ outputs: 1,
13
+ icon: 'font-awesome/fa-tower-broadcast',
14
+ label: function () {
15
+ return this.name || '{{nodePascalName}}';
16
+ },
17
+ oneditprepare: function () {
18
+ const { watchInput } = domHelper<Node{{nodePascalName}}Props>(this);
19
+ // $age == #node-input-age in DOM
20
+ watchInput('$age', ([ageValue]) => {
21
+ console.log('ageValue', ageValue);
22
+ });
23
+ },
24
+ });
25
+
26
+ export default {{nodePascalName}};
@@ -0,0 +1,2 @@
1
+ // this file is optional and can be removed if you don't need it
2
+ // all styles are scoped to the editor of this node `{{nodeName}}`
@@ -0,0 +1,3 @@
1
+ export interface Node{{nodePascalName}}Props {
2
+ age: string;
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keload/node-red-dxp",
3
- "version": "1.3.2",
3
+ "version": "1.4.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -26,10 +26,6 @@
26
26
  "import": "./dist/index.js",
27
27
  "require": "./dist/index.cjs"
28
28
  },
29
- "./builder": {
30
- "import": "./dist/builder/index.js",
31
- "require": "./dist/builder/index.cjs"
32
- },
33
29
  "./editor": {
34
30
  "import": "./dist/editor/index.js",
35
31
  "require": "./dist/editor/index.cjs"
@@ -50,6 +46,7 @@
50
46
  "devDependencies": {
51
47
  "@biomejs/biome": "1.9.4",
52
48
  "@release-it/conventional-changelog": "9.0.3",
49
+ "@types/handlebars": "4.1.0",
53
50
  "release-it": "17.10.0",
54
51
  "tsup": "8.3.5",
55
52
  "tsx": "4.19.2",
@@ -76,6 +73,7 @@
76
73
  "html-minifier-terser": "7.2.0",
77
74
  "merge-anything": "6.0.2",
78
75
  "nodemon": "3.1.7",
76
+ "ora": "8.1.1",
79
77
  "postcss": "^8.4.49",
80
78
  "prettyjson": "1.2.5",
81
79
  "radash": "12.1.0",
@@ -1,51 +0,0 @@
1
- 'use strict';var W=require('fs'),cosmiconfig=require('cosmiconfig'),glob=require('glob'),radash=require('radash'),M=require('path'),H=require('esbuild'),htmlMinifierTerser=require('html-minifier-terser'),C=require('fs/promises'),$e=require('@fullhuman/postcss-purgecss'),Se=require('autoprefixer'),Pe=require('cssnano'),V=require('postcss'),U=require('sass'),we=require('tailwindcss');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var W__default=/*#__PURE__*/_interopDefault(W);var M__default=/*#__PURE__*/_interopDefault(M);var H__default=/*#__PURE__*/_interopDefault(H);var C__default=/*#__PURE__*/_interopDefault(C);var $e__default=/*#__PURE__*/_interopDefault($e);var Se__default=/*#__PURE__*/_interopDefault(Se);var Pe__default=/*#__PURE__*/_interopDefault(Pe);var V__default=/*#__PURE__*/_interopDefault(V);var U__namespace=/*#__PURE__*/_interopNamespace(U);var we__default=/*#__PURE__*/_interopDefault(we);var Z=Object.defineProperty;var j=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var I=(e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))ee.call(t,r)&&I(e,r,t[r]);if(j)for(var r of j(t))te.call(t,r)&&I(e,r,t[r]);return e};var re=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var i=(e,t,r)=>new Promise((o,s)=>{var n=l=>{try{c(r.next(l));}catch(a){s(a);}},m=l=>{try{c(r.throw(l));}catch(a){s(a);}},c=l=>l.done?o(l.value):Promise.resolve(l.value).then(n,m);c((r=r.apply(e,t)).next());});function N(e){return Object.prototype.toString.call(e).slice(8,-1)}function x(e){if(N(e)!=="Object")return !1;let t=Object.getPrototypeOf(e);return !!t&&t.constructor===Object&&t===Object.prototype}function b(e){return N(e)==="Symbol"}function O(e,t,r,o){let s={}.propertyIsEnumerable.call(o,t)?"enumerable":"nonenumerable";s==="enumerable"&&(e[t]=r),s==="nonenumerable"&&Object.defineProperty(e,t,{value:r,enumerable:!1,writable:!0,configurable:!0});}function v(e,t,r){if(!x(t))return t;let o={};if(x(e)){let c=Object.getOwnPropertyNames(e),l=Object.getOwnPropertySymbols(e);o=[...c,...l].reduce((a,p)=>{let S=e[p];return (!b(p)&&!Object.getOwnPropertyNames(t).includes(p)||b(p)&&!Object.getOwnPropertySymbols(t).includes(p))&&O(a,p,S,e),a},{});}let s=Object.getOwnPropertyNames(t),n=Object.getOwnPropertySymbols(t);return [...s,...n].reduce((c,l)=>{let a=t[l],p=x(e)?e[l]:void 0;p!==void 0&&x(a)&&(a=v(p,a));let S=a;return O(c,l,S,t),c},o)}function E(e,...t){return t.reduce((r,o)=>v(r,o),e)}var A={libCacheDir:".node-red-dx",srcDir:"src",nodesDirName:"nodes",nodes:{controllerName:"index",editor:{dirName:"editor",htmlName:"index",tsName:"index"}},builder:{outputDir:"dist"},watcher:{nodeRed:{enabled:!0,path:"~/.node-red",url:"http://localhost:1880"}}};var le="node-red-dx",ae=e=>e.replace("@","").replace("/","-");function ce(){let e=cosmiconfig.cosmiconfigSync(le);try{let t=e.search();return E(A,t?t.config:{})}catch(t){throw console.error("Error while loading configuration",t),t}}var f=ce(),g=process.cwd(),L=JSON.parse(W.readFileSync(`${g}/package.json`,"utf-8")),w=`${g}/${f.srcDir}`,me=`${g}/resources`,$=`${w}/${f.nodesDirName}`,F=`${g}/${f.libCacheDir}`;function pe(){return glob.globSync(`${$}/*`,{withFileTypes:!0}).map(t=>{let r=t.fullpath(),o=`${r}/${f.nodes.editor.dirName}`,s=r.replace(g,"").slice(1),n=`${s}/${f.nodes.editor.dirName}`,m=glob.globSync(`${o}/**/*.scss`),c=glob.globSync(`${r}/doc.mdx`),l=glob.globSync(`${r}/doc.md`),a=radash.dash(t.name);return {fullEditorPath:o,fullPath:r,name:t.name,pascalName:radash.pascal(t.name),dashName:a,relativeEditorPath:n,relativePath:s,nodeIdentifier:`${d.packageNameSlug}-${a}`,fullControllerPath:`${r}/${f.nodes.controllerName}.ts`,editor:{tsPath:`${o}/${f.nodes.editor.tsName}.ts`,htmlPath:`${o}/${f.nodes.editor.htmlName}.html`,scssFiles:m},doc:{mdxFiles:c,mdFiles:l}}})}function D(){return {currentDir:g,pathSrcDir:w,pathSrcNodesDir:$,additionalResourcesDir:me,pathDist:`${g}/${f.builder.outputDir}`,cacheDirFiles:{controllerIndex:`${F}/controller-index.ts`,editorIndex:`${F}/editor-index.ts`},pathLibCacheDir:F,packageName:L.name,packageNameSlug:ae(L.name),config:f,getResolvedSrcPathsScss:()=>glob.globSync(`${w}/**/*.scss`,{ignore:`${$}/**/*.scss`}),getResolvedNodesPaths:()=>glob.globSync(`${$}/*`),getListNodesFull:()=>pe()}}var d=D();function R(e=!1){return i(this,null,function*(){return H__default.default.build({entryPoints:[d.cacheDirFiles.controllerIndex],outfile:`${d.pathDist}/index.js`,bundle:!0,minify:e,minifyWhitespace:e,minifyIdentifiers:e,minifySyntax:e,platform:"node",format:"cjs",target:"es2018",loader:{".ts":"ts"},packages:"external"})})}function T(e=!1){return i(this,null,function*(){let t=yield H__default.default.build({entryPoints:[d.cacheDirFiles.editorIndex],bundle:!0,platform:"browser",format:"iife",target:"es6",sourcemap:!1,minify:e,minifyWhitespace:e,minifySyntax:e,minifyIdentifiers:e,legalComments:"none",inject:[M__default.default.resolve(__dirname,"..","./editor/global-solid.ts")],write:!1,loader:{".ts":"ts"}});return t.outputFiles&&t.outputFiles.length>0?t.outputFiles[0].text:""})}function k(){let e=d.getListNodesFull(),t=[];for(let r of e)if(r.doc.mdFiles[0]){let s=W__default.default.readFileSync(r.doc.mdFiles[0],"utf-8"),n=`
2
- <script type="text/markdown" data-help-name="${r.name}">
3
- ${s}
4
- </script>
5
- `;t.push(n);}return t.length?t.join(`
6
- `):""}function _(e){return e.trim().replace(/\n\s+/g,"")}function G(e){return i(this,null,function*(){for(let t of e)try{let r=M__default.default.resolve(t),o=yield C__default.default.stat(r).catch(()=>null);o!=null&&o.isDirectory()?(yield C__default.default.rm(r,{recursive:!0,force:!0}),console.log(`Successfully cleaned: ${r}`)):console.log(`Path does not exist or is not a directory: ${r}`);}catch(r){console.error(`Error cleaning path (${t}): ${r}`);}})}function B(e){let t=M__default.default.resolve(e);W__default.default.existsSync(t)||W__default.default.mkdirSync(t,{recursive:!0});}function h(e,t){return i(this,null,function*(){try{yield C__default.default.writeFile(e,t);}catch(r){console.error("Error writing controller index:",r);}})}function xe(e){return i(this,null,function*(){return htmlMinifierTerser.minify(e,{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!1,useShortDoctype:!0,removeEmptyAttributes:!1,minifyCSS:!1,minifyJS:!1})})}function ye(e,t){return `
7
- <script type="text/html" data-template-name="${e}">
8
- ${t}
9
- </script>
10
- `}function he(e,t,r=!1){return i(this,null,function*(){let o=W.readFileSync(e.editor.htmlPath,"utf8"),s=`
11
- <div class="${t}">
12
- <div class="${e.nodeIdentifier}">${o}</div>
13
- </div>
14
- `,n=r?yield xe(s):s,m=ye(e.name,n);return {nodeName:e.name,nodeIdentifier:e.nodeIdentifier,html:n,wrappedHtml:m}})}function J(e){return i(this,null,function*(){let{nodes:t,minify:r=!1}=e,o=yield Promise.all(t.map(n=>he(n,e.packageNameSlug,r)));return {html:o.map(n=>n.html).join("").trim(),allWrappedHtml:o.map(n=>r?_(n.wrappedHtml):n.wrappedHtml).join("").trim()}})}function De(e,t){return i(this,null,function*(){return (yield V__default.default([$e__default.default({content:[{raw:t,extension:"html"}]}),Se__default.default,Pe__default.default({preset:"default"})]).process(e,{from:void 0})).css})}function Ce(e){return U__namespace.compile(e,{style:"expanded"}).css}function q(e){let t={};for(let r=0;r<e.length;r++){let o=e[r];t[o]=Ce(o);}return t}function je(e){return e.some(r=>r.editor.scssFiles.length)?e.filter(r=>r.editor.scssFiles.length).map(r=>{let o=q(r.editor.scssFiles),s=Object.values(o).join("");return {name:r.name,mergedCompiledStyles:s,scssFinal:`
15
- #${r.nodeIdentifier}{
16
- ${s}
17
- }`}}):[]}function Ie(r){return i(this,arguments,function*(e,t={}){let s=P(P({},{content:[{raw:e}],theme:{}}),t),n=glob.globSync(`${M__default.default.resolve(__dirname,"..")}/${d.config.nodes.editor.dirName}/assets/tailwind.scss`)[0],m=n.length?W__default.default.readFileSync(n,"utf8"):"";return (yield V__default.default([we__default.default(s),re("autoprefixer")]).process(m,{from:void 0})).css})}function Oe(){let e=d.getResolvedSrcPathsScss(),t=q([...e]);return Object.values(t).join("")}function z(e){return i(this,null,function*(){let{rawHtml:t,minify:r=!1,nodes:o}=e||{},s=Oe(),n=je(o),m=yield Ie(t),c=p=>`.${d.packageNameSlug}{${p}}`,l=n.map(p=>p.scssFinal).join(`
18
- `),a=c(`${m}${s}${l}`);return r?De(a,t):a})}function K(e){return i(this,null,function*(){let{minify:t=!1}=e||{},r=yield J({minify:t,nodes:e.nodes,packageNameSlug:d.packageNameSlug}),o=yield T(t),s=yield z({rawHtml:r.html,minify:t,nodes:e.nodes}),n=k(),m=`<script type="application/javascript">${o.trim()}</script>`,c=`<style>${s}</style>`;return `
19
- ${r.allWrappedHtml}
20
- ${c}
21
- ${m}
22
- ${n}`.trim()})}var Q=`
23
- // generated by @keload/node-red-dev-xp
24
- // do not modify this file
25
- // do not commit this file
26
- `;function X(e){return i(this,null,function*(){return `
27
- ${Q}
28
- import type { NodeAPI } from 'node-red';
29
- ${e.map(t=>`import ${t.pascalName} from '${t.fullControllerPath}';`).join(`
30
- `)}
31
-
32
-
33
- export default async (RED: NodeAPI): Promise<void> => {
34
- global.RED = RED;
35
-
36
- ${e.map(t=>`// @ts-ignore
37
- global.RED.nodes.registerType('${t.name}', ${t.pascalName});`).join(`
38
- `)}
39
- };
40
- `.trim()})}function Y(e){return i(this,null,function*(){return `
41
- ${Q}
42
- import type { NodeAPI } from 'node-red';
43
- ${e.map(t=>`import ${t.pascalName} from '${t.editor.tsPath}';`).join(`
44
- `)}
45
-
46
- declare const RED: NodeAPI;
47
-
48
- ${e.map(t=>`// @ts-ignore
49
- window.RED.nodes.registerType('${t.name}', ${t.pascalName});`).join(`
50
- `)}
51
- `.trim()})}var u=D();function Wt(e){return i(this,null,function*(){let{minify:t=!1}=e||{},r=u.getListNodesFull();B(u.pathLibCacheDir),yield G([u.pathDist]);let o=X(r).then(n=>{h(`${u.cacheDirFiles.controllerIndex}`,n).then(()=>{R(t);});}),s=Y(r).then(n=>{h(`${u.cacheDirFiles.editorIndex}`,n).then(()=>{K({minify:t,nodes:r}).then(m=>i(this,null,function*(){yield h(`${u.pathDist}/index.html`,m);}));});});yield Promise.all([o,s,h(`${u.pathLibCacheDir}/config.json`,JSON.stringify(u.config,null,2))]);})}exports.buildAllPackage=Wt;exports.buildFinalDistIndexContent=K;exports.currentInstance=u;exports.generateCSSFromHTMLWithTailwind=Ie;exports.getAllCompiledStyles=z;exports.getControllerIndexContent=X;exports.getEditorIndexContent=Y;exports.getNodesHtml=J;exports.getNodesStyles=je;exports.getSrcStyles=Oe;exports.handleAllDoc=k;exports.minifyHtml=xe;
@@ -1,143 +0,0 @@
1
- type Config = {
2
- libCacheDir: string;
3
- srcDir: string;
4
- nodesDirName: string;
5
- nodes: {
6
- controllerName: string;
7
- editor: {
8
- dirName: string;
9
- htmlName: string;
10
- tsName: string;
11
- };
12
- };
13
- builder: {
14
- outputDir: string;
15
- };
16
- watcher: {
17
- nodeRed: {
18
- enabled: boolean;
19
- path: string | undefined;
20
- url: string;
21
- };
22
- };
23
- };
24
-
25
- declare const currentInstance$1: {
26
- currentDir: string;
27
- pathSrcDir: string;
28
- pathSrcNodesDir: string;
29
- additionalResourcesDir: string;
30
- pathDist: string;
31
- cacheDirFiles: {
32
- controllerIndex: string;
33
- editorIndex: string;
34
- };
35
- pathLibCacheDir: string;
36
- packageName: any;
37
- packageNameSlug: string;
38
- config: Config;
39
- getResolvedSrcPathsScss: () => string[];
40
- getResolvedNodesPaths: () => string[];
41
- getListNodesFull: () => {
42
- fullEditorPath: string;
43
- fullPath: string;
44
- name: string;
45
- pascalName: string;
46
- dashName: string;
47
- relativeEditorPath: string;
48
- relativePath: string;
49
- nodeIdentifier: string;
50
- fullControllerPath: string;
51
- editor: {
52
- tsPath: string;
53
- htmlPath: string;
54
- scssFiles: string[];
55
- };
56
- doc: {
57
- mdxFiles: string[];
58
- mdFiles: string[];
59
- };
60
- }[];
61
- };
62
- type ListNodesFull = ReturnType<typeof currentInstance$1.getListNodesFull>;
63
-
64
- declare function getControllerIndexContent(nodes: ListNodesFull): Promise<string>;
65
- declare function getEditorIndexContent(nodes: ListNodesFull): Promise<string>;
66
-
67
- declare function getNodesStyles(nodes: ListNodesFull): {
68
- name: string;
69
- mergedCompiledStyles: string;
70
- scssFinal: string;
71
- }[];
72
- declare function generateCSSFromHTMLWithTailwind(htmlString: string, tailwindConfig?: any): Promise<string>;
73
- declare function getSrcStyles(): string;
74
- type GetAllCompiledStylesParams = {
75
- rawHtml: string;
76
- minify?: boolean;
77
- nodes: ListNodesFull;
78
- };
79
- declare function getAllCompiledStyles(params: GetAllCompiledStylesParams): Promise<string>;
80
-
81
- declare function minifyHtml(content: string): Promise<string>;
82
- type GetNodesHtmlParams = {
83
- nodes: ListNodesFull;
84
- minify?: boolean;
85
- packageNameSlug: string;
86
- };
87
- declare function getNodesHtml(params: GetNodesHtmlParams): Promise<{
88
- html: string;
89
- allWrappedHtml: string;
90
- }>;
91
-
92
- declare function buildFinalDistIndexContent(params?: WriteFinalDistIndexContentParams): Promise<string>;
93
- type WriteFinalDistIndexContentParams = {
94
- minify?: boolean;
95
- nodes: ListNodesFull;
96
- };
97
-
98
- declare function handleAllDoc(): string;
99
-
100
- declare const currentInstance: {
101
- currentDir: string;
102
- pathSrcDir: string;
103
- pathSrcNodesDir: string;
104
- additionalResourcesDir: string;
105
- pathDist: string;
106
- cacheDirFiles: {
107
- controllerIndex: string;
108
- editorIndex: string;
109
- };
110
- pathLibCacheDir: string;
111
- packageName: any;
112
- packageNameSlug: string;
113
- config: Config;
114
- getResolvedSrcPathsScss: () => string[];
115
- getResolvedNodesPaths: () => string[];
116
- getListNodesFull: () => {
117
- fullEditorPath: string;
118
- fullPath: string;
119
- name: string;
120
- pascalName: string;
121
- dashName: string;
122
- relativeEditorPath: string;
123
- relativePath: string;
124
- nodeIdentifier: string;
125
- fullControllerPath: string;
126
- editor: {
127
- tsPath: string;
128
- htmlPath: string;
129
- scssFiles: string[];
130
- };
131
- doc: {
132
- mdxFiles: string[];
133
- mdFiles: string[];
134
- };
135
- }[];
136
- };
137
-
138
- type BuildAllPackageParams = {
139
- minify?: boolean;
140
- };
141
- declare function buildAllPackage(params?: BuildAllPackageParams): Promise<void>;
142
-
143
- export { buildAllPackage, buildFinalDistIndexContent, currentInstance, generateCSSFromHTMLWithTailwind, getAllCompiledStyles, getControllerIndexContent, getEditorIndexContent, getNodesHtml, getNodesStyles, getSrcStyles, handleAllDoc, minifyHtml };
@@ -1,143 +0,0 @@
1
- type Config = {
2
- libCacheDir: string;
3
- srcDir: string;
4
- nodesDirName: string;
5
- nodes: {
6
- controllerName: string;
7
- editor: {
8
- dirName: string;
9
- htmlName: string;
10
- tsName: string;
11
- };
12
- };
13
- builder: {
14
- outputDir: string;
15
- };
16
- watcher: {
17
- nodeRed: {
18
- enabled: boolean;
19
- path: string | undefined;
20
- url: string;
21
- };
22
- };
23
- };
24
-
25
- declare const currentInstance$1: {
26
- currentDir: string;
27
- pathSrcDir: string;
28
- pathSrcNodesDir: string;
29
- additionalResourcesDir: string;
30
- pathDist: string;
31
- cacheDirFiles: {
32
- controllerIndex: string;
33
- editorIndex: string;
34
- };
35
- pathLibCacheDir: string;
36
- packageName: any;
37
- packageNameSlug: string;
38
- config: Config;
39
- getResolvedSrcPathsScss: () => string[];
40
- getResolvedNodesPaths: () => string[];
41
- getListNodesFull: () => {
42
- fullEditorPath: string;
43
- fullPath: string;
44
- name: string;
45
- pascalName: string;
46
- dashName: string;
47
- relativeEditorPath: string;
48
- relativePath: string;
49
- nodeIdentifier: string;
50
- fullControllerPath: string;
51
- editor: {
52
- tsPath: string;
53
- htmlPath: string;
54
- scssFiles: string[];
55
- };
56
- doc: {
57
- mdxFiles: string[];
58
- mdFiles: string[];
59
- };
60
- }[];
61
- };
62
- type ListNodesFull = ReturnType<typeof currentInstance$1.getListNodesFull>;
63
-
64
- declare function getControllerIndexContent(nodes: ListNodesFull): Promise<string>;
65
- declare function getEditorIndexContent(nodes: ListNodesFull): Promise<string>;
66
-
67
- declare function getNodesStyles(nodes: ListNodesFull): {
68
- name: string;
69
- mergedCompiledStyles: string;
70
- scssFinal: string;
71
- }[];
72
- declare function generateCSSFromHTMLWithTailwind(htmlString: string, tailwindConfig?: any): Promise<string>;
73
- declare function getSrcStyles(): string;
74
- type GetAllCompiledStylesParams = {
75
- rawHtml: string;
76
- minify?: boolean;
77
- nodes: ListNodesFull;
78
- };
79
- declare function getAllCompiledStyles(params: GetAllCompiledStylesParams): Promise<string>;
80
-
81
- declare function minifyHtml(content: string): Promise<string>;
82
- type GetNodesHtmlParams = {
83
- nodes: ListNodesFull;
84
- minify?: boolean;
85
- packageNameSlug: string;
86
- };
87
- declare function getNodesHtml(params: GetNodesHtmlParams): Promise<{
88
- html: string;
89
- allWrappedHtml: string;
90
- }>;
91
-
92
- declare function buildFinalDistIndexContent(params?: WriteFinalDistIndexContentParams): Promise<string>;
93
- type WriteFinalDistIndexContentParams = {
94
- minify?: boolean;
95
- nodes: ListNodesFull;
96
- };
97
-
98
- declare function handleAllDoc(): string;
99
-
100
- declare const currentInstance: {
101
- currentDir: string;
102
- pathSrcDir: string;
103
- pathSrcNodesDir: string;
104
- additionalResourcesDir: string;
105
- pathDist: string;
106
- cacheDirFiles: {
107
- controllerIndex: string;
108
- editorIndex: string;
109
- };
110
- pathLibCacheDir: string;
111
- packageName: any;
112
- packageNameSlug: string;
113
- config: Config;
114
- getResolvedSrcPathsScss: () => string[];
115
- getResolvedNodesPaths: () => string[];
116
- getListNodesFull: () => {
117
- fullEditorPath: string;
118
- fullPath: string;
119
- name: string;
120
- pascalName: string;
121
- dashName: string;
122
- relativeEditorPath: string;
123
- relativePath: string;
124
- nodeIdentifier: string;
125
- fullControllerPath: string;
126
- editor: {
127
- tsPath: string;
128
- htmlPath: string;
129
- scssFiles: string[];
130
- };
131
- doc: {
132
- mdxFiles: string[];
133
- mdFiles: string[];
134
- };
135
- }[];
136
- };
137
-
138
- type BuildAllPackageParams = {
139
- minify?: boolean;
140
- };
141
- declare function buildAllPackage(params?: BuildAllPackageParams): Promise<void>;
142
-
143
- export { buildAllPackage, buildFinalDistIndexContent, currentInstance, generateCSSFromHTMLWithTailwind, getAllCompiledStyles, getControllerIndexContent, getEditorIndexContent, getNodesHtml, getNodesStyles, getSrcStyles, handleAllDoc, minifyHtml };
@@ -1,51 +0,0 @@
1
- import W,{readFileSync}from'node:fs';import {cosmiconfigSync}from'cosmiconfig';import {globSync}from'glob';import {dash,pascal}from'radash';import M from'node:path';import H from'esbuild';import {minify}from'html-minifier-terser';import C from'node:fs/promises';import $e from'@fullhuman/postcss-purgecss';import Se from'autoprefixer';import Pe from'cssnano';import V from'postcss';import*as U from'sass';import we from'tailwindcss';var Z=Object.defineProperty;var j=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var I=(e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))ee.call(t,r)&&I(e,r,t[r]);if(j)for(var r of j(t))te.call(t,r)&&I(e,r,t[r]);return e};var re=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var i=(e,t,r)=>new Promise((o,s)=>{var n=l=>{try{c(r.next(l));}catch(a){s(a);}},m=l=>{try{c(r.throw(l));}catch(a){s(a);}},c=l=>l.done?o(l.value):Promise.resolve(l.value).then(n,m);c((r=r.apply(e,t)).next());});function N(e){return Object.prototype.toString.call(e).slice(8,-1)}function x(e){if(N(e)!=="Object")return !1;let t=Object.getPrototypeOf(e);return !!t&&t.constructor===Object&&t===Object.prototype}function b(e){return N(e)==="Symbol"}function O(e,t,r,o){let s={}.propertyIsEnumerable.call(o,t)?"enumerable":"nonenumerable";s==="enumerable"&&(e[t]=r),s==="nonenumerable"&&Object.defineProperty(e,t,{value:r,enumerable:!1,writable:!0,configurable:!0});}function v(e,t,r){if(!x(t))return t;let o={};if(x(e)){let c=Object.getOwnPropertyNames(e),l=Object.getOwnPropertySymbols(e);o=[...c,...l].reduce((a,p)=>{let S=e[p];return (!b(p)&&!Object.getOwnPropertyNames(t).includes(p)||b(p)&&!Object.getOwnPropertySymbols(t).includes(p))&&O(a,p,S,e),a},{});}let s=Object.getOwnPropertyNames(t),n=Object.getOwnPropertySymbols(t);return [...s,...n].reduce((c,l)=>{let a=t[l],p=x(e)?e[l]:void 0;p!==void 0&&x(a)&&(a=v(p,a));let S=a;return O(c,l,S,t),c},o)}function E(e,...t){return t.reduce((r,o)=>v(r,o),e)}var A={libCacheDir:".node-red-dx",srcDir:"src",nodesDirName:"nodes",nodes:{controllerName:"index",editor:{dirName:"editor",htmlName:"index",tsName:"index"}},builder:{outputDir:"dist"},watcher:{nodeRed:{enabled:!0,path:"~/.node-red",url:"http://localhost:1880"}}};var le="node-red-dx",ae=e=>e.replace("@","").replace("/","-");function ce(){let e=cosmiconfigSync(le);try{let t=e.search();return E(A,t?t.config:{})}catch(t){throw console.error("Error while loading configuration",t),t}}var f=ce(),g=process.cwd(),L=JSON.parse(readFileSync(`${g}/package.json`,"utf-8")),w=`${g}/${f.srcDir}`,me=`${g}/resources`,$=`${w}/${f.nodesDirName}`,F=`${g}/${f.libCacheDir}`;function pe(){return globSync(`${$}/*`,{withFileTypes:!0}).map(t=>{let r=t.fullpath(),o=`${r}/${f.nodes.editor.dirName}`,s=r.replace(g,"").slice(1),n=`${s}/${f.nodes.editor.dirName}`,m=globSync(`${o}/**/*.scss`),c=globSync(`${r}/doc.mdx`),l=globSync(`${r}/doc.md`),a=dash(t.name);return {fullEditorPath:o,fullPath:r,name:t.name,pascalName:pascal(t.name),dashName:a,relativeEditorPath:n,relativePath:s,nodeIdentifier:`${d.packageNameSlug}-${a}`,fullControllerPath:`${r}/${f.nodes.controllerName}.ts`,editor:{tsPath:`${o}/${f.nodes.editor.tsName}.ts`,htmlPath:`${o}/${f.nodes.editor.htmlName}.html`,scssFiles:m},doc:{mdxFiles:c,mdFiles:l}}})}function D(){return {currentDir:g,pathSrcDir:w,pathSrcNodesDir:$,additionalResourcesDir:me,pathDist:`${g}/${f.builder.outputDir}`,cacheDirFiles:{controllerIndex:`${F}/controller-index.ts`,editorIndex:`${F}/editor-index.ts`},pathLibCacheDir:F,packageName:L.name,packageNameSlug:ae(L.name),config:f,getResolvedSrcPathsScss:()=>globSync(`${w}/**/*.scss`,{ignore:`${$}/**/*.scss`}),getResolvedNodesPaths:()=>globSync(`${$}/*`),getListNodesFull:()=>pe()}}var d=D();function R(e=!1){return i(this,null,function*(){return H.build({entryPoints:[d.cacheDirFiles.controllerIndex],outfile:`${d.pathDist}/index.js`,bundle:!0,minify:e,minifyWhitespace:e,minifyIdentifiers:e,minifySyntax:e,platform:"node",format:"cjs",target:"es2018",loader:{".ts":"ts"},packages:"external"})})}function T(e=!1){return i(this,null,function*(){let t=yield H.build({entryPoints:[d.cacheDirFiles.editorIndex],bundle:!0,platform:"browser",format:"iife",target:"es6",sourcemap:!1,minify:e,minifyWhitespace:e,minifySyntax:e,minifyIdentifiers:e,legalComments:"none",inject:[M.resolve(__dirname,"..","./editor/global-solid.ts")],write:!1,loader:{".ts":"ts"}});return t.outputFiles&&t.outputFiles.length>0?t.outputFiles[0].text:""})}function k(){let e=d.getListNodesFull(),t=[];for(let r of e)if(r.doc.mdFiles[0]){let s=W.readFileSync(r.doc.mdFiles[0],"utf-8"),n=`
2
- <script type="text/markdown" data-help-name="${r.name}">
3
- ${s}
4
- </script>
5
- `;t.push(n);}return t.length?t.join(`
6
- `):""}function _(e){return e.trim().replace(/\n\s+/g,"")}function G(e){return i(this,null,function*(){for(let t of e)try{let r=M.resolve(t),o=yield C.stat(r).catch(()=>null);o!=null&&o.isDirectory()?(yield C.rm(r,{recursive:!0,force:!0}),console.log(`Successfully cleaned: ${r}`)):console.log(`Path does not exist or is not a directory: ${r}`);}catch(r){console.error(`Error cleaning path (${t}): ${r}`);}})}function B(e){let t=M.resolve(e);W.existsSync(t)||W.mkdirSync(t,{recursive:!0});}function h(e,t){return i(this,null,function*(){try{yield C.writeFile(e,t);}catch(r){console.error("Error writing controller index:",r);}})}function xe(e){return i(this,null,function*(){return minify(e,{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!1,useShortDoctype:!0,removeEmptyAttributes:!1,minifyCSS:!1,minifyJS:!1})})}function ye(e,t){return `
7
- <script type="text/html" data-template-name="${e}">
8
- ${t}
9
- </script>
10
- `}function he(e,t,r=!1){return i(this,null,function*(){let o=readFileSync(e.editor.htmlPath,"utf8"),s=`
11
- <div class="${t}">
12
- <div class="${e.nodeIdentifier}">${o}</div>
13
- </div>
14
- `,n=r?yield xe(s):s,m=ye(e.name,n);return {nodeName:e.name,nodeIdentifier:e.nodeIdentifier,html:n,wrappedHtml:m}})}function J(e){return i(this,null,function*(){let{nodes:t,minify:r=!1}=e,o=yield Promise.all(t.map(n=>he(n,e.packageNameSlug,r)));return {html:o.map(n=>n.html).join("").trim(),allWrappedHtml:o.map(n=>r?_(n.wrappedHtml):n.wrappedHtml).join("").trim()}})}function De(e,t){return i(this,null,function*(){return (yield V([$e({content:[{raw:t,extension:"html"}]}),Se,Pe({preset:"default"})]).process(e,{from:void 0})).css})}function Ce(e){return U.compile(e,{style:"expanded"}).css}function q(e){let t={};for(let r=0;r<e.length;r++){let o=e[r];t[o]=Ce(o);}return t}function je(e){return e.some(r=>r.editor.scssFiles.length)?e.filter(r=>r.editor.scssFiles.length).map(r=>{let o=q(r.editor.scssFiles),s=Object.values(o).join("");return {name:r.name,mergedCompiledStyles:s,scssFinal:`
15
- #${r.nodeIdentifier}{
16
- ${s}
17
- }`}}):[]}function Ie(r){return i(this,arguments,function*(e,t={}){let s=P(P({},{content:[{raw:e}],theme:{}}),t),n=globSync(`${M.resolve(__dirname,"..")}/${d.config.nodes.editor.dirName}/assets/tailwind.scss`)[0],m=n.length?W.readFileSync(n,"utf8"):"";return (yield V([we(s),re("autoprefixer")]).process(m,{from:void 0})).css})}function Oe(){let e=d.getResolvedSrcPathsScss(),t=q([...e]);return Object.values(t).join("")}function z(e){return i(this,null,function*(){let{rawHtml:t,minify:r=!1,nodes:o}=e||{},s=Oe(),n=je(o),m=yield Ie(t),c=p=>`.${d.packageNameSlug}{${p}}`,l=n.map(p=>p.scssFinal).join(`
18
- `),a=c(`${m}${s}${l}`);return r?De(a,t):a})}function K(e){return i(this,null,function*(){let{minify:t=!1}=e||{},r=yield J({minify:t,nodes:e.nodes,packageNameSlug:d.packageNameSlug}),o=yield T(t),s=yield z({rawHtml:r.html,minify:t,nodes:e.nodes}),n=k(),m=`<script type="application/javascript">${o.trim()}</script>`,c=`<style>${s}</style>`;return `
19
- ${r.allWrappedHtml}
20
- ${c}
21
- ${m}
22
- ${n}`.trim()})}var Q=`
23
- // generated by @keload/node-red-dev-xp
24
- // do not modify this file
25
- // do not commit this file
26
- `;function X(e){return i(this,null,function*(){return `
27
- ${Q}
28
- import type { NodeAPI } from 'node-red';
29
- ${e.map(t=>`import ${t.pascalName} from '${t.fullControllerPath}';`).join(`
30
- `)}
31
-
32
-
33
- export default async (RED: NodeAPI): Promise<void> => {
34
- global.RED = RED;
35
-
36
- ${e.map(t=>`// @ts-ignore
37
- global.RED.nodes.registerType('${t.name}', ${t.pascalName});`).join(`
38
- `)}
39
- };
40
- `.trim()})}function Y(e){return i(this,null,function*(){return `
41
- ${Q}
42
- import type { NodeAPI } from 'node-red';
43
- ${e.map(t=>`import ${t.pascalName} from '${t.editor.tsPath}';`).join(`
44
- `)}
45
-
46
- declare const RED: NodeAPI;
47
-
48
- ${e.map(t=>`// @ts-ignore
49
- window.RED.nodes.registerType('${t.name}', ${t.pascalName});`).join(`
50
- `)}
51
- `.trim()})}var u=D();function Wt(e){return i(this,null,function*(){let{minify:t=!1}=e||{},r=u.getListNodesFull();B(u.pathLibCacheDir),yield G([u.pathDist]);let o=X(r).then(n=>{h(`${u.cacheDirFiles.controllerIndex}`,n).then(()=>{R(t);});}),s=Y(r).then(n=>{h(`${u.cacheDirFiles.editorIndex}`,n).then(()=>{K({minify:t,nodes:r}).then(m=>i(this,null,function*(){yield h(`${u.pathDist}/index.html`,m);}));});});yield Promise.all([o,s,h(`${u.pathLibCacheDir}/config.json`,JSON.stringify(u.config,null,2))]);})}export{Wt as buildAllPackage,K as buildFinalDistIndexContent,u as currentInstance,Ie as generateCSSFromHTMLWithTailwind,z as getAllCompiledStyles,X as getControllerIndexContent,Y as getEditorIndexContent,J as getNodesHtml,je as getNodesStyles,Oe as getSrcStyles,k as handleAllDoc,xe as minifyHtml};