@neosianexus/super-tebex 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- var{defineProperty:T,getOwnPropertyNames:E,getOwnPropertyDescriptor:I}=Object,Q=Object.prototype.hasOwnProperty;var W=new WeakMap,ee=(r)=>{var e=W.get(r),t;if(e)return e;if(e=T({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")E(r).map((s)=>!Q.call(e,s)&&T(e,s,{get:()=>r[s],enumerable:!(t=I(r,s))||t.enumerable}));return W.set(r,e),e};var re=(r,e)=>{for(var t in e)T(r,t,{get:e[t],enumerable:!0,configurable:!0,set:(s)=>e[t]=()=>s})};var Ue={};re(Ue,{useShopUserStore:()=>U,useShopUiStore:()=>S,useShopBasketStore:()=>C,useCreateBasket:()=>G,useCategories:()=>M,useBasket:()=>J,getTebex:()=>p,categoriesService:()=>P,basketService:()=>x});module.exports=ee(Ue);var te=require("tebex_headless"),R=null;var oe=()=>{if(!R)throw Error("Tebex client not initialized. Call initTebex(publicKey) first.");return R},p=oe;var b=require("react"),B=require("sonner");var se=async({username:r,completeUrl:e,cancelUrl:t,custom:s,completeAutoRedirect:i,ipAddress:m})=>{return(await p()).createMinecraftBasket(r,e,t,s,i,m)},ae=async(r)=>{return(await p()).getBasket(r)},ne=async(r,e,t,s,i)=>{return(await p()).addPackageToBasket(r,e,t??1,s,i)},ie=async(r,e,t)=>{return(await p()).updateQuantity(r,e,t-1>=0?t-1:0)},le={createBasket:se,getBasket:ae,addPackageToBasket:ne,removePackageFromBasket:ie},x=le;var F=require("zustand"),d=require("zustand/middleware"),ce=F.create()(d.subscribeWithSelector(d.persist((r)=>({basketIdent:null,setBasketIdent:(e)=>r({basketIdent:e}),clearBasketIdent:()=>r({basketIdent:null})}),{name:"shop-basket-store"}))),C=ce;var K=require("zustand"),j=require("zustand/middleware"),me=K.create()(j.subscribeWithSelector((r)=>({isGlobalLoading:!1,setIsGlobalLoading:(e)=>r({isGlobalLoading:e}),isCreatingBasket:!1,setIsCreatingBasket:(e)=>r({isCreatingBasket:e})}))),S=me;var q=require("zustand"),w=require("zustand/middleware"),pe=q.create()(w.subscribeWithSelector(w.persist((r)=>({username:"",setUsername:(e)=>r({username:e}),clearUsername:()=>r({username:""})}),{name:"shop-user-store"}))),U=pe;var D=require("react"),L=require("sonner");var y=null;var fe=async({includePackages:r,basketIdent:e,ipAddress:t})=>{return(await p()).getCategories(r,e,t)},ge={getCategories:fe},P=ge;var ue=async(r)=>{let{isCreatingBasket:e,setIsCreatingBasket:t,setBasketIdent:s,createBasket:i,username:m}=r;if(e)return null;let{completeUrl:o,cancelUrl:g}=Ce();try{t(!0);let c=await i({username:m,completeUrl:o,cancelUrl:g,completeAutoRedirect:!1,ipAddress:""});if(!c?.ident)return L.toast.error("Une erreur est survenue lors de la création du panier"),null;return s(c.ident),c}catch{return L.toast.error("Erreur lors de la création du panier. Contactez le support si le problème persiste."),null}finally{t(!1)}},xe=(r)=>{let e=S((o)=>o.isCreatingBasket),t=S((o)=>o.setIsCreatingBasket),s=C((o)=>o.setBasketIdent),i=U((o)=>o.username);return D.useCallback(()=>ue({isCreatingBasket:e,setIsCreatingBasket:t,setBasketIdent:s,createBasket:x.createBasket,username:r??i}),[e,t,s,r,i])},Ce=()=>{if(!y)throw Error("Shop URLs not initialized. Call initShopUrls(baseUrl, paths?: { complete?: string; cancel?: string }) first.");return{completeUrl:y.completeUrl,cancelUrl:y.cancelUrl}},G=xe;var Be=(r)=>{let[e,t]=b.useState(null),[s,i]=b.useState(!1),[m,o]=b.useState(null),[g,c]=b.useState(!1),n=C((a)=>a.basketIdent),k=C((a)=>a.setBasketIdent),N=U((a)=>a.username),v=r??N,O=G(v),A=C((a)=>a.clearBasketIdent),H=async(a)=>{i(!0),o(null);try{let l=await x.getBasket(a);if(l.complete){t(null),A(),o(null);return}t(l),k(l.ident),o(null)}catch(l){o(l),t(null),A()}finally{i(!1)}},V=async(a,l,h,_)=>{if(g)return;try{if(c(!0),!v){B.toast.error("Vous devez vous connecter pour ajouter des articles à votre panier");return}let u=null;if(!n){if(u=(await O())?.ident??null,!u){B.toast.error("Une erreur est survenue lors de la création du panier");return}k(u)}else u=n;if(!u){B.toast.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let z=x.addPackageToBasket(u,a,l,h,_);B.toast.promise(z,{loading:"Ajout de l'article dans votre panier...",success:"Article ajouté avec succès !",error:"Une erreur est survenue lors de l'ajout de l'article dans votre panier"});let $=await z;t($),o(null)}catch(u){o(u)}finally{c(!1)}},X=async(a)=>{if(g)return;try{if(c(!0),!n){B.toast.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let l=x.removePackageFromBasket(n,a,e?.packages.find((h)=>h.id===a)?.in_basket.quantity??0);l.then((h)=>{t(h),o(null)}),B.toast.promise(l,{loading:"Suppression de l'article de votre panier...",success:"Article supprimé avec succès !",error:"Une erreur est survenue lors de la suppression de l'article de votre panier"})}catch(l){o(l)}finally{c(!1)}},Y=async()=>{if(n)await H(n)},Z=(a)=>{t(a)};return b.useEffect(()=>{if(!n)return;H(n)},[n]),{basket:e,loading:s,error:m,updateManualBasket:Z,addPackageToBasket:V,removePackageFromBasket:X,refetch:Y}},J=Be;var f=require("react");var be=(r)=>{let[e,t]=f.useState(null),[s,i]=f.useState(!0),[m,o]=f.useState(null),g=f.useCallback(async()=>{i(!0),o(null);try{let n=await P.getCategories(r);t(n)}catch(n){o(n),t(null)}finally{i(!1)}},[r]);f.useEffect(()=>{g()},[g]);let c=f.useCallback((n)=>e?.find((k)=>k.name.toLowerCase()===n.toLowerCase()),[e]);return{categories:e,loading:s,error:m,getByName:c,refetch:g}},M=be;
1
+ var{defineProperty:y,getOwnPropertyNames:ee,getOwnPropertyDescriptor:re}=Object,oe=Object.prototype.hasOwnProperty;var K=new WeakMap,te=(e)=>{var r=K.get(e),o;if(r)return r;if(r=y({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")ee(e).map((t)=>!oe.call(r,t)&&y(r,t,{get:()=>e[t],enumerable:!(o=re(e,t))||o.enumerable}));return K.set(e,r),r};var se=(e,r)=>{for(var o in r)y(e,o,{get:r[o],enumerable:!0,configurable:!0,set:(t)=>r[o]=()=>t})};var Pe={};se(Pe,{useShopUserStore:()=>h,useShopUiStore:()=>T,useShopBasketStore:()=>B,useCreateBasket:()=>d,useCategories:()=>$,useBasket:()=>Z,tebex:()=>P,shopUrls:()=>S,initTebex:()=>v,initShopUrls:()=>j,getTebex:()=>f,categoriesService:()=>R,basketService:()=>g});module.exports=te(Pe);var S=null,le=(e,r)=>{let o=r?.complete??"/shop/complete-purchase",t=r?.cancel??"/shop/cancel-purchase";S={completeUrl:new URL(o,e).toString(),cancelUrl:new URL(t,e).toString()}},j=le;var q=require("tebex_headless"),P=null,ne=(e)=>{P=new q.TebexHeadless(e)},v=ne;var ie=()=>{if(!P)throw Error("Tebex client not initialized. Call initTebex(publicKey) first.");return P},f=ie;var k=require("react"),b=require("sonner");var ae=async({username:e,completeUrl:r,cancelUrl:o,custom:t,completeAutoRedirect:n,ipAddress:c})=>{return(await f()).createMinecraftBasket(e,r,o,t,n,c)},me=async(e)=>{return(await f()).getBasket(e)},pe=async(e,r,o,t,n)=>{return(await f()).addPackageToBasket(e,r,o??1,t,n)},ce=async(e,r,o)=>{return(await f()).updateQuantity(e,r,o-1>=0?o-1:0)},fe={createBasket:ae,getBasket:me,addPackageToBasket:pe,removePackageFromBasket:ce},g=fe;var D=require("zustand"),w=require("zustand/middleware"),xe=D.create()(w.subscribeWithSelector(w.persist((e)=>({basketIdent:null,setBasketIdent:(r)=>e({basketIdent:r}),clearBasketIdent:()=>e({basketIdent:null})}),{name:"shop-basket-store"}))),B=xe;var J=require("zustand"),V=require("zustand/middleware"),ue=J.create()(V.subscribeWithSelector((e)=>({isGlobalLoading:!1,setIsGlobalLoading:(r)=>e({isGlobalLoading:r}),isCreatingBasket:!1,setIsCreatingBasket:(r)=>e({isCreatingBasket:r})}))),T=ue;var X=require("zustand"),G=require("zustand/middleware"),ge=X.create()(G.subscribeWithSelector(G.persist((e)=>({username:"",setUsername:(r)=>e({username:r}),clearUsername:()=>e({username:""})}),{name:"shop-user-store"}))),h=ge;var Y=require("react"),H=require("sonner");var Be=async({includePackages:e,basketIdent:r,ipAddress:o})=>{return(await f()).getCategories(e,r,o)},Ue={getCategories:Be},R=Ue;var be=async(e)=>{let{isCreatingBasket:r,setIsCreatingBasket:o,setBasketIdent:t,createBasket:n,username:c}=e;if(r)return null;let{completeUrl:s,cancelUrl:U}=Se();try{o(!0);let i=await n({username:c,completeUrl:s,cancelUrl:U,completeAutoRedirect:!1,ipAddress:""});if(!i?.ident)return H.toast.error("Une erreur est survenue lors de la création du panier"),null;return t(i.ident),i}catch{return H.toast.error("Erreur lors de la création du panier. Contactez le support si le problème persiste."),null}finally{o(!1)}},ke=(e)=>{let r=T((s)=>s.isCreatingBasket),o=T((s)=>s.setIsCreatingBasket),t=B((s)=>s.setBasketIdent),n=h((s)=>s.username);return Y.useCallback(()=>be({isCreatingBasket:r,setIsCreatingBasket:o,setBasketIdent:t,createBasket:g.createBasket,username:e??n}),[r,o,t,e,n])},Se=()=>{if(!S)throw Error("Shop URLs not initialized. Call initShopUrls(baseUrl, paths?: { complete?: string; cancel?: string }) first.");return{completeUrl:S.completeUrl,cancelUrl:S.cancelUrl}},d=ke;var he=(e)=>{let[r,o]=k.useState(null),[t,n]=k.useState(!1),[c,s]=k.useState(null),[U,i]=k.useState(!1),m=B((l)=>l.basketIdent),x=B((l)=>l.setBasketIdent),A=h((l)=>l.username),L=e??A,M=d(L),W=B((l)=>l.clearBasketIdent),z=async(l)=>{n(!0),s(null);try{let a=await g.getBasket(l);if(a.complete){o(null),W(),s(null);return}o(a),x(a.ident),s(null)}catch(a){s(a),o(null),W()}finally{n(!1)}},_=async(l,a,C,Q)=>{if(U)return;try{if(i(!0),!L){b.toast.error("Vous devez vous connecter pour ajouter des articles à votre panier");return}let u=null;if(!m){if(u=(await M())?.ident??null,!u){b.toast.error("Une erreur est survenue lors de la création du panier");return}x(u)}else u=m;if(!u){b.toast.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let F=g.addPackageToBasket(u,l,a,C,Q);b.toast.promise(F,{loading:"Ajout de l'article dans votre panier...",success:"Article ajouté avec succès !",error:"Une erreur est survenue lors de l'ajout de l'article dans votre panier"});let E=await F;o(E),s(null)}catch(u){s(u)}finally{i(!1)}},O=async(l)=>{if(U)return;try{if(i(!0),!m){b.toast.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let a=g.removePackageFromBasket(m,l,r?.packages.find((C)=>C.id===l)?.in_basket.quantity??0);a.then((C)=>{o(C),s(null)}),b.toast.promise(a,{loading:"Suppression de l'article de votre panier...",success:"Article supprimé avec succès !",error:"Une erreur est survenue lors de la suppression de l'article de votre panier"})}catch(a){s(a)}finally{i(!1)}},I=async()=>{if(m)await z(m)},N=(l)=>{o(l)};return k.useEffect(()=>{if(!m)return;z(m)},[m]),{basket:r,loading:t,error:c,updateManualBasket:N,addPackageToBasket:_,removePackageFromBasket:O,refetch:I}},Z=he;var p=require("react");var Ce=(e)=>{let[r,o]=p.useState(null),[t,n]=p.useState(!0),[c,s]=p.useState(null),U=p.useMemo(()=>e,[e.includePackages,e.basketIdent,e.ipAddress]),i=p.useCallback(async()=>{n(!0),s(null);try{let x=await R.getCategories(U);o(x)}catch(x){s(x),o(null)}finally{n(!1)}},[U]);p.useEffect(()=>{i()},[i]);let m=p.useCallback((x)=>r?.find((A)=>A.name.toLowerCase()===x.toLowerCase()),[r]);return{categories:r,loading:t,error:c,getByName:m,refetch:i}},$=Ce;
package/dist/index.d.ts CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  import { Basket, Category, InBasket, Package, PackageType, TebexHeadless } from 'tebex_headless';
4
4
 
5
+ export interface GetShopUrlsResult {
6
+ completeUrl: string;
7
+ cancelUrl: string;
8
+ }
9
+ export declare const useCreateBasket: (username: string | null) => (() => Promise<Basket | null>);
10
+ export declare let shopUrls: GetShopUrlsResult | null;
11
+ export declare const initShopUrls: (baseUrl: string, paths?: {
12
+ complete?: string;
13
+ cancel?: string;
14
+ }) => void;
15
+ export declare let tebex: TebexHeadless | null;
16
+ export declare const initTebex: (publicKey: string) => void;
5
17
  export declare const getTebex: () => TebexHeadless;
6
18
  export interface UseBasketResult {
7
19
  basket: Basket | null;
@@ -39,7 +51,6 @@ export interface UseCategoriesResult {
39
51
  refetch: () => Promise<void>;
40
52
  }
41
53
  export declare const useCategories: (options: GetCategories) => UseCategoriesResult;
42
- export declare const useCreateBasket: (username: string | null) => (() => Promise<Basket | null>);
43
54
  export declare const basketService: {
44
55
  createBasket: ({ username, completeUrl, cancelUrl, custom, completeAutoRedirect, ipAddress, }: CreateBasketProps) => Promise<Basket>;
45
56
  getBasket: (basketIdent: Basket["ident"]) => Promise<Basket>;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{TebexHeadless as Be}from"tebex_headless";var d=null;var J=()=>{if(!d)throw Error("Tebex client not initialized. Call initTebex(publicKey) first.");return d},g=J;import{useEffect as me,useState as k}from"react";import{toast as C}from"sonner";var M=async({username:e,completeUrl:r,cancelUrl:t,custom:n,completeAutoRedirect:i,ipAddress:m})=>{return(await g()).createMinecraftBasket(e,r,t,n,i,m)},N=async(e)=>{return(await g()).getBasket(e)},O=async(e,r,t,n,i)=>{return(await g()).addPackageToBasket(e,r,t??1,n,i)},V=async(e,r,t)=>{return(await g()).updateQuantity(e,r,t-1>=0?t-1:0)},X={createBasket:M,getBasket:N,addPackageToBasket:O,removePackageFromBasket:V},u=X;import{create as Y}from"zustand";import{persist as Z,subscribeWithSelector as _}from"zustand/middleware";var $=Y()(_(Z((e)=>({basketIdent:null,setBasketIdent:(r)=>e({basketIdent:r}),clearBasketIdent:()=>e({basketIdent:null})}),{name:"shop-basket-store"}))),x=$;import{create as E}from"zustand";import{subscribeWithSelector as I}from"zustand/middleware";var Q=E()(I((e)=>({isGlobalLoading:!1,setIsGlobalLoading:(r)=>e({isGlobalLoading:r}),isCreatingBasket:!1,setIsCreatingBasket:(r)=>e({isCreatingBasket:r})}))),h=Q;import{create as ee}from"zustand";import{persist as re,subscribeWithSelector as te}from"zustand/middleware";var oe=ee()(te(re((e)=>({username:"",setUsername:(r)=>e({username:r}),clearUsername:()=>e({username:""})}),{name:"shop-user-store"}))),b=oe;import{useCallback as ne}from"react";import{toast as v}from"sonner";var S=null;var se=async({includePackages:e,basketIdent:r,ipAddress:t})=>{return(await g()).getCategories(e,r,t)},ae={getCategories:se},w=ae;var ie=async(e)=>{let{isCreatingBasket:r,setIsCreatingBasket:t,setBasketIdent:n,createBasket:i,username:m}=e;if(r)return null;let{completeUrl:o,cancelUrl:p}=ce();try{t(!0);let c=await i({username:m,completeUrl:o,cancelUrl:p,completeAutoRedirect:!1,ipAddress:""});if(!c?.ident)return v.error("Une erreur est survenue lors de la création du panier"),null;return n(c.ident),c}catch{return v.error("Erreur lors de la création du panier. Contactez le support si le problème persiste."),null}finally{t(!1)}},le=(e)=>{let r=h((o)=>o.isCreatingBasket),t=h((o)=>o.setIsCreatingBasket),n=x((o)=>o.setBasketIdent),i=b((o)=>o.username);return ne(()=>ie({isCreatingBasket:r,setIsCreatingBasket:t,setBasketIdent:n,createBasket:u.createBasket,username:e??i}),[r,t,n,e,i])},ce=()=>{if(!S)throw Error("Shop URLs not initialized. Call initShopUrls(baseUrl, paths?: { complete?: string; cancel?: string }) first.");return{completeUrl:S.completeUrl,cancelUrl:S.cancelUrl}},y=le;var pe=(e)=>{let[r,t]=k(null),[n,i]=k(!1),[m,o]=k(null),[p,c]=k(!1),a=x((s)=>s.basketIdent),U=x((s)=>s.setBasketIdent),H=b((s)=>s.username),G=e??H,z=y(G),T=x((s)=>s.clearBasketIdent),R=async(s)=>{i(!0),o(null);try{let l=await u.getBasket(s);if(l.complete){t(null),T(),o(null);return}t(l),U(l.ident),o(null)}catch(l){o(l),t(null),T()}finally{i(!1)}},W=async(s,l,B,q)=>{if(p)return;try{if(c(!0),!G){C.error("Vous devez vous connecter pour ajouter des articles à votre panier");return}let f=null;if(!a){if(f=(await z())?.ident??null,!f){C.error("Une erreur est survenue lors de la création du panier");return}U(f)}else f=a;if(!f){C.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let L=u.addPackageToBasket(f,s,l,B,q);C.promise(L,{loading:"Ajout de l'article dans votre panier...",success:"Article ajouté avec succès !",error:"Une erreur est survenue lors de l'ajout de l'article dans votre panier"});let D=await L;t(D),o(null)}catch(f){o(f)}finally{c(!1)}},F=async(s)=>{if(p)return;try{if(c(!0),!a){C.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let l=u.removePackageFromBasket(a,s,r?.packages.find((B)=>B.id===s)?.in_basket.quantity??0);l.then((B)=>{t(B),o(null)}),C.promise(l,{loading:"Suppression de l'article de votre panier...",success:"Article supprimé avec succès !",error:"Une erreur est survenue lors de la suppression de l'article de votre panier"})}catch(l){o(l)}finally{c(!1)}},K=async()=>{if(a)await R(a)},j=(s)=>{t(s)};return me(()=>{if(!a)return;R(a)},[a]),{basket:r,loading:n,error:m,updateManualBasket:j,addPackageToBasket:W,removePackageFromBasket:F,refetch:K}},fe=pe;import{useCallback as A,useEffect as ge,useState as P}from"react";var ue=(e)=>{let[r,t]=P(null),[n,i]=P(!0),[m,o]=P(null),p=A(async()=>{i(!0),o(null);try{let a=await w.getCategories(e);t(a)}catch(a){o(a),t(null)}finally{i(!1)}},[e]);ge(()=>{p()},[p]);let c=A((a)=>r?.find((U)=>U.name.toLowerCase()===a.toLowerCase()),[r]);return{categories:r,loading:n,error:m,getByName:c,refetch:p}},xe=ue;export{b as useShopUserStore,h as useShopUiStore,x as useShopBasketStore,y as useCreateBasket,xe as useCategories,fe as useBasket,g as getTebex,w as categoriesService,u as basketService};
1
+ var k=null,J=(e,r)=>{let o=r?.complete??"/shop/complete-purchase",s=r?.cancel??"/shop/cancel-purchase";k={completeUrl:new URL(o,e).toString(),cancelUrl:new URL(s,e).toString()}},V=J;import{TebexHeadless as X}from"tebex_headless";var h=null,Y=(e)=>{h=new X(e)},Z=Y;var $=()=>{if(!h)throw Error("Tebex client not initialized. Call initTebex(publicKey) first.");return h},x=$;import{useEffect as ge,useState as P}from"react";import{toast as U}from"sonner";var M=async({username:e,completeUrl:r,cancelUrl:o,custom:s,completeAutoRedirect:n,ipAddress:p})=>{return(await x()).createMinecraftBasket(e,r,o,s,n,p)},_=async(e)=>{return(await x()).getBasket(e)},O=async(e,r,o,s,n)=>{return(await x()).addPackageToBasket(e,r,o??1,s,n)},I=async(e,r,o)=>{return(await x()).updateQuantity(e,r,o-1>=0?o-1:0)},N={createBasket:M,getBasket:_,addPackageToBasket:O,removePackageFromBasket:I},g=N;import{create as Q}from"zustand";import{persist as E,subscribeWithSelector as ee}from"zustand/middleware";var re=Q()(ee(E((e)=>({basketIdent:null,setBasketIdent:(r)=>e({basketIdent:r}),clearBasketIdent:()=>e({basketIdent:null})}),{name:"shop-basket-store"}))),B=re;import{create as oe}from"zustand";import{subscribeWithSelector as te}from"zustand/middleware";var se=oe()(te((e)=>({isGlobalLoading:!1,setIsGlobalLoading:(r)=>e({isGlobalLoading:r}),isCreatingBasket:!1,setIsCreatingBasket:(r)=>e({isCreatingBasket:r})}))),C=se;import{create as le}from"zustand";import{persist as ne,subscribeWithSelector as ie}from"zustand/middleware";var ae=le()(ie(ne((e)=>({username:"",setUsername:(r)=>e({username:r}),clearUsername:()=>e({username:""})}),{name:"shop-user-store"}))),S=ae;import{useCallback as ce}from"react";import{toast as L}from"sonner";var me=async({includePackages:e,basketIdent:r,ipAddress:o})=>{return(await x()).getCategories(e,r,o)},pe={getCategories:me},w=pe;var fe=async(e)=>{let{isCreatingBasket:r,setIsCreatingBasket:o,setBasketIdent:s,createBasket:n,username:p}=e;if(r)return null;let{completeUrl:t,cancelUrl:u}=ue();try{o(!0);let i=await n({username:p,completeUrl:t,cancelUrl:u,completeAutoRedirect:!1,ipAddress:""});if(!i?.ident)return L.error("Une erreur est survenue lors de la création du panier"),null;return s(i.ident),i}catch{return L.error("Erreur lors de la création du panier. Contactez le support si le problème persiste."),null}finally{o(!1)}},xe=(e)=>{let r=C((t)=>t.isCreatingBasket),o=C((t)=>t.setIsCreatingBasket),s=B((t)=>t.setBasketIdent),n=S((t)=>t.username);return ce(()=>fe({isCreatingBasket:r,setIsCreatingBasket:o,setBasketIdent:s,createBasket:g.createBasket,username:e??n}),[r,o,s,e,n])},ue=()=>{if(!k)throw Error("Shop URLs not initialized. Call initShopUrls(baseUrl, paths?: { complete?: string; cancel?: string }) first.");return{completeUrl:k.completeUrl,cancelUrl:k.cancelUrl}},G=xe;var Be=(e)=>{let[r,o]=P(null),[s,n]=P(!1),[p,t]=P(null),[u,i]=P(!1),m=B((l)=>l.basketIdent),c=B((l)=>l.setBasketIdent),T=S((l)=>l.username),d=e??T,z=G(d),A=B((l)=>l.clearBasketIdent),y=async(l)=>{n(!0),t(null);try{let a=await g.getBasket(l);if(a.complete){o(null),A(),t(null);return}o(a),c(a.ident),t(null)}catch(a){t(a),o(null),A()}finally{n(!1)}},F=async(l,a,b,v)=>{if(u)return;try{if(i(!0),!d){U.error("Vous devez vous connecter pour ajouter des articles à votre panier");return}let f=null;if(!m){if(f=(await z())?.ident??null,!f){U.error("Une erreur est survenue lors de la création du panier");return}c(f)}else f=m;if(!f){U.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let H=g.addPackageToBasket(f,l,a,b,v);U.promise(H,{loading:"Ajout de l'article dans votre panier...",success:"Article ajouté avec succès !",error:"Une erreur est survenue lors de l'ajout de l'article dans votre panier"});let D=await H;o(D),t(null)}catch(f){t(f)}finally{i(!1)}},K=async(l)=>{if(u)return;try{if(i(!0),!m){U.error("Vous n'avez pas de panier. Si le problème persiste, veuillez vous rapprocher du support.");return}let a=g.removePackageFromBasket(m,l,r?.packages.find((b)=>b.id===l)?.in_basket.quantity??0);a.then((b)=>{o(b),t(null)}),U.promise(a,{loading:"Suppression de l'article de votre panier...",success:"Article supprimé avec succès !",error:"Une erreur est survenue lors de la suppression de l'article de votre panier"})}catch(a){t(a)}finally{i(!1)}},j=async()=>{if(m)await y(m)},q=(l)=>{o(l)};return ge(()=>{if(!m)return;y(m)},[m]),{basket:r,loading:s,error:p,updateManualBasket:q,addPackageToBasket:F,removePackageFromBasket:K,refetch:j}},Ue=Be;import{useCallback as W,useEffect as be,useMemo as ke,useState as R}from"react";var Se=(e)=>{let[r,o]=R(null),[s,n]=R(!0),[p,t]=R(null),u=ke(()=>e,[e.includePackages,e.basketIdent,e.ipAddress]),i=W(async()=>{n(!0),t(null);try{let c=await w.getCategories(u);o(c)}catch(c){t(c),o(null)}finally{n(!1)}},[u]);be(()=>{i()},[i]);let m=W((c)=>r?.find((T)=>T.name.toLowerCase()===c.toLowerCase()),[r]);return{categories:r,loading:s,error:p,getByName:m,refetch:i}},he=Se;export{S as useShopUserStore,C as useShopUiStore,B as useShopBasketStore,G as useCreateBasket,he as useCategories,Ue as useBasket,h as tebex,k as shopUrls,Z as initTebex,V as initShopUrls,x as getTebex,w as categoriesService,g as basketService};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@neosianexus/super-tebex",
3
3
  "type": "module",
4
- "version": "2.0.0",
4
+ "version": "2.0.2",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",