diff --git a/docs/telegram-bot-playground/assets/index-BdFVq0_I.js b/docs/telegram-bot-playground/assets/index-BdFVq0_I.js new file mode 100644 index 0000000..f06a64d --- /dev/null +++ b/docs/telegram-bot-playground/assets/index-BdFVq0_I.js @@ -0,0 +1,26 @@ +var co=Object.defineProperty;var Un=e=>{throw TypeError(e)};var fo=(e,t,r)=>t in e?co(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var d=(e,t,r)=>fo(e,typeof t!="symbol"?t+"":t,r),zn=(e,t,r)=>t.has(e)||Un("Cannot "+r);var Kn=(e,t,r)=>(zn(e,t,"read from private field"),r?r.call(e):t.get(e)),Hn=(e,t,r)=>t.has(e)?Un("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Wn=(e,t,r,n)=>(zn(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();var pr=!1,gr=!1,ye=[],_r=-1;function ho(e){po(e)}function po(e){ye.includes(e)||ye.push(e),_o()}function go(e){let t=ye.indexOf(e);t!==-1&&t>_r&&ye.splice(t,1)}function _o(){!gr&&!pr&&(pr=!0,queueMicrotask(yo))}function yo(){pr=!1,gr=!0;for(let e=0;ee.effect(t,{scheduler:r=>{yr?ho(r):r()}}),Bi=e.raw}function qn(e){ke=e}function mo(e){let t=()=>{};return[n=>{let i=ke(n);return e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(s=>s())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),Be(i))},i},()=>{t()}]}function Di(e,t){let r=!0,n,i=ke(()=>{let s=e();JSON.stringify(s),r?n=s:queueMicrotask(()=>{t(s,n),n=s}),r=!1});return()=>Be(i)}var Ji=[],Ui=[],zi=[];function xo(e){zi.push(e)}function Xr(e,t){typeof t=="function"?(e._x_cleanups||(e._x_cleanups=[]),e._x_cleanups.push(t)):(t=e,Ui.push(t))}function Ki(e){Ji.push(e)}function Hi(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function Wi(e,t){e._x_attributeCleanups&&Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}function wo(e){var t,r;for((t=e._x_effects)==null||t.forEach(go);(r=e._x_cleanups)!=null&&r.length;)e._x_cleanups.pop()()}var Zr=new MutationObserver(rn),Qr=!1;function en(){Zr.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),Qr=!0}function qi(){So(),Zr.disconnect(),Qr=!1}var We=[];function So(){let e=Zr.takeRecords();We.push(()=>e.length>0&&rn(e));let t=We.length;queueMicrotask(()=>{if(We.length===t)for(;We.length>0;)We.shift()()})}function x(e){if(!Qr)return e();qi();let t=e();return en(),t}var tn=!1,It=[];function Eo(){tn=!0}function ko(){tn=!1,rn(It),It=[]}function rn(e){if(tn){It=It.concat(e);return}let t=[],r=new Set,n=new Map,i=new Map;for(let s=0;s{a.nodeType===1&&a._x_marker&&r.add(a)}),e[s].addedNodes.forEach(a=>{if(a.nodeType===1){if(r.has(a)){r.delete(a);return}a._x_marker||t.push(a)}})),e[s].type==="attributes")){let a=e[s].target,o=e[s].attributeName,u=e[s].oldValue,l=()=>{n.has(a)||n.set(a,[]),n.get(a).push({name:o,value:a.getAttribute(o)})},c=()=>{i.has(a)||i.set(a,[]),i.get(a).push(o)};a.hasAttribute(o)&&u===null?l():a.hasAttribute(o)?(c(),l()):c()}i.forEach((s,a)=>{Wi(a,s)}),n.forEach((s,a)=>{Ji.forEach(o=>o(a,s))});for(let s of r)t.some(a=>a.contains(s))||Ui.forEach(a=>a(s));for(let s of t)s.isConnected&&zi.forEach(a=>a(s));t=null,r=null,n=null,i=null}function Vi(e){return ht(je(e))}function dt(e,t,r){return e._x_dataStack=[t,...je(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function je(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?je(e.host):e.parentNode?je(e.parentNode):[]}function ht(e){return new Proxy({objects:e},Oo)}var Oo={ownKeys({objects:e}){return Array.from(new Set(e.flatMap(t=>Object.keys(t))))},has({objects:e},t){return t==Symbol.unscopables?!1:e.some(r=>Object.prototype.hasOwnProperty.call(r,t)||Reflect.has(r,t))},get({objects:e},t,r){return t=="toJSON"?Co:Reflect.get(e.find(n=>Reflect.has(n,t))||{},t,r)},set({objects:e},t,r,n){const i=e.find(a=>Object.prototype.hasOwnProperty.call(a,t))||e[e.length-1],s=Object.getOwnPropertyDescriptor(i,t);return s!=null&&s.set&&(s!=null&&s.get)?s.set.call(n,r)||!0:Reflect.set(i,t,r)}};function Co(){return Reflect.ownKeys(this).reduce((t,r)=>(t[r]=Reflect.get(this,r),t),{})}function Gi(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([s,{value:a,enumerable:o}])=>{if(o===!1||a===void 0||typeof a=="object"&&a!==null&&a.__v_skip)return;let u=i===""?s:`${i}.${s}`;typeof a=="object"&&a!==null&&a._x_interceptor?n[s]=a.initialize(e,u,s):t(a)&&a!==n&&!(a instanceof Element)&&r(a,u)})};return r(e)}function Yi(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,s){return e(this.initialValue,()=>Ao(n,i),a=>br(n,i,a),i,s)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(s,a,o)=>{let u=n.initialize(s,a,o);return r.initialValue=u,i(s,a,o)}}else r.initialValue=n;return r}}function Ao(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function br(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),br(e[t[0]],t.slice(1),r)}}var Xi={};function W(e,t){Xi[e]=t}function vr(e,t){let r=Mo(t);return Object.entries(Xi).forEach(([n,i])=>{Object.defineProperty(e,`$${n}`,{get(){return i(t,r)},enumerable:!1})}),e}function Mo(e){let[t,r]=ns(e),n={interceptor:Yi,...t};return Xr(e,r),n}function Io(e,t,r,...n){try{return r(...n)}catch(i){et(i,e,t)}}function et(e,t,r=void 0){e=Object.assign(e??{message:"No error message given."},{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} + +${r?'Expression: "'+r+`" + +`:""}`,t),setTimeout(()=>{throw e},0)}var Ot=!0;function Zi(e){let t=Ot;Ot=!1;let r=e();return Ot=t,r}function be(e,t,r={}){let n;return N(e,t)(i=>n=i,r),n}function N(...e){return Qi(...e)}var Qi=es;function To(e){Qi=e}function es(e,t){let r={};vr(r,e);let n=[r,...je(e)],i=typeof t=="function"?jo(n,t):$o(n,t,e);return Io.bind(null,e,t,i)}function jo(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let s=t.apply(ht([n,...e]),i);Tt(r,s)}}var ir={};function No(e,t){if(ir[e])return ir[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e.trim())||/^(let|const)\s/.test(e.trim())?`(async()=>{ ${e} })()`:e,s=(()=>{try{let a=new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`);return Object.defineProperty(a,"name",{value:`[Alpine] ${e}`}),a}catch(a){return et(a,t,e),Promise.resolve()}})();return ir[e]=s,s}function $o(e,t,r){let n=No(t,r);return(i=()=>{},{scope:s={},params:a=[]}={})=>{n.result=void 0,n.finished=!1;let o=ht([s,...e]);if(typeof n=="function"){let u=n(n,o).catch(l=>et(l,r,t));n.finished?(Tt(i,n.result,o,a,r),n.result=void 0):u.then(l=>{Tt(i,l,o,a,r)}).catch(l=>et(l,r,t)).finally(()=>n.result=void 0)}}}function Tt(e,t,r,n,i){if(Ot&&typeof t=="function"){let s=t.apply(r,n);s instanceof Promise?s.then(a=>Tt(e,a,r,n)).catch(a=>et(a,i,t)):e(s)}else typeof t=="object"&&t instanceof Promise?t.then(s=>e(s)):e(t)}var nn="x-";function De(e=""){return nn+e}function Ro(e){nn=e}var jt={};function S(e,t){return jt[e]=t,{before(r){if(!jt[r]){console.warn(String.raw`Cannot find directive \`${r}\`. \`${e}\` will use the default order of execution`);return}const n=ge.indexOf(r);ge.splice(n>=0?n:ge.indexOf("DEFAULT"),0,e)}}}function Lo(e){return Object.keys(jt).includes(e)}function sn(e,t,r){if(t=Array.from(t),e._x_virtualDirectives){let s=Object.entries(e._x_virtualDirectives).map(([o,u])=>({name:o,value:u})),a=ts(s);s=s.map(o=>a.find(u=>u.name===o.name)?{name:`x-bind:${o.name}`,value:`"${o.value}"`}:o),t=t.concat(s)}let n={};return t.map(as((s,a)=>n[s]=a)).filter(us).map(Bo(n,r)).sort(Do).map(s=>Fo(e,s))}function ts(e){return Array.from(e).map(as()).filter(t=>!us(t))}var mr=!1,Ge=new Map,rs=Symbol();function Po(e){mr=!0;let t=Symbol();rs=t,Ge.set(t,[]);let r=()=>{for(;Ge.get(t).length;)Ge.get(t).shift()();Ge.delete(t)},n=()=>{mr=!1,r()};e(r),n()}function ns(e){let t=[],r=o=>t.push(o),[n,i]=mo(e);return t.push(i),[{Alpine:pt,effect:n,cleanup:r,evaluateLater:N.bind(N,e),evaluate:be.bind(be,e)},()=>t.forEach(o=>o())]}function Fo(e,t){let r=()=>{},n=jt[t.type]||r,[i,s]=ns(e);Hi(e,t.original,s);let a=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,i),n=n.bind(n,e,t,i),mr?Ge.get(rs).push(n):n())};return a.runCleanups=s,a}var is=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),ss=e=>e;function as(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=os.reduce((s,a)=>a(s),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var os=[];function an(e){os.push(e)}function us({name:e}){return ls().test(e)}var ls=()=>new RegExp(`^${nn}([^:^.]+)\\b`);function Bo(e,t){return({name:r,value:n})=>{let i=r.match(ls()),s=r.match(/:([a-zA-Z0-9\-_:]+)/),a=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],o=t||e[r]||r;return{type:i?i[1]:null,value:s?s[1]:null,modifiers:a.map(u=>u.replace(".","")),expression:n,original:o}}}var xr="DEFAULT",ge=["ignore","ref","data","id","anchor","bind","init","for","model","modelable","transition","show","if",xr,"teleport"];function Do(e,t){let r=ge.indexOf(e.type)===-1?xr:e.type,n=ge.indexOf(t.type)===-1?xr:t.type;return ge.indexOf(r)-ge.indexOf(n)}function Xe(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}function Se(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>Se(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)Se(n,t),n=n.nextElementSibling}function D(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}var Vn=!1;function Jo(){Vn&&D("Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems."),Vn=!0,document.body||D("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's ` + diff --git a/package.json b/package.json index 421a297..053b348 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "type": "module", "dependencies": { "@edge-runtime/vm": "^5.0.0", - "@effect-ak/tg-bot-client": "file://Users/alex/projects/effect-ak-org/tg-bot-client/effect-ak-tg-bot-client-0.3.3.tgz", + "@effect-ak/tg-bot-client": "^0.5.1", "@monaco-editor/loader": "^1.4.0", "@types/alpinejs": "^3.13.11", "@types/node": "^22.10.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 087cff6..2e064fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 '@effect-ak/tg-bot-client': - specifier: file://Users/alex/projects/effect-ak-org/tg-bot-client/effect-ak-tg-bot-client-0.3.3.tgz - version: file:../tg-bot-client/effect-ak-tg-bot-client-0.3.3.tgz + specifier: ^0.5.1 + version: 0.5.1 '@monaco-editor/loader': specifier: ^1.4.0 version: 1.4.0(monaco-editor@0.52.2) @@ -22,25 +22,25 @@ importers: version: 3.13.11 '@types/node': specifier: ^22.10.5 - version: 22.10.7 + version: 22.13.0 alpinejs: specifier: ^3.14.8 version: 3.14.8 effect: specifier: ^3.12.6 - version: 3.12.6 + version: 3.12.7 monaco-editor: specifier: ^0.52.2 version: 0.52.2 vite: specifier: ^6.0.11 - version: 6.0.11(@types/node@22.10.7) + version: 6.0.11(@types/node@22.13.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(vite@6.0.11(@types/node@22.10.7)) + version: 5.1.4(vite@6.0.11(@types/node@22.13.0)) vitest: specifier: ^3.0.3 - version: 3.0.3(@edge-runtime/vm@5.0.0)(@types/node@22.10.7) + version: 3.0.4(@edge-runtime/vm@5.0.0)(@types/node@22.13.0) packages: @@ -52,9 +52,8 @@ packages: resolution: {integrity: sha512-NKBGBSIKUG584qrS1tyxVpX/AKJKQw5HgjYEnPLC0QsTw79JrGn+qUr8CXFb955Iy7GUdiiUv1rJ6JBGvaKb6w==, tarball: https://registry.npmjs.org/@edge-runtime/vm/-/vm-5.0.0.tgz} engines: {node: '>=18'} - '@effect-ak/tg-bot-client@file:../tg-bot-client/effect-ak-tg-bot-client-0.3.3.tgz': - resolution: {integrity: sha512-AImFTvzSo6jDaq9dPzDICPsshhabVkpG8vqEL0mxvaX3R06lkF/NhukxZZwZ22fu1LUSSnqQgXBu2rGMQpk/7g==, tarball: file:../tg-bot-client/effect-ak-tg-bot-client-0.3.3.tgz} - version: 0.3.3 + '@effect-ak/tg-bot-client@0.5.1': + resolution: {integrity: sha512-+e0PUXM8fzsdi/uU6CbJxA/sr9eMtU0bt3i1HUxc8UGwpqSz4ugPQSo1c+wXHVuQm8Zm3cQPdeCr+GcPbWxqLA==, tarball: https://registry.npmjs.org/@effect-ak/tg-bot-client/-/tg-bot-client-0.5.1.tgz} '@esbuild/aix-ppc64@0.24.2': resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz} @@ -214,98 +213,98 @@ packages: peerDependencies: monaco-editor: '>= 0.21.0 < 1' - '@rollup/rollup-android-arm-eabi@4.31.0': - resolution: {integrity: sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz} + '@rollup/rollup-android-arm-eabi@4.34.1': + resolution: {integrity: sha512-kwctwVlswSEsr4ljpmxKrRKp1eG1v2NAhlzFzDf1x1OdYaMjBYjDCbHkzWm57ZXzTwqn8stMXgROrnMw8dJK3w==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.1.tgz} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.31.0': - resolution: {integrity: sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz} + '@rollup/rollup-android-arm64@4.34.1': + resolution: {integrity: sha512-4H5ZtZitBPlbPsTv6HBB8zh1g5d0T8TzCmpndQdqq20Ugle/nroOyDMf9p7f88Gsu8vBLU78/cuh8FYHZqdXxw==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.1.tgz} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.31.0': - resolution: {integrity: sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz} + '@rollup/rollup-darwin-arm64@4.34.1': + resolution: {integrity: sha512-f2AJ7Qwx9z25hikXvg+asco8Sfuc5NCLg8rmqQBIOUoWys5sb/ZX9RkMZDPdnnDevXAMJA5AWLnRBmgdXGEUiA==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.1.tgz} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.31.0': - resolution: {integrity: sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz} + '@rollup/rollup-darwin-x64@4.34.1': + resolution: {integrity: sha512-+/2JBrRfISCsWE4aEFXxd+7k9nWGXA8+wh7ZUHn/u8UDXOU9LN+QYKKhd57sIn6WRcorOnlqPMYFIwie/OHXWw==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.1.tgz} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.31.0': - resolution: {integrity: sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz} + '@rollup/rollup-freebsd-arm64@4.34.1': + resolution: {integrity: sha512-SUeB0pYjIXwT2vfAMQ7E4ERPq9VGRrPR7Z+S4AMssah5EHIilYqjWQoTn5dkDtuIJUSTs8H+C9dwoEcg3b0sCA==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.1.tgz} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.31.0': - resolution: {integrity: sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz} + '@rollup/rollup-freebsd-x64@4.34.1': + resolution: {integrity: sha512-L3T66wAZiB/ooiPbxz0s6JEX6Sr2+HfgPSK+LMuZkaGZFAFCQAHiP3dbyqovYdNaiUXcl9TlgnIbcsIicAnOZg==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.1.tgz} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.31.0': - resolution: {integrity: sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz} + '@rollup/rollup-linux-arm-gnueabihf@4.34.1': + resolution: {integrity: sha512-UBXdQ4+ATARuFgsFrQ+tAsKvBi/Hly99aSVdeCUiHV9dRTTpMU7OrM3WXGys1l40wKVNiOl0QYY6cZQJ2xhKlQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.1.tgz} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.31.0': - resolution: {integrity: sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz} + '@rollup/rollup-linux-arm-musleabihf@4.34.1': + resolution: {integrity: sha512-m/yfZ25HGdcCSwmopEJm00GP7xAUyVcBPjttGLRAqZ60X/bB4Qn6gP7XTwCIU6bITeKmIhhwZ4AMh2XLro+4+w==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.1.tgz} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.31.0': - resolution: {integrity: sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz} + '@rollup/rollup-linux-arm64-gnu@4.34.1': + resolution: {integrity: sha512-Wy+cUmFuvziNL9qWRRzboNprqSQ/n38orbjRvd6byYWridp5TJ3CD+0+HUsbcWVSNz9bxkDUkyASGP0zS7GAvg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.1.tgz} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.31.0': - resolution: {integrity: sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz} + '@rollup/rollup-linux-arm64-musl@4.34.1': + resolution: {integrity: sha512-CQ3MAGgiFmQW5XJX5W3wnxOBxKwFlUAgSXFA2SwgVRjrIiVt5LHfcQLeNSHKq5OEZwv+VCBwlD1+YKCjDG8cpg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.1.tgz} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.31.0': - resolution: {integrity: sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz} + '@rollup/rollup-linux-loongarch64-gnu@4.34.1': + resolution: {integrity: sha512-rSzb1TsY4lSwH811cYC3OC2O2mzNMhM13vcnA7/0T6Mtreqr3/qs6WMDriMRs8yvHDI54qxHgOk8EV5YRAHFbw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.1.tgz} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.31.0': - resolution: {integrity: sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz} + '@rollup/rollup-linux-powerpc64le-gnu@4.34.1': + resolution: {integrity: sha512-fwr0n6NS0pG3QxxlqVYpfiY64Fd1Dqd8Cecje4ILAV01ROMp4aEdCj5ssHjRY3UwU7RJmeWd5fi89DBqMaTawg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.1.tgz} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.31.0': - resolution: {integrity: sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz} + '@rollup/rollup-linux-riscv64-gnu@4.34.1': + resolution: {integrity: sha512-4uJb9qz7+Z/yUp5RPxDGGGUcoh0PnKF33QyWgEZ3X/GocpWb6Mb+skDh59FEt5d8+Skxqs9mng6Swa6B2AmQZg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.1.tgz} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.31.0': - resolution: {integrity: sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz} + '@rollup/rollup-linux-s390x-gnu@4.34.1': + resolution: {integrity: sha512-QlIo8ndocWBEnfmkYqj8vVtIUpIqJjfqKggjy7IdUncnt8BGixte1wDON7NJEvLg3Kzvqxtbo8tk+U1acYEBlw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.1.tgz} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.31.0': - resolution: {integrity: sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz} + '@rollup/rollup-linux-x64-gnu@4.34.1': + resolution: {integrity: sha512-hzpleiKtq14GWjz3ahWvJXgU1DQC9DteiwcsY4HgqUJUGxZThlL66MotdUEK9zEo0PK/2ADeZGM9LIondE302A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.1.tgz} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.31.0': - resolution: {integrity: sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz} + '@rollup/rollup-linux-x64-musl@4.34.1': + resolution: {integrity: sha512-jqtKrO715hDlvUcEsPn55tZt2TEiBvBtCMkUuU0R6fO/WPT7lO9AONjPbd8II7/asSiNVQHCMn4OLGigSuxVQA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.1.tgz} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.31.0': - resolution: {integrity: sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz} + '@rollup/rollup-win32-arm64-msvc@4.34.1': + resolution: {integrity: sha512-RnHy7yFf2Wz8Jj1+h8klB93N0NHNHXFhNwAmiy9zJdpY7DE01VbEVtPdrK1kkILeIbHGRJjvfBDBhnxBr8kD4g==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.1.tgz} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.31.0': - resolution: {integrity: sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz} + '@rollup/rollup-win32-ia32-msvc@4.34.1': + resolution: {integrity: sha512-i7aT5HdiZIcd7quhzvwQ2oAuX7zPYrYfkrd1QFfs28Po/i0q6kas/oRrzGlDhAEyug+1UfUtkWdmoVlLJj5x9Q==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.1.tgz} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.31.0': - resolution: {integrity: sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz} + '@rollup/rollup-win32-x64-msvc@4.34.1': + resolution: {integrity: sha512-k3MVFD9Oq+laHkw2N2v7ILgoa9017ZMF/inTtHzyTVZjYs9cSH18sdyAf6spBAJIGwJ5UaC7et2ZH1WCdlhkMw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.1.tgz} cpu: [x64] os: [win32] @@ -315,14 +314,14 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz} - '@types/node@22.10.7': - resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==, tarball: https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz} + '@types/node@22.13.0': + resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==, tarball: https://registry.npmjs.org/@types/node/-/node-22.13.0.tgz} - '@vitest/expect@3.0.3': - resolution: {integrity: sha512-SbRCHU4qr91xguu+dH3RUdI5dC86zm8aZWydbp961aIR7G8OYNN6ZiayFuf9WAngRbFOfdrLHCGgXTj3GtoMRQ==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-3.0.3.tgz} + '@vitest/expect@3.0.4': + resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-3.0.4.tgz} - '@vitest/mocker@3.0.3': - resolution: {integrity: sha512-XT2XBc4AN9UdaxJAeIlcSZ0ILi/GzmG5G8XSly4gaiqIvPV3HMTSIDZWJVX6QRJ0PX1m+W8Cy0K9ByXNb/bPIA==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.3.tgz} + '@vitest/mocker@3.0.4': + resolution: {integrity: sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.4.tgz} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 @@ -332,20 +331,20 @@ packages: vite: optional: true - '@vitest/pretty-format@3.0.3': - resolution: {integrity: sha512-gCrM9F7STYdsDoNjGgYXKPq4SkSxwwIU5nkaQvdUxiQ0EcNlez+PdKOVIsUJvh9P9IeIFmjn4IIREWblOBpP2Q==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.3.tgz} + '@vitest/pretty-format@3.0.4': + resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.4.tgz} - '@vitest/runner@3.0.3': - resolution: {integrity: sha512-Rgi2kOAk5ZxWZlwPguRJFOBmWs6uvvyAAR9k3MvjRvYrG7xYvKChZcmnnpJCS98311CBDMqsW9MzzRFsj2gX3g==, tarball: https://registry.npmjs.org/@vitest/runner/-/runner-3.0.3.tgz} + '@vitest/runner@3.0.4': + resolution: {integrity: sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==, tarball: https://registry.npmjs.org/@vitest/runner/-/runner-3.0.4.tgz} - '@vitest/snapshot@3.0.3': - resolution: {integrity: sha512-kNRcHlI4txBGztuJfPEJ68VezlPAXLRT1u5UCx219TU3kOG2DplNxhWLwDf2h6emwmTPogzLnGVwP6epDaJN6Q==, tarball: https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.3.tgz} + '@vitest/snapshot@3.0.4': + resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==, tarball: https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.4.tgz} - '@vitest/spy@3.0.3': - resolution: {integrity: sha512-7/dgux8ZBbF7lEIKNnEqQlyRaER9nkAL9eTmdKJkDO3hS8p59ATGwKOCUDHcBLKr7h/oi/6hP+7djQk8049T2A==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-3.0.3.tgz} + '@vitest/spy@3.0.4': + resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-3.0.4.tgz} - '@vitest/utils@3.0.3': - resolution: {integrity: sha512-f+s8CvyzPtMFY1eZKkIHGhPsQgYo5qCm6O8KZoim9qm1/jT64qBgGpO5tHscNH6BzRHM+edLNOP+3vO8+8pE/A==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-3.0.3.tgz} + '@vitest/utils@3.0.4': + resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-3.0.4.tgz} '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==, tarball: https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz} @@ -385,8 +384,8 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, tarball: https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz} engines: {node: '>=6'} - effect@3.12.6: - resolution: {integrity: sha512-4gNxRpXduuvVv03528sPLGglkCAX9szGBUA6oIG3YL+6ap82JmbVp4OIa+xTurype+H9b4/I4M2ubxDxJJ01Og==, tarball: https://registry.npmjs.org/effect/-/effect-3.12.6.tgz} + effect@3.12.7: + resolution: {integrity: sha512-BsDTgSjLbL12g0+vGn5xkOgOVhRSaR3VeHmjcUb0gLvpXACJ9OgmlfeH+/FaAZwM5+omIF3I/j1gC5KJrbK1Aw==, tarball: https://registry.npmjs.org/effect/-/effect-3.12.7.tgz} es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==, tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz} @@ -415,8 +414,8 @@ packages: globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, tarball: https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz} - loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==, tarball: https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz} + loupe@3.1.3: + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==, tarball: https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz} magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz} @@ -449,8 +448,8 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, tarball: https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz} - rollup@4.31.0: - resolution: {integrity: sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==, tarball: https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz} + rollup@4.34.1: + resolution: {integrity: sha512-iYZ/+PcdLYSGfH3S+dGahlW/RWmsqDhLgj1BT9DH/xXJ0ggZN7xkdP9wipPNjjNLczI+fmMLmTB9pye+d2r4GQ==, tarball: https://registry.npmjs.org/rollup/-/rollup-4.34.1.tgz} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -501,8 +500,8 @@ packages: undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz} - vite-node@3.0.3: - resolution: {integrity: sha512-0sQcwhwAEw/UJGojbhOrnq3HtiZ3tC7BzpAa0lx3QaTX0S3YX70iGcik25UBdB96pmdwjyY2uyKNYruxCDmiEg==, tarball: https://registry.npmjs.org/vite-node/-/vite-node-3.0.3.tgz} + vite-node@3.0.4: + resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==, tarball: https://registry.npmjs.org/vite-node/-/vite-node-3.0.4.tgz} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -554,20 +553,23 @@ packages: yaml: optional: true - vitest@3.0.3: - resolution: {integrity: sha512-dWdwTFUW9rcnL0LyF2F+IfvNQWB0w9DERySCk8VMG75F8k25C7LsZoh6XfCjPvcR8Nb+Lqi9JKr6vnzH7HSrpQ==, tarball: https://registry.npmjs.org/vitest/-/vitest-3.0.3.tgz} + vitest@3.0.4: + resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==, tarball: https://registry.npmjs.org/vitest/-/vitest-3.0.4.tgz} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.0.3 - '@vitest/ui': 3.0.3 + '@vitest/browser': 3.0.4 + '@vitest/ui': 3.0.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true '@types/node': optional: true '@vitest/browser': @@ -592,9 +594,9 @@ snapshots: dependencies: '@edge-runtime/primitives': 6.0.0 - '@effect-ak/tg-bot-client@file:../tg-bot-client/effect-ak-tg-bot-client-0.3.3.tgz': + '@effect-ak/tg-bot-client@0.5.1': dependencies: - effect: 3.12.6 + effect: 3.12.7 '@esbuild/aix-ppc64@0.24.2': optional: true @@ -678,109 +680,109 @@ snapshots: monaco-editor: 0.52.2 state-local: 1.0.7 - '@rollup/rollup-android-arm-eabi@4.31.0': + '@rollup/rollup-android-arm-eabi@4.34.1': optional: true - '@rollup/rollup-android-arm64@4.31.0': + '@rollup/rollup-android-arm64@4.34.1': optional: true - '@rollup/rollup-darwin-arm64@4.31.0': + '@rollup/rollup-darwin-arm64@4.34.1': optional: true - '@rollup/rollup-darwin-x64@4.31.0': + '@rollup/rollup-darwin-x64@4.34.1': optional: true - '@rollup/rollup-freebsd-arm64@4.31.0': + '@rollup/rollup-freebsd-arm64@4.34.1': optional: true - '@rollup/rollup-freebsd-x64@4.31.0': + '@rollup/rollup-freebsd-x64@4.34.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.31.0': + '@rollup/rollup-linux-arm-gnueabihf@4.34.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.31.0': + '@rollup/rollup-linux-arm-musleabihf@4.34.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.31.0': + '@rollup/rollup-linux-arm64-gnu@4.34.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.31.0': + '@rollup/rollup-linux-arm64-musl@4.34.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.31.0': + '@rollup/rollup-linux-loongarch64-gnu@4.34.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.31.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.34.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.31.0': + '@rollup/rollup-linux-riscv64-gnu@4.34.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.31.0': + '@rollup/rollup-linux-s390x-gnu@4.34.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.31.0': + '@rollup/rollup-linux-x64-gnu@4.34.1': optional: true - '@rollup/rollup-linux-x64-musl@4.31.0': + '@rollup/rollup-linux-x64-musl@4.34.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.31.0': + '@rollup/rollup-win32-arm64-msvc@4.34.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.31.0': + '@rollup/rollup-win32-ia32-msvc@4.34.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.31.0': + '@rollup/rollup-win32-x64-msvc@4.34.1': optional: true '@types/alpinejs@3.13.11': {} '@types/estree@1.0.6': {} - '@types/node@22.10.7': + '@types/node@22.13.0': dependencies: undici-types: 6.20.0 - '@vitest/expect@3.0.3': + '@vitest/expect@3.0.4': dependencies: - '@vitest/spy': 3.0.3 - '@vitest/utils': 3.0.3 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.3(vite@6.0.11(@types/node@22.10.7))': + '@vitest/mocker@3.0.4(vite@6.0.11(@types/node@22.13.0))': dependencies: - '@vitest/spy': 3.0.3 + '@vitest/spy': 3.0.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.0.11(@types/node@22.10.7) + vite: 6.0.11(@types/node@22.13.0) - '@vitest/pretty-format@3.0.3': + '@vitest/pretty-format@3.0.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.0.3': + '@vitest/runner@3.0.4': dependencies: - '@vitest/utils': 3.0.3 + '@vitest/utils': 3.0.4 pathe: 2.0.2 - '@vitest/snapshot@3.0.3': + '@vitest/snapshot@3.0.4': dependencies: - '@vitest/pretty-format': 3.0.3 + '@vitest/pretty-format': 3.0.4 magic-string: 0.30.17 pathe: 2.0.2 - '@vitest/spy@3.0.3': + '@vitest/spy@3.0.4': dependencies: tinyspy: 3.0.2 - '@vitest/utils@3.0.3': + '@vitest/utils@3.0.4': dependencies: - '@vitest/pretty-format': 3.0.3 - loupe: 3.1.2 + '@vitest/pretty-format': 3.0.4 + loupe: 3.1.3 tinyrainbow: 2.0.0 '@vue/reactivity@3.1.5': @@ -802,7 +804,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.2 + loupe: 3.1.3 pathval: 2.0.0 check-error@2.1.1: {} @@ -813,7 +815,7 @@ snapshots: deep-eql@5.0.2: {} - effect@3.12.6: + effect@3.12.7: dependencies: fast-check: 3.23.2 @@ -862,7 +864,7 @@ snapshots: globrex@0.1.2: {} - loupe@3.1.2: {} + loupe@3.1.3: {} magic-string@0.30.17: dependencies: @@ -888,29 +890,29 @@ snapshots: pure-rand@6.1.0: {} - rollup@4.31.0: + rollup@4.34.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.31.0 - '@rollup/rollup-android-arm64': 4.31.0 - '@rollup/rollup-darwin-arm64': 4.31.0 - '@rollup/rollup-darwin-x64': 4.31.0 - '@rollup/rollup-freebsd-arm64': 4.31.0 - '@rollup/rollup-freebsd-x64': 4.31.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.31.0 - '@rollup/rollup-linux-arm-musleabihf': 4.31.0 - '@rollup/rollup-linux-arm64-gnu': 4.31.0 - '@rollup/rollup-linux-arm64-musl': 4.31.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.31.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.31.0 - '@rollup/rollup-linux-riscv64-gnu': 4.31.0 - '@rollup/rollup-linux-s390x-gnu': 4.31.0 - '@rollup/rollup-linux-x64-gnu': 4.31.0 - '@rollup/rollup-linux-x64-musl': 4.31.0 - '@rollup/rollup-win32-arm64-msvc': 4.31.0 - '@rollup/rollup-win32-ia32-msvc': 4.31.0 - '@rollup/rollup-win32-x64-msvc': 4.31.0 + '@rollup/rollup-android-arm-eabi': 4.34.1 + '@rollup/rollup-android-arm64': 4.34.1 + '@rollup/rollup-darwin-arm64': 4.34.1 + '@rollup/rollup-darwin-x64': 4.34.1 + '@rollup/rollup-freebsd-arm64': 4.34.1 + '@rollup/rollup-freebsd-x64': 4.34.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.1 + '@rollup/rollup-linux-arm-musleabihf': 4.34.1 + '@rollup/rollup-linux-arm64-gnu': 4.34.1 + '@rollup/rollup-linux-arm64-musl': 4.34.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.1 + '@rollup/rollup-linux-riscv64-gnu': 4.34.1 + '@rollup/rollup-linux-s390x-gnu': 4.34.1 + '@rollup/rollup-linux-x64-gnu': 4.34.1 + '@rollup/rollup-linux-x64-musl': 4.34.1 + '@rollup/rollup-win32-arm64-msvc': 4.34.1 + '@rollup/rollup-win32-ia32-msvc': 4.34.1 + '@rollup/rollup-win32-x64-msvc': 4.34.1 fsevents: 2.3.3 siginfo@2.0.0: {} @@ -937,13 +939,13 @@ snapshots: undici-types@6.20.0: {} - vite-node@3.0.3(@types/node@22.10.7): + vite-node@3.0.4(@types/node@22.13.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 6.0.11(@types/node@22.10.7) + vite: 6.0.11(@types/node@22.13.0) transitivePeerDependencies: - '@types/node' - jiti @@ -958,35 +960,35 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(vite@6.0.11(@types/node@22.10.7)): + vite-tsconfig-paths@5.1.4(vite@6.0.11(@types/node@22.13.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.4 optionalDependencies: - vite: 6.0.11(@types/node@22.10.7) + vite: 6.0.11(@types/node@22.13.0) transitivePeerDependencies: - supports-color - typescript - vite@6.0.11(@types/node@22.10.7): + vite@6.0.11(@types/node@22.13.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 - rollup: 4.31.0 + rollup: 4.34.1 optionalDependencies: - '@types/node': 22.10.7 + '@types/node': 22.13.0 fsevents: 2.3.3 - vitest@3.0.3(@edge-runtime/vm@5.0.0)(@types/node@22.10.7): + vitest@3.0.4(@edge-runtime/vm@5.0.0)(@types/node@22.13.0): dependencies: - '@vitest/expect': 3.0.3 - '@vitest/mocker': 3.0.3(vite@6.0.11(@types/node@22.10.7)) - '@vitest/pretty-format': 3.0.3 - '@vitest/runner': 3.0.3 - '@vitest/snapshot': 3.0.3 - '@vitest/spy': 3.0.3 - '@vitest/utils': 3.0.3 + '@vitest/expect': 3.0.4 + '@vitest/mocker': 3.0.4(vite@6.0.11(@types/node@22.13.0)) + '@vitest/pretty-format': 3.0.4 + '@vitest/runner': 3.0.4 + '@vitest/snapshot': 3.0.4 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 chai: 5.1.2 debug: 4.4.0 expect-type: 1.1.0 @@ -997,12 +999,12 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.0.11(@types/node@22.10.7) - vite-node: 3.0.3(@types/node@22.10.7) + vite: 6.0.11(@types/node@22.13.0) + vite-node: 3.0.4(@types/node@22.13.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 5.0.0 - '@types/node': 22.10.7 + '@types/node': 22.13.0 transitivePeerDependencies: - jiti - less diff --git a/src/common/editor/setup.ts b/src/common/editor/setup.ts index b1da332..29e5753 100644 --- a/src/common/editor/setup.ts +++ b/src/common/editor/setup.ts @@ -1,11 +1,12 @@ import type { Monaco } from "@monaco-editor/loader"; import { fetchText } from "#/common/utils"; +import { CDN_PACKAGE_DTS } from "#/tg-bot-playground/const"; export const setupDts = async ( monaco: Monaco ) => { - const dts = await fetchText("https://cdn.jsdelivr.net/npm/@effect-ak/tg-bot-client@0.3.3/dist/index.d.ts"); + const dts = await fetchText(`https://cdn.jsdelivr.net/npm/${CDN_PACKAGE_DTS}`); monaco.languages.typescript.typescriptDefaults.setExtraLibs([ { @@ -23,4 +24,4 @@ export const setupDts = async ( strict: true }); -} \ No newline at end of file +} diff --git a/src/common/editor/ts-text-model.ts b/src/common/editor/ts-text-model.ts index 17f3caf..8f38cd8 100644 --- a/src/common/editor/ts-text-model.ts +++ b/src/common/editor/ts-text-model.ts @@ -26,41 +26,24 @@ export const makeTsTextModel = getJsCode: async () => { const output = await getTsCode(); const code = output.outputFiles[0].text; - const defaultExport = await getDefaultExport(code); - return { - defaultExport, - serialized: serialize(defaultExport?.default) - } as const; + return code; } } as const } -async function getDefaultExport(code: string) { - try { - const encodedCode = encodeURIComponent(code); - const module = await import(/* @vite-ignore */`data:text/javascript,${encodedCode}`); - const result = module.default; - return { default: result as D }; - } catch (e) { - console.warn("get default error", e); - return undefined; - } - -} - -const serialize = (input: unknown) => { - if (typeof input != "object" || !input) { - return undefined; - } - const result = [] as [string, string][]; - - for (const [key, value] of Object.entries(input)) { - if (typeof value != "function") { - continue; - } - result.push([key, value.toString()]) - } - - return JSON.stringify(Object.fromEntries(result)); -} +// const serialize = (input: unknown) => { +// if (typeof input != "object" || !input) { +// return undefined; +// } +// const result = [] as [string, string][]; + +// for (const [key, value] of Object.entries(input)) { +// if (typeof value != "function") { +// continue; +// } +// result.push([key, value.toString()]) +// } + +// return JSON.stringify(Object.fromEntries(result)); +// } diff --git a/src/common/utils.ts b/src/common/utils.ts index 08d7dc6..0d6617b 100644 --- a/src/common/utils.ts +++ b/src/common/utils.ts @@ -1,7 +1,7 @@ import type { MonacoLoader, Alpine } from "./types"; export const fetchText = (path: string) => - fetch(path).then(_ => _.text()) + fetch(path).then(_ => _.text()); export const getMonacoLoader = () => { if (!("monaco_loader" in window) || typeof window.monaco_loader != "object" || window.monaco_loader == null) { diff --git a/src/tg-bot-playground/bot-launcher/run.ts b/src/tg-bot-playground/bot-launcher/run.ts index a0f5a10..e235654 100644 --- a/src/tg-bot-playground/bot-launcher/run.ts +++ b/src/tg-bot-playground/bot-launcher/run.ts @@ -10,15 +10,10 @@ export const makeRunnableBot = if (!state.bot.token || state.bot.token.length < 10) return; - if (!code.serialized) { - console.warn("Serizalized js code not defined"); - return; - } - worker.postMessage({ command: 'run-bot', token: state.bot.token, - code: code.serialized + code }); state.bot.status = "active" diff --git a/src/tg-bot-playground/const.ts b/src/tg-bot-playground/const.ts new file mode 100644 index 0000000..9c34aad --- /dev/null +++ b/src/tg-bot-playground/const.ts @@ -0,0 +1,3 @@ +export const CLIENT_VERSION = "0.5.1"; +export const CDN_PACKAGE_MAIN = `@effect-ak/tg-bot-client@${CLIENT_VERSION}/dist/index.min.mjs`; +export const CDN_PACKAGE_DTS = `@effect-ak/tg-bot-client@${CLIENT_VERSION}/dist/index.d.ts`; diff --git a/src/tg-bot-playground/main.ts b/src/tg-bot-playground/main.ts index 7921dab..ce04d08 100644 --- a/src/tg-bot-playground/main.ts +++ b/src/tg-bot-playground/main.ts @@ -1,8 +1,8 @@ +import Alpine from "alpinejs"; import { makeBotLauncher } from "#/tg-bot-playground/bot-launcher/_main"; import { makeEditor } from "#/common/editor/_editor"; import { fetchText } from "#/common/utils"; import type { BotState } from "./types"; -import Alpine from "alpinejs"; export type GlobalState = ReturnType; diff --git a/src/tg-bot-playground/static/example/command.ts b/src/tg-bot-playground/static/example/command.ts index 73b330d..d8f225f 100644 --- a/src/tg-bot-playground/static/example/command.ts +++ b/src/tg-bot-playground/static/example/command.ts @@ -1,6 +1,6 @@ -import type { BotMessageHandlers } from "@effect-ak/tg-bot-client" +import { BotResponse, defineBot } from "@effect-ak/tg-bot-client" -export default { +export default defineBot({ on_message: (msg) => { const commandEntity = msg.entities?.find(_ => _.type == "bot_command"); @@ -9,27 +9,28 @@ export default { console.log("command", command); if (command == "/bye") { - return { + return BotResponse.make({ type: "message", text: "See you later!" - } + }); } if (command == "/echo") { - return { + return BotResponse.make({ type: "message", text: `
${JSON.stringify(msg, undefined, 2)}
`, parse_mode: "HTML" - } + }) } if (msg.text) { // reply with "hey" on any text message - return { + return BotResponse.make({ type: "message", text: "hey 😇" - } + }) } - }, -} satisfies BotMessageHandlers + return BotResponse.ignore + }, +}) diff --git a/src/tg-bot-playground/static/example/empty.ts b/src/tg-bot-playground/static/example/empty.ts index 87d777e..9e5dd82 100644 --- a/src/tg-bot-playground/static/example/empty.ts +++ b/src/tg-bot-playground/static/example/empty.ts @@ -1,14 +1,16 @@ -import type { BotMessageHandlers } from "@effect-ak/tg-bot-client" +import { BotResponse, defineBot } from "@effect-ak/tg-bot-client" -export default { +export default defineBot({ on_message: (msg) => { if (msg.text) { - return { + return BotResponse.make({ type: "message", text: "hey 😀" - } + }) } + return BotResponse.ignore; + }, -} satisfies BotMessageHandlers +}) diff --git a/src/tg-bot-playground/static/example/file.ts b/src/tg-bot-playground/static/example/file.ts index 38f4961..b877a86 100644 --- a/src/tg-bot-playground/static/example/file.ts +++ b/src/tg-bot-playground/static/example/file.ts @@ -1,6 +1,6 @@ -import type { BotMessageHandlers } from "@effect-ak/tg-bot-client" +import { BotResponse, defineBot } from "@effect-ak/tg-bot-client" -export default { +export default defineBot({ on_message: (msg) => { if (msg.text?.includes("+")) { const numbers = msg.text.split("+"); @@ -8,22 +8,24 @@ export default { for (const num of numbers) { result += parseInt(num); } - return { + return BotResponse.make({ type: "document", caption: "sum result", document: { file_content: new TextEncoder().encode(`your sum is ${result}`), file_name: "hello.txt" } - } + }) } if (msg.text) { //reply on any text message - return { + return BotResponse.make({ type: "message", text: "hey 🙃, send me a message in the format '3+3+3' and I will return you the sum of it in a text file" - } + }) } + return BotResponse.ignore; + }, -} satisfies BotMessageHandlers +}) diff --git a/src/tg-bot-playground/worker/handler.ts b/src/tg-bot-playground/worker/handler.ts index d2fc468..fd12edd 100644 --- a/src/tg-bot-playground/worker/handler.ts +++ b/src/tg-bot-playground/worker/handler.ts @@ -1,6 +1,6 @@ import { runTgChatBot, BotInstance } from "@effect-ak/tg-bot-client"; import { isRunBot, type BotState } from "../types"; -import { deserialize } from "./utils"; +import { loadJsModule } from "./utils"; export const makeWorkerHandler = ( notifyParent: (_: Record & { messageId: number }) => void @@ -12,10 +12,11 @@ export const makeWorkerHandler = ( const sendEvent = ( input: Record - ) => notifyParent({ - ...input, - messageId: messageId++ - }); + ) => + notifyParent({ + ...input, + messageId: messageId++ + }); return async (command: unknown) => { @@ -26,17 +27,18 @@ export const makeWorkerHandler = ( }); return; } - + if (command.command == "run-bot") { - - const handlers = deserialize(command.code); + + const handlers = await loadJsModule(command.code); console.log("worker got run-bot command", handlers); - + if (botInstance) { console.log("reloading...") await botInstance.reload({ - ...handlers, + type: "single", + ...handlers.default }); sendEvent({ botState: { @@ -45,12 +47,15 @@ export const makeWorkerHandler = ( }) return; } - - botInstance = + + botInstance = await runTgChatBot({ type: "config", bot_token: command.token, - ...handlers + mode: { + type: "single", + ...handlers.default + } }); botInstance.fiber()?.addObserver((exit) => { @@ -62,17 +67,17 @@ export const makeWorkerHandler = ( } as BotState }) }) - + sendEvent({ success: "Bot's fiber has been created", botState: { status: "active" } as BotState }); - + return; } - + sendEvent({ error: "Unknown command" }) diff --git a/src/tg-bot-playground/worker/utils.ts b/src/tg-bot-playground/worker/utils.ts index 06d17e7..725426c 100644 --- a/src/tg-bot-playground/worker/utils.ts +++ b/src/tg-bot-playground/worker/utils.ts @@ -1,26 +1,28 @@ -const parseJson = (input: string) => { - try { - return { parsed: JSON.parse(input) } - } catch { return undefined } -} - -export const deserialize = (input: string) => { - - const result = [] as [string, unknown][]; +import { CDN_PACKAGE_MAIN } from "../const"; - const fields = parseJson(input); +const imports = { + "@effect-ak/tg-bot-client": CDN_PACKAGE_MAIN +} - if (typeof fields?.parsed != "object") return; +export const replaceImports = + (code: string) => { + let prepared = code; - for (const [k, v] of Object.entries(fields.parsed)) { - try { - const f = new Function(`return ${v}`)(); - result.push([k, f]); - } catch (e) { - console.warn("deserialize field error", { k, v, e }); + for (const [name, cdn] of Object.entries(imports)) { + const fullCdn = `https://cdn.jsdelivr.net/npm/${cdn}`; + prepared = prepared.replaceAll(name, fullCdn); } + return prepared; } - return Object.fromEntries(result); -} +export function loadJsModule(code: string): Promise { + const prepared = replaceImports(code); + console.log("loading js code", { + code, prepared + }) + const blob = new Blob([ prepared ], { type: 'application/javascript' }); + const url = URL.createObjectURL(blob); + + return import(/* @vite-ignore */url).finally(() => URL.revokeObjectURL(url)) +} \ No newline at end of file diff --git a/test/utils.test.ts b/test/utils.test.ts deleted file mode 100644 index 6300739..0000000 --- a/test/utils.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { describe, expect, it } from "vitest"; - -import { deserialize } from "#/tg-bot-playground/worker/utils" - -describe("utils", () => { - - it("is func", () => { - - expect(deserialize).toBeDefined(); - - }) -}) \ No newline at end of file