@stack-spot/portal-network 0.58.6 → 0.58.7
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.58.7](https://github.com/stack-spot/portal-commons/compare/portal-network@v0.58.6...portal-network@v0.58.7) (2024-12-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* session validation on request permission ([#562](https://github.com/stack-spot/portal-commons/issues/562)) ([03a814f](https://github.com/stack-spot/portal-commons/commit/03a814f3cc80c3af473801cf066e5ec5171a1f90))
|
|
9
|
+
|
|
3
10
|
## [0.58.6](https://github.com/stack-spot/portal-commons/compare/portal-network@v0.58.5...portal-network@v0.58.6) (2024-12-11)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3E;;;;;;;;;;;GAWG;AACH,8BAAsB,aAAa;IACjC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAgB;IAC9C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAK;IAExB;;OAEG;gBACS,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;IAIxC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;IAKrD,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IASjC;;;;;;OAMG;
|
|
1
|
+
{"version":3,"file":"NetworkClient.d.ts","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE3E;;;;;;;;;;;GAWG;AACH,8BAAsB,aAAa;IACjC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAgB;IAC9C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAK;IAExB;;OAEG;gBACS,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;IAIxC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;IAKrD,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;IASjC;;;;;;OAMG;cACa,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7G,OAAO,CAAC,iBAAiB;IAMzB;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgBrF;;;;;;;;;;;;;;OAcG;cACa,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYpG;;;OAGG;IACH,SAAS,CAAC,UAAU;CAIrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthenticationError } from '@stack-spot/auth';
|
|
1
|
+
import { AuthenticationError, SessionExpiredError } from '@stack-spot/auth';
|
|
2
2
|
import { requestPermission } from '@stack-spot/opa';
|
|
3
3
|
import { events } from 'fetch-event-stream';
|
|
4
4
|
import { StackspotAPIError } from '../error/StackspotAPIError.js';
|
|
@@ -60,8 +60,16 @@ export class NetworkClient {
|
|
|
60
60
|
* @param body the request's body.
|
|
61
61
|
* @returns a promise that resolves to true if it's allowed or false otherwise.
|
|
62
62
|
*/
|
|
63
|
-
requestPermission(method, path, body) {
|
|
64
|
-
|
|
63
|
+
async requestPermission(method, path, body) {
|
|
64
|
+
try {
|
|
65
|
+
return await requestPermission(method, this.resolveURL(path).toString(), body);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error instanceof AuthenticationError) {
|
|
69
|
+
this.getSessionManager().endSession();
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
65
73
|
}
|
|
66
74
|
getSessionManager() {
|
|
67
75
|
const sessionManager = NetworkClient.sessionManager;
|
|
@@ -92,7 +100,7 @@ export class NetworkClient {
|
|
|
92
100
|
return sessionManager.hasSession() ? sessionManager.getSession().fetch(inputWithBaseUrl, init) : fetch(inputWithBaseUrl, init);
|
|
93
101
|
}
|
|
94
102
|
catch (error) {
|
|
95
|
-
if (error instanceof AuthenticationError)
|
|
103
|
+
if (error instanceof AuthenticationError || error instanceof SessionExpiredError)
|
|
96
104
|
sessionManager.endSession();
|
|
97
105
|
throw error;
|
|
98
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkClient.js","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"NetworkClient.js","sourceRoot":"","sources":["../../src/network/NetworkClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/portal-network",
|
|
3
|
-
"version": "0.58.
|
|
3
|
+
"version": "0.58.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"@stack-spot/auth": "^5.2.0",
|
|
19
|
-
"@stack-spot/opa": "^2.6.
|
|
19
|
+
"@stack-spot/opa": "^2.6.1",
|
|
20
20
|
"@stack-spot/portal-translate": "^1.0.0",
|
|
21
21
|
"@tanstack/react-query": "^5.59.15",
|
|
22
22
|
"react": "^18.2.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthenticationError } from '@stack-spot/auth'
|
|
1
|
+
import { AuthenticationError, SessionExpiredError } from '@stack-spot/auth'
|
|
2
2
|
import { requestPermission } from '@stack-spot/opa'
|
|
3
3
|
import { events } from 'fetch-event-stream'
|
|
4
4
|
import { StackspotAPIError } from '../error/StackspotAPIError'
|
|
@@ -63,8 +63,15 @@ export abstract class NetworkClient {
|
|
|
63
63
|
* @param body the request's body.
|
|
64
64
|
* @returns a promise that resolves to true if it's allowed or false otherwise.
|
|
65
65
|
*/
|
|
66
|
-
protected requestPermission(method: HTTPMethod, path: string, body?: string | object): Promise<boolean> {
|
|
67
|
-
|
|
66
|
+
protected async requestPermission(method: HTTPMethod, path: string, body?: string | object): Promise<boolean> {
|
|
67
|
+
try {
|
|
68
|
+
return await requestPermission(method, this.resolveURL(path).toString(), body)
|
|
69
|
+
} catch (error) {
|
|
70
|
+
if (error instanceof AuthenticationError) {
|
|
71
|
+
this.getSessionManager().endSession()
|
|
72
|
+
}
|
|
73
|
+
return false
|
|
74
|
+
}
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
private getSessionManager() {
|
|
@@ -91,7 +98,7 @@ export abstract class NetworkClient {
|
|
|
91
98
|
try {
|
|
92
99
|
return sessionManager.hasSession() ? sessionManager.getSession().fetch(inputWithBaseUrl, init) : fetch(inputWithBaseUrl, init)
|
|
93
100
|
} catch (error) {
|
|
94
|
-
if (error instanceof AuthenticationError) sessionManager.endSession()
|
|
101
|
+
if (error instanceof AuthenticationError || error instanceof SessionExpiredError) sessionManager.endSession()
|
|
95
102
|
throw error
|
|
96
103
|
}
|
|
97
104
|
}
|