@ordersail/storefront-sdk 0.5.0 → 0.6.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/README.md +9 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -129,6 +129,15 @@ const storefront = new StorefrontClient(
|
|
|
129
129
|
await storefront.refreshAccessToken();
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
+
**Use one client per signed-in session.** A client restored from a refresh
|
|
133
|
+
token has no access token yet, so its first authenticated calls refresh
|
|
134
|
+
first. Calls on the _same_ client share that one refresh, so
|
|
135
|
+
`Promise.all([...])` is safe. Two _separate_ `StorefrontClient` instances
|
|
136
|
+
restored from the same stored token can't see each other's refresh, though:
|
|
137
|
+
each redeems the token, and the second redemption revokes the session. Create
|
|
138
|
+
one client for the session and share it (in the browser, a module-level
|
|
139
|
+
instance works) rather than one per component or request.
|
|
140
|
+
|
|
132
141
|
Neither token is persisted by the SDK itself: a storefront can be hosted on
|
|
133
142
|
any merchant-owned domain, and a cookie set by `storefront-api` never rides
|
|
134
143
|
along on a genuinely cross-site request, so there's no cookie to rely on —
|
package/dist/index.d.ts
CHANGED
|
@@ -41,6 +41,8 @@ export declare class StorefrontClient {
|
|
|
41
41
|
refreshToken: string | undefined;
|
|
42
42
|
client: Client<paths>;
|
|
43
43
|
private onTokensChanged?;
|
|
44
|
+
private refreshInFlight;
|
|
45
|
+
private sessionGeneration;
|
|
44
46
|
products: ReturnType<typeof createProductsResource>;
|
|
45
47
|
categories: ReturnType<typeof createCategoriesResource>;
|
|
46
48
|
brands: ReturnType<typeof createBrandsResource>;
|
|
@@ -52,7 +54,9 @@ export declare class StorefrontClient {
|
|
|
52
54
|
signUp(signup: CustomerSignUpDto): Promise<string>;
|
|
53
55
|
signIn(credentials: CustomerSignInDto): Promise<string>;
|
|
54
56
|
refreshAccessToken(): Promise<string | undefined>;
|
|
57
|
+
private redeemRefreshToken;
|
|
55
58
|
logout(): Promise<void>;
|
|
59
|
+
private supersedeSession;
|
|
56
60
|
private emitTokensChanged;
|
|
57
61
|
private do;
|
|
58
62
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAE,KAAK,MAAM,EAAmB,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC3E,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC;AACnE,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAC/E,MAAM,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,10 @@ export class StorefrontClient {
|
|
|
28
28
|
refreshToken;
|
|
29
29
|
client;
|
|
30
30
|
onTokensChanged;
|
|
31
|
+
refreshInFlight;
|
|
32
|
+
// bumped whenever the session is replaced (signUp/signIn/logout) — a
|
|
33
|
+
// refresh started under an older session discards its result on landing
|
|
34
|
+
sessionGeneration = 0;
|
|
31
35
|
products;
|
|
32
36
|
categories;
|
|
33
37
|
brands;
|
|
@@ -71,6 +75,7 @@ export class StorefrontClient {
|
|
|
71
75
|
async signUp(signup) {
|
|
72
76
|
const result = await this.client.POST("/auth/signup", { body: signup });
|
|
73
77
|
const tokens = unwrap(result);
|
|
78
|
+
this.supersedeSession();
|
|
74
79
|
this.accessToken = tokens.access_token;
|
|
75
80
|
this.refreshToken = tokens.refresh_token;
|
|
76
81
|
this.emitTokensChanged();
|
|
@@ -84,6 +89,7 @@ export class StorefrontClient {
|
|
|
84
89
|
headers: this.cartToken ? { "x-cart-token": this.cartToken } : {},
|
|
85
90
|
});
|
|
86
91
|
const tokens = unwrap(result);
|
|
92
|
+
this.supersedeSession();
|
|
87
93
|
this.accessToken = tokens.access_token;
|
|
88
94
|
this.refreshToken = tokens.refresh_token;
|
|
89
95
|
this.emitTokensChanged();
|
|
@@ -97,15 +103,38 @@ export class StorefrontClient {
|
|
|
97
103
|
// the response's refresh_token replaces this.refreshToken, and the old
|
|
98
104
|
// value must not be reused, so onTokensChanged is the only reliable way
|
|
99
105
|
// to keep a persisted copy in sync.
|
|
100
|
-
|
|
106
|
+
//
|
|
107
|
+
// Single-flight (OS-690): concurrent callers share the one in-flight
|
|
108
|
+
// refresh instead of each redeeming the same single-use token — the
|
|
109
|
+
// second redemption would look like reuse and revoke the whole session.
|
|
110
|
+
// Cleared once it settles either way, so a failed refresh isn't handed
|
|
111
|
+
// out again to the next caller.
|
|
112
|
+
refreshAccessToken() {
|
|
113
|
+
if (!this.refreshInFlight) {
|
|
114
|
+
const inFlight = this.redeemRefreshToken().finally(() => {
|
|
115
|
+
// a superseded refresh mustn't clear a newer session's one
|
|
116
|
+
if (this.refreshInFlight === inFlight)
|
|
117
|
+
this.refreshInFlight = undefined;
|
|
118
|
+
});
|
|
119
|
+
this.refreshInFlight = inFlight;
|
|
120
|
+
}
|
|
121
|
+
return this.refreshInFlight;
|
|
122
|
+
}
|
|
123
|
+
async redeemRefreshToken() {
|
|
101
124
|
if (!this.refreshToken) {
|
|
102
125
|
this.accessToken = undefined;
|
|
103
126
|
this.emitTokensChanged();
|
|
104
127
|
return undefined;
|
|
105
128
|
}
|
|
129
|
+
const generation = this.sessionGeneration;
|
|
106
130
|
const result = await this.client.POST("/auth/token/refresh", {
|
|
107
131
|
body: { refresh_token: this.refreshToken },
|
|
108
132
|
});
|
|
133
|
+
// logged out or signed in as someone else while this was in flight —
|
|
134
|
+
// applying it would resurrect (or overwrite) the session. Hand callers
|
|
135
|
+
// whatever the current session holds instead.
|
|
136
|
+
if (generation !== this.sessionGeneration)
|
|
137
|
+
return this.accessToken;
|
|
109
138
|
const tokens = unwrapOrUndefinedOn(result, 401);
|
|
110
139
|
this.accessToken = tokens?.access_token;
|
|
111
140
|
this.refreshToken = tokens?.refresh_token;
|
|
@@ -121,6 +150,7 @@ export class StorefrontClient {
|
|
|
121
150
|
// state, since the local tokens are dropped either way.
|
|
122
151
|
async logout() {
|
|
123
152
|
const refreshToken = this.refreshToken;
|
|
153
|
+
this.supersedeSession();
|
|
124
154
|
this.accessToken = undefined;
|
|
125
155
|
this.refreshToken = undefined;
|
|
126
156
|
this.emitTokensChanged();
|
|
@@ -135,6 +165,13 @@ export class StorefrontClient {
|
|
|
135
165
|
}
|
|
136
166
|
}
|
|
137
167
|
}
|
|
168
|
+
// a new session (or none) replaces the current one — any refresh still in
|
|
169
|
+
// flight belongs to the old session, so later callers start fresh rather
|
|
170
|
+
// than joining it
|
|
171
|
+
supersedeSession() {
|
|
172
|
+
this.sessionGeneration++;
|
|
173
|
+
this.refreshInFlight = undefined;
|
|
174
|
+
}
|
|
138
175
|
emitTokensChanged() {
|
|
139
176
|
this.onTokensChanged?.({
|
|
140
177
|
accessToken: this.accessToken,
|
|
@@ -143,9 +180,14 @@ export class StorefrontClient {
|
|
|
143
180
|
}
|
|
144
181
|
// request is a thunk so the retry rebuilds headers off the refreshed accessToken, not a stale one
|
|
145
182
|
async do(request) {
|
|
183
|
+
const accessTokenSent = this.accessToken;
|
|
146
184
|
const result = await request();
|
|
147
185
|
if (result.response.status === 401) {
|
|
148
|
-
|
|
186
|
+
// if another call already refreshed while this one was in flight, its
|
|
187
|
+
// 401 is stale — retry with the new token rather than rotating again
|
|
188
|
+
if (this.accessToken === accessTokenSent) {
|
|
189
|
+
await this.refreshAccessToken();
|
|
190
|
+
}
|
|
149
191
|
return await request();
|
|
150
192
|
}
|
|
151
193
|
return result;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAgC,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAa,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@ordersail/storefront-sdk",
|
|
3
3
|
"description": "Typed client for OrderSail's storefront-api — build and host your own storefront against the same API that powers OrderSail's reference storefront.",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.6.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|