@opexa/portal-sdk 0.59.48 → 0.59.49

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.
@@ -0,0 +1,208 @@
1
+ import { callIfFn, statusCodeToOperationError } from './chunk-WVFSGB7Y.js';
2
+
3
+ // src/utils/is-plain-object.ts
4
+ function isPlainObject(value) {
5
+ return Object.prototype.toString.call(value) === "[object Object]" && Object(value) === value;
6
+ }
7
+
8
+ // src/utils/flatten.ts
9
+ function flatten(value) {
10
+ const result = [];
11
+ function fn(o, parentKeys = []) {
12
+ for (const k in o) {
13
+ const v = o[k];
14
+ if (isPlainObject(v)) {
15
+ fn(v, [...parentKeys, k]);
16
+ } else if (Array.isArray(v)) {
17
+ fn(arrayToObject(v), [...parentKeys, k]);
18
+ } else {
19
+ result.push({
20
+ key: [...parentKeys, k],
21
+ value: v
22
+ });
23
+ }
24
+ }
25
+ }
26
+ fn(value);
27
+ return result;
28
+ }
29
+ function arrayToObject(array) {
30
+ return array.reduce((o, v, i) => {
31
+ o[i] = v;
32
+ return o;
33
+ }, {});
34
+ }
35
+
36
+ // src/utils/graphql-client.ts
37
+ var GraphQLClient = class {
38
+ url;
39
+ config;
40
+ constructor(url, config = {}) {
41
+ this.url = url;
42
+ this.config = config;
43
+ }
44
+ async request(query, variables, userOptions) {
45
+ const config = callIfFn(this.config);
46
+ const options = mergeFetchOptions(
47
+ {
48
+ ...config?.fetchOptions,
49
+ headers: new Headers(config?.fetchOptions?.headers)
50
+ },
51
+ userOptions
52
+ );
53
+ const body = JSON.stringify({
54
+ query,
55
+ variables
56
+ });
57
+ const headers = new Headers(options.headers);
58
+ headers.set("Content-Type", "application/json");
59
+ headers.set("Accept", "application/json");
60
+ const url = new URL(this.url);
61
+ const operationInfo = getOperationInfo(query);
62
+ if (operationInfo) {
63
+ url.searchParams.set(`_${operationInfo.type}`, operationInfo.name);
64
+ }
65
+ const req = await this.runMiddlewares(
66
+ new Request(url, {
67
+ ...options,
68
+ body,
69
+ headers,
70
+ method: "POST"
71
+ }),
72
+ config?.middlewares ?? []
73
+ );
74
+ return await this.exec(req);
75
+ }
76
+ /** Single file upload */
77
+ async upload(query, variables, options) {
78
+ const cfg = callIfFn(this.config);
79
+ const opts = mergeFetchOptions(
80
+ {
81
+ ...cfg?.fetchOptions,
82
+ headers: new Headers(cfg?.fetchOptions?.headers)
83
+ },
84
+ options
85
+ );
86
+ const body = this.createUploadBody(query, variables);
87
+ const headers = new Headers(opts.headers);
88
+ headers.delete("Content-Type");
89
+ const url = new URL(this.url);
90
+ const operationInfo = getOperationInfo(query);
91
+ if (operationInfo) {
92
+ url.searchParams.set(`_${operationInfo.type}`, operationInfo.name);
93
+ }
94
+ const req = await this.runMiddlewares(
95
+ new Request(url, {
96
+ ...opts,
97
+ body,
98
+ headers,
99
+ method: "POST"
100
+ }),
101
+ cfg?.middlewares ?? []
102
+ );
103
+ return await this.exec(req);
104
+ }
105
+ async exec(request) {
106
+ const config = callIfFn(this.config);
107
+ const fetch_ = config.fetch ?? fetch;
108
+ try {
109
+ const res = await fetch_(request);
110
+ if (!res.ok) {
111
+ return { ok: false, error: statusCodeToOperationError(res.status) };
112
+ }
113
+ const json = await res.json();
114
+ const data = json.data;
115
+ const error = json.errors?.at(0);
116
+ if (error) {
117
+ if (error.extensions?.code === "FORBIDDEN" || error.extensions?.code === "ACCESS_TOKEN_EXPIRED") {
118
+ return {
119
+ ok: false,
120
+ error: statusCodeToOperationError(403, error.message)
121
+ };
122
+ }
123
+ if (error.extensions?.code === "UNAUTHORIZED") {
124
+ return {
125
+ ok: false,
126
+ error: statusCodeToOperationError(401, error.message)
127
+ };
128
+ }
129
+ if (error.extensions?.code === "BAD_USER_INPUT" || error.extensions?.code === "BAD_REQUEST") {
130
+ return {
131
+ ok: false,
132
+ error: statusCodeToOperationError(400, error.message)
133
+ };
134
+ }
135
+ return {
136
+ ok: false,
137
+ error: statusCodeToOperationError(500, error.message)
138
+ };
139
+ }
140
+ return {
141
+ ok: true,
142
+ data
143
+ };
144
+ } catch {
145
+ return {
146
+ ok: false,
147
+ error: statusCodeToOperationError(500)
148
+ };
149
+ }
150
+ }
151
+ async runMiddlewares(req, middlewares) {
152
+ let result = req.clone();
153
+ for (const middleware of middlewares) {
154
+ result = await middleware(result);
155
+ }
156
+ return result;
157
+ }
158
+ createUploadBody(query, variables) {
159
+ const files = flatten(variables).filter(
160
+ (o) => o.value instanceof File || o.value instanceof Blob
161
+ );
162
+ const body = new FormData();
163
+ body.append(
164
+ "operations",
165
+ JSON.stringify({
166
+ query,
167
+ variables
168
+ })
169
+ );
170
+ const map = {};
171
+ files.forEach((o, i) => {
172
+ map[i.toString()] = [`variables.${o.key.join(".")}`];
173
+ });
174
+ body.append("map", JSON.stringify(map));
175
+ files.forEach((o, i) => {
176
+ body.append(i.toString(), o.value);
177
+ });
178
+ return body;
179
+ }
180
+ };
181
+ function getOperationInfo(query) {
182
+ const l = query.match(/(query|mutation)\s+(\w+)/);
183
+ if (!l) return null;
184
+ const k = l.at(1);
185
+ const v = l.at(2);
186
+ return k && v ? { type: k, name: v } : null;
187
+ }
188
+ function mergeFetchOptions(i, j) {
189
+ if (!i) return j ?? {};
190
+ if (!j) return i ?? {};
191
+ return {
192
+ ...i,
193
+ ...j,
194
+ headers: mergeHeaders(i.headers, j.headers)
195
+ };
196
+ }
197
+ function mergeHeaders(i, j) {
198
+ if (!i) return j;
199
+ if (!j) return i;
200
+ const h = new Headers();
201
+ new Headers(i).forEach((v, k) => h.append(k, v));
202
+ new Headers(j).forEach((v, k) => h.append(k, v));
203
+ return h;
204
+ }
205
+
206
+ export { GraphQLClient, isPlainObject };
207
+ //# sourceMappingURL=chunk-JTAO2DVT.js.map
208
+ //# sourceMappingURL=chunk-JTAO2DVT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/is-plain-object.ts","../src/utils/flatten.ts","../src/utils/graphql-client.ts"],"names":[],"mappings":";;;AAAO,SAAS,cAAc,KAAA,EAA8C;AAC3E,EAAA,OACC,MAAA,CAAO,UAAU,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,KAAM,iBAAA,IAC1C,MAAA,CAAO,KAAK,CAAA,KAAM,KAAA;AAEpB;;;ACHO,SAAS,QAAQ,KAAA,EAAoC;AAC3D,EAAA,MAAM,SAGA,EAAC;AAEP,EAAA,SAAS,EAAA,CAAG,CAAA,EAAwB,UAAA,GAAuB,EAAC,EAAG;AAC9D,IAAA,KAAA,MAAW,KAAK,CAAA,EAAG;AAClB,MAAA,MAAM,CAAA,GAAI,EAAE,CAAC,CAAA;AAEb,MAAA,IAAI,aAAA,CAAc,CAAC,CAAA,EAAG;AACrB,QAAA,EAAA,CAAG,CAAA,EAAG,CAAC,GAAG,UAAA,EAAY,CAAC,CAAC,CAAA;AAAA,MACzB,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AAC5B,QAAA,EAAA,CAAG,cAAc,CAAC,CAAA,EAAG,CAAC,GAAG,UAAA,EAAY,CAAC,CAAC,CAAA;AAAA,MACxC,CAAA,MAAO;AACN,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACX,GAAA,EAAK,CAAC,GAAG,UAAA,EAAY,CAAC,CAAA;AAAA,UACtB,KAAA,EAAO;AAAA,SACP,CAAA;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAEA,EAAA,EAAA,CAAG,KAAK,CAAA;AAER,EAAA,OAAO,MAAA;AACR;AAEA,SAAS,cAAc,KAAA,EAAkB;AACxC,EAAA,OAAO,KAAA,CAAM,MAAA,CAA4B,CAAC,CAAA,EAAG,GAAG,CAAA,KAAM;AACrD,IAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA;AACP,IAAA,OAAO,CAAA;AAAA,EACR,CAAA,EAAG,EAAE,CAAA;AACN;;;AC4BO,IAAM,gBAAN,MAAoB;AAAA,EAClB,GAAA;AAAA,EACA,MAAA;AAAA,EAER,WAAA,CACC,GAAA,EACA,MAAA,GAA4D,EAAC,EAC5D;AACD,IAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AACX,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EACf;AAAA,EAEA,MAAM,OAAA,CACL,KAAA,EACA,SAAA,EACA,WAAA,EACC;AACD,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AACnC,IAAA,MAAM,OAAA,GAAU,iBAAA;AAAA,MACf;AAAA,QACC,GAAG,MAAA,EAAQ,YAAA;AAAA,QACX,OAAA,EAAS,IAAI,OAAA,CAAQ,MAAA,EAAQ,cAAc,OAAO;AAAA,OACnD;AAAA,MACA;AAAA,KACD;AAEA,IAAA,MAAM,IAAA,GAAO,KAAK,SAAA,CAAU;AAAA,MAC3B,KAAA;AAAA,MACA;AAAA,KACA,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AAE3C,IAAA,OAAA,CAAQ,GAAA,CAAI,gBAAgB,kBAAkB,CAAA;AAC9C,IAAA,OAAA,CAAQ,GAAA,CAAI,UAAU,kBAAkB,CAAA;AAExC,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAC5B,IAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,IAAA,IAAI,aAAA,EAAe;AAClB,MAAA,GAAA,CAAI,aAAa,GAAA,CAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA;AAAA,MACtB,IAAI,QAAQ,GAAA,EAAK;AAAA,QAChB,GAAG,OAAA;AAAA,QACH,IAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA,EAAQ;AAAA,OACR,CAAA;AAAA,MACD,MAAA,EAAQ,eAAe;AAAC,KACzB;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAW,GAAG,CAAA;AAAA,EACjC;AAAA;AAAA,EAGA,MAAM,MAAA,CACL,KAAA,EACA,SAAA,EACA,OAAA,EACC;AACD,IAAA,MAAM,GAAA,GAAM,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAChC,IAAA,MAAM,IAAA,GAAO,iBAAA;AAAA,MACZ;AAAA,QACC,GAAG,GAAA,EAAK,YAAA;AAAA,QACR,OAAA,EAAS,IAAI,OAAA,CAAQ,GAAA,EAAK,cAAc,OAAO;AAAA,OAChD;AAAA,MACA;AAAA,KACD;AAEA,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,gBAAA,CAAiB,KAAA,EAAO,SAAS,CAAA;AACnD,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA;AAExC,IAAA,OAAA,CAAQ,OAAO,cAAc,CAAA;AAE7B,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAC5B,IAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,IAAA,IAAI,aAAA,EAAe;AAClB,MAAA,GAAA,CAAI,aAAa,GAAA,CAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA,CAAA,EAAI,cAAc,IAAI,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,cAAA;AAAA,MACtB,IAAI,QAAQ,GAAA,EAAK;AAAA,QAChB,GAAG,IAAA;AAAA,QACH,IAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA,EAAQ;AAAA,OACR,CAAA;AAAA,MACD,GAAA,EAAK,eAAe;AAAC,KACtB;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAW,GAAG,CAAA;AAAA,EACjC;AAAA,EAEA,MAAc,KAAQ,OAAA,EAAsD;AAC3E,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAEnC,IAAA,MAAM,MAAA,GAAS,OAAO,KAAA,IAAS,KAAA;AAE/B,IAAA,IAAI;AACH,MAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,OAAO,CAAA;AAEhC,MAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACZ,QAAA,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,OAAO,0BAAA,CAA2B,GAAA,CAAI,MAAM,CAAA,EAAE;AAAA,MACnE;AAEA,MAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,IAAA,EAAK;AAC5B,MAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAClB,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,MAAA,EAAQ,EAAA,CAAG,CAAC,CAAA;AAE/B,MAAA,IAAI,KAAA,EAAO;AACV,QAAA,IACC,MAAM,UAAA,EAAY,IAAA,KAAS,eAC3B,KAAA,CAAM,UAAA,EAAY,SAAS,sBAAA,EAC1B;AACD,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,WACrD;AAAA,QACD;AAEA,QAAA,IAAI,KAAA,CAAM,UAAA,EAAY,IAAA,KAAS,cAAA,EAAgB;AAC9C,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,WACrD;AAAA,QACD;AAEA,QAAA,IACC,MAAM,UAAA,EAAY,IAAA,KAAS,oBAC3B,KAAA,CAAM,UAAA,EAAY,SAAS,aAAA,EAC1B;AACD,UAAA,OAAO;AAAA,YACN,EAAA,EAAI,KAAA;AAAA,YACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,WACrD;AAAA,QACD;AAGA,QAAA,OAAO;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,KAAA,EAAO,0BAAA,CAA2B,GAAA,EAAK,KAAA,CAAM,OAAO;AAAA,SACrD;AAAA,MACD;AAEA,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,IAAA;AAAA,QACJ;AAAA,OACD;AAAA,IACD,CAAA,CAAA,MAAQ;AACP,MAAA,OAAO;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,KAAA,EAAO,2BAA2B,GAAG;AAAA,OACtC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAc,cAAA,CACb,GAAA,EACA,WAAA,EAC2B;AAC3B,IAAA,IAAI,MAAA,GAAS,IAAI,KAAA,EAAM;AAEvB,IAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACrC,MAAA,MAAA,GAAS,MAAM,WAAW,MAAM,CAAA;AAAA,IACjC;AAEA,IAAA,OAAO,MAAA;AAAA,EACR;AAAA,EAEQ,gBAAA,CACP,OACA,SAAA,EACC;AACD,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,SAAS,CAAA,CAAE,MAAA;AAAA,MAChC,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,YAAiB,IAAA,IAAQ,EAAE,KAAA,YAAiB;AAAA,KACtD;AAEA,IAAA,MAAM,IAAA,GAAO,IAAI,QAAA,EAAS;AAE1B,IAAA,IAAA,CAAK,MAAA;AAAA,MACJ,YAAA;AAAA,MACA,KAAK,SAAA,CAAU;AAAA,QACd,KAAA;AAAA,QACA;AAAA,OACA;AAAA,KACF;AAEA,IAAA,MAAM,MAAqB,EAAC;AAE5B,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM;AACvB,MAAA,GAAA,CAAI,CAAA,CAAE,QAAA,EAAU,CAAA,GAAI,CAAC,CAAA,UAAA,EAAa,CAAA,CAAE,GAAA,CAAI,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,IACpD,CAAC,CAAA;AAED,IAAA,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAEtC,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM;AACvB,MAAA,IAAA,CAAK,MAAA,CAAO,CAAA,CAAE,QAAA,EAAS,EAAG,EAAE,KAAK,CAAA;AAAA,IAClC,CAAC,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACR;AACD;AAEA,SAAS,iBAAiB,KAAA,EAAe;AACxC,EAAA,MAAM,CAAA,GAAI,KAAA,CAAM,KAAA,CAAM,0BAA0B,CAAA;AAEhD,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AAEf,EAAA,MAAM,CAAA,GAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA;AAChB,EAAA,MAAM,CAAA,GAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA;AAEhB,EAAA,OAAO,KAAK,CAAA,GAAI,EAAE,MAAM,CAAA,EAAG,IAAA,EAAM,GAAE,GAAI,IAAA;AACxC;AAEA,SAAS,iBAAA,CACR,GACA,CAAA,EAC4B;AAC5B,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,IAAK,EAAC;AACrB,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,IAAK,EAAC;AAErB,EAAA,OAAO;AAAA,IACN,GAAG,CAAA;AAAA,IACH,GAAG,CAAA;AAAA,IAEH,OAAA,EAAS,YAAA,CAAa,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO;AAAA,GAC3C;AACD;AAEA,SAAS,YAAA,CAAa,GAA4B,CAAA,EAA4B;AAC7E,EAAA,IAAI,CAAC,GAAG,OAAO,CAAA;AACf,EAAA,IAAI,CAAC,GAAG,OAAO,CAAA;AAEf,EAAA,MAAM,CAAA,GAAI,IAAI,OAAA,EAAQ;AAEtB,EAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,CAAA,EAAG,CAAC,CAAC,CAAA;AAC/C,EAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,CAAA,EAAG,CAAC,CAAC,CAAA;AAE/C,EAAA,OAAO,CAAA;AACR","file":"chunk-JTAO2DVT.js","sourcesContent":["export function isPlainObject(value: unknown): value is Record<string, any> {\r\n\treturn (\r\n\t\tObject.prototype.toString.call(value) === '[object Object]' &&\r\n\t\tObject(value) === value\r\n\t);\r\n}\r\n","import { isPlainObject } from './is-plain-object.js';\r\n\r\nexport function flatten(value: Record<string, any> | any[]) {\r\n\tconst result: {\r\n\t\tkey: string[];\r\n\t\tvalue: any;\r\n\t}[] = [];\r\n\r\n\tfunction fn(o: Record<string, any>, parentKeys: string[] = []) {\r\n\t\tfor (const k in o) {\r\n\t\t\tconst v = o[k];\r\n\r\n\t\t\tif (isPlainObject(v)) {\r\n\t\t\t\tfn(v, [...parentKeys, k]);\r\n\t\t\t} else if (Array.isArray(v)) {\r\n\t\t\t\tfn(arrayToObject(v), [...parentKeys, k]);\r\n\t\t\t} else {\r\n\t\t\t\tresult.push({\r\n\t\t\t\t\tkey: [...parentKeys, k],\r\n\t\t\t\t\tvalue: v,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfn(value);\r\n\r\n\treturn result;\r\n}\r\n\r\nfunction arrayToObject(array: unknown[]) {\r\n\treturn array.reduce<Record<string, any>>((o, v, i) => {\r\n\t\to[i] = v;\r\n\t\treturn o;\r\n\t}, {});\r\n}\r\n","import type { GenericObject, OperationResult } from '../types/index.js';\r\nimport { callIfFn } from './call-if-fn.js';\r\nimport { flatten } from './flatten.js';\r\nimport { statusCodeToOperationError } from './status-code-to-operation-error.js';\r\n\r\ntype ModifiableKey =\r\n\t| 'mode'\r\n\t| 'cache'\r\n\t| 'signal'\r\n\t| 'headers'\r\n\t| 'integrity'\r\n\t| 'keepalive'\r\n\t| 'credentials';\r\n\r\ntype Modifiable = {\r\n\t[K in ModifiableKey]: Request[K];\r\n};\r\n\r\nexport interface ModifiedRequest\r\n\textends Readonly<Omit<Request, ModifiableKey>>,\r\n\t\tModifiable {}\r\n\r\nexport type GraphQLClientMiddleware = (\r\n\trequest: ModifiedRequest,\r\n) => ModifiedRequest | Promise<ModifiedRequest>;\r\n\r\nexport interface GraphQLClientFetchOptions\r\n\textends Omit<RequestInit, 'body' | 'method'> {}\r\n\r\nexport interface GraphQLClientConfig {\r\n\tfetch?: typeof globalThis.fetch | null;\r\n\tfetchOptions?: GraphQLClientFetchOptions;\r\n\tmiddlewares?: GraphQLClientMiddleware[];\r\n}\r\n\r\n/* ref: https://www.apollographql.com/docs/apollo-server/data/errors/#graphql_parse_failed */\r\ntype GraphQLErrorExtensionCode =\r\n\t| 'FORBIDDEN'\r\n\t| 'UNAUTHORIZED'\r\n\t| 'BAD_REQUEST'\r\n\t| 'BAD_USER_INPUT'\r\n\t| 'INTERNAL_SERVER_ERROR'\r\n\t| 'ACCESS_TOKEN_EXPIRED';\r\n\r\ninterface GraphQLErrorExtensions {\r\n\tcode: GraphQLErrorExtensionCode;\r\n\tstacktrace: string[];\r\n}\r\n\r\ninterface GraphQLErrorLocation {\r\n\tline: number;\r\n\tcolumn: number;\r\n}\r\n\r\ninterface GraphQLError {\r\n\tpath: string[];\r\n\tmessage?: string;\r\n\textensions?: GraphQLErrorExtensions;\r\n\tlocations: GraphQLErrorLocation[];\r\n}\r\n\r\ntype Getter<T> = () => T;\r\n\r\nexport class GraphQLClient {\r\n\tprivate url: string;\r\n\tprivate config: Getter<GraphQLClientConfig> | GraphQLClientConfig;\r\n\r\n\tconstructor(\r\n\t\turl: string,\r\n\t\tconfig: Getter<GraphQLClientConfig> | GraphQLClientConfig = {},\r\n\t) {\r\n\t\tthis.url = url;\r\n\t\tthis.config = config;\r\n\t}\r\n\r\n\tasync request<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables?: Variables,\r\n\t\tuserOptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst config = callIfFn(this.config);\r\n\t\tconst options = mergeFetchOptions(\r\n\t\t\t{\r\n\t\t\t\t...config?.fetchOptions,\r\n\t\t\t\theaders: new Headers(config?.fetchOptions?.headers),\r\n\t\t\t},\r\n\t\t\tuserOptions,\r\n\t\t);\r\n\r\n\t\tconst body = JSON.stringify({\r\n\t\t\tquery,\r\n\t\t\tvariables,\r\n\t\t});\r\n\r\n\t\tconst headers = new Headers(options.headers);\r\n\r\n\t\theaders.set('Content-Type', 'application/json');\r\n\t\theaders.set('Accept', 'application/json');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...options,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tconfig?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\t/** Single file upload */\r\n\tasync upload<Data, Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t\toptions?: GraphQLClientFetchOptions,\r\n\t) {\r\n\t\tconst cfg = callIfFn(this.config);\r\n\t\tconst opts = mergeFetchOptions(\r\n\t\t\t{\r\n\t\t\t\t...cfg?.fetchOptions,\r\n\t\t\t\theaders: new Headers(cfg?.fetchOptions?.headers),\r\n\t\t\t},\r\n\t\t\toptions,\r\n\t\t);\r\n\r\n\t\tconst body = this.createUploadBody(query, variables);\r\n\t\tconst headers = new Headers(opts.headers);\r\n\r\n\t\theaders.delete('Content-Type');\r\n\r\n\t\tconst url = new URL(this.url);\r\n\t\tconst operationInfo = getOperationInfo(query);\r\n\r\n\t\tif (operationInfo) {\r\n\t\t\turl.searchParams.set(`_${operationInfo.type}`, operationInfo.name);\r\n\t\t}\r\n\r\n\t\tconst req = await this.runMiddlewares(\r\n\t\t\tnew Request(url, {\r\n\t\t\t\t...opts,\r\n\t\t\t\tbody,\r\n\t\t\t\theaders,\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t}),\r\n\t\t\tcfg?.middlewares ?? [],\r\n\t\t);\r\n\r\n\t\treturn await this.exec<Data>(req);\r\n\t}\r\n\r\n\tprivate async exec<T>(request: Request): Promise<OperationResult<never, T>> {\r\n\t\tconst config = callIfFn(this.config);\r\n\r\n\t\tconst fetch_ = config.fetch ?? fetch;\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await fetch_(request);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\treturn { ok: false, error: statusCodeToOperationError(res.status) };\r\n\t\t\t}\r\n\r\n\t\t\tconst json = await res.json();\r\n\t\t\tconst data = json.data;\r\n\t\t\tconst error = json.errors?.at(0) as GraphQLError | undefined;\r\n\r\n\t\t\tif (error) {\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'FORBIDDEN' ||\r\n\t\t\t\t\terror.extensions?.code === 'ACCESS_TOKEN_EXPIRED'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: statusCodeToOperationError(403, error.message),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (error.extensions?.code === 'UNAUTHORIZED') {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: statusCodeToOperationError(401, error.message),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\terror.extensions?.code === 'BAD_USER_INPUT' ||\r\n\t\t\t\t\terror.extensions?.code === 'BAD_REQUEST'\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tok: false,\r\n\t\t\t\t\t\terror: statusCodeToOperationError(400, error.message),\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Fallback for unknown error codes */\r\n\t\t\t\treturn {\r\n\t\t\t\t\tok: false,\r\n\t\t\t\t\terror: statusCodeToOperationError(500, error.message),\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tok: true,\r\n\t\t\t\tdata,\r\n\t\t\t};\r\n\t\t} catch {\r\n\t\t\treturn {\r\n\t\t\t\tok: false,\r\n\t\t\t\terror: statusCodeToOperationError(500),\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async runMiddlewares(\r\n\t\treq: ModifiedRequest,\r\n\t\tmiddlewares: GraphQLClientMiddleware[],\r\n\t): Promise<ModifiedRequest> {\r\n\t\tlet result = req.clone();\r\n\r\n\t\tfor (const middleware of middlewares) {\r\n\t\t\tresult = await middleware(result);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tprivate createUploadBody<Variables extends GenericObject = GenericObject>(\r\n\t\tquery: string,\r\n\t\tvariables: Variables,\r\n\t) {\r\n\t\tconst files = flatten(variables).filter(\r\n\t\t\t(o) => o.value instanceof File || o.value instanceof Blob,\r\n\t\t);\r\n\r\n\t\tconst body = new FormData();\r\n\r\n\t\tbody.append(\r\n\t\t\t'operations',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tquery,\r\n\t\t\t\tvariables,\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tconst map: GenericObject = {};\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tmap[i.toString()] = [`variables.${o.key.join('.')}`];\r\n\t\t});\r\n\r\n\t\tbody.append('map', JSON.stringify(map));\r\n\r\n\t\tfiles.forEach((o, i) => {\r\n\t\t\tbody.append(i.toString(), o.value);\r\n\t\t});\r\n\r\n\t\treturn body;\r\n\t}\r\n}\r\n\r\nfunction getOperationInfo(query: string) {\r\n\tconst l = query.match(/(query|mutation)\\s+(\\w+)/);\r\n\r\n\tif (!l) return null;\r\n\r\n\tconst k = l.at(1);\r\n\tconst v = l.at(2);\r\n\r\n\treturn k && v ? { type: k, name: v } : null;\r\n}\r\n\r\nfunction mergeFetchOptions(\r\n\ti: GraphQLClientFetchOptions | undefined,\r\n\tj: GraphQLClientFetchOptions | undefined,\r\n): GraphQLClientFetchOptions {\r\n\tif (!i) return j ?? {};\r\n\tif (!j) return i ?? {};\r\n\r\n\treturn {\r\n\t\t...i,\r\n\t\t...j,\r\n\r\n\t\theaders: mergeHeaders(i.headers, j.headers),\r\n\t};\r\n}\r\n\r\nfunction mergeHeaders(i: HeadersInit | undefined, j: HeadersInit | undefined) {\r\n\tif (!i) return j;\r\n\tif (!j) return i;\r\n\r\n\tconst h = new Headers();\r\n\r\n\tnew Headers(i).forEach((v, k) => h.append(k, v));\r\n\tnew Headers(j).forEach((v, k) => h.append(k, v));\r\n\r\n\treturn h;\r\n}\r\n"]}
@@ -0,0 +1,43 @@
1
+ // src/utils/gql.ts
2
+ function gql(strings, ...values) {
3
+ let result = "";
4
+ for (const [index, string] of strings.entries()) {
5
+ const value = values.at(index) ?? "";
6
+ result = `${result}${string}${value}`;
7
+ }
8
+ return result.trim();
9
+ }
10
+
11
+ // src/utils/status-code-to-operation-error.ts
12
+ function statusCodeToOperationError(value, message) {
13
+ const e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];
14
+ return {
15
+ name: e.name,
16
+ message: message ?? e.message
17
+ };
18
+ }
19
+ var ERROR_MAP = {
20
+ 400: { name: "HttpBadRequest", message: "Bad Request" },
21
+ 401: { name: "HttpUnauthorized", message: "Unauthorized" },
22
+ 403: { name: "HttpForbidden", message: "Forbidden" },
23
+ 404: { name: "HttpNotFound", message: "Not Found" },
24
+ 408: { name: "HttpRequestTimeout", message: "Request Timeout" },
25
+ 429: { name: "HttpTooManyRequests", message: "Too Many Requests" },
26
+ 500: { name: "HttpInternalServerError", message: "Internal Server Error" }
27
+ };
28
+
29
+ // src/utils/call-if-fn.ts
30
+ function isFunction(value) {
31
+ return typeof value === "function";
32
+ }
33
+ function callIfFn(value, ...args) {
34
+ if (isFunction(value)) {
35
+ return value(...args);
36
+ } else {
37
+ return value;
38
+ }
39
+ }
40
+
41
+ export { callIfFn, gql, statusCodeToOperationError };
42
+ //# sourceMappingURL=chunk-WVFSGB7Y.js.map
43
+ //# sourceMappingURL=chunk-WVFSGB7Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/gql.ts","../src/utils/status-code-to-operation-error.ts","../src/utils/call-if-fn.ts"],"names":[],"mappings":";AAAO,SAAS,GAAA,CAAI,YAAkC,MAAA,EAAmB;AACxE,EAAA,IAAI,MAAA,GAAS,EAAA;AAEb,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,MAAM,CAAA,IAAK,OAAA,CAAQ,SAAQ,EAAG;AAChD,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,EAAA,CAAG,KAAK,CAAA,IAAK,EAAA;AAElC,IAAA,MAAA,GAAS,CAAA,EAAG,MAAM,CAAA,EAAG,MAAM,GAAG,KAAK,CAAA,CAAA;AAAA,EACpC;AAEA,EAAA,OAAO,OAAO,IAAA,EAAK;AACpB;;;ACRO,SAAS,0BAAA,CACf,OACA,OAAA,EAC4B;AAC5B,EAAA,MAAM,CAAA,GAAI,UAAU,KAAK,CAAA,GAAI,UAAU,KAAK,CAAA,GAAI,UAAU,GAAG,CAAA;AAE7D,EAAA,OAAO;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,OAAA,EAAS,WAAW,CAAA,CAAE;AAAA,GACvB;AACD;AAEA,IAAM,SAAA,GAAuD;AAAA,EAC5D,GAAA,EAAK,EAAE,IAAA,EAAM,gBAAA,EAAkB,SAAS,aAAA,EAAc;AAAA,EACtD,GAAA,EAAK,EAAE,IAAA,EAAM,kBAAA,EAAoB,SAAS,cAAA,EAAe;AAAA,EACzD,GAAA,EAAK,EAAE,IAAA,EAAM,eAAA,EAAiB,SAAS,WAAA,EAAY;AAAA,EACnD,GAAA,EAAK,EAAE,IAAA,EAAM,cAAA,EAAgB,SAAS,WAAA,EAAY;AAAA,EAClD,GAAA,EAAK,EAAE,IAAA,EAAM,oBAAA,EAAsB,SAAS,iBAAA,EAAkB;AAAA,EAC9D,GAAA,EAAK,EAAE,IAAA,EAAM,qBAAA,EAAuB,SAAS,mBAAA,EAAoB;AAAA,EACjE,GAAA,EAAK,EAAE,IAAA,EAAM,yBAAA,EAA2B,SAAS,uBAAA;AAClD,CAAA;;;ACtBA,SAAS,WACR,KAAA,EACuC;AACvC,EAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AACzB;AAEO,SAAS,QAAA,CACf,UACG,IAAA,EACF;AACD,EAAA,IAAI,UAAA,CAAyB,KAAK,CAAA,EAAG;AACpC,IAAA,OAAO,KAAA,CAAM,GAAG,IAAI,CAAA;AAAA,EACrB,CAAA,MAAO;AACN,IAAA,OAAO,KAAA;AAAA,EACR;AACD","file":"chunk-WVFSGB7Y.js","sourcesContent":["export function gql(strings: TemplateStringsArray, ...values: unknown[]) {\r\n\tlet result = '';\r\n\r\n\tfor (const [index, string] of strings.entries()) {\r\n\t\tconst value = values.at(index) ?? '';\r\n\r\n\t\tresult = `${result}${string}${value}`;\r\n\t}\r\n\r\n\treturn result.trim();\r\n}\r\n","import type { HttpError, OperationError } from '../types/index.js';\r\n\r\nexport function statusCodeToOperationError(\r\n\tvalue: number,\r\n\tmessage?: string,\r\n): OperationError<HttpError> {\r\n\tconst e = ERROR_MAP[value] ? ERROR_MAP[value] : ERROR_MAP[500];\r\n\r\n\treturn {\r\n\t\tname: e.name,\r\n\t\tmessage: message ?? e.message,\r\n\t};\r\n}\r\n\r\nconst ERROR_MAP: Record<number, OperationError<HttpError>> = {\r\n\t400: { name: 'HttpBadRequest', message: 'Bad Request' },\r\n\t401: { name: 'HttpUnauthorized', message: 'Unauthorized' },\r\n\t403: { name: 'HttpForbidden', message: 'Forbidden' },\r\n\t404: { name: 'HttpNotFound', message: 'Not Found' },\r\n\t408: { name: 'HttpRequestTimeout', message: 'Request Timeout' },\r\n\t429: { name: 'HttpTooManyRequests', message: 'Too Many Requests' },\r\n\t500: { name: 'HttpInternalServerError', message: 'Internal Server Error' },\r\n};\r\n","function isFunction<Return, Args = never>(\r\n\tvalue: unknown | ((...args: Args[]) => Return),\r\n): value is (...args: Args[]) => Return {\r\n\treturn typeof value === 'function';\r\n}\r\n\r\nexport function callIfFn<Return, Args = never>(\r\n\tvalue: Return | ((...args: Args[]) => Return),\r\n\t...args: Args[]\r\n) {\r\n\tif (isFunction<Return, Args>(value)) {\r\n\t\treturn value(...args);\r\n\t} else {\r\n\t\treturn value;\r\n\t}\r\n}\r\n"]}
@@ -0,0 +1,58 @@
1
+ type GenericObject = Record<string, any>;
2
+ type Assign<Target, Source> = Omit<Target, keyof Source> & Source;
3
+ type Alias<T> = T & {
4
+ _?: never;
5
+ };
6
+ type HttpError = /* 400 */ 'HttpBadRequest' | /* 401 */ 'HttpUnauthorized' | /* 403 */ 'HttpForbidden' | /* 404 */ 'HttpNotFound' | /* 408 */ 'HttpRequestTimeout' | /* 429 */ 'HttpTooManyRequests' | /* 500 */ 'HttpInternalServerError';
7
+ type OperationError<T extends string = string> = {
8
+ name: T;
9
+ message: string;
10
+ };
11
+ type OperationResult<Error extends string = never, Data = never> = [
12
+ Data
13
+ ] extends [never] ? {
14
+ ok: false;
15
+ data?: never;
16
+ error: [Error] extends [never] ? OperationError<HttpError | 'UnknownError'> : OperationError<Error> | OperationError<HttpError | 'UnknownError'>;
17
+ } | {
18
+ ok: true;
19
+ data?: never;
20
+ error?: never;
21
+ } : {
22
+ ok: false;
23
+ data?: never;
24
+ error: [Error] extends [never] ? OperationError<HttpError | 'UnknownError'> : OperationError<Error> | OperationError<HttpError | 'UnknownError'>;
25
+ } | {
26
+ ok: true;
27
+ data: Data;
28
+ error?: never;
29
+ };
30
+
31
+ type ModifiableKey = 'mode' | 'cache' | 'signal' | 'headers' | 'integrity' | 'keepalive' | 'credentials';
32
+ type Modifiable = {
33
+ [K in ModifiableKey]: Request[K];
34
+ };
35
+ interface ModifiedRequest extends Readonly<Omit<Request, ModifiableKey>>, Modifiable {
36
+ }
37
+ type GraphQLClientMiddleware = (request: ModifiedRequest) => ModifiedRequest | Promise<ModifiedRequest>;
38
+ interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {
39
+ }
40
+ interface GraphQLClientConfig {
41
+ fetch?: typeof globalThis.fetch | null;
42
+ fetchOptions?: GraphQLClientFetchOptions;
43
+ middlewares?: GraphQLClientMiddleware[];
44
+ }
45
+ type Getter<T> = () => T;
46
+ declare class GraphQLClient {
47
+ private url;
48
+ private config;
49
+ constructor(url: string, config?: Getter<GraphQLClientConfig> | GraphQLClientConfig);
50
+ request<Data, Variables extends GenericObject = GenericObject>(query: string, variables?: Variables, userOptions?: GraphQLClientFetchOptions): Promise<OperationResult<never, Data>>;
51
+ /** Single file upload */
52
+ upload<Data, Variables extends GenericObject = GenericObject>(query: string, variables: Variables, options?: GraphQLClientFetchOptions): Promise<OperationResult<never, Data>>;
53
+ private exec;
54
+ private runMiddlewares;
55
+ private createUploadBody;
56
+ }
57
+
58
+ export { type Assign as A, type GraphQLClientMiddleware as G, type HttpError as H, type ModifiedRequest as M, type OperationError as O, type OperationResult as a, GraphQLClient as b, type Alias as c, type GraphQLClientFetchOptions as d, type GraphQLClientConfig as e };
@@ -0,0 +1,58 @@
1
+ type GenericObject = Record<string, any>;
2
+ type Assign<Target, Source> = Omit<Target, keyof Source> & Source;
3
+ type Alias<T> = T & {
4
+ _?: never;
5
+ };
6
+ type HttpError = /* 400 */ 'HttpBadRequest' | /* 401 */ 'HttpUnauthorized' | /* 403 */ 'HttpForbidden' | /* 404 */ 'HttpNotFound' | /* 408 */ 'HttpRequestTimeout' | /* 429 */ 'HttpTooManyRequests' | /* 500 */ 'HttpInternalServerError';
7
+ type OperationError<T extends string = string> = {
8
+ name: T;
9
+ message: string;
10
+ };
11
+ type OperationResult<Error extends string = never, Data = never> = [
12
+ Data
13
+ ] extends [never] ? {
14
+ ok: false;
15
+ data?: never;
16
+ error: [Error] extends [never] ? OperationError<HttpError | 'UnknownError'> : OperationError<Error> | OperationError<HttpError | 'UnknownError'>;
17
+ } | {
18
+ ok: true;
19
+ data?: never;
20
+ error?: never;
21
+ } : {
22
+ ok: false;
23
+ data?: never;
24
+ error: [Error] extends [never] ? OperationError<HttpError | 'UnknownError'> : OperationError<Error> | OperationError<HttpError | 'UnknownError'>;
25
+ } | {
26
+ ok: true;
27
+ data: Data;
28
+ error?: never;
29
+ };
30
+
31
+ type ModifiableKey = 'mode' | 'cache' | 'signal' | 'headers' | 'integrity' | 'keepalive' | 'credentials';
32
+ type Modifiable = {
33
+ [K in ModifiableKey]: Request[K];
34
+ };
35
+ interface ModifiedRequest extends Readonly<Omit<Request, ModifiableKey>>, Modifiable {
36
+ }
37
+ type GraphQLClientMiddleware = (request: ModifiedRequest) => ModifiedRequest | Promise<ModifiedRequest>;
38
+ interface GraphQLClientFetchOptions extends Omit<RequestInit, 'body' | 'method'> {
39
+ }
40
+ interface GraphQLClientConfig {
41
+ fetch?: typeof globalThis.fetch | null;
42
+ fetchOptions?: GraphQLClientFetchOptions;
43
+ middlewares?: GraphQLClientMiddleware[];
44
+ }
45
+ type Getter<T> = () => T;
46
+ declare class GraphQLClient {
47
+ private url;
48
+ private config;
49
+ constructor(url: string, config?: Getter<GraphQLClientConfig> | GraphQLClientConfig);
50
+ request<Data, Variables extends GenericObject = GenericObject>(query: string, variables?: Variables, userOptions?: GraphQLClientFetchOptions): Promise<OperationResult<never, Data>>;
51
+ /** Single file upload */
52
+ upload<Data, Variables extends GenericObject = GenericObject>(query: string, variables: Variables, options?: GraphQLClientFetchOptions): Promise<OperationResult<never, Data>>;
53
+ private exec;
54
+ private runMiddlewares;
55
+ private createUploadBody;
56
+ }
57
+
58
+ export { type Assign as A, type GraphQLClientMiddleware as G, type HttpError as H, type ModifiedRequest as M, type OperationError as O, type OperationResult as a, GraphQLClient as b, type Alias as c, type GraphQLClientFetchOptions as d, type GraphQLClientConfig as e };
package/dist/index.cjs CHANGED
@@ -3276,6 +3276,34 @@ var WALLET_GAMES_QUERY = gql`
3276
3276
  }
3277
3277
  }
3278
3278
  `;
3279
+ var PLATFORM_GAMES_QUERY = gql`
3280
+ query PlatformGames($first: Int, $after: Cursor, $filter: _GameFilterInput) {
3281
+ _games(first: $first, after: $after, filter: $filter) {
3282
+ totalCount
3283
+ pageInfo {
3284
+ hasNextPage
3285
+ endCursor
3286
+ }
3287
+ edges {
3288
+ cursor
3289
+ node {
3290
+ ... on _Game {
3291
+ id
3292
+ reference
3293
+ name
3294
+ displayName
3295
+ type
3296
+ provider
3297
+ status
3298
+ hidden
3299
+ hasFreeBet
3300
+ hasJackpot
3301
+ }
3302
+ }
3303
+ }
3304
+ }
3305
+ }
3306
+ `;
3279
3307
  var GOOGLE_CLIEND_ID_QUERY = gql`
3280
3308
  query GoogleClientId {
3281
3309
  googleClientId
@@ -6203,6 +6231,23 @@ var WalletService = class {
6203
6231
  data: res.data.games
6204
6232
  };
6205
6233
  }
6234
+ async platformGames(variables) {
6235
+ const res = await this.client.request(PLATFORM_GAMES_QUERY, variables);
6236
+ if (!res.ok) return res;
6237
+ if (!res.data._games) {
6238
+ return {
6239
+ ok: false,
6240
+ error: {
6241
+ name: "UnknownError",
6242
+ message: "Something went wrong."
6243
+ }
6244
+ };
6245
+ }
6246
+ return {
6247
+ ok: true,
6248
+ data: res.data._games
6249
+ };
6250
+ }
6206
6251
  async cabinetWithdrawal(variables) {
6207
6252
  const res = await this.client.request(CABINET_WITHDRAWAL_QUERY, variables);
6208
6253
  return res.ok ? { ok: res.ok, data: res.data.node } : res;
@@ -11079,6 +11124,22 @@ var Sdk = class {
11079
11124
  }
11080
11125
  };
11081
11126
  }
11127
+ async platformGames(input) {
11128
+ const res = await this.walletService.platformGames(input);
11129
+ if (!res.ok) return res;
11130
+ return {
11131
+ ok: true,
11132
+ data: {
11133
+ platformGames: res.data.edges.map(({ cursor, node }) => ({
11134
+ ...node,
11135
+ cursor
11136
+ })),
11137
+ totalCount: res.data.totalCount,
11138
+ hasNextPage: res.data.pageInfo.hasNextPage,
11139
+ endCursor: res.data.pageInfo.endCursor ?? void 0
11140
+ }
11141
+ };
11142
+ }
11082
11143
  async games__next(input) {
11083
11144
  const res = await this.cmsPortalService.games__next(input);
11084
11145
  if (!res.ok) return res;