- apps/web: test updates (Vitest/setup), playbackAnalyticsService, TrackGrid, serviceErrorHandler - veza-common: logging, metrics, traits, validation, random - veza-stream-server: audio pipeline, codecs, cache, monitoring, routes - apps/web/dist_verification: refresh build assets (content-hashed filenames) Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
854 B
JavaScript
1 line
854 B
JavaScript
import{ab as m,ac as u}from"./vendor-CjLUfV8Y.js";const I=m()(u((s,n)=>({items:[],addItem:(t,e)=>{s(r=>{const i=e?e.id:"standard",c=r.items.find(a=>a.product.id===t.id&&a.selectedLicense?.id===e?.id);if(c)return{items:r.items.map(a=>a.cartId===c.cartId?{...a,quantity:a.quantity+1}:a)};const d={cartId:`${t.id}-${i}-${Date.now()}`,product:t,quantity:1,selectedLicense:e};return{items:[...r.items,d]}})},removeItem:t=>{s(e=>({items:e.items.filter(r=>r.cartId!==t)}))},updateQuantity:(t,e)=>{if(e<=0){n().removeItem(t);return}s(r=>({items:r.items.map(i=>i.cartId===t?{...i,quantity:e}:i)}))},clearCart:()=>{s({items:[]})},getTotal:()=>n().items.reduce((t,e)=>{const r=e.selectedLicense?e.selectedLicense.price:e.product.price;return t+r*e.quantity},0),getItemCount:()=>n().items.reduce((t,e)=>t+e.quantity,0)}),{name:"veza-cart-storage"}));export{I as u};
|