@swishapp/api-client 0.43.1-next.0 → 0.44.0-unstable.20260203181536
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/README.md +56 -0
- package/dist/{client.d.ts → 2026-01/client.d.ts} +1 -1
- package/dist/2026-01/index.d.ts +3 -0
- package/dist/2026-01/index.js +7 -0
- package/dist/{openapi → 2026-01/openapi}/client/index.d.ts +2 -1
- package/dist/{openapi → 2026-01/openapi}/client/types.gen.d.ts +2 -9
- package/dist/{openapi → 2026-01/openapi}/client/utils.gen.d.ts +1 -1
- package/dist/{openapi → 2026-01/openapi}/core/bodySerializer.gen.d.ts +12 -4
- package/dist/{openapi → 2026-01/openapi}/core/params.gen.d.ts +10 -0
- package/dist/2026-01/openapi/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/2026-01/openapi/index.d.ts +2 -0
- package/dist/{openapi → 2026-01/openapi}/sdk.gen.d.ts +1 -0
- package/dist/{openapi → 2026-01/openapi}/types.gen.d.ts +7 -97
- package/dist/{types.d.ts → 2026-01/types.d.ts} +1 -2
- package/dist/2026-04/client.d.ts +74 -0
- package/dist/2026-04/index.d.ts +3 -0
- package/dist/2026-04/index.js +7 -0
- package/dist/2026-04/openapi/client/client.gen.d.ts +2 -0
- package/dist/2026-04/openapi/client/index.d.ts +8 -0
- package/dist/2026-04/openapi/client/types.gen.d.ts +117 -0
- package/dist/2026-04/openapi/client/utils.gen.d.ts +33 -0
- package/dist/2026-04/openapi/client.gen.d.ts +12 -0
- package/dist/2026-04/openapi/core/auth.gen.d.ts +18 -0
- package/dist/2026-04/openapi/core/bodySerializer.gen.d.ts +25 -0
- package/dist/2026-04/openapi/core/params.gen.d.ts +43 -0
- package/dist/2026-04/openapi/core/pathSerializer.gen.d.ts +33 -0
- package/dist/2026-04/openapi/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/2026-04/openapi/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/2026-04/openapi/core/types.gen.d.ts +78 -0
- package/dist/2026-04/openapi/core/utils.gen.d.ts +19 -0
- package/dist/2026-04/openapi/index.d.ts +2 -0
- package/dist/2026-04/openapi/sdk.gen.d.ts +60 -0
- package/dist/2026-04/openapi/types.gen.d.ts +3335 -0
- package/dist/2026-04/types.d.ts +60 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.js +6 -4
- package/dist/unstable/client.d.ts +74 -0
- package/dist/unstable/index.d.ts +3 -0
- package/dist/unstable/index.js +7 -0
- package/dist/unstable/openapi/client/client.gen.d.ts +2 -0
- package/dist/unstable/openapi/client/index.d.ts +8 -0
- package/dist/unstable/openapi/client/types.gen.d.ts +117 -0
- package/dist/unstable/openapi/client/utils.gen.d.ts +33 -0
- package/dist/unstable/openapi/client.gen.d.ts +12 -0
- package/dist/unstable/openapi/core/auth.gen.d.ts +18 -0
- package/dist/unstable/openapi/core/bodySerializer.gen.d.ts +25 -0
- package/dist/unstable/openapi/core/params.gen.d.ts +43 -0
- package/dist/unstable/openapi/core/pathSerializer.gen.d.ts +33 -0
- package/dist/unstable/openapi/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/unstable/openapi/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/unstable/openapi/core/types.gen.d.ts +78 -0
- package/dist/unstable/openapi/core/utils.gen.d.ts +19 -0
- package/dist/unstable/openapi/index.d.ts +2 -0
- package/dist/unstable/openapi/sdk.gen.d.ts +60 -0
- package/dist/unstable/openapi/types.gen.d.ts +3335 -0
- package/dist/unstable/types.d.ts +60 -0
- package/package.json +44 -9
- package/dist/openapi/index.d.ts +0 -2
- /package/dist/{openapi → 2026-01/openapi}/client/client.gen.d.ts +0 -0
- /package/dist/{openapi → 2026-01/openapi}/client.gen.d.ts +0 -0
- /package/dist/{openapi → 2026-01/openapi}/core/auth.gen.d.ts +0 -0
- /package/dist/{openapi → 2026-01/openapi}/core/pathSerializer.gen.d.ts +0 -0
- /package/dist/{openapi → 2026-01/openapi}/core/serverSentEvents.gen.d.ts +0 -0
- /package/dist/{openapi → 2026-01/openapi}/core/types.gen.d.ts +0 -0
- /package/dist/{openapi → 2026-01/openapi}/core/utils.gen.d.ts +0 -0
package/README.md
CHANGED
|
@@ -10,6 +10,8 @@ npm install @swishapp/api-client
|
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
|
+
### Default Import (Latest Version)
|
|
14
|
+
|
|
13
15
|
```ts
|
|
14
16
|
import { createApiClient } from "@swishapp/api-client";
|
|
15
17
|
|
|
@@ -21,6 +23,60 @@ const swish = createApiClient({
|
|
|
21
23
|
const { data } = await swish.items.list();
|
|
22
24
|
```
|
|
23
25
|
|
|
26
|
+
### Versioned Import (Recommended)
|
|
27
|
+
|
|
28
|
+
For better control over API versions:
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import { createApiClient } from "@swishapp/api-client/2026-04";
|
|
32
|
+
|
|
33
|
+
const swish = createApiClient({
|
|
34
|
+
authToken: "swish-api-token",
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const { data } = await swish.items.list();
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## API Versioning
|
|
41
|
+
|
|
42
|
+
The client supports multiple API versions. Import the specific version you need:
|
|
43
|
+
|
|
44
|
+
- `@swishapp/api-client/2026-01` - Latest
|
|
45
|
+
- `@swishapp/api-client/2026-04` - Release candidate
|
|
46
|
+
|
|
47
|
+
Using versioned imports ensures your code remains stable when new API versions are released.
|
|
48
|
+
|
|
49
|
+
## Development
|
|
50
|
+
|
|
51
|
+
### Generate API Types
|
|
52
|
+
|
|
53
|
+
All API versions are configured in `openapi-ts.config.ts`:
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
export default [
|
|
57
|
+
defineConfig({
|
|
58
|
+
input: "https://swish.app/api/2026-04/.well-known/openapi",
|
|
59
|
+
output: "src/2026-04/openapi",
|
|
60
|
+
plugins: ["@hey-api/client-fetch"],
|
|
61
|
+
}),
|
|
62
|
+
// Add new versions here
|
|
63
|
+
];
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Generate types for all versions:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm run generate
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Add a New Version
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm run add-version 2026-07
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
See `VERSIONS.md` for detailed version management instructions.
|
|
79
|
+
|
|
24
80
|
## Documentation
|
|
25
81
|
|
|
26
82
|
For more information visit [Swish DEV docs](https://developers.swish.app/libraries/api-client).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SwishClientOptions, ApiResponse, PaginatedApiResponse } from "./types";
|
|
2
2
|
import type * as types from "./openapi/types.gen";
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const apiVersion = "2026-01";
|
|
4
4
|
export declare const createApiClient: (options: SwishClientOptions) => SwishClient;
|
|
5
5
|
export type { SwishClient };
|
|
6
6
|
declare class SwishClient {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
var He=Object.defineProperty;var t=(e,r)=>He(e,"name",{value:r,configurable:!0});var ke={bodySerializer:t(e=>JSON.stringify(e,(r,o)=>typeof o=="bigint"?o.toString():o),"bodySerializer")};var Ae=t(({onRequest:e,onSseError:r,onSseEvent:o,responseTransformer:s,responseValidator:i,sseDefaultRetryDelay:c,sseMaxRetryAttempts:a,sseMaxRetryDelay:l,sseSleepFn:d,url:y,...n})=>{let f,w=d??(C=>new Promise(I=>setTimeout(I,C)));return{stream:t(async function*(){let C=c??3e3,I=0,b=n.signal??new AbortController().signal;for(;!b.aborted;){I++;let B=n.headers instanceof Headers?n.headers:new Headers(n.headers);f!==void 0&&B.set("Last-Event-ID",f);try{let L={redirect:"follow",...n,body:n.serializedBody,headers:B,signal:b},E=new Request(y,L);e&&(E=await e(y,L));let u=await(n.fetch??globalThis.fetch)(E);if(!u.ok)throw new Error(`SSE failed: ${u.status} ${u.statusText}`);if(!u.body)throw new Error("No body in SSE response");let m=u.body.pipeThrough(new TextDecoderStream).getReader(),x="",ge=t(()=>{try{m.cancel()}catch{}},"abortHandler");b.addEventListener("abort",ge);try{for(;;){let{done:je,value:Ge}=await m.read();if(je)break;x+=Ge,x=x.replace(/\r\n/g,`
|
|
2
|
+
`).replace(/\r/g,`
|
|
3
|
+
`);let we=x.split(`
|
|
4
|
+
|
|
5
|
+
`);x=we.pop()??"";for(let Me of we){let $e=Me.split(`
|
|
6
|
+
`),A=[],Be;for(let O of $e)if(O.startsWith("data:"))A.push(O.replace(/^data:\s*/,""));else if(O.startsWith("event:"))Be=O.replace(/^event:\s*/,"");else if(O.startsWith("id:"))f=O.replace(/^id:\s*/,"");else if(O.startsWith("retry:")){let Fe=Number.parseInt(O.replace(/^retry:\s*/,""),10);Number.isNaN(Fe)||(C=Fe)}let D,xe=!1;if(A.length){let O=A.join(`
|
|
7
|
+
`);try{D=JSON.parse(O),xe=!0}catch{D=O}}xe&&(i&&await i(D),s&&(D=await s(D))),o==null||o({data:D,event:Be,id:f,retry:C}),A.length&&(yield D)}}}finally{b.removeEventListener("abort",ge),m.releaseLock()}break}catch(L){if(r==null||r(L),a!==void 0&&I>=a)break;let E=Math.min(C*2**(I-1),l??3e4);await w(E)}}},"createStream")()}},"createSseClient");var Ve=t(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorArrayExplode"),Qe=t(e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},"separatorArrayNoExplode"),We=t(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorObjectExplode"),P=t(({allowReserved:e,explode:r,name:o,style:s,value:i})=>{if(!r){let l=(e?i:i.map(d=>encodeURIComponent(d))).join(Qe(s));switch(s){case"label":return`.${l}`;case"matrix":return`;${o}=${l}`;case"simple":return l;default:return`${o}=${l}`}}let c=Ve(s),a=i.map(l=>s==="label"||s==="simple"?e?l:encodeURIComponent(l):T({allowReserved:e,name:o,value:l})).join(c);return s==="label"||s==="matrix"?c+a:a},"serializeArrayParam"),T=t(({allowReserved:e,name:r,value:o})=>{if(o==null)return"";if(typeof o=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${r}=${e?o:encodeURIComponent(o)}`},"serializePrimitiveParam"),q=t(({allowReserved:e,explode:r,name:o,style:s,value:i,valueOnly:c})=>{if(i instanceof Date)return c?i.toISOString():`${o}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let d=[];Object.entries(i).forEach(([n,f])=>{d=[...d,n,e?f:encodeURIComponent(f)]});let y=d.join(",");switch(s){case"form":return`${o}=${y}`;case"label":return`.${y}`;case"matrix":return`;${o}=${y}`;default:return y}}let a=We(s),l=Object.entries(i).map(([d,y])=>T({allowReserved:e,name:s==="deepObject"?`${o}[${d}]`:d,value:y})).join(a);return s==="label"||s==="matrix"?a+l:l},"serializeObjectParam");var Je=/\{[^{}]+\}/g,Ke=t(({path:e,url:r})=>{let o=r,s=r.match(Je);if(s)for(let i of s){let c=!1,a=i.substring(1,i.length-1),l="simple";a.endsWith("*")&&(c=!0,a=a.substring(0,a.length-1)),a.startsWith(".")?(a=a.substring(1),l="label"):a.startsWith(";")&&(a=a.substring(1),l="matrix");let d=e[a];if(d==null)continue;if(Array.isArray(d)){o=o.replace(i,P({explode:c,name:a,style:l,value:d}));continue}if(typeof d=="object"){o=o.replace(i,q({explode:c,name:a,style:l,value:d,valueOnly:!0}));continue}if(l==="matrix"){o=o.replace(i,`;${T({name:a,value:d})}`);continue}let y=encodeURIComponent(l==="label"?`.${d}`:d);o=o.replace(i,y)}return o},"defaultPathSerializer"),Pe=t(({baseUrl:e,path:r,query:o,querySerializer:s,url:i})=>{let c=i.startsWith("/")?i:`/${i}`,a=(e??"")+c;r&&(a=Ke({path:r,url:a}));let l=o?s(o):"";return l.startsWith("?")&&(l=l.substring(1)),l&&(a+=`?${l}`),a},"getUrl");function v(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}t(v,"getValidRequestBody");var qe=t(async(e,r)=>{let o=typeof r=="function"?await r(e):r;if(o)return e.scheme==="bearer"?`Bearer ${o}`:e.scheme==="basic"?`Basic ${btoa(o)}`:o},"getAuthToken");var Ue=t(({parameters:e={},...r}={})=>t(s=>{let i=[];if(s&&typeof s=="object")for(let c in s){let a=s[c];if(a==null)continue;let l=e[c]||r;if(Array.isArray(a)){let d=P({allowReserved:l.allowReserved,explode:!0,name:c,style:"form",value:a,...l.array});d&&i.push(d)}else if(typeof a=="object"){let d=q({allowReserved:l.allowReserved,explode:!0,name:c,style:"deepObject",value:a,...l.object});d&&i.push(d)}else{let d=T({allowReserved:l.allowReserved,name:c,value:a});d&&i.push(d)}}return i.join("&")},"querySerializer"),"createQuerySerializer"),ve=t(e=>{var o;if(!e)return"stream";let r=(o=e.split(";")[0])==null?void 0:o.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(s=>r.startsWith(s)))return"blob";if(r.startsWith("text/"))return"text"}},"getParseAs"),_e=t((e,r)=>{var o,s;return r?!!(e.headers.has(r)||(o=e.query)!=null&&o[r]||(s=e.headers.get("Cookie"))!=null&&s.includes(`${r}=`)):!1},"checkForExistence"),ze=t(async({security:e,...r})=>{for(let o of e){if(_e(r,o.name))continue;let s=await qe(o,r.auth);if(!s)continue;let i=o.name??"Authorization";switch(o.in){case"query":r.query||(r.query={}),r.query[i]=s;break;case"cookie":r.headers.append("Cookie",`${i}=${s}`);break;default:r.headers.set(i,s);break}}},"setAuthParams"),z=t(e=>Pe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:Ue(e.querySerializer),url:e.url}),"buildUrl"),N=t((e,r)=>{var s;let o={...e,...r};return(s=o.baseUrl)!=null&&s.endsWith("/")&&(o.baseUrl=o.baseUrl.substring(0,o.baseUrl.length-1)),o.headers=U(e.headers,r.headers),o},"mergeConfigs"),Xe=t(e=>{let r=[];return e.forEach((o,s)=>{r.push([s,o])}),r},"headersEntries"),U=t((...e)=>{let r=new Headers;for(let o of e){if(!o)continue;let s=o instanceof Headers?Xe(o):Object.entries(o);for(let[i,c]of s)if(c===null)r.delete(i);else if(Array.isArray(c))for(let a of c)r.append(i,a);else c!==void 0&&r.set(i,typeof c=="object"?JSON.stringify(c):c)}return r},"mergeHeaders"),j=class j{constructor(){this.fns=[]}clear(){this.fns=[]}eject(r){let o=this.getInterceptorIndex(r);this.fns[o]&&(this.fns[o]=null)}exists(r){let o=this.getInterceptorIndex(r);return!!this.fns[o]}getInterceptorIndex(r){return typeof r=="number"?this.fns[r]?r:-1:this.fns.indexOf(r)}update(r,o){let s=this.getInterceptorIndex(r);return this.fns[s]?(this.fns[s]=o,r):!1}use(r){return this.fns.push(r),this.fns.length-1}};t(j,"Interceptors");var F=j,Ne=t(()=>({error:new F,request:new F,response:new F}),"createInterceptors"),Ye=Ue({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),Ze={"Content-Type":"application/json"},S=t((e={})=>({...ke,headers:Ze,parseAs:"auto",querySerializer:Ye,...e}),"createConfig");var g=t((e={})=>{let r=N(S(),e),o=t(()=>({...r}),"getConfig"),s=t(y=>(r=N(r,y),o()),"setConfig"),i=Ne(),c=t(async y=>{let n={...r,...y,fetch:y.fetch??r.fetch??globalThis.fetch,headers:U(r.headers,y.headers),serializedBody:void 0};n.security&&await ze({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body!==void 0&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.body===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let f=z(n);return{opts:n,url:f}},"beforeRequest"),a=t(async y=>{let{opts:n,url:f}=await c(y),w={redirect:"follow",...n,body:v(n)},R=new Request(f,w);for(let h of i.request.fns)h&&(R=await h(R,n));let k=n.fetch,C;try{C=await k(R)}catch(h){let u=h;for(let m of i.error.fns)m&&(u=await m(h,void 0,R,n));if(u=u||{},n.throwOnError)throw u;return n.responseStyle==="data"?void 0:{error:u,request:R,response:void 0}}for(let h of i.response.fns)h&&(C=await h(C,R,n));let I={request:R,response:C};if(C.ok){let h=(n.parseAs==="auto"?ve(C.headers.get("Content-Type")):n.parseAs)??"json";if(C.status===204||C.headers.get("Content-Length")==="0"){let m;switch(h){case"arrayBuffer":case"blob":case"text":m=await C[h]();break;case"formData":m=new FormData;break;case"stream":m=C.body;break;default:m={};break}return n.responseStyle==="data"?m:{data:m,...I}}let u;switch(h){case"arrayBuffer":case"blob":case"formData":case"text":u=await C[h]();break;case"json":{let m=await C.text();u=m?JSON.parse(m):{};break}case"stream":return n.responseStyle==="data"?C.body:{data:C.body,...I}}return h==="json"&&(n.responseValidator&&await n.responseValidator(u),n.responseTransformer&&(u=await n.responseTransformer(u))),n.responseStyle==="data"?u:{data:u,...I}}let b=await C.text(),B;try{B=JSON.parse(b)}catch{}let L=B??b,E=L;for(let h of i.error.fns)h&&(E=await h(L,C,R,n));if(E=E||{},n.throwOnError)throw E;return n.responseStyle==="data"?void 0:{error:E,...I}},"request"),l=t(y=>n=>a({...n,method:y}),"makeMethodFn"),d=t(y=>async n=>{let{opts:f,url:w}=await c(n);return Ae({...f,body:f.body,headers:f.headers,method:y,onRequest:t(async(R,k)=>{let C=new Request(R,k);for(let I of i.request.fns)I&&(C=await I(C,f));return C},"onRequest"),serializedBody:v(f),url:w})},"makeSseFn");return{buildUrl:z,connect:l("CONNECT"),delete:l("DELETE"),get:l("GET"),getConfig:o,head:l("HEAD"),interceptors:i,options:l("OPTIONS"),patch:l("PATCH"),post:l("POST"),put:l("PUT"),request:a,setConfig:s,sse:{connect:d("CONNECT"),delete:d("DELETE"),get:d("GET"),head:d("HEAD"),options:d("OPTIONS"),patch:d("PATCH"),post:d("POST"),put:d("PUT"),trace:d("TRACE")},trace:l("TRACE")}},"createClient");var p=g(S({baseUrl:"https://swish.app/api/2026-01"}));var G=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e}),"listControllerFind"),M=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerCreate"),$=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerDeleteById"),H=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerFindById"),V=t(e=>(e.client??p).patch({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerUpdateById"),Q=t(e=>(e.client??p).put({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/order",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerSetListItemsOrder"),W=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerAddItemsToList"),J=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/{itemId}",...e}),"listControllerRemoveItemFromList"),K=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerDelete"),_=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/items",...e}),"itemControllerFind"),X=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerCreate"),Y=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/items/count",...e}),"itemControllerCount"),Z=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerDeleteById"),ee=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerFindById"),re=t(e=>(e.client??p).patch({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerUpdateById"),te=t(e=>(e.client??p).put({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerSetListsById"),oe=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/identify",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerIdentify"),se=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/token",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerCreateToken"),ne=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/profiles",...e}),"profileControllerGetProfile");var ie=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/analytics/saved-items",...e}),"analyticsControllerLoadSavedItems"),le=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/analytics/sessions",...e}),"analyticsControllerLoadSessions"),ae=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/analytics/new-lists",...e}),"analyticsControllerLoadNewLists"),de=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/collect",...e,headers:{"Content-Type":"application/json",...e.headers}}),"trackingControllerCollect"),pe=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/orders",...e}),"ordersControllerFind"),ce=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/orders/{orderId}",...e}),"ordersControllerFindOne"),Ce=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists/{listId}/save",...e}),"sharedListsControllerSave"),ye=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists/{listId}",...e}),"sharedListsControllerDeleteById"),ue=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists/{listId}",...e}),"sharedListsControllerFindById"),he=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists",...e}),"sharedListsControllerFindAll"),fe=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/notifications",...e}),"notificationsControllerFind"),me=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/notifications/unread/count",...e}),"notificationsControllerGetUnreadCount"),Ie=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/notifications/read",...e,headers:{"Content-Type":"application/json",...e.headers}}),"notificationsControllerMarkAsRead"),Re=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/notifications/{id}",...e}),"notificationsControllerDeleteById"),Oe=t(e=>((e==null?void 0:e.client)??p).get({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions",...e}),"subscriptionsControllerFind"),Ee=t(e=>(e.client??p).post({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions",...e,headers:{"Content-Type":"application/json",...e.headers}}),"subscriptionsControllerCreate"),Se=t(e=>(e.client??p).delete({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions/{id}",...e}),"subscriptionsControllerDelete"),be=t(e=>(e.client??p).get({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions/{id}",...e}),"subscriptionsControllerFindById"),Le=t(e=>(e.client??p).patch({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"subscriptionsControllerUpdate");var rr="2026-01",vr=t(e=>new De(e),"createApiClient"),Te=class Te{constructor(r){this.version=rr;this.items={list:t(r=>this.handlePaginatedRequest(_({query:r,client:this.directClient})),"list"),create:t(r=>this.handleRequest(X({body:r,client:this.directClient})),"create"),delete:t(r=>this.handleRequest(K({body:{itemIds:r},client:this.directClient})),"delete"),findById:t(r=>this.handleRequest(ee({path:{itemId:r},client:this.directClient})),"findById"),updateById:t((r,o)=>this.handleRequest(re({body:o,path:{itemId:r},client:this.directClient})),"updateById"),deleteById:t(r=>this.handleRequest(Z({path:{itemId:r},client:this.directClient})),"deleteById"),setListsById:t((r,o)=>this.handleRequest(te({body:{listIds:o},path:{itemId:r},client:this.directClient})),"setListsById"),count:t(()=>this.handleRequest(Y({client:this.directClient})),"count")};this.lists={list:t(r=>this.handlePaginatedRequest(G({query:r,client:this.directClient})),"list"),create:t(r=>this.handleRequest(M({body:r,client:this.directClient})),"create"),findById:t(r=>this.handleRequest(H({path:{listId:r},client:this.directClient})),"findById"),updateById:t((r,o)=>this.handleRequest(V({body:o,path:{listId:r},client:this.directClient})),"updateById"),deleteById:t(r=>this.handleRequest($({path:{listId:r},client:this.directClient})),"deleteById"),orderItems:t((r,o)=>this.handleRequest(Q({body:{itemIds:o},path:{listId:r},client:this.directClient})),"orderItems"),addItemsToList:t((r,o)=>this.handleRequest(W({body:{itemIds:o},path:{listId:r},client:this.directClient})),"addItemsToList"),removeItemFromList:t((r,o)=>this.handleRequest(J({path:{listId:r,itemId:o},client:this.directClient})),"removeItemFromList")};this.profiles={createToken:t((r={})=>this.handleRequest(se({body:r,client:this.proxyClient??this.directClient})),"createToken"),identify:t(r=>this.handleRequest(oe({body:r,client:this.directClient})),"identify"),getProfile:t(()=>this.handleRequest(ne({client:this.directClient})),"getProfile")};this.orders={list:t(r=>this.handlePaginatedRequest(pe({query:r,client:this.directClient})),"list"),findById:t(r=>this.handleRequest(ce({path:{orderId:r},client:this.directClient})),"findById")};this.sharedLists={list:t(r=>this.handlePaginatedRequest(he({query:r,client:this.directClient})),"list"),save:t(r=>this.handleRequest(Ce({path:{listId:r},client:this.directClient})),"save"),findById:t(r=>this.handleRequest(ue({path:{listId:r},client:this.directClient})),"findById"),deleteById:t(r=>this.handleRequest(ye({path:{listId:r},client:this.directClient})),"deleteById")};this.analytics={savedItems:t(r=>this.handleRequest(ie({query:r,client:this.directClient})),"savedItems"),sessions:t(r=>this.handleRequest(le({query:r,client:this.directClient})),"sessions"),newLists:t(r=>this.handleRequest(ae({query:r,client:this.directClient})),"newLists")};this.tracking={track:t(r=>this.handleRequest(de({body:r,client:this.directClient})),"track")};this.notifications={list:t(r=>this.handlePaginatedRequest(fe({query:r,client:this.directClient})),"list"),getUnreadCount:t(()=>this.handleRequest(me({client:this.directClient})),"getUnreadCount"),markAsRead:t(r=>this.handleRequest(Ie({body:{notificationIds:r},client:this.directClient})),"markAsRead"),deleteById:t(r=>this.handleRequest(Re({path:{id:r},client:this.directClient})),"deleteById")};this.subscriptions={list:t(r=>this.handlePaginatedRequest(Oe({query:r,client:this.directClient})),"list"),create:t(r=>this.handleRequest(Ee({body:r,client:this.directClient})),"create"),findById:t(r=>this.handleRequest(be({path:{id:r},client:this.directClient})),"findById"),updateById:t((r,o)=>this.handleRequest(Le({body:o,path:{id:r},client:this.directClient})),"updateById"),deleteById:t(r=>this.handleRequest(Se({path:{id:r},client:this.directClient})),"deleteById")};this.handleRequest=t(async r=>{let{data:o,error:s}=await r;return s!=null&&s.error?{error:s.error}:{data:o==null?void 0:o.data}},"handleRequest");this.handlePaginatedRequest=t(async r=>{var i;let{data:o,error:s}=await r;return s!=null&&s.error?{error:s.error}:{data:(o==null?void 0:o.data)??[],pageInfo:(o==null?void 0:o.pageInfo)??{next:null,previous:null,totalCount:((i=o==null?void 0:o.data)==null?void 0:i.length)??0}}},"handlePaginatedRequest");var o,s,i,c;this.directClient=g(S({baseUrl:`https://swish.app/api/${this.version}`,...r.config})),(o=r.config)!=null&&o.authProxy&&(this.proxyClient=g(S({...r.config,baseUrl:r.config.authProxy}))),r.authToken&&(this.authToken=r.authToken),r.requestInterceptor&&((s=this.proxyClient)==null||s.interceptors.request.use(r.requestInterceptor),this.directClient.interceptors.request.use(r.requestInterceptor)),r.responseInterceptor&&((i=this.proxyClient)==null||i.interceptors.response.use(r.responseInterceptor),this.directClient.interceptors.response.use(r.responseInterceptor)),(c=this.proxyClient)==null||c.interceptors.request.use(this.proxyRequestInterceptor.bind(this)),this.directClient.interceptors.request.use(this.directRequestInterceptor.bind(this))}setAuthToken(r){this.authToken=r}proxyRequestInterceptor(r){return this.version&&r.headers.set("Swish-Api-Version",this.version),r}directRequestInterceptor(r){return this.authToken&&r.headers.set("Authorization",`Bearer ${this.authToken}`),r}};t(Te,"SwishClient");var De=Te;export{rr as apiVersion,vr as createApiClient};
|
|
@@ -2,6 +2,7 @@ export type { Auth } from '../core/auth.gen';
|
|
|
2
2
|
export type { QuerySerializerOptions } from '../core/bodySerializer.gen';
|
|
3
3
|
export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen';
|
|
4
4
|
export { buildClientParams } from '../core/params.gen';
|
|
5
|
+
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
|
|
5
6
|
export { createClient } from './client.gen';
|
|
6
|
-
export type { Client, ClientOptions, Config, CreateClientConfig, Options,
|
|
7
|
+
export type { Client, ClientOptions, Config, CreateClientConfig, Options, RequestOptions, RequestResult, ResolvedRequestOptions, ResponseStyle, TDataShape, } from './types.gen';
|
|
7
8
|
export { createConfig, mergeHeaders } from './utils.gen';
|
|
@@ -92,7 +92,7 @@ type BuildUrlFn = <TData extends {
|
|
|
92
92
|
path?: Record<string, unknown>;
|
|
93
93
|
query?: Record<string, unknown>;
|
|
94
94
|
url: string;
|
|
95
|
-
}>(options:
|
|
95
|
+
}>(options: TData & Options<TData>) => string;
|
|
96
96
|
export type Client = CoreClient<RequestFn, Config, MethodFn, BuildUrlFn, SseFn> & {
|
|
97
97
|
interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions>;
|
|
98
98
|
};
|
|
@@ -113,12 +113,5 @@ export interface TDataShape {
|
|
|
113
113
|
url: string;
|
|
114
114
|
}
|
|
115
115
|
type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
116
|
-
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & Omit<TData, 'url'
|
|
117
|
-
export type OptionsLegacyParser<TData = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = 'fields'> = TData extends {
|
|
118
|
-
body?: any;
|
|
119
|
-
} ? TData extends {
|
|
120
|
-
headers?: any;
|
|
121
|
-
} ? OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, 'body' | 'headers' | 'url'> & TData : OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, 'body' | 'url'> & TData & Pick<RequestOptions<unknown, TResponseStyle, ThrowOnError>, 'headers'> : TData extends {
|
|
122
|
-
headers?: any;
|
|
123
|
-
} ? OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, 'headers' | 'url'> & TData & Pick<RequestOptions<unknown, TResponseStyle, ThrowOnError>, 'body'> : OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, 'url'> & TData;
|
|
116
|
+
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit<TData, 'url'>);
|
|
124
117
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { QuerySerializerOptions } from '../core/bodySerializer.gen';
|
|
2
2
|
import type { Client, ClientOptions, Config, RequestOptions } from './types.gen';
|
|
3
|
-
export declare const createQuerySerializer: <T = unknown>({
|
|
3
|
+
export declare const createQuerySerializer: <T = unknown>({ parameters, ...args }?: QuerySerializerOptions) => (queryParams: T) => string;
|
|
4
4
|
/**
|
|
5
5
|
* Infers parseAs value from provided Content-Type header.
|
|
6
6
|
*/
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen';
|
|
2
2
|
export type QuerySerializer = (query: Record<string, unknown>) => string;
|
|
3
3
|
export type BodySerializer = (body: any) => any;
|
|
4
|
-
|
|
4
|
+
type QuerySerializerOptionsObject = {
|
|
5
5
|
allowReserved?: boolean;
|
|
6
|
-
array?: SerializerOptions<ArrayStyle
|
|
7
|
-
object?: SerializerOptions<ObjectStyle
|
|
8
|
-
}
|
|
6
|
+
array?: Partial<SerializerOptions<ArrayStyle>>;
|
|
7
|
+
object?: Partial<SerializerOptions<ObjectStyle>>;
|
|
8
|
+
};
|
|
9
|
+
export type QuerySerializerOptions = QuerySerializerOptionsObject & {
|
|
10
|
+
/**
|
|
11
|
+
* Per-parameter serialization overrides. When provided, these settings
|
|
12
|
+
* override the global array/object settings for specific parameter names.
|
|
13
|
+
*/
|
|
14
|
+
parameters?: Record<string, QuerySerializerOptionsObject>;
|
|
15
|
+
};
|
|
9
16
|
export declare const formDataBodySerializer: {
|
|
10
17
|
bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(body: T) => FormData;
|
|
11
18
|
};
|
|
@@ -15,3 +22,4 @@ export declare const jsonBodySerializer: {
|
|
|
15
22
|
export declare const urlSearchParamsBodySerializer: {
|
|
16
23
|
bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(body: T) => string;
|
|
17
24
|
};
|
|
25
|
+
export {};
|
|
@@ -17,6 +17,16 @@ export type Field = {
|
|
|
17
17
|
*/
|
|
18
18
|
key?: string;
|
|
19
19
|
map?: string;
|
|
20
|
+
} | {
|
|
21
|
+
/**
|
|
22
|
+
* Field name. This is the name we want the user to see and use.
|
|
23
|
+
*/
|
|
24
|
+
key: string;
|
|
25
|
+
/**
|
|
26
|
+
* Field mapped name. This is the name we want to use in the request.
|
|
27
|
+
* If `in` is omitted, `map` aliases `key` to the transport layer.
|
|
28
|
+
*/
|
|
29
|
+
map: Slot;
|
|
20
30
|
};
|
|
21
31
|
export interface Fields {
|
|
22
32
|
allowExtra?: Partial<Record<Slot, boolean>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON-friendly union that mirrors what Pinia Colada can hash.
|
|
3
|
+
*/
|
|
4
|
+
export type JsonValue = null | string | number | boolean | JsonValue[] | {
|
|
5
|
+
[key: string]: JsonValue;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes.
|
|
9
|
+
*/
|
|
10
|
+
export declare const queryKeyJsonReplacer: (_key: string, value: unknown) => {} | null | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Safely stringifies a value and parses it back into a JsonValue.
|
|
13
|
+
*/
|
|
14
|
+
export declare const stringifyToJsonValue: (input: unknown) => JsonValue | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Normalizes any accepted value into a JSON-friendly shape for query keys.
|
|
17
|
+
*/
|
|
18
|
+
export declare const serializeQueryKeyValue: (value: unknown) => JsonValue | undefined;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { analyticsControllerLoadNewLists, analyticsControllerLoadSavedItems, analyticsControllerLoadSessions, itemControllerCount, itemControllerCreate, itemControllerDelete, itemControllerDeleteById, itemControllerFind, itemControllerFindById, itemControllerSetListsById, itemControllerUpdateById, listControllerAddItemsToList, listControllerCreate, listControllerDeleteById, listControllerFind, listControllerFindById, listControllerRemoveItemFromList, listControllerSetListItemsOrder, listControllerUpdateById, notificationsControllerDeleteById, notificationsControllerFind, notificationsControllerGetUnreadCount, notificationsControllerMarkAsRead, type Options, ordersControllerFind, ordersControllerFindOne, profileControllerCreateToken, profileControllerGetProfile, profileControllerIdentify, profileControllerUpdateProfile, sharedListsControllerDeleteById, sharedListsControllerFindAll, sharedListsControllerFindById, sharedListsControllerSave, subscriptionsControllerCreate, subscriptionsControllerDelete, subscriptionsControllerFind, subscriptionsControllerFindById, subscriptionsControllerUpdate, trackingControllerCollect } from './sdk.gen';
|
|
2
|
+
export type { AddItemsToListInput, Analytics, AnalyticsControllerLoadNewListsData, AnalyticsControllerLoadNewListsError, AnalyticsControllerLoadNewListsErrors, AnalyticsControllerLoadNewListsResponse, AnalyticsControllerLoadNewListsResponses, AnalyticsControllerLoadSavedItemsData, AnalyticsControllerLoadSavedItemsError, AnalyticsControllerLoadSavedItemsErrors, AnalyticsControllerLoadSavedItemsResponse, AnalyticsControllerLoadSavedItemsResponses, AnalyticsControllerLoadSessionsData, AnalyticsControllerLoadSessionsError, AnalyticsControllerLoadSessionsErrors, AnalyticsControllerLoadSessionsResponse, AnalyticsControllerLoadSessionsResponses, ClientOptions, CreateItemInput, CreateListInput, CreateProfileTokenInput, CreateProfileTokenResult, CreateSubscriptionInput, DeleteItemsInput, Error, ErrorResponse, Fulfillment, IdentifyProfileInput, Item, ItemControllerCountData, ItemControllerCountError, ItemControllerCountErrors, ItemControllerCountResponse, ItemControllerCountResponses, ItemControllerCreateData, ItemControllerCreateError, ItemControllerCreateErrors, ItemControllerCreateResponse, ItemControllerCreateResponses, ItemControllerDeleteByIdData, ItemControllerDeleteByIdError, ItemControllerDeleteByIdErrors, ItemControllerDeleteByIdResponse, ItemControllerDeleteByIdResponses, ItemControllerDeleteData, ItemControllerDeleteError, ItemControllerDeleteErrors, ItemControllerDeleteResponse, ItemControllerDeleteResponses, ItemControllerFindByIdData, ItemControllerFindByIdError, ItemControllerFindByIdErrors, ItemControllerFindByIdResponse, ItemControllerFindByIdResponses, ItemControllerFindData, ItemControllerFindError, ItemControllerFindErrors, ItemControllerFindResponse, ItemControllerFindResponses, ItemControllerSetListsByIdData, ItemControllerSetListsByIdError, ItemControllerSetListsByIdErrors, ItemControllerSetListsByIdResponse, ItemControllerSetListsByIdResponses, ItemControllerUpdateByIdData, ItemControllerUpdateByIdError, ItemControllerUpdateByIdErrors, ItemControllerUpdateByIdResponse, ItemControllerUpdateByIdResponses, ItemCount, ItemDetail, ItemReference, List, ListControllerAddItemsToListData, ListControllerAddItemsToListError, ListControllerAddItemsToListErrors, ListControllerAddItemsToListResponse, ListControllerAddItemsToListResponses, ListControllerCreateData, ListControllerCreateError, ListControllerCreateErrors, ListControllerCreateResponse, ListControllerCreateResponses, ListControllerDeleteByIdData, ListControllerDeleteByIdError, ListControllerDeleteByIdErrors, ListControllerDeleteByIdResponse, ListControllerDeleteByIdResponses, ListControllerFindByIdData, ListControllerFindByIdError, ListControllerFindByIdErrors, ListControllerFindByIdResponse, ListControllerFindByIdResponses, ListControllerFindData, ListControllerFindError, ListControllerFindErrors, ListControllerFindResponse, ListControllerFindResponses, ListControllerRemoveItemFromListData, ListControllerRemoveItemFromListError, ListControllerRemoveItemFromListErrors, ListControllerRemoveItemFromListResponse, ListControllerRemoveItemFromListResponses, ListControllerSetListItemsOrderData, ListControllerSetListItemsOrderError, ListControllerSetListItemsOrderErrors, ListControllerSetListItemsOrderResponse, ListControllerSetListItemsOrderResponses, ListControllerUpdateByIdData, ListControllerUpdateByIdError, ListControllerUpdateByIdErrors, ListControllerUpdateByIdResponse, ListControllerUpdateByIdResponses, ListDetail, MarketingConsent, MarkReadDto, Money, Notification, NotificationsControllerDeleteByIdData, NotificationsControllerDeleteByIdError, NotificationsControllerDeleteByIdErrors, NotificationsControllerDeleteByIdResponse, NotificationsControllerDeleteByIdResponses, NotificationsControllerFindData, NotificationsControllerFindError, NotificationsControllerFindErrors, NotificationsControllerFindResponse, NotificationsControllerFindResponses, NotificationsControllerGetUnreadCountData, NotificationsControllerGetUnreadCountError, NotificationsControllerGetUnreadCountErrors, NotificationsControllerGetUnreadCountResponse, NotificationsControllerGetUnreadCountResponses, NotificationsControllerMarkAsReadData, NotificationsControllerMarkAsReadError, NotificationsControllerMarkAsReadErrors, NotificationsControllerMarkAsReadResponse, NotificationsControllerMarkAsReadResponses, NotificationSettings, NotificationUnreadCount, OrderDetailDto, OrderDto, OrderLineItem, OrdersControllerFindData, OrdersControllerFindError, OrdersControllerFindErrors, OrdersControllerFindOneData, OrdersControllerFindOneError, OrdersControllerFindOneErrors, OrdersControllerFindOneResponse, OrdersControllerFindOneResponses, OrdersControllerFindResponse, OrdersControllerFindResponses, PageInfo, PaginatedResponse, PreviewImageDto, ProductDto, ProductVariantDto, Profile, ProfileControllerCreateTokenData, ProfileControllerCreateTokenError, ProfileControllerCreateTokenErrors, ProfileControllerCreateTokenResponse, ProfileControllerCreateTokenResponses, ProfileControllerGetProfileData, ProfileControllerGetProfileError, ProfileControllerGetProfileErrors, ProfileControllerGetProfileResponse, ProfileControllerGetProfileResponses, ProfileControllerIdentifyData, ProfileControllerIdentifyError, ProfileControllerIdentifyErrors, ProfileControllerIdentifyResponse, ProfileControllerIdentifyResponses, ProfileControllerUpdateProfileData, ProfileControllerUpdateProfileError, ProfileControllerUpdateProfileErrors, ProfileControllerUpdateProfileResponse, ProfileControllerUpdateProfileResponses, Response, SetItemListsInput, SetListItemsOrderInput, SharedList, SharedListsControllerDeleteByIdData, SharedListsControllerDeleteByIdError, SharedListsControllerDeleteByIdErrors, SharedListsControllerDeleteByIdResponse, SharedListsControllerDeleteByIdResponses, SharedListsControllerFindAllData, SharedListsControllerFindAllError, SharedListsControllerFindAllErrors, SharedListsControllerFindAllResponse, SharedListsControllerFindAllResponses, SharedListsControllerFindByIdData, SharedListsControllerFindByIdError, SharedListsControllerFindByIdErrors, SharedListsControllerFindByIdResponse, SharedListsControllerFindByIdResponses, SharedListsControllerSaveData, SharedListsControllerSaveError, SharedListsControllerSaveErrors, SharedListsControllerSaveResponse, SharedListsControllerSaveResponses, Subscription, SubscriptionQueryDto, SubscriptionsControllerCreateData, SubscriptionsControllerCreateError, SubscriptionsControllerCreateErrors, SubscriptionsControllerCreateResponse, SubscriptionsControllerCreateResponses, SubscriptionsControllerDeleteData, SubscriptionsControllerDeleteError, SubscriptionsControllerDeleteErrors, SubscriptionsControllerDeleteResponse, SubscriptionsControllerDeleteResponses, SubscriptionsControllerFindByIdData, SubscriptionsControllerFindByIdError, SubscriptionsControllerFindByIdErrors, SubscriptionsControllerFindByIdResponse, SubscriptionsControllerFindByIdResponses, SubscriptionsControllerFindData, SubscriptionsControllerFindError, SubscriptionsControllerFindErrors, SubscriptionsControllerFindResponse, SubscriptionsControllerFindResponses, SubscriptionsControllerUpdateData, SubscriptionsControllerUpdateError, SubscriptionsControllerUpdateErrors, SubscriptionsControllerUpdateResponse, SubscriptionsControllerUpdateResponses, TrackingControllerCollectData, TrackingControllerCollectError, TrackingControllerCollectErrors, TrackingControllerCollectResponse, TrackingControllerCollectResponses, TrackingEventRequestDto, TrackingInfo, UpdateItemInput, UpdateListInput, UpdateProfileInput, UpdateSubscriptionInput } from './types.gen';
|
|
@@ -38,6 +38,7 @@ export declare const analyticsControllerLoadSessions: <ThrowOnError extends bool
|
|
|
38
38
|
export declare const analyticsControllerLoadNewLists: <ThrowOnError extends boolean = false>(options: Options<AnalyticsControllerLoadNewListsData, ThrowOnError>) => import("./client").RequestResult<AnalyticsControllerLoadNewListsResponses, AnalyticsControllerLoadNewListsErrors, ThrowOnError, "fields">;
|
|
39
39
|
/**
|
|
40
40
|
* Collect user behavior events
|
|
41
|
+
*
|
|
41
42
|
* Endpoint for collecting user behavior events.
|
|
42
43
|
*/
|
|
43
44
|
export declare const trackingControllerCollect: <ThrowOnError extends boolean = false>(options: Options<TrackingControllerCollectData, ThrowOnError>) => import("./client").RequestResult<TrackingControllerCollectResponses, TrackingControllerCollectErrors, ThrowOnError, "fields">;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type ClientOptions = {
|
|
2
|
-
baseUrl: 'https://swish.app/api/2026-
|
|
2
|
+
baseUrl: 'https://swish.app/api/2026-01' | (string & {});
|
|
3
3
|
};
|
|
4
4
|
export type CreateItemInput = {
|
|
5
5
|
/**
|
|
@@ -97,7 +97,7 @@ export type List = {
|
|
|
97
97
|
*/
|
|
98
98
|
access: 'private' | 'public';
|
|
99
99
|
};
|
|
100
|
-
export type
|
|
100
|
+
export type Error = {
|
|
101
101
|
/**
|
|
102
102
|
* The error message
|
|
103
103
|
*/
|
|
@@ -119,7 +119,7 @@ export type ErrorResponse = {
|
|
|
119
119
|
/**
|
|
120
120
|
* Error details
|
|
121
121
|
*/
|
|
122
|
-
error:
|
|
122
|
+
error: Error;
|
|
123
123
|
};
|
|
124
124
|
export type PageInfo = {
|
|
125
125
|
/**
|
|
@@ -611,86 +611,6 @@ export type MarkReadDto = {
|
|
|
611
611
|
*/
|
|
612
612
|
notificationIds: Array<string>;
|
|
613
613
|
};
|
|
614
|
-
export type ProductCategoryDto = {
|
|
615
|
-
id: string;
|
|
616
|
-
name: string;
|
|
617
|
-
};
|
|
618
|
-
export type MoneyDto = {
|
|
619
|
-
amount: string;
|
|
620
|
-
currencyCode: string;
|
|
621
|
-
};
|
|
622
|
-
export type ProductPriceRangeDto = {
|
|
623
|
-
maxVariantPrice: MoneyDto;
|
|
624
|
-
minVariantPrice: MoneyDto;
|
|
625
|
-
};
|
|
626
|
-
export type ImageDto = {
|
|
627
|
-
id: string;
|
|
628
|
-
url: string;
|
|
629
|
-
altText?: {
|
|
630
|
-
[key: string]: unknown;
|
|
631
|
-
} | null;
|
|
632
|
-
thumbhash?: {
|
|
633
|
-
[key: string]: unknown;
|
|
634
|
-
} | null;
|
|
635
|
-
};
|
|
636
|
-
export type ProductVariantsCountDto = {
|
|
637
|
-
count: number;
|
|
638
|
-
};
|
|
639
|
-
export type NotificationProductDto = {
|
|
640
|
-
id: string;
|
|
641
|
-
availableForSale: boolean;
|
|
642
|
-
onlineStoreUrl?: {
|
|
643
|
-
[key: string]: unknown;
|
|
644
|
-
} | null;
|
|
645
|
-
handle: string;
|
|
646
|
-
productType: {
|
|
647
|
-
[key: string]: unknown;
|
|
648
|
-
} | null;
|
|
649
|
-
tags: Array<string>;
|
|
650
|
-
title: string;
|
|
651
|
-
category?: ProductCategoryDto | null;
|
|
652
|
-
compareAtPriceRange?: ProductPriceRangeDto | null;
|
|
653
|
-
featuredImage?: ImageDto | null;
|
|
654
|
-
priceRange: ProductPriceRangeDto;
|
|
655
|
-
variantsCount?: ProductVariantsCountDto | null;
|
|
656
|
-
};
|
|
657
|
-
export type ProductOptionDto = {
|
|
658
|
-
name: string;
|
|
659
|
-
value: string;
|
|
660
|
-
};
|
|
661
|
-
export type NotificationVariantDto = {
|
|
662
|
-
id: string;
|
|
663
|
-
availableForSale: boolean;
|
|
664
|
-
currentlyNotInStock: boolean;
|
|
665
|
-
sku?: {
|
|
666
|
-
[key: string]: unknown;
|
|
667
|
-
} | null;
|
|
668
|
-
title: string;
|
|
669
|
-
compareAtPrice?: MoneyDto | null;
|
|
670
|
-
image?: ImageDto | null;
|
|
671
|
-
price: MoneyDto;
|
|
672
|
-
selectedOptions: Array<ProductOptionDto>;
|
|
673
|
-
};
|
|
674
|
-
export type NotificationContextDto = {
|
|
675
|
-
/**
|
|
676
|
-
* The market identifier
|
|
677
|
-
*/
|
|
678
|
-
market?: {
|
|
679
|
-
[key: string]: unknown;
|
|
680
|
-
} | null;
|
|
681
|
-
/**
|
|
682
|
-
* The country code
|
|
683
|
-
*/
|
|
684
|
-
country?: {
|
|
685
|
-
[key: string]: unknown;
|
|
686
|
-
} | null;
|
|
687
|
-
/**
|
|
688
|
-
* The language code
|
|
689
|
-
*/
|
|
690
|
-
language?: {
|
|
691
|
-
[key: string]: unknown;
|
|
692
|
-
} | null;
|
|
693
|
-
};
|
|
694
614
|
export type Notification = {
|
|
695
615
|
/**
|
|
696
616
|
* The ID of the notification
|
|
@@ -701,23 +621,13 @@ export type Notification = {
|
|
|
701
621
|
*/
|
|
702
622
|
type: 'price_drop' | 'back_in_stock' | 'low_in_stock';
|
|
703
623
|
/**
|
|
704
|
-
* The product
|
|
705
|
-
*/
|
|
706
|
-
product: NotificationProductDto;
|
|
707
|
-
/**
|
|
708
|
-
* The variant data associated with the notification
|
|
709
|
-
*/
|
|
710
|
-
variant?: NotificationVariantDto | null;
|
|
711
|
-
/**
|
|
712
|
-
* Context for localization (market/country/language)
|
|
624
|
+
* The Shopify product ID
|
|
713
625
|
*/
|
|
714
|
-
|
|
626
|
+
productId?: string;
|
|
715
627
|
/**
|
|
716
|
-
*
|
|
628
|
+
* The Shopify variant ID
|
|
717
629
|
*/
|
|
718
|
-
|
|
719
|
-
[key: string]: unknown;
|
|
720
|
-
} | null;
|
|
630
|
+
variantId?: string;
|
|
721
631
|
/**
|
|
722
632
|
* Whether the notification has been read
|
|
723
633
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SwishClient } from "./client";
|
|
2
2
|
import type { Client, ClientOptions, Config } from "./openapi/client";
|
|
3
3
|
import type { PageInfo } from "./openapi/types.gen";
|
|
4
|
-
export type { SwishClient };
|
|
4
|
+
export type { SwishClient } from "./client";
|
|
5
5
|
export interface SwishClientOptions {
|
|
6
6
|
authToken?: string;
|
|
7
7
|
config?: SwishClientConfig;
|
|
@@ -10,7 +10,6 @@ export interface SwishClientOptions {
|
|
|
10
10
|
}
|
|
11
11
|
export type SwishClientConfig = Config<ClientOptions> & {
|
|
12
12
|
authProxy?: string;
|
|
13
|
-
version?: string;
|
|
14
13
|
};
|
|
15
14
|
export type ListItemsResponse = Awaited<ReturnType<SwishClient["items"]["list"]>>;
|
|
16
15
|
export type CreateItemResponse = Awaited<ReturnType<SwishClient["items"]["create"]>>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { SwishClientOptions, ApiResponse, PaginatedApiResponse } from "./types";
|
|
2
|
+
import type * as types from "./openapi/types.gen";
|
|
3
|
+
export declare const apiVersion = "2026-04";
|
|
4
|
+
export declare const createApiClient: (options: SwishClientOptions) => SwishClient;
|
|
5
|
+
export type { SwishClient };
|
|
6
|
+
declare class SwishClient {
|
|
7
|
+
private authToken?;
|
|
8
|
+
private readonly version;
|
|
9
|
+
private readonly proxyClient?;
|
|
10
|
+
private readonly directClient;
|
|
11
|
+
constructor(options: SwishClientOptions);
|
|
12
|
+
setAuthToken(authToken: string): void;
|
|
13
|
+
proxyRequestInterceptor(request: Request): Request;
|
|
14
|
+
directRequestInterceptor(request: Request): Request;
|
|
15
|
+
readonly items: {
|
|
16
|
+
list: (query?: types.ItemControllerFindData["query"]) => Promise<PaginatedApiResponse<types.Item>>;
|
|
17
|
+
create: (items: types.CreateItemInput) => Promise<ApiResponse<types.Item>>;
|
|
18
|
+
delete: (itemIds: types.DeleteItemsInput["itemIds"]) => Promise<ApiResponse<types.Item[]>>;
|
|
19
|
+
findById: (itemId: string) => Promise<ApiResponse<types.ItemDetail>>;
|
|
20
|
+
updateById: (itemId: string, body: types.UpdateItemInput) => Promise<ApiResponse<types.Item>>;
|
|
21
|
+
deleteById: (itemId: string) => Promise<ApiResponse<types.Item>>;
|
|
22
|
+
setListsById: (itemId: string, listIds: types.SetItemListsInput["listIds"]) => Promise<ApiResponse<types.ItemDetail>>;
|
|
23
|
+
count: () => Promise<ApiResponse<types.ItemCount>>;
|
|
24
|
+
getRecentlyViewed: (query?: types.ItemControllerGetRecentlyViewedItemsData["query"]) => Promise<PaginatedApiResponse<types.RecentlyViewed>>;
|
|
25
|
+
};
|
|
26
|
+
readonly lists: {
|
|
27
|
+
list: (query?: types.ListControllerFindData["query"]) => Promise<PaginatedApiResponse<types.ListDetail>>;
|
|
28
|
+
create: (list: types.CreateListInput) => Promise<ApiResponse<types.List>>;
|
|
29
|
+
findById: (listId: string) => Promise<ApiResponse<types.ListDetail>>;
|
|
30
|
+
updateById: (listId: string, body: types.UpdateListInput) => Promise<ApiResponse<types.List>>;
|
|
31
|
+
deleteById: (listId: string) => Promise<ApiResponse<types.List>>;
|
|
32
|
+
orderItems: (listId: string, itemIds: types.SetListItemsOrderInput["itemIds"]) => Promise<ApiResponse<types.List>>;
|
|
33
|
+
addItemsToList: (listId: string, itemIds: types.AddItemsToListInput["itemIds"]) => Promise<ApiResponse<types.ListDetail>>;
|
|
34
|
+
removeItemFromList: (listId: string, itemId: string) => Promise<ApiResponse<unknown>>;
|
|
35
|
+
};
|
|
36
|
+
readonly profiles: {
|
|
37
|
+
createToken: (body?: types.CreateProfileTokenInput) => Promise<ApiResponse<types.CreateProfileTokenResult>>;
|
|
38
|
+
identify: (body: types.IdentifyProfileInput) => Promise<ApiResponse<unknown>>;
|
|
39
|
+
getProfile: () => Promise<ApiResponse<types.Profile>>;
|
|
40
|
+
};
|
|
41
|
+
readonly orders: {
|
|
42
|
+
list: (query?: types.OrdersControllerFindData["query"]) => Promise<PaginatedApiResponse<types.OrderDto>>;
|
|
43
|
+
findById: (orderId: number) => Promise<ApiResponse<types.OrderDetailDto>>;
|
|
44
|
+
};
|
|
45
|
+
readonly sharedLists: {
|
|
46
|
+
list: (query?: types.SharedListsControllerFindAllData["query"]) => Promise<PaginatedApiResponse<types.SharedList>>;
|
|
47
|
+
save: (listId: string) => Promise<ApiResponse<types.SharedList>>;
|
|
48
|
+
findById: (listId: string) => Promise<ApiResponse<types.SharedList>>;
|
|
49
|
+
deleteById: (listId: string) => Promise<ApiResponse<unknown>>;
|
|
50
|
+
};
|
|
51
|
+
readonly analytics: {
|
|
52
|
+
savedItems: (query: types.AnalyticsControllerLoadSavedItemsData["query"]) => Promise<ApiResponse<types.Analytics[]>>;
|
|
53
|
+
sessions: (query: types.AnalyticsControllerLoadSessionsData["query"]) => Promise<ApiResponse<types.Analytics[]>>;
|
|
54
|
+
newLists: (query: types.AnalyticsControllerLoadNewListsData["query"]) => Promise<ApiResponse<types.Analytics[]>>;
|
|
55
|
+
};
|
|
56
|
+
readonly tracking: {
|
|
57
|
+
track: (body: types.TrackingEventRequestDto) => Promise<ApiResponse<unknown>>;
|
|
58
|
+
};
|
|
59
|
+
readonly notifications: {
|
|
60
|
+
list: (query?: types.NotificationsControllerFindData["query"]) => Promise<PaginatedApiResponse<types.Notification>>;
|
|
61
|
+
getUnreadCount: () => Promise<ApiResponse<types.NotificationUnreadCount>>;
|
|
62
|
+
markAsRead: (notificationIds: types.MarkReadDto["notificationIds"]) => Promise<ApiResponse<types.Notification[]>>;
|
|
63
|
+
deleteById: (id: string) => Promise<ApiResponse<types.Notification>>;
|
|
64
|
+
};
|
|
65
|
+
readonly subscriptions: {
|
|
66
|
+
list: (query?: types.SubscriptionsControllerFindData["query"]) => Promise<PaginatedApiResponse<types.Subscription>>;
|
|
67
|
+
create: (body: types.CreateSubscriptionInput) => Promise<ApiResponse<types.Subscription>>;
|
|
68
|
+
findById: (id: string) => Promise<ApiResponse<types.Subscription>>;
|
|
69
|
+
updateById: (id: string, body: types.UpdateSubscriptionInput) => Promise<ApiResponse<types.Subscription>>;
|
|
70
|
+
deleteById: (id: string) => Promise<ApiResponse<types.Subscription>>;
|
|
71
|
+
};
|
|
72
|
+
private readonly handleRequest;
|
|
73
|
+
private readonly handlePaginatedRequest;
|
|
74
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
var He=Object.defineProperty;var t=(e,r)=>He(e,"name",{value:r,configurable:!0});var Pe={bodySerializer:t(e=>JSON.stringify(e,(r,o)=>typeof o=="bigint"?o.toString():o),"bodySerializer")};var Ae=t(({onRequest:e,onSseError:r,onSseEvent:o,responseTransformer:s,responseValidator:i,sseDefaultRetryDelay:c,sseMaxRetryAttempts:a,sseMaxRetryDelay:l,sseSleepFn:p,url:y,...n})=>{let f,g=p??(C=>new Promise(I=>setTimeout(I,C)));return{stream:t(async function*(){let C=c??3e3,I=0,b=n.signal??new AbortController().signal;for(;!b.aborted;){I++;let B=n.headers instanceof Headers?n.headers:new Headers(n.headers);f!==void 0&&B.set("Last-Event-ID",f);try{let D={redirect:"follow",...n,body:n.serializedBody,headers:B,signal:b},E=new Request(y,D);e&&(E=await e(y,D));let u=await(n.fetch??globalThis.fetch)(E);if(!u.ok)throw new Error(`SSE failed: ${u.status} ${u.statusText}`);if(!u.body)throw new Error("No body in SSE response");let m=u.body.pipeThrough(new TextDecoderStream).getReader(),x="",ge=t(()=>{try{m.cancel()}catch{}},"abortHandler");b.addEventListener("abort",ge);try{for(;;){let{done:Ge,value:Ve}=await m.read();if(Ge)break;x+=Ve,x=x.replace(/\r\n/g,`
|
|
2
|
+
`).replace(/\r/g,`
|
|
3
|
+
`);let Be=x.split(`
|
|
4
|
+
|
|
5
|
+
`);x=Be.pop()??"";for(let Me of Be){let $e=Me.split(`
|
|
6
|
+
`),P=[],xe;for(let O of $e)if(O.startsWith("data:"))P.push(O.replace(/^data:\s*/,""));else if(O.startsWith("event:"))xe=O.replace(/^event:\s*/,"");else if(O.startsWith("id:"))f=O.replace(/^id:\s*/,"");else if(O.startsWith("retry:")){let ke=Number.parseInt(O.replace(/^retry:\s*/,""),10);Number.isNaN(ke)||(C=ke)}let L,Fe=!1;if(P.length){let O=P.join(`
|
|
7
|
+
`);try{L=JSON.parse(O),Fe=!0}catch{L=O}}Fe&&(i&&await i(L),s&&(L=await s(L))),o==null||o({data:L,event:xe,id:f,retry:C}),P.length&&(yield L)}}}finally{b.removeEventListener("abort",ge),m.releaseLock()}break}catch(D){if(r==null||r(D),a!==void 0&&I>=a)break;let E=Math.min(C*2**(I-1),l??3e4);await g(E)}}},"createStream")()}},"createSseClient");var Qe=t(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorArrayExplode"),We=t(e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},"separatorArrayNoExplode"),Je=t(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},"separatorObjectExplode"),A=t(({allowReserved:e,explode:r,name:o,style:s,value:i})=>{if(!r){let l=(e?i:i.map(p=>encodeURIComponent(p))).join(We(s));switch(s){case"label":return`.${l}`;case"matrix":return`;${o}=${l}`;case"simple":return l;default:return`${o}=${l}`}}let c=Qe(s),a=i.map(l=>s==="label"||s==="simple"?e?l:encodeURIComponent(l):T({allowReserved:e,name:o,value:l})).join(c);return s==="label"||s==="matrix"?c+a:a},"serializeArrayParam"),T=t(({allowReserved:e,name:r,value:o})=>{if(o==null)return"";if(typeof o=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${r}=${e?o:encodeURIComponent(o)}`},"serializePrimitiveParam"),q=t(({allowReserved:e,explode:r,name:o,style:s,value:i,valueOnly:c})=>{if(i instanceof Date)return c?i.toISOString():`${o}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([n,f])=>{p=[...p,n,e?f:encodeURIComponent(f)]});let y=p.join(",");switch(s){case"form":return`${o}=${y}`;case"label":return`.${y}`;case"matrix":return`;${o}=${y}`;default:return y}}let a=Je(s),l=Object.entries(i).map(([p,y])=>T({allowReserved:e,name:s==="deepObject"?`${o}[${p}]`:p,value:y})).join(a);return s==="label"||s==="matrix"?a+l:l},"serializeObjectParam");var Ke=/\{[^{}]+\}/g,_e=t(({path:e,url:r})=>{let o=r,s=r.match(Ke);if(s)for(let i of s){let c=!1,a=i.substring(1,i.length-1),l="simple";a.endsWith("*")&&(c=!0,a=a.substring(0,a.length-1)),a.startsWith(".")?(a=a.substring(1),l="label"):a.startsWith(";")&&(a=a.substring(1),l="matrix");let p=e[a];if(p==null)continue;if(Array.isArray(p)){o=o.replace(i,A({explode:c,name:a,style:l,value:p}));continue}if(typeof p=="object"){o=o.replace(i,q({explode:c,name:a,style:l,value:p,valueOnly:!0}));continue}if(l==="matrix"){o=o.replace(i,`;${T({name:a,value:p})}`);continue}let y=encodeURIComponent(l==="label"?`.${p}`:p);o=o.replace(i,y)}return o},"defaultPathSerializer"),qe=t(({baseUrl:e,path:r,query:o,querySerializer:s,url:i})=>{let c=i.startsWith("/")?i:`/${i}`,a=(e??"")+c;r&&(a=_e({path:r,url:a}));let l=o?s(o):"";return l.startsWith("?")&&(l=l.substring(1)),l&&(a+=`?${l}`),a},"getUrl");function v(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}t(v,"getValidRequestBody");var Ue=t(async(e,r)=>{let o=typeof r=="function"?await r(e):r;if(o)return e.scheme==="bearer"?`Bearer ${o}`:e.scheme==="basic"?`Basic ${btoa(o)}`:o},"getAuthToken");var ve=t(({parameters:e={},...r}={})=>t(s=>{let i=[];if(s&&typeof s=="object")for(let c in s){let a=s[c];if(a==null)continue;let l=e[c]||r;if(Array.isArray(a)){let p=A({allowReserved:l.allowReserved,explode:!0,name:c,style:"form",value:a,...l.array});p&&i.push(p)}else if(typeof a=="object"){let p=q({allowReserved:l.allowReserved,explode:!0,name:c,style:"deepObject",value:a,...l.object});p&&i.push(p)}else{let p=T({allowReserved:l.allowReserved,name:c,value:a});p&&i.push(p)}}return i.join("&")},"querySerializer"),"createQuerySerializer"),ze=t(e=>{var o;if(!e)return"stream";let r=(o=e.split(";")[0])==null?void 0:o.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(s=>r.startsWith(s)))return"blob";if(r.startsWith("text/"))return"text"}},"getParseAs"),Xe=t((e,r)=>{var o,s;return r?!!(e.headers.has(r)||(o=e.query)!=null&&o[r]||(s=e.headers.get("Cookie"))!=null&&s.includes(`${r}=`)):!1},"checkForExistence"),Ne=t(async({security:e,...r})=>{for(let o of e){if(Xe(r,o.name))continue;let s=await Ue(o,r.auth);if(!s)continue;let i=o.name??"Authorization";switch(o.in){case"query":r.query||(r.query={}),r.query[i]=s;break;case"cookie":r.headers.append("Cookie",`${i}=${s}`);break;default:r.headers.set(i,s);break}}},"setAuthParams"),z=t(e=>qe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:ve(e.querySerializer),url:e.url}),"buildUrl"),N=t((e,r)=>{var s;let o={...e,...r};return(s=o.baseUrl)!=null&&s.endsWith("/")&&(o.baseUrl=o.baseUrl.substring(0,o.baseUrl.length-1)),o.headers=U(e.headers,r.headers),o},"mergeConfigs"),Ye=t(e=>{let r=[];return e.forEach((o,s)=>{r.push([s,o])}),r},"headersEntries"),U=t((...e)=>{let r=new Headers;for(let o of e){if(!o)continue;let s=o instanceof Headers?Ye(o):Object.entries(o);for(let[i,c]of s)if(c===null)r.delete(i);else if(Array.isArray(c))for(let a of c)r.append(i,a);else c!==void 0&&r.set(i,typeof c=="object"?JSON.stringify(c):c)}return r},"mergeHeaders"),j=class j{constructor(){this.fns=[]}clear(){this.fns=[]}eject(r){let o=this.getInterceptorIndex(r);this.fns[o]&&(this.fns[o]=null)}exists(r){let o=this.getInterceptorIndex(r);return!!this.fns[o]}getInterceptorIndex(r){return typeof r=="number"?this.fns[r]?r:-1:this.fns.indexOf(r)}update(r,o){let s=this.getInterceptorIndex(r);return this.fns[s]?(this.fns[s]=o,r):!1}use(r){return this.fns.push(r),this.fns.length-1}};t(j,"Interceptors");var F=j,je=t(()=>({error:new F,request:new F,response:new F}),"createInterceptors"),Ze=ve({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),er={"Content-Type":"application/json"},S=t((e={})=>({...Pe,headers:er,parseAs:"auto",querySerializer:Ze,...e}),"createConfig");var w=t((e={})=>{let r=N(S(),e),o=t(()=>({...r}),"getConfig"),s=t(y=>(r=N(r,y),o()),"setConfig"),i=je(),c=t(async y=>{let n={...r,...y,fetch:y.fetch??r.fetch??globalThis.fetch,headers:U(r.headers,y.headers),serializedBody:void 0};n.security&&await Ne({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body!==void 0&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.body===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let f=z(n);return{opts:n,url:f}},"beforeRequest"),a=t(async y=>{let{opts:n,url:f}=await c(y),g={redirect:"follow",...n,body:v(n)},R=new Request(f,g);for(let h of i.request.fns)h&&(R=await h(R,n));let k=n.fetch,C;try{C=await k(R)}catch(h){let u=h;for(let m of i.error.fns)m&&(u=await m(h,void 0,R,n));if(u=u||{},n.throwOnError)throw u;return n.responseStyle==="data"?void 0:{error:u,request:R,response:void 0}}for(let h of i.response.fns)h&&(C=await h(C,R,n));let I={request:R,response:C};if(C.ok){let h=(n.parseAs==="auto"?ze(C.headers.get("Content-Type")):n.parseAs)??"json";if(C.status===204||C.headers.get("Content-Length")==="0"){let m;switch(h){case"arrayBuffer":case"blob":case"text":m=await C[h]();break;case"formData":m=new FormData;break;case"stream":m=C.body;break;default:m={};break}return n.responseStyle==="data"?m:{data:m,...I}}let u;switch(h){case"arrayBuffer":case"blob":case"formData":case"text":u=await C[h]();break;case"json":{let m=await C.text();u=m?JSON.parse(m):{};break}case"stream":return n.responseStyle==="data"?C.body:{data:C.body,...I}}return h==="json"&&(n.responseValidator&&await n.responseValidator(u),n.responseTransformer&&(u=await n.responseTransformer(u))),n.responseStyle==="data"?u:{data:u,...I}}let b=await C.text(),B;try{B=JSON.parse(b)}catch{}let D=B??b,E=D;for(let h of i.error.fns)h&&(E=await h(D,C,R,n));if(E=E||{},n.throwOnError)throw E;return n.responseStyle==="data"?void 0:{error:E,...I}},"request"),l=t(y=>n=>a({...n,method:y}),"makeMethodFn"),p=t(y=>async n=>{let{opts:f,url:g}=await c(n);return Ae({...f,body:f.body,headers:f.headers,method:y,onRequest:t(async(R,k)=>{let C=new Request(R,k);for(let I of i.request.fns)I&&(C=await I(C,f));return C},"onRequest"),serializedBody:v(f),url:g})},"makeSseFn");return{buildUrl:z,connect:l("CONNECT"),delete:l("DELETE"),get:l("GET"),getConfig:o,head:l("HEAD"),interceptors:i,options:l("OPTIONS"),patch:l("PATCH"),post:l("POST"),put:l("PUT"),request:a,setConfig:s,sse:{connect:p("CONNECT"),delete:p("DELETE"),get:p("GET"),head:p("HEAD"),options:p("OPTIONS"),patch:p("PATCH"),post:p("POST"),put:p("PUT"),trace:p("TRACE")},trace:l("TRACE")}},"createClient");var d=w(S({baseUrl:"https://swish.app/api/2026-04"}));var G=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e}),"listControllerFind"),V=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerCreate"),M=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerDeleteById"),$=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e}),"listControllerFindById"),H=t(e=>(e.client??d).patch({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerUpdateById"),Q=t(e=>(e.client??d).put({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/order",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerSetListItemsOrder"),W=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"listControllerAddItemsToList"),J=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/lists/{listId}/items/{itemId}",...e}),"listControllerRemoveItemFromList"),K=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerDelete"),_=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/items",...e}),"itemControllerFind"),X=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/items",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerCreate"),Y=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/items/recently-viewed",...e}),"itemControllerGetRecentlyViewedItems"),Z=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/items/count",...e}),"itemControllerCount"),ee=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerDeleteById"),re=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e}),"itemControllerFindById"),te=t(e=>(e.client??d).patch({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerUpdateById"),oe=t(e=>(e.client??d).put({security:[{scheme:"bearer",type:"http"}],url:"/items/{itemId}/lists",...e,headers:{"Content-Type":"application/json",...e.headers}}),"itemControllerSetListsById"),se=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/identify",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerIdentify"),ne=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/profiles/token",...e,headers:{"Content-Type":"application/json",...e.headers}}),"profileControllerCreateToken"),ie=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/profiles",...e}),"profileControllerGetProfile");var le=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/analytics/saved-items",...e}),"analyticsControllerLoadSavedItems"),ae=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/analytics/sessions",...e}),"analyticsControllerLoadSessions"),de=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/analytics/new-lists",...e}),"analyticsControllerLoadNewLists"),pe=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/collect",...e,headers:{"Content-Type":"application/json",...e.headers}}),"trackingControllerCollect"),ce=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/orders",...e}),"ordersControllerFind"),Ce=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/orders/{orderId}",...e}),"ordersControllerFindOne"),ye=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists/{listId}/save",...e}),"sharedListsControllerSave"),ue=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists/{listId}",...e}),"sharedListsControllerDeleteById"),he=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists/{listId}",...e}),"sharedListsControllerFindById"),fe=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/shared-lists",...e}),"sharedListsControllerFindAll"),me=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/notifications",...e}),"notificationsControllerFind"),Ie=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/notifications/unread/count",...e}),"notificationsControllerGetUnreadCount"),Re=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/notifications/read",...e,headers:{"Content-Type":"application/json",...e.headers}}),"notificationsControllerMarkAsRead"),Oe=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/notifications/{id}",...e}),"notificationsControllerDeleteById"),Ee=t(e=>((e==null?void 0:e.client)??d).get({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions",...e}),"subscriptionsControllerFind"),Se=t(e=>(e.client??d).post({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions",...e,headers:{"Content-Type":"application/json",...e.headers}}),"subscriptionsControllerCreate"),be=t(e=>(e.client??d).delete({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions/{id}",...e}),"subscriptionsControllerDelete"),De=t(e=>(e.client??d).get({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions/{id}",...e}),"subscriptionsControllerFindById"),Le=t(e=>(e.client??d).patch({security:[{scheme:"bearer",type:"http"}],url:"/subscriptions/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),"subscriptionsControllerUpdate");var tr="2026-04",zr=t(e=>new Te(e),"createApiClient"),we=class we{constructor(r){this.version=tr;this.items={list:t(r=>this.handlePaginatedRequest(_({query:r,client:this.directClient})),"list"),create:t(r=>this.handleRequest(X({body:r,client:this.directClient})),"create"),delete:t(r=>this.handleRequest(K({body:{itemIds:r},client:this.directClient})),"delete"),findById:t(r=>this.handleRequest(re({path:{itemId:r},client:this.directClient})),"findById"),updateById:t((r,o)=>this.handleRequest(te({body:o,path:{itemId:r},client:this.directClient})),"updateById"),deleteById:t(r=>this.handleRequest(ee({path:{itemId:r},client:this.directClient})),"deleteById"),setListsById:t((r,o)=>this.handleRequest(oe({body:{listIds:o},path:{itemId:r},client:this.directClient})),"setListsById"),count:t(()=>this.handleRequest(Z({client:this.directClient})),"count"),getRecentlyViewed:t(r=>this.handlePaginatedRequest(Y({query:r,client:this.directClient})),"getRecentlyViewed")};this.lists={list:t(r=>this.handlePaginatedRequest(G({query:r,client:this.directClient})),"list"),create:t(r=>this.handleRequest(V({body:r,client:this.directClient})),"create"),findById:t(r=>this.handleRequest($({path:{listId:r},client:this.directClient})),"findById"),updateById:t((r,o)=>this.handleRequest(H({body:o,path:{listId:r},client:this.directClient})),"updateById"),deleteById:t(r=>this.handleRequest(M({path:{listId:r},client:this.directClient})),"deleteById"),orderItems:t((r,o)=>this.handleRequest(Q({body:{itemIds:o},path:{listId:r},client:this.directClient})),"orderItems"),addItemsToList:t((r,o)=>this.handleRequest(W({body:{itemIds:o},path:{listId:r},client:this.directClient})),"addItemsToList"),removeItemFromList:t((r,o)=>this.handleRequest(J({path:{listId:r,itemId:o},client:this.directClient})),"removeItemFromList")};this.profiles={createToken:t((r={})=>this.handleRequest(ne({body:r,client:this.proxyClient??this.directClient})),"createToken"),identify:t(r=>this.handleRequest(se({body:r,client:this.directClient})),"identify"),getProfile:t(()=>this.handleRequest(ie({client:this.directClient})),"getProfile")};this.orders={list:t(r=>this.handlePaginatedRequest(ce({query:r,client:this.directClient})),"list"),findById:t(r=>this.handleRequest(Ce({path:{orderId:r},client:this.directClient})),"findById")};this.sharedLists={list:t(r=>this.handlePaginatedRequest(fe({query:r,client:this.directClient})),"list"),save:t(r=>this.handleRequest(ye({path:{listId:r},client:this.directClient})),"save"),findById:t(r=>this.handleRequest(he({path:{listId:r},client:this.directClient})),"findById"),deleteById:t(r=>this.handleRequest(ue({path:{listId:r},client:this.directClient})),"deleteById")};this.analytics={savedItems:t(r=>this.handleRequest(le({query:r,client:this.directClient})),"savedItems"),sessions:t(r=>this.handleRequest(ae({query:r,client:this.directClient})),"sessions"),newLists:t(r=>this.handleRequest(de({query:r,client:this.directClient})),"newLists")};this.tracking={track:t(r=>this.handleRequest(pe({body:r,client:this.directClient})),"track")};this.notifications={list:t(r=>this.handlePaginatedRequest(me({query:r,client:this.directClient})),"list"),getUnreadCount:t(()=>this.handleRequest(Ie({client:this.directClient})),"getUnreadCount"),markAsRead:t(r=>this.handleRequest(Re({body:{notificationIds:r},client:this.directClient})),"markAsRead"),deleteById:t(r=>this.handleRequest(Oe({path:{id:r},client:this.directClient})),"deleteById")};this.subscriptions={list:t(r=>this.handlePaginatedRequest(Ee({query:r,client:this.directClient})),"list"),create:t(r=>this.handleRequest(Se({body:r,client:this.directClient})),"create"),findById:t(r=>this.handleRequest(De({path:{id:r},client:this.directClient})),"findById"),updateById:t((r,o)=>this.handleRequest(Le({body:o,path:{id:r},client:this.directClient})),"updateById"),deleteById:t(r=>this.handleRequest(be({path:{id:r},client:this.directClient})),"deleteById")};this.handleRequest=t(async r=>{let{data:o,error:s}=await r;return s!=null&&s.error?{error:s.error}:{data:o==null?void 0:o.data}},"handleRequest");this.handlePaginatedRequest=t(async r=>{var i;let{data:o,error:s}=await r;return s!=null&&s.error?{error:s.error}:{data:(o==null?void 0:o.data)??[],pageInfo:(o==null?void 0:o.pageInfo)??{next:null,previous:null,totalCount:((i=o==null?void 0:o.data)==null?void 0:i.length)??0}}},"handlePaginatedRequest");var o,s,i,c;this.directClient=w(S({baseUrl:`https://swish.app/api/${this.version}`,...r.config})),(o=r.config)!=null&&o.authProxy&&(this.proxyClient=w(S({...r.config,baseUrl:r.config.authProxy}))),r.authToken&&(this.authToken=r.authToken),r.requestInterceptor&&((s=this.proxyClient)==null||s.interceptors.request.use(r.requestInterceptor),this.directClient.interceptors.request.use(r.requestInterceptor)),r.responseInterceptor&&((i=this.proxyClient)==null||i.interceptors.response.use(r.responseInterceptor),this.directClient.interceptors.response.use(r.responseInterceptor)),(c=this.proxyClient)==null||c.interceptors.request.use(this.proxyRequestInterceptor.bind(this)),this.directClient.interceptors.request.use(this.directRequestInterceptor.bind(this))}setAuthToken(r){this.authToken=r}proxyRequestInterceptor(r){return this.version&&r.headers.set("Swish-Api-Version",this.version),r}directRequestInterceptor(r){return this.authToken&&r.headers.set("Authorization",`Bearer ${this.authToken}`),r}};t(we,"SwishClient");var Te=we;export{tr as apiVersion,zr as createApiClient};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { Auth } from '../core/auth.gen';
|
|
2
|
+
export type { QuerySerializerOptions } from '../core/bodySerializer.gen';
|
|
3
|
+
export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen';
|
|
4
|
+
export { buildClientParams } from '../core/params.gen';
|
|
5
|
+
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
|
|
6
|
+
export { createClient } from './client.gen';
|
|
7
|
+
export type { Client, ClientOptions, Config, CreateClientConfig, Options, RequestOptions, RequestResult, ResolvedRequestOptions, ResponseStyle, TDataShape, } from './types.gen';
|
|
8
|
+
export { createConfig, mergeHeaders } from './utils.gen';
|