@pear-protocol/core-sdk 1.19.2 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.d.ts +2971 -896
- package/dist/core/index.js +39 -28
- package/dist/http.js +1 -1
- package/dist/index.js +21 -0
- package/package.json +3 -3
package/dist/core/index.js
CHANGED
|
@@ -105,6 +105,45 @@ class Core {
|
|
|
105
105
|
});
|
|
106
106
|
}, "revoke")
|
|
107
107
|
};
|
|
108
|
+
baskets = {
|
|
109
|
+
saved: {
|
|
110
|
+
list: /* @__PURE__ */ __name(async (headers) => {
|
|
111
|
+
return await this.client.fetch(`/baskets/saved`, {
|
|
112
|
+
method: "GET",
|
|
113
|
+
headers
|
|
114
|
+
});
|
|
115
|
+
}, "list"),
|
|
116
|
+
create: /* @__PURE__ */ __name(async (body, headers) => {
|
|
117
|
+
return await this.client.fetch(`/baskets/saved`, {
|
|
118
|
+
method: "POST",
|
|
119
|
+
headers,
|
|
120
|
+
body
|
|
121
|
+
});
|
|
122
|
+
}, "create"),
|
|
123
|
+
update: /* @__PURE__ */ __name(async (id, body, headers) => {
|
|
124
|
+
return await this.client.fetch(`/baskets/saved/${id}`, {
|
|
125
|
+
method: "PATCH",
|
|
126
|
+
headers,
|
|
127
|
+
body
|
|
128
|
+
});
|
|
129
|
+
}, "update"),
|
|
130
|
+
delete: /* @__PURE__ */ __name(async (id, headers) => {
|
|
131
|
+
return await this.client.fetch(`/baskets/saved/${id}`, {
|
|
132
|
+
method: "DELETE",
|
|
133
|
+
headers
|
|
134
|
+
});
|
|
135
|
+
}, "delete")
|
|
136
|
+
},
|
|
137
|
+
recommended: {
|
|
138
|
+
/** Publicly list every admin-curated recommended basket; no auth required. */
|
|
139
|
+
list: /* @__PURE__ */ __name(async (headers) => {
|
|
140
|
+
return await this.client.fetch(`/baskets/recommended`, {
|
|
141
|
+
method: "GET",
|
|
142
|
+
headers
|
|
143
|
+
});
|
|
144
|
+
}, "list")
|
|
145
|
+
}
|
|
146
|
+
};
|
|
108
147
|
executions = {
|
|
109
148
|
list: /* @__PURE__ */ __name(async (query, headers) => {
|
|
110
149
|
return await this.client.fetch(`/executions`, {
|
|
@@ -393,34 +432,6 @@ class Core {
|
|
|
393
432
|
});
|
|
394
433
|
}, "referees")
|
|
395
434
|
};
|
|
396
|
-
savedBaskets = {
|
|
397
|
-
list: /* @__PURE__ */ __name(async (headers) => {
|
|
398
|
-
return await this.client.fetch(`/saved-baskets`, {
|
|
399
|
-
method: "GET",
|
|
400
|
-
headers
|
|
401
|
-
});
|
|
402
|
-
}, "list"),
|
|
403
|
-
create: /* @__PURE__ */ __name(async (body, headers) => {
|
|
404
|
-
return await this.client.fetch(`/saved-baskets`, {
|
|
405
|
-
method: "POST",
|
|
406
|
-
headers,
|
|
407
|
-
body
|
|
408
|
-
});
|
|
409
|
-
}, "create"),
|
|
410
|
-
update: /* @__PURE__ */ __name(async (id, body, headers) => {
|
|
411
|
-
return await this.client.fetch(`/saved-baskets/${id}`, {
|
|
412
|
-
method: "PATCH",
|
|
413
|
-
headers,
|
|
414
|
-
body
|
|
415
|
-
});
|
|
416
|
-
}, "update"),
|
|
417
|
-
delete: /* @__PURE__ */ __name(async (id, headers) => {
|
|
418
|
-
return await this.client.fetch(`/saved-baskets/${id}`, {
|
|
419
|
-
method: "DELETE",
|
|
420
|
-
headers
|
|
421
|
-
});
|
|
422
|
-
}, "delete")
|
|
423
|
-
};
|
|
424
435
|
schedules = {
|
|
425
436
|
list: /* @__PURE__ */ __name(async (query, headers) => {
|
|
426
437
|
return await this.client.fetch(`/schedules`, {
|
package/dist/http.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -33,6 +33,7 @@ class PearSDK {
|
|
|
33
33
|
this.external = new External();
|
|
34
34
|
if (authMode === "session") {
|
|
35
35
|
let refreshInFlight = null;
|
|
36
|
+
const retried = /* @__PURE__ */ new WeakSet();
|
|
36
37
|
const refreshSession = /* @__PURE__ */ __name(async () => {
|
|
37
38
|
if (!refreshInFlight) {
|
|
38
39
|
logger.info("[session-refresh] Refreshing session...");
|
|
@@ -56,10 +57,20 @@ class PearSDK {
|
|
|
56
57
|
}, "refreshSession");
|
|
57
58
|
const sessionRefreshMiddleware = /* @__PURE__ */ __name(async (response, retry, request) => {
|
|
58
59
|
if (response.status !== 401) return response;
|
|
60
|
+
if (isSessionRefreshRequest(request.url)) {
|
|
61
|
+
logger.warn("[session-refresh] Refresh endpoint returned 401; session cannot be renewed");
|
|
62
|
+
return response;
|
|
63
|
+
}
|
|
59
64
|
logger.warn(`[session-refresh] 401 received for ${request.method} ${request.url}`);
|
|
65
|
+
if (retried.has(request)) {
|
|
66
|
+
logger.error("[session-refresh] Retry after refresh returned 401 again, giving up");
|
|
67
|
+
config.onSessionExpired?.();
|
|
68
|
+
return response;
|
|
69
|
+
}
|
|
60
70
|
try {
|
|
61
71
|
await refreshSession();
|
|
62
72
|
logger.info(`[session-refresh] Retrying ${request.method} ${request.url}`);
|
|
73
|
+
retried.add(request);
|
|
63
74
|
return retry();
|
|
64
75
|
} catch {
|
|
65
76
|
logger.error("[session-refresh] Session expired, cannot recover");
|
|
@@ -121,5 +132,15 @@ class PearSDK {
|
|
|
121
132
|
}
|
|
122
133
|
}
|
|
123
134
|
}
|
|
135
|
+
function isSessionRefreshRequest(url) {
|
|
136
|
+
let pathname;
|
|
137
|
+
try {
|
|
138
|
+
pathname = new URL(url).pathname;
|
|
139
|
+
} catch {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
return pathname.endsWith("/auth/session/refresh") || pathname.endsWith("/auth/session/refresh/token");
|
|
143
|
+
}
|
|
144
|
+
__name(isSessionRefreshRequest, "isSessionRefreshRequest");
|
|
124
145
|
|
|
125
146
|
export { PearSDK as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pear-protocol/core-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "Pear Protocol Core SDK",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"typecheck": "tsc --noEmit"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@pear-protocol/types": "^1.
|
|
30
|
-
"@pear-protocol/utils": "^0.
|
|
29
|
+
"@pear-protocol/types": "^1.32.0",
|
|
30
|
+
"@pear-protocol/utils": "^0.8.1",
|
|
31
31
|
"qs": "^6.14.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|