@swishapp/api-client 0.25.0 → 0.27.0

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/client.d.ts CHANGED
@@ -1,19 +1,23 @@
1
1
  import type { SwishClientConfig, SwishClientOptions, ApiResponse, PaginatedApiResponse } from "./types";
2
2
  import type * as types from "./openapi/types.gen";
3
- export declare const apiVersion = "2025-10";
4
- export declare const baseUrl = "https://swish.app/api/2025-10";
3
+ export declare const defaultApiVersion = "2026-01";
4
+ export declare const defaultProxyBaseUrl = "/apps/wishlist/api";
5
5
  export declare const createApiClient: (options: SwishClientOptions) => SwishClient;
6
6
  export type { SwishClient };
7
7
  declare class SwishClient {
8
8
  private authToken?;
9
9
  private profile?;
10
- private readonly client;
10
+ private useProxy;
11
+ private version;
12
+ private readonly proxyClient;
13
+ private readonly directClient;
11
14
  constructor(options: SwishClientOptions);
12
15
  setProfile(profile: string): void;
13
16
  getProfile(): string | undefined;
14
17
  setAuthToken(authToken: string): void;
15
- setConfig(config: SwishClientConfig): void;
16
- requestInterceptor(request: Request): Request;
18
+ setConfig({ proxyBaseUrl, baseUrl, useProxy, ...config }: SwishClientConfig): void;
19
+ proxyRequestInterceptor(request: Request): Request;
20
+ directRequestInterceptor(request: Request): Request;
17
21
  readonly items: {
18
22
  list: (query?: types.ItemControllerFindData["query"]) => Promise<PaginatedApiResponse<types.Item>>;
19
23
  create: (items: types.CreateItemInput) => Promise<ApiResponse<types.Item>>;
@@ -36,9 +40,15 @@ declare class SwishClient {
36
40
  };
37
41
  readonly profiles: {
38
42
  customerAccountsVersion: () => Promise<ApiResponse<types.AccountsVersionResult>>;
39
- createToken: (body?: types.CreateProfileTokenInput) => Promise<ApiResponse<types.CreateProfileTokenResult>>;
43
+ createToken: (body?: types.CreateProfileTokenInput, options?: {
44
+ useProxy?: boolean;
45
+ }) => Promise<ApiResponse<types.CreateProfileTokenResult>>;
40
46
  identify: (body: types.IdentifyProfileInput) => Promise<ApiResponse<types.IdentifyProfileResult>>;
41
47
  };
48
+ readonly orders: {
49
+ list: (query?: types.OrdersControllerFindData["query"]) => Promise<PaginatedApiResponse<types.OrderDto>>;
50
+ findById: (orderId: number) => Promise<ApiResponse<types.OrderDetailDto>>;
51
+ };
42
52
  private readonly handleRequest;
43
53
  private readonly handlePaginatedRequest;
44
54
  }
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var Se=Object.defineProperty;var n=(e,t)=>Se(e,"name",{value:t,configurable:!0});var F={bodySerializer:n(e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r),"bodySerializer")};var xe={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},He=Object.entries(xe);var _=n(({onRequest:e,onSseError:t,onSseEvent:r,responseTransformer:o,responseValidator:i,sseDefaultRetryDelay:p,sseMaxRetryAttempts:d,sseMaxRetryDelay:a,sseSleepFn:l,url:u,...s})=>{let f,E=l??(c=>new Promise(m=>setTimeout(m,c)));return{stream:n(async function*(){let c=p??3e3,m=0,R=s.signal??new AbortController().signal;for(;!R.aborted;){m++;let L=s.headers instanceof Headers?s.headers:new Headers(s.headers);f!==void 0&&L.set("Last-Event-ID",f);try{let T={redirect:"follow",...s,body:s.serializedBody,headers:L,signal:R},g=new Request(u,T);e&&(g=await e(u,T));let C=await(s.fetch??globalThis.fetch)(g);if(!C.ok)throw new Error(`SSE failed: ${C.status} ${C.statusText}`);if(!C.body)throw new Error("No body in SSE response");let O=C.body.pipeThrough(new TextDecoderStream).getReader(),j="",V=n(()=>{try{O.cancel()}catch{}},"abortHandler");R.addEventListener("abort",V);try{for(;;){let{done:be,value:Re}=await O.read();if(be)break;j+=Re;let M=j.split(`
1
+ var ke=Object.defineProperty;var n=(e,r)=>ke(e,"name",{value:r,configurable:!0});var j={bodySerializer:n(e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t),"bodySerializer")};var De={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},Me=Object.entries(De);var _=n(({onRequest:e,onSseError:r,onSseEvent:t,responseTransformer:o,responseValidator:s,sseDefaultRetryDelay:p,sseMaxRetryAttempts:d,sseMaxRetryDelay:a,sseSleepFn:l,url:u,...i})=>{let h,k=l??(c=>new Promise(C=>setTimeout(C,c)));return{stream:n(async function*(){let c=p??3e3,C=0,R=i.signal??new AbortController().signal;for(;!R.aborted;){C++;let D=i.headers instanceof Headers?i.headers:new Headers(i.headers);h!==void 0&&D.set("Last-Event-ID",h);try{let T={redirect:"follow",...i,body:i.serializedBody,headers:D,signal:R},I=new Request(u,T);e&&(I=await e(u,T));let m=await(i.fetch??globalThis.fetch)(I);if(!m.ok)throw new Error(`SSE failed: ${m.status} ${m.statusText}`);if(!m.body)throw new Error("No body in SSE response");let g=m.body.pipeThrough(new TextDecoderStream).getReader(),F="",V=n(()=>{try{g.cancel()}catch{}},"abortHandler");R.addEventListener("abort",V);try{for(;;){let{done:Te,value:we}=await g.read();if(Te)break;F+=we;let M=F.split(`
2
2
 
3
- `);j=M.pop()??"";for(let Te of M){let we=Te.split(`
4
- `),A=[],W;for(let I of we)if(I.startsWith("data:"))A.push(I.replace(/^data:\s*/,""));else if(I.startsWith("event:"))W=I.replace(/^event:\s*/,"");else if(I.startsWith("id:"))f=I.replace(/^id:\s*/,"");else if(I.startsWith("retry:")){let J=Number.parseInt(I.replace(/^retry:\s*/,""),10);Number.isNaN(J)||(c=J)}let w,Q=!1;if(A.length){let I=A.join(`
5
- `);try{w=JSON.parse(I),Q=!0}catch{w=I}}Q&&(i&&await i(w),o&&(w=await o(w))),r==null||r({data:w,event:W,id:f,retry:c}),A.length&&(yield w)}}}finally{R.removeEventListener("abort",V),O.releaseLock()}break}catch(T){if(t==null||t(T),d!==void 0&&m>=d)break;let g=Math.min(c*2**(m-1),a??3e4);await E(g)}}},"createStream")()}},"createSseClient");var Ee=n(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorArrayExplode"),Le=n(e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},"separatorArrayNoExplode"),De=n(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorObjectExplode"),B=n(({allowReserved:e,explode:t,name:r,style:o,value:i})=>{if(!t){let a=(e?i:i.map(l=>encodeURIComponent(l))).join(Le(o));switch(o){case"label":return`.${a}`;case"matrix":return`;${r}=${a}`;case"simple":return a;default:return`${r}=${a}`}}let p=Ee(o),d=i.map(a=>o==="label"||o==="simple"?e?a:encodeURIComponent(a):x({allowReserved:e,name:r,value:a})).join(p);return o==="label"||o==="matrix"?p+d:d},"serializeArrayParam"),x=n(({allowReserved:e,name:t,value:r})=>{if(r==null)return"";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?r:encodeURIComponent(r)}`},"serializePrimitiveParam"),P=n(({allowReserved:e,explode:t,name:r,style:o,value:i,valueOnly:p})=>{if(i instanceof Date)return p?i.toISOString():`${r}=${i.toISOString()}`;if(o!=="deepObject"&&!t){let l=[];Object.entries(i).forEach(([s,f])=>{l=[...l,s,e?f:encodeURIComponent(f)]});let u=l.join(",");switch(o){case"form":return`${r}=${u}`;case"label":return`.${u}`;case"matrix":return`;${r}=${u}`;default:return u}}let d=De(o),a=Object.entries(i).map(([l,u])=>x({allowReserved:e,name:o==="deepObject"?`${r}[${l}]`:l,value:u})).join(d);return o==="label"||o==="matrix"?d+a:a},"serializeObjectParam");var qe=/\{[^{}]+\}/g,ke=n(({path:e,url:t})=>{let r=t,o=t.match(qe);if(o)for(let i of o){let p=!1,d=i.substring(1,i.length-1),a="simple";d.endsWith("*")&&(p=!0,d=d.substring(0,d.length-1)),d.startsWith(".")?(d=d.substring(1),a="label"):d.startsWith(";")&&(d=d.substring(1),a="matrix");let l=e[d];if(l==null)continue;if(Array.isArray(l)){r=r.replace(i,B({explode:p,name:d,style:a,value:l}));continue}if(typeof l=="object"){r=r.replace(i,P({explode:p,name:d,style:a,value:l,valueOnly:!0}));continue}if(a==="matrix"){r=r.replace(i,`;${x({name:d,value:l})}`);continue}let u=encodeURIComponent(a==="label"?`.${l}`:l);r=r.replace(i,u)}return r},"defaultPathSerializer"),K=n(({baseUrl:e,path:t,query:r,querySerializer:o,url:i})=>{let p=i.startsWith("/")?i:`/${i}`,d=(e??"")+p;t&&(d=ke({path:t,url:d}));let a=r?o(r):"";return a.startsWith("?")&&(a=a.substring(1)),a&&(d+=`?${a}`),d},"getUrl");function G(e){let t=e.body!==void 0;if(t&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(t)return e.body}n(G,"getValidRequestBody");var X=n(async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r},"getAuthToken");var Y=n(({allowReserved:e,array:t,object:r}={})=>n(i=>{let p=[];if(i&&typeof i=="object")for(let d in i){let a=i[d];if(a!=null)if(Array.isArray(a)){let l=B({allowReserved:e,explode:!0,name:d,style:"form",value:a,...t});l&&p.push(l)}else if(typeof a=="object"){let l=P({allowReserved:e,explode:!0,name:d,style:"deepObject",value:a,...r});l&&p.push(l)}else{let l=x({allowReserved:e,name:d,value:a});l&&p.push(l)}}return p.join("&")},"querySerializer"),"createQuerySerializer"),Z=n(e=>{var r;if(!e)return"stream";let t=(r=e.split(";")[0])==null?void 0:r.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return"json";if(t==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(o=>t.startsWith(o)))return"blob";if(t.startsWith("text/"))return"text"}},"getParseAs"),Ae=n((e,t)=>{var r,o;return t?!!(e.headers.has(t)||(r=e.query)!=null&&r[t]||(o=e.headers.get("Cookie"))!=null&&o.includes(`${t}=`)):!1},"checkForExistence"),ee=n(async({security:e,...t})=>{for(let r of e){if(Ae(t,r.name))continue;let o=await X(r,t.auth);if(!o)continue;let i=r.name??"Authorization";switch(r.in){case"query":t.query||(t.query={}),t.query[i]=o;break;case"cookie":t.headers.append("Cookie",`${i}=${o}`);break;case"header":default:t.headers.set(i,o);break}}},"setAuthParams"),v=n(e=>K({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:Y(e.querySerializer),url:e.url}),"buildUrl"),U=n((e,t)=>{var o;let r={...e,...t};return(o=r.baseUrl)!=null&&o.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=z(e.headers,t.headers),r},"mergeConfigs"),Be=n(e=>{let t=[];return e.forEach((r,o)=>{t.push([o,r])}),t},"headersEntries"),z=n((...e)=>{let t=new Headers;for(let r of e){if(!r)continue;let o=r instanceof Headers?Be(r):Object.entries(r);for(let[i,p]of o)if(p===null)t.delete(i);else if(Array.isArray(p))for(let d of p)t.append(i,d);else p!==void 0&&t.set(i,typeof p=="object"?JSON.stringify(p):p)}return t},"mergeHeaders"),$=class ${constructor(){this.fns=[]}clear(){this.fns=[]}eject(t){let r=this.getInterceptorIndex(t);this.fns[r]&&(this.fns[r]=null)}exists(t){let r=this.getInterceptorIndex(t);return!!this.fns[r]}getInterceptorIndex(t){return typeof t=="number"?this.fns[t]?t:-1:this.fns.indexOf(t)}update(t,r){let o=this.getInterceptorIndex(t);return this.fns[o]?(this.fns[o]=r,t):!1}use(t){return this.fns.push(t),this.fns.length-1}};n($,"Interceptors");var D=$,te=n(()=>({error:new D,request:new D,response:new D}),"createInterceptors"),Pe=Y({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),ze={"Content-Type":"application/json"},S=n((e={})=>({...F,headers:ze,parseAs:"auto",querySerializer:Pe,...e}),"createConfig");var q=n((e={})=>{let t=U(S(),e),r=n(()=>({...t}),"getConfig"),o=n(u=>(t=U(t,u),r()),"setConfig"),i=te(),p=n(async u=>{let s={...t,...u,fetch:u.fetch??t.fetch??globalThis.fetch,headers:z(t.headers,u.headers),serializedBody:void 0};s.security&&await ee({...s,security:s.security}),s.requestValidator&&await s.requestValidator(s),s.body!==void 0&&s.bodySerializer&&(s.serializedBody=s.bodySerializer(s.body)),(s.body===void 0||s.serializedBody==="")&&s.headers.delete("Content-Type");let f=v(s);return{opts:s,url:f}},"beforeRequest"),d=n(async u=>{let{opts:s,url:f}=await p(u),E={redirect:"follow",...s,body:G(s)},b=new Request(f,E);for(let h of i.request.fns)h&&(b=await h(b,s));let k=s.fetch,c=await k(b);for(let h of i.response.fns)h&&(c=await h(c,b,s));let m={request:b,response:c};if(c.ok){let h=(s.parseAs==="auto"?Z(c.headers.get("Content-Type")):s.parseAs)??"json";if(c.status===204||c.headers.get("Content-Length")==="0"){let O;switch(h){case"arrayBuffer":case"blob":case"text":O=await c[h]();break;case"formData":O=new FormData;break;case"stream":O=c.body;break;case"json":default:O={};break}return s.responseStyle==="data"?O:{data:O,...m}}let C;switch(h){case"arrayBuffer":case"blob":case"formData":case"json":case"text":C=await c[h]();break;case"stream":return s.responseStyle==="data"?c.body:{data:c.body,...m}}return h==="json"&&(s.responseValidator&&await s.responseValidator(C),s.responseTransformer&&(C=await s.responseTransformer(C))),s.responseStyle==="data"?C:{data:C,...m}}let R=await c.text(),L;try{L=JSON.parse(R)}catch{}let T=L??R,g=T;for(let h of i.error.fns)h&&(g=await h(T,c,b,s));if(g=g||{},s.throwOnError)throw g;return s.responseStyle==="data"?void 0:{error:g,...m}},"request"),a=n(u=>s=>d({...s,method:u}),"makeMethodFn"),l=n(u=>async s=>{let{opts:f,url:E}=await p(s);return _({...f,body:f.body,headers:f.headers,method:u,onRequest:n(async(b,k)=>{let c=new Request(b,k);for(let m of i.request.fns)m&&(c=await m(c,f));return c},"onRequest"),url:E})},"makeSseFn");return{buildUrl:v,connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),getConfig:r,head:a("HEAD"),interceptors:i,options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),request:d,setConfig:o,sse:{connect:l("CONNECT"),delete:l("DELETE"),get:l("GET"),head:l("HEAD"),options:l("OPTIONS"),patch:l("PATCH"),post:l("POST"),put:l("PUT"),trace:l("TRACE")},trace:a("TRACE")}},"createClient");var y=q(S({baseUrl:"https://swish.app/api/2025-10"}));var re=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e}),"listControllerFind"),ne=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerCreate"),oe=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerDeleteById"),se=n(e=>(e.client??y).get({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerFindById"),ie=n(e=>(e.client??y).patch({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerUpdateById"),ae=n(e=>(e.client??y).put({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/order",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerSetListItemsOrder"),le=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerAddItemsToList"),de=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/{itemId}",...e}),"listControllerRemoveItemFromList"),pe=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerDelete"),ce=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/items",...e}),"itemControllerFind"),ue=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerCreate"),ye=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/items/count",...e}),"itemControllerCount"),fe=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerDeleteById"),he=n(e=>(e.client??y).get({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerFindById"),me=n(e=>(e.client??y).patch({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerUpdateById"),Ce=n(e=>(e.client??y).put({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerSetListsById"),Ie=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/profiles/accounts-version",...e}),"profileControllerCustomerAccountsVersion"),ge=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/identify",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerIdentify"),Oe=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/token",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerCreateToken");var Fe="2025-10",ve=`https://swish.app/api/${Fe}`,xt=n(e=>new N(e),"createApiClient"),H=class H{constructor(t){this.client=q(S({baseUrl:ve}));this.items={list:n(t=>this.handlePaginatedRequest(ce({query:t,client:this.client})),"list"),create:n(t=>this.handleRequest(ue({body:t,client:this.client})),"create"),delete:n(t=>this.handleRequest(pe({body:{itemIds:t},client:this.client})),"delete"),findById:n(t=>this.handleRequest(he({path:{itemId:t},client:this.client})),"findById"),updateById:n((t,r)=>this.handleRequest(me({body:r,path:{itemId:t},client:this.client})),"updateById"),deleteById:n(t=>this.handleRequest(fe({path:{itemId:t},client:this.client})),"deleteById"),setListsById:n((t,r)=>this.handleRequest(Ce({body:{listIds:r},path:{itemId:t},client:this.client})),"setListsById"),count:n(()=>this.handleRequest(ye({client:this.client})),"count")};this.lists={list:n(t=>this.handlePaginatedRequest(re({query:t,client:this.client})),"list"),create:n(t=>this.handleRequest(ne({body:t,client:this.client})),"create"),findById:n(t=>this.handleRequest(se({path:{listId:t},client:this.client})),"findById"),updateById:n((t,r)=>this.handleRequest(ie({body:r,path:{listId:t},client:this.client})),"updateById"),deleteById:n(t=>this.handleRequest(oe({path:{listId:t},client:this.client})),"deleteById"),orderItems:n((t,r)=>this.handleRequest(ae({body:{itemIds:r},path:{listId:t},client:this.client})),"orderItems"),addItemsToList:n((t,r)=>this.handleRequest(le({body:{itemIds:r},path:{listId:t},client:this.client})),"addItemsToList"),removeItemFromList:n((t,r)=>this.handleRequest(de({path:{listId:t,itemId:r},client:this.client})),"removeItemFromList")};this.profiles={customerAccountsVersion:n(()=>this.handleRequest(Ie({client:this.client})),"customerAccountsVersion"),createToken:n((t={})=>this.handleRequest(Oe({body:t,client:this.client})),"createToken"),identify:n(t=>this.handleRequest(ge({body:t,client:this.client})),"identify")};this.handleRequest=n(async t=>{let{data:r,error:o}=await t;return o!=null&&o.error?{error:o.error}:{data:r==null?void 0:r.data}},"handleRequest");this.handlePaginatedRequest=n(async t=>{var i;let{data:r,error:o}=await t;return o!=null&&o.error?{error:o.error}:{data:(r==null?void 0:r.data)??[],pageInfo:(r==null?void 0:r.pageInfo)??{next:null,previous:null,totalCount:((i=r==null?void 0:r.data)==null?void 0:i.length)??0}}},"handlePaginatedRequest");this.profile=t.profile,t.authToken&&(this.authToken=t.authToken),t.config&&this.client.setConfig(t.config),this.client.interceptors.request.use(this.requestInterceptor.bind(this)),t.requestInterceptor&&this.client.interceptors.request.use(t.requestInterceptor),t.responseInterceptor&&this.client.interceptors.response.use(t.responseInterceptor)}setProfile(t){this.profile=t}getProfile(){return this.profile}setAuthToken(t){this.authToken=t}setConfig(t){this.client.setConfig(t)}requestInterceptor(t){return this.authToken&&t.headers.set("Authorization",`Bearer ${this.authToken}`),this.profile&&t.headers.set("Profile",this.profile),t}};n(H,"SwishClient");var N=H;export{Fe as apiVersion,ve as baseUrl,xt as createApiClient};
3
+ `);F=M.pop()??"";for(let Ee of M){let Se=Ee.split(`
4
+ `),P=[],W;for(let O of Se)if(O.startsWith("data:"))P.push(O.replace(/^data:\s*/,""));else if(O.startsWith("event:"))W=O.replace(/^event:\s*/,"");else if(O.startsWith("id:"))h=O.replace(/^id:\s*/,"");else if(O.startsWith("retry:")){let J=Number.parseInt(O.replace(/^retry:\s*/,""),10);Number.isNaN(J)||(c=J)}let w,Q=!1;if(P.length){let O=P.join(`
5
+ `);try{w=JSON.parse(O),Q=!0}catch{w=O}}Q&&(s&&await s(w),o&&(w=await o(w))),t==null||t({data:w,event:W,id:h,retry:c}),P.length&&(yield w)}}}finally{R.removeEventListener("abort",V),g.releaseLock()}break}catch(T){if(r==null||r(T),d!==void 0&&C>=d)break;let I=Math.min(c*2**(C-1),a??3e4);await k(I)}}},"createStream")()}},"createSseClient");var qe=n(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorArrayExplode"),Le=n(e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},"separatorArrayNoExplode"),Pe=n(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorObjectExplode"),A=n(({allowReserved:e,explode:r,name:t,style:o,value:s})=>{if(!r){let a=(e?s:s.map(l=>encodeURIComponent(l))).join(Le(o));switch(o){case"label":return`.${a}`;case"matrix":return`;${t}=${a}`;case"simple":return a;default:return`${t}=${a}`}}let p=qe(o),d=s.map(a=>o==="label"||o==="simple"?e?a:encodeURIComponent(a):E({allowReserved:e,name:t,value:a})).join(p);return o==="label"||o==="matrix"?p+d:d},"serializeArrayParam"),E=n(({allowReserved:e,name:r,value:t})=>{if(t==null)return"";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${r}=${e?t:encodeURIComponent(t)}`},"serializePrimitiveParam"),B=n(({allowReserved:e,explode:r,name:t,style:o,value:s,valueOnly:p})=>{if(s instanceof Date)return p?s.toISOString():`${t}=${s.toISOString()}`;if(o!=="deepObject"&&!r){let l=[];Object.entries(s).forEach(([i,h])=>{l=[...l,i,e?h:encodeURIComponent(h)]});let u=l.join(",");switch(o){case"form":return`${t}=${u}`;case"label":return`.${u}`;case"matrix":return`;${t}=${u}`;default:return u}}let d=Pe(o),a=Object.entries(s).map(([l,u])=>E({allowReserved:e,name:o==="deepObject"?`${t}[${l}]`:l,value:u})).join(d);return o==="label"||o==="matrix"?d+a:a},"serializeObjectParam");var Ae=/\{[^{}]+\}/g,Be=n(({path:e,url:r})=>{let t=r,o=r.match(Ae);if(o)for(let s of o){let p=!1,d=s.substring(1,s.length-1),a="simple";d.endsWith("*")&&(p=!0,d=d.substring(0,d.length-1)),d.startsWith(".")?(d=d.substring(1),a="label"):d.startsWith(";")&&(d=d.substring(1),a="matrix");let l=e[d];if(l==null)continue;if(Array.isArray(l)){t=t.replace(s,A({explode:p,name:d,style:a,value:l}));continue}if(typeof l=="object"){t=t.replace(s,B({explode:p,name:d,style:a,value:l,valueOnly:!0}));continue}if(a==="matrix"){t=t.replace(s,`;${E({name:d,value:l})}`);continue}let u=encodeURIComponent(a==="label"?`.${l}`:l);t=t.replace(s,u)}return t},"defaultPathSerializer"),K=n(({baseUrl:e,path:r,query:t,querySerializer:o,url:s})=>{let p=s.startsWith("/")?s:`/${s}`,d=(e??"")+p;r&&(d=Be({path:r,url:d}));let a=t?o(t):"";return a.startsWith("?")&&(a=a.substring(1)),a&&(d+=`?${a}`),d},"getUrl");function G(e){let r=e.body!==void 0;if(r&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(r)return e.body}n(G,"getValidRequestBody");var X=n(async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t},"getAuthToken");var Y=n(({allowReserved:e,array:r,object:t}={})=>n(s=>{let p=[];if(s&&typeof s=="object")for(let d in s){let a=s[d];if(a!=null)if(Array.isArray(a)){let l=A({allowReserved:e,explode:!0,name:d,style:"form",value:a,...r});l&&p.push(l)}else if(typeof a=="object"){let l=B({allowReserved:e,explode:!0,name:d,style:"deepObject",value:a,...t});l&&p.push(l)}else{let l=E({allowReserved:e,name:d,value:a});l&&p.push(l)}}return p.join("&")},"querySerializer"),"createQuerySerializer"),Z=n(e=>{var t;if(!e)return"stream";let r=(t=e.split(";")[0])==null?void 0:t.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return"json";if(r==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(o=>r.startsWith(o)))return"blob";if(r.startsWith("text/"))return"text"}},"getParseAs"),ze=n((e,r)=>{var t,o;return r?!!(e.headers.has(r)||(t=e.query)!=null&&t[r]||(o=e.headers.get("Cookie"))!=null&&o.includes(`${r}=`)):!1},"checkForExistence"),ee=n(async({security:e,...r})=>{for(let t of e){if(ze(r,t.name))continue;let o=await X(t,r.auth);if(!o)continue;let s=t.name??"Authorization";switch(t.in){case"query":r.query||(r.query={}),r.query[s]=o;break;case"cookie":r.headers.append("Cookie",`${s}=${o}`);break;case"header":default:r.headers.set(s,o);break}}},"setAuthParams"),v=n(e=>K({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:Y(e.querySerializer),url:e.url}),"buildUrl"),U=n((e,r)=>{var o;let t={...e,...r};return(o=t.baseUrl)!=null&&o.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=z(e.headers,r.headers),t},"mergeConfigs"),Fe=n(e=>{let r=[];return e.forEach((t,o)=>{r.push([o,t])}),r},"headersEntries"),z=n((...e)=>{let r=new Headers;for(let t of e){if(!t)continue;let o=t instanceof Headers?Fe(t):Object.entries(t);for(let[s,p]of o)if(p===null)r.delete(s);else if(Array.isArray(p))for(let d of p)r.append(s,d);else p!==void 0&&r.set(s,typeof p=="object"?JSON.stringify(p):p)}return r},"mergeHeaders"),$=class ${constructor(){this.fns=[]}clear(){this.fns=[]}eject(r){let t=this.getInterceptorIndex(r);this.fns[t]&&(this.fns[t]=null)}exists(r){let t=this.getInterceptorIndex(r);return!!this.fns[t]}getInterceptorIndex(r){return typeof r=="number"?this.fns[r]?r:-1:this.fns.indexOf(r)}update(r,t){let o=this.getInterceptorIndex(r);return this.fns[o]?(this.fns[o]=t,r):!1}use(r){return this.fns.push(r),this.fns.length-1}};n($,"Interceptors");var q=$,re=n(()=>({error:new q,request:new q,response:new q}),"createInterceptors"),je=Y({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),ve={"Content-Type":"application/json"},x=n((e={})=>({...j,headers:ve,parseAs:"auto",querySerializer:je,...e}),"createConfig");var S=n((e={})=>{let r=U(x(),e),t=n(()=>({...r}),"getConfig"),o=n(u=>(r=U(r,u),t()),"setConfig"),s=re(),p=n(async u=>{let i={...r,...u,fetch:u.fetch??r.fetch??globalThis.fetch,headers:z(r.headers,u.headers),serializedBody:void 0};i.security&&await ee({...i,security:i.security}),i.requestValidator&&await i.requestValidator(i),i.body!==void 0&&i.bodySerializer&&(i.serializedBody=i.bodySerializer(i.body)),(i.body===void 0||i.serializedBody==="")&&i.headers.delete("Content-Type");let h=v(i);return{opts:i,url:h}},"beforeRequest"),d=n(async u=>{let{opts:i,url:h}=await p(u),k={redirect:"follow",...i,body:G(i)},b=new Request(h,k);for(let f of s.request.fns)f&&(b=await f(b,i));let L=i.fetch,c=await L(b);for(let f of s.response.fns)f&&(c=await f(c,b,i));let C={request:b,response:c};if(c.ok){let f=(i.parseAs==="auto"?Z(c.headers.get("Content-Type")):i.parseAs)??"json";if(c.status===204||c.headers.get("Content-Length")==="0"){let g;switch(f){case"arrayBuffer":case"blob":case"text":g=await c[f]();break;case"formData":g=new FormData;break;case"stream":g=c.body;break;case"json":default:g={};break}return i.responseStyle==="data"?g:{data:g,...C}}let m;switch(f){case"arrayBuffer":case"blob":case"formData":case"json":case"text":m=await c[f]();break;case"stream":return i.responseStyle==="data"?c.body:{data:c.body,...C}}return f==="json"&&(i.responseValidator&&await i.responseValidator(m),i.responseTransformer&&(m=await i.responseTransformer(m))),i.responseStyle==="data"?m:{data:m,...C}}let R=await c.text(),D;try{D=JSON.parse(R)}catch{}let T=D??R,I=T;for(let f of s.error.fns)f&&(I=await f(T,c,b,i));if(I=I||{},i.throwOnError)throw I;return i.responseStyle==="data"?void 0:{error:I,...C}},"request"),a=n(u=>i=>d({...i,method:u}),"makeMethodFn"),l=n(u=>async i=>{let{opts:h,url:k}=await p(i);return _({...h,body:h.body,headers:h.headers,method:u,onRequest:n(async(b,L)=>{let c=new Request(b,L);for(let C of s.request.fns)C&&(c=await C(c,h));return c},"onRequest"),url:k})},"makeSseFn");return{buildUrl:v,connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),getConfig:t,head:a("HEAD"),interceptors:s,options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),request:d,setConfig:o,sse:{connect:l("CONNECT"),delete:l("DELETE"),get:l("GET"),head:l("HEAD"),options:l("OPTIONS"),patch:l("PATCH"),post:l("POST"),put:l("PUT"),trace:l("TRACE")},trace:a("TRACE")}},"createClient");var y=S(x({baseUrl:"https://swish.app/api/2026-01"}));var te=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e}),"listControllerFind"),ne=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerCreate"),oe=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerDeleteById"),se=n(e=>(e.client??y).get({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerFindById"),ie=n(e=>(e.client??y).patch({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerUpdateById"),ae=n(e=>(e.client??y).put({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/order",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerSetListItemsOrder"),le=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerAddItemsToList"),de=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/{itemId}",...e}),"listControllerRemoveItemFromList"),pe=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerDelete"),ce=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/items",...e}),"itemControllerFind"),ue=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerCreate"),ye=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/items/count",...e}),"itemControllerCount"),he=n(e=>(e.client??y).delete({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerDeleteById"),fe=n(e=>(e.client??y).get({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerFindById"),Ce=n(e=>(e.client??y).patch({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerUpdateById"),me=n(e=>(e.client??y).put({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerSetListsById"),Oe=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/profiles/accounts-version",...e}),"profileControllerCustomerAccountsVersion"),Ie=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/identify",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerIdentify"),ge=n(e=>(e.client??y).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/token",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerCreateToken");var be=n(e=>((e==null?void 0:e.client)??y).get({security:[{scheme:"bearer",type:"http"}],url:"/orders",...e}),"ordersControllerFind"),xe=n(e=>(e.client??y).get({security:[{scheme:"bearer",type:"http"}],url:"/orders/{orderId}",...e}),"ordersControllerFindOne");var $e="2026-01",Re="/apps/wishlist/api",Dr=n(e=>new N(e),"createApiClient"),H=class H{constructor(r){this.useProxy=!1;this.version=$e;this.items={list:n(r=>this.handlePaginatedRequest(ce({query:r,client:this.useProxy?this.proxyClient:this.directClient})),"list"),create:n(r=>this.handleRequest(ue({body:r,client:this.useProxy?this.proxyClient:this.directClient})),"create"),delete:n(r=>this.handleRequest(pe({body:{itemIds:r},client:this.useProxy?this.proxyClient:this.directClient})),"delete"),findById:n(r=>this.handleRequest(fe({path:{itemId:r},client:this.useProxy?this.proxyClient:this.directClient})),"findById"),updateById:n((r,t)=>this.handleRequest(Ce({body:t,path:{itemId:r},client:this.useProxy?this.proxyClient:this.directClient})),"updateById"),deleteById:n(r=>this.handleRequest(he({path:{itemId:r},client:this.useProxy?this.proxyClient:this.directClient})),"deleteById"),setListsById:n((r,t)=>this.handleRequest(me({body:{listIds:t},path:{itemId:r},client:this.useProxy?this.proxyClient:this.directClient})),"setListsById"),count:n(()=>this.handleRequest(ye({client:this.useProxy?this.proxyClient:this.directClient})),"count")};this.lists={list:n(r=>this.handlePaginatedRequest(te({query:r,client:this.useProxy?this.proxyClient:this.directClient})),"list"),create:n(r=>this.handleRequest(ne({body:r,client:this.useProxy?this.proxyClient:this.directClient})),"create"),findById:n(r=>this.handleRequest(se({path:{listId:r},client:this.useProxy?this.proxyClient:this.directClient})),"findById"),updateById:n((r,t)=>this.handleRequest(ie({body:t,path:{listId:r},client:this.useProxy?this.proxyClient:this.directClient})),"updateById"),deleteById:n(r=>this.handleRequest(oe({path:{listId:r},client:this.useProxy?this.proxyClient:this.directClient})),"deleteById"),orderItems:n((r,t)=>this.handleRequest(ae({body:{itemIds:t},path:{listId:r},client:this.useProxy?this.proxyClient:this.directClient})),"orderItems"),addItemsToList:n((r,t)=>this.handleRequest(le({body:{itemIds:t},path:{listId:r},client:this.useProxy?this.proxyClient:this.directClient})),"addItemsToList"),removeItemFromList:n((r,t)=>this.handleRequest(de({path:{listId:r,itemId:t},client:this.useProxy?this.proxyClient:this.directClient})),"removeItemFromList")};this.profiles={customerAccountsVersion:n(()=>this.handleRequest(Oe({client:this.useProxy?this.proxyClient:this.directClient})),"customerAccountsVersion"),createToken:n((r={},t)=>this.handleRequest(ge({body:r,client:this.useProxy||t!=null&&t.useProxy?this.proxyClient:this.directClient})),"createToken"),identify:n(r=>this.handleRequest(Ie({body:r,client:this.useProxy?this.proxyClient:this.directClient})),"identify")};this.orders={list:n(r=>this.handlePaginatedRequest(be({query:r,client:this.useProxy?this.proxyClient:this.directClient})),"list"),findById:n(r=>this.handleRequest(xe({path:{orderId:r},client:this.useProxy?this.proxyClient:this.directClient})),"findById")};this.handleRequest=n(async r=>{let{data:t,error:o}=await r;return o!=null&&o.error?{error:o.error}:{data:t==null?void 0:t.data}},"handleRequest");this.handlePaginatedRequest=n(async r=>{var s;let{data:t,error:o}=await r;return o!=null&&o.error?{error:o.error}:{data:(t==null?void 0:t.data)??[],pageInfo:(t==null?void 0:t.pageInfo)??{next:null,previous:null,totalCount:((s=t==null?void 0:t.data)==null?void 0:s.length)??0}}},"handlePaginatedRequest");var t;this.profile=r.profile,(t=r.config)!=null&&t.version&&(this.version=r.config.version),this.directClient=S(x({baseUrl:`https://swish.app/api/${this.version}`})),this.proxyClient=S(x({baseUrl:Re})),r.authToken&&(this.authToken=r.authToken),r.config&&this.setConfig(r.config),r.requestInterceptor&&(this.proxyClient.interceptors.request.use(r.requestInterceptor),this.directClient.interceptors.request.use(r.requestInterceptor)),r.responseInterceptor&&(this.proxyClient.interceptors.response.use(r.responseInterceptor),this.directClient.interceptors.response.use(r.responseInterceptor)),this.proxyClient.interceptors.request.use(this.proxyRequestInterceptor.bind(this)),this.directClient.interceptors.request.use(this.directRequestInterceptor.bind(this))}setProfile(r){this.profile=r}getProfile(){return this.profile}setAuthToken(r){this.authToken=r}setConfig({proxyBaseUrl:r=Re,baseUrl:t,useProxy:o=!1,...s}){this.useProxy=o,this.proxyClient.setConfig({...s,baseUrl:r}),this.directClient.setConfig({...s})}proxyRequestInterceptor(r){return this.profile&&(r.headers.set("Profile",this.profile),r.headers.set("Swish-Api-Version",this.version)),r}directRequestInterceptor(r){return this.authToken&&r.headers.set("Authorization",`Bearer ${this.authToken}`),r}};n(H,"SwishClient");var N=H;export{Dr as createApiClient,$e as defaultApiVersion,Re as defaultProxyBaseUrl};
@@ -1,5 +1,5 @@
1
1
  import type { Client, Options as Options2, TDataShape } from './client';
2
- import type { AnalyticsControllerLoadNewListsData, AnalyticsControllerLoadNewListsErrors, AnalyticsControllerLoadNewListsResponses, AnalyticsControllerLoadSavedItemsData, AnalyticsControllerLoadSavedItemsErrors, AnalyticsControllerLoadSavedItemsResponses, AnalyticsControllerLoadSessionsData, AnalyticsControllerLoadSessionsErrors, AnalyticsControllerLoadSessionsResponses, ItemControllerCountData, ItemControllerCountErrors, ItemControllerCountResponses, ItemControllerCreateData, ItemControllerCreateErrors, ItemControllerCreateResponses, ItemControllerDeleteByIdData, ItemControllerDeleteByIdErrors, ItemControllerDeleteByIdResponses, ItemControllerDeleteData, ItemControllerDeleteErrors, ItemControllerDeleteResponses, ItemControllerFindByIdData, ItemControllerFindByIdErrors, ItemControllerFindByIdResponses, ItemControllerFindData, ItemControllerFindErrors, ItemControllerFindResponses, ItemControllerSetListsByIdData, ItemControllerSetListsByIdErrors, ItemControllerSetListsByIdResponses, ItemControllerUpdateByIdData, ItemControllerUpdateByIdErrors, ItemControllerUpdateByIdResponses, ListControllerAddItemsToListData, ListControllerAddItemsToListErrors, ListControllerAddItemsToListResponses, ListControllerCreateData, ListControllerCreateErrors, ListControllerCreateResponses, ListControllerDeleteByIdData, ListControllerDeleteByIdErrors, ListControllerDeleteByIdResponses, ListControllerFindByIdData, ListControllerFindByIdErrors, ListControllerFindByIdResponses, ListControllerFindData, ListControllerFindErrors, ListControllerFindResponses, ListControllerRemoveItemFromListData, ListControllerRemoveItemFromListErrors, ListControllerRemoveItemFromListResponses, ListControllerSetListItemsOrderData, ListControllerSetListItemsOrderErrors, ListControllerSetListItemsOrderResponses, ListControllerUpdateByIdData, ListControllerUpdateByIdErrors, ListControllerUpdateByIdResponses, ProfileControllerCreateTokenData, ProfileControllerCreateTokenErrors, ProfileControllerCreateTokenResponses, ProfileControllerCustomerAccountsVersionData, ProfileControllerCustomerAccountsVersionErrors, ProfileControllerCustomerAccountsVersionResponses, ProfileControllerIdentifyData, ProfileControllerIdentifyErrors, ProfileControllerIdentifyResponses } from './types.gen';
2
+ import type { AnalyticsControllerLoadNewListsData, AnalyticsControllerLoadNewListsErrors, AnalyticsControllerLoadNewListsResponses, AnalyticsControllerLoadSavedItemsData, AnalyticsControllerLoadSavedItemsErrors, AnalyticsControllerLoadSavedItemsResponses, AnalyticsControllerLoadSessionsData, AnalyticsControllerLoadSessionsErrors, AnalyticsControllerLoadSessionsResponses, ItemControllerCountData, ItemControllerCountErrors, ItemControllerCountResponses, ItemControllerCreateData, ItemControllerCreateErrors, ItemControllerCreateResponses, ItemControllerDeleteByIdData, ItemControllerDeleteByIdErrors, ItemControllerDeleteByIdResponses, ItemControllerDeleteData, ItemControllerDeleteErrors, ItemControllerDeleteResponses, ItemControllerFindByIdData, ItemControllerFindByIdErrors, ItemControllerFindByIdResponses, ItemControllerFindData, ItemControllerFindErrors, ItemControllerFindResponses, ItemControllerSetListsByIdData, ItemControllerSetListsByIdErrors, ItemControllerSetListsByIdResponses, ItemControllerUpdateByIdData, ItemControllerUpdateByIdErrors, ItemControllerUpdateByIdResponses, ListControllerAddItemsToListData, ListControllerAddItemsToListErrors, ListControllerAddItemsToListResponses, ListControllerCreateData, ListControllerCreateErrors, ListControllerCreateResponses, ListControllerDeleteByIdData, ListControllerDeleteByIdErrors, ListControllerDeleteByIdResponses, ListControllerFindByIdData, ListControllerFindByIdErrors, ListControllerFindByIdResponses, ListControllerFindData, ListControllerFindErrors, ListControllerFindResponses, ListControllerRemoveItemFromListData, ListControllerRemoveItemFromListErrors, ListControllerRemoveItemFromListResponses, ListControllerSetListItemsOrderData, ListControllerSetListItemsOrderErrors, ListControllerSetListItemsOrderResponses, ListControllerUpdateByIdData, ListControllerUpdateByIdErrors, ListControllerUpdateByIdResponses, OrdersControllerFindData, OrdersControllerFindErrors, OrdersControllerFindOneData, OrdersControllerFindOneErrors, OrdersControllerFindOneResponses, OrdersControllerFindResponses, ProfileControllerCreateTokenData, ProfileControllerCreateTokenErrors, ProfileControllerCreateTokenResponses, ProfileControllerCustomerAccountsVersionData, ProfileControllerCustomerAccountsVersionErrors, ProfileControllerCustomerAccountsVersionResponses, ProfileControllerIdentifyData, ProfileControllerIdentifyErrors, ProfileControllerIdentifyResponses, TrackingControllerTrackData, TrackingControllerTrackErrors, TrackingControllerTrackResponses } from './types.gen';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -35,3 +35,10 @@ export declare const profileControllerCreateToken: <ThrowOnError extends boolean
35
35
  export declare const analyticsControllerLoadSavedItems: <ThrowOnError extends boolean = false>(options: Options<AnalyticsControllerLoadSavedItemsData, ThrowOnError>) => import("./client").RequestResult<AnalyticsControllerLoadSavedItemsResponses, AnalyticsControllerLoadSavedItemsErrors, ThrowOnError, "fields">;
36
36
  export declare const analyticsControllerLoadSessions: <ThrowOnError extends boolean = false>(options: Options<AnalyticsControllerLoadSessionsData, ThrowOnError>) => import("./client").RequestResult<AnalyticsControllerLoadSessionsResponses, AnalyticsControllerLoadSessionsErrors, ThrowOnError, "fields">;
37
37
  export declare const analyticsControllerLoadNewLists: <ThrowOnError extends boolean = false>(options: Options<AnalyticsControllerLoadNewListsData, ThrowOnError>) => import("./client").RequestResult<AnalyticsControllerLoadNewListsResponses, AnalyticsControllerLoadNewListsErrors, ThrowOnError, "fields">;
38
+ /**
39
+ * Track user behavior events
40
+ * Endpoint for tracking user behavior events.
41
+ */
42
+ export declare const trackingControllerTrack: <ThrowOnError extends boolean = false>(options: Options<TrackingControllerTrackData, ThrowOnError>) => import("./client").RequestResult<TrackingControllerTrackResponses, TrackingControllerTrackErrors, ThrowOnError, "fields">;
43
+ export declare const ordersControllerFind: <ThrowOnError extends boolean = false>(options?: Options<OrdersControllerFindData, ThrowOnError>) => import("./client").RequestResult<OrdersControllerFindResponses, OrdersControllerFindErrors, ThrowOnError, "fields">;
44
+ export declare const ordersControllerFindOne: <ThrowOnError extends boolean = false>(options: Options<OrdersControllerFindOneData, ThrowOnError>) => import("./client").RequestResult<OrdersControllerFindOneResponses, OrdersControllerFindOneErrors, ThrowOnError, "fields">;
@@ -1,5 +1,23 @@
1
1
  export type ClientOptions = {
2
- baseUrl: 'https://swish.app/api/2025-10' | (string & {});
2
+ baseUrl: 'https://swish.app/api/2026-01' | (string & {});
3
+ };
4
+ export type PreviewImageDto = {
5
+ /**
6
+ * Unique identifier for the image
7
+ */
8
+ id: string;
9
+ /**
10
+ * Alt text for the image
11
+ */
12
+ altText: string;
13
+ /**
14
+ * URL of the image
15
+ */
16
+ url: string;
17
+ /**
18
+ * Thumbhash for the image
19
+ */
20
+ thumbhash: string;
3
21
  };
4
22
  export type ListDetail = {
5
23
  /**
@@ -18,6 +36,10 @@ export type ListDetail = {
18
36
  * The date and time the list was updated
19
37
  */
20
38
  updatedAt: string;
39
+ /**
40
+ * The access level of the list
41
+ */
42
+ access: 'private' | 'public';
21
43
  /**
22
44
  * The number of items in the list
23
45
  */
@@ -26,6 +48,10 @@ export type ListDetail = {
26
48
  * Array of image URLs for the first 4 items in the list
27
49
  */
28
50
  imageUrls: Array<string>;
51
+ /**
52
+ * Array of preview image objects for the first 4 items in the list
53
+ */
54
+ previewImages: Array<PreviewImageDto>;
29
55
  /**
30
56
  * Array of item IDs in the list
31
57
  */
@@ -48,6 +74,10 @@ export type List = {
48
74
  * The date and time the list was updated
49
75
  */
50
76
  updatedAt: string;
77
+ /**
78
+ * The access level of the list
79
+ */
80
+ access: 'private' | 'public';
51
81
  };
52
82
  export type _Error = {
53
83
  /**
@@ -103,7 +133,11 @@ export type UpdateListInput = {
103
133
  /**
104
134
  * The name of the list
105
135
  */
106
- name: string;
136
+ name?: string;
137
+ /**
138
+ * The access level of the list
139
+ */
140
+ access?: 'private' | 'public';
107
141
  };
108
142
  export type SetListItemsOrderInput = {
109
143
  /**
@@ -271,10 +305,136 @@ export type Analytics = {
271
305
  */
272
306
  total: number;
273
307
  };
308
+ export type TrackingEventRequestDto = {
309
+ [key: string]: unknown;
310
+ };
311
+ export type ProductVariantDto = {
312
+ /**
313
+ * The product variant’s title
314
+ */
315
+ title: string;
316
+ /**
317
+ * The image of the variant
318
+ */
319
+ image?: PreviewImageDto;
320
+ };
321
+ export type Money = {
322
+ /**
323
+ * The currency code
324
+ */
325
+ currencyCode: string;
326
+ /**
327
+ * The amount
328
+ */
329
+ amount: number;
330
+ };
331
+ export type OrderLineItem = {
332
+ /**
333
+ * The order line item ID
334
+ */
335
+ id: string;
336
+ /**
337
+ * The title of the product combined with title of the variant.
338
+ */
339
+ title: string;
340
+ /**
341
+ * The product variant associated to the line item.
342
+ */
343
+ variant?: ProductVariantDto;
344
+ /**
345
+ * The quantity of items
346
+ */
347
+ quantity: number;
348
+ /**
349
+ * The original total price for this order item
350
+ */
351
+ originalTotalPrice: Money;
352
+ /**
353
+ * The discounted total price for this order item
354
+ */
355
+ discountedTotalPrice: Money;
356
+ /**
357
+ * The fulfillment status of this order item
358
+ */
359
+ fulfillmentStatus: string;
360
+ };
361
+ export type OrderDetailDto = {
362
+ /**
363
+ * The order ID
364
+ */
365
+ id: string;
366
+ /**
367
+ * The order name
368
+ */
369
+ name: string;
370
+ /**
371
+ * The date and time when the order was created
372
+ */
373
+ createdAt: string;
374
+ /**
375
+ * The total number of items in the order
376
+ */
377
+ itemCount: number;
378
+ /**
379
+ * The total price of the order
380
+ */
381
+ totalPrice: Money;
382
+ /**
383
+ * The main fulfillment status of the order
384
+ */
385
+ displayStatus: string;
386
+ /**
387
+ * Array of order line items
388
+ */
389
+ lineItems: Array<OrderLineItem>;
390
+ };
391
+ export type OrderDto = {
392
+ /**
393
+ * The order ID
394
+ */
395
+ id: string;
396
+ /**
397
+ * The order number
398
+ */
399
+ name: string;
400
+ /**
401
+ * The date and time when the order was created
402
+ */
403
+ createdAt: string;
404
+ /**
405
+ * Human-readable display status
406
+ */
407
+ displayStatus: string;
408
+ /**
409
+ * The number of line items in the order
410
+ */
411
+ itemCount: number;
412
+ /**
413
+ * The total price of the order
414
+ */
415
+ totalPrice: Money;
416
+ /**
417
+ * Preview images from the order line items
418
+ */
419
+ previewImages?: Array<PreviewImageDto>;
420
+ };
274
421
  export type ListControllerFindData = {
275
422
  body?: never;
276
423
  path?: never;
277
- query?: never;
424
+ query?: {
425
+ /**
426
+ * The page cursor
427
+ */
428
+ page?: string;
429
+ /**
430
+ * Number of lists/items to return
431
+ */
432
+ limit?: number;
433
+ /**
434
+ * The sort order of the lists
435
+ */
436
+ sort?: 'recently_updated' | 'custom';
437
+ };
278
438
  url: '/lists';
279
439
  };
280
440
  export type ListControllerFindErrors = {
@@ -320,7 +480,7 @@ export type ListControllerFindResponses = {
320
480
  /**
321
481
  * Returns all lists as paginated response
322
482
  */
323
- 200: Response & {
483
+ 200: PaginatedResponse & {
324
484
  data?: Array<ListDetail>;
325
485
  };
326
486
  };
@@ -798,14 +958,14 @@ export type ItemControllerFindData = {
798
958
  * Item search query
799
959
  */
800
960
  query?: string;
801
- /**
802
- * The sort order of the items in the list
803
- */
804
- sort?: 'recently_saved' | 'custom';
805
961
  /**
806
962
  * List ID to filter items by specific list
807
963
  */
808
964
  listId?: string;
965
+ /**
966
+ * The sort order of the items
967
+ */
968
+ sort?: 'recently_saved' | 'custom';
809
969
  };
810
970
  url: '/items';
811
971
  };
@@ -1588,3 +1748,171 @@ export type AnalyticsControllerLoadNewListsResponses = {
1588
1748
  };
1589
1749
  };
1590
1750
  export type AnalyticsControllerLoadNewListsResponse = AnalyticsControllerLoadNewListsResponses[keyof AnalyticsControllerLoadNewListsResponses];
1751
+ export type TrackingControllerTrackData = {
1752
+ body: TrackingEventRequestDto;
1753
+ headers: {
1754
+ referer: string;
1755
+ };
1756
+ path?: never;
1757
+ query?: never;
1758
+ url: '/tracking';
1759
+ };
1760
+ export type TrackingControllerTrackErrors = {
1761
+ /**
1762
+ * Bad Request
1763
+ */
1764
+ 400: ErrorResponse & {
1765
+ error?: {
1766
+ statusCode?: number;
1767
+ error?: string;
1768
+ };
1769
+ };
1770
+ /**
1771
+ * Unauthorized
1772
+ */
1773
+ 401: ErrorResponse & {
1774
+ error?: {
1775
+ statusCode?: number;
1776
+ error?: string;
1777
+ };
1778
+ };
1779
+ /**
1780
+ * Forbidden
1781
+ */
1782
+ 403: ErrorResponse & {
1783
+ error?: {
1784
+ statusCode?: number;
1785
+ error?: string;
1786
+ };
1787
+ };
1788
+ };
1789
+ export type TrackingControllerTrackError = TrackingControllerTrackErrors[keyof TrackingControllerTrackErrors];
1790
+ export type TrackingControllerTrackResponses = {
1791
+ /**
1792
+ * Event tracked successfully
1793
+ */
1794
+ 204: void;
1795
+ };
1796
+ export type TrackingControllerTrackResponse = TrackingControllerTrackResponses[keyof TrackingControllerTrackResponses];
1797
+ export type OrdersControllerFindData = {
1798
+ body?: never;
1799
+ path?: never;
1800
+ query?: {
1801
+ /**
1802
+ * Pagination cursor for next or previous page
1803
+ */
1804
+ page?: string;
1805
+ /**
1806
+ * Number of orders to return per page
1807
+ */
1808
+ limit?: number;
1809
+ };
1810
+ url: '/orders';
1811
+ };
1812
+ export type OrdersControllerFindErrors = {
1813
+ /**
1814
+ * Bad Request
1815
+ */
1816
+ 400: ErrorResponse & {
1817
+ error?: {
1818
+ statusCode?: number;
1819
+ error?: string;
1820
+ };
1821
+ };
1822
+ /**
1823
+ * Unauthorized
1824
+ */
1825
+ 401: ErrorResponse & {
1826
+ error?: {
1827
+ statusCode?: number;
1828
+ error?: string;
1829
+ };
1830
+ };
1831
+ /**
1832
+ * Forbidden
1833
+ */
1834
+ 403: ErrorResponse & {
1835
+ error?: {
1836
+ statusCode?: number;
1837
+ error?: string;
1838
+ };
1839
+ };
1840
+ /**
1841
+ * Not Found
1842
+ */
1843
+ 404: ErrorResponse & {
1844
+ error?: {
1845
+ statusCode?: number;
1846
+ error?: string;
1847
+ };
1848
+ };
1849
+ };
1850
+ export type OrdersControllerFindError = OrdersControllerFindErrors[keyof OrdersControllerFindErrors];
1851
+ export type OrdersControllerFindResponses = {
1852
+ /**
1853
+ * Returns all orders as paginated response
1854
+ */
1855
+ 200: PaginatedResponse & {
1856
+ data?: Array<OrderDto>;
1857
+ };
1858
+ };
1859
+ export type OrdersControllerFindResponse = OrdersControllerFindResponses[keyof OrdersControllerFindResponses];
1860
+ export type OrdersControllerFindOneData = {
1861
+ body?: never;
1862
+ path: {
1863
+ /**
1864
+ * The ID of the order
1865
+ */
1866
+ orderId: number;
1867
+ };
1868
+ query?: never;
1869
+ url: '/orders/{orderId}';
1870
+ };
1871
+ export type OrdersControllerFindOneErrors = {
1872
+ /**
1873
+ * Bad Request
1874
+ */
1875
+ 400: ErrorResponse & {
1876
+ error?: {
1877
+ statusCode?: number;
1878
+ error?: string;
1879
+ };
1880
+ };
1881
+ /**
1882
+ * Unauthorized
1883
+ */
1884
+ 401: ErrorResponse & {
1885
+ error?: {
1886
+ statusCode?: number;
1887
+ error?: string;
1888
+ };
1889
+ };
1890
+ /**
1891
+ * Forbidden
1892
+ */
1893
+ 403: ErrorResponse & {
1894
+ error?: {
1895
+ statusCode?: number;
1896
+ error?: string;
1897
+ };
1898
+ };
1899
+ /**
1900
+ * Not Found
1901
+ */
1902
+ 404: ErrorResponse & {
1903
+ error?: {
1904
+ statusCode?: number;
1905
+ error?: string;
1906
+ };
1907
+ };
1908
+ };
1909
+ export type OrdersControllerFindOneError = OrdersControllerFindOneErrors[keyof OrdersControllerFindOneErrors];
1910
+ export type OrdersControllerFindOneResponses = {
1911
+ /**
1912
+ * Returns order detail with line items and tracking information
1913
+ */
1914
+ 200: Response & {
1915
+ data?: OrderDetailDto;
1916
+ };
1917
+ };
1918
+ export type OrdersControllerFindOneResponse = OrdersControllerFindOneResponses[keyof OrdersControllerFindOneResponses];
package/dist/types.d.ts CHANGED
@@ -5,11 +5,16 @@ export type { SwishClient };
5
5
  export interface SwishClientOptions {
6
6
  authToken?: string;
7
7
  profile?: string;
8
+ proxyMode?: boolean;
8
9
  config?: SwishClientConfig;
9
10
  requestInterceptor?: Parameters<Client["interceptors"]["request"]["use"]>[0];
10
11
  responseInterceptor?: Parameters<Client["interceptors"]["response"]["use"]>[0];
11
12
  }
12
- export type SwishClientConfig = Config<ClientOptions>;
13
+ export type SwishClientConfig = Config<ClientOptions> & {
14
+ proxyBaseUrl?: string;
15
+ useProxy?: boolean;
16
+ version?: string;
17
+ };
13
18
  export type ListItemsResponse = Awaited<ReturnType<SwishClient["items"]["list"]>>;
14
19
  export type CreateItemResponse = Awaited<ReturnType<SwishClient["items"]["create"]>>;
15
20
  export type DeleteItemsResponse = Awaited<ReturnType<SwishClient["items"]["delete"]>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swishapp/api-client",
3
- "version": "0.25.0",
3
+ "version": "0.27.0",
4
4
  "description": "A lightweight JS client for the Swish REST API.",
5
5
  "homepage": "https://developers.swish.app/libraries/api-client",
6
6
  "type": "module",