@shopify/shopify-api 4.1.0 → 4.2.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/CHANGELOG.md +11 -1
- package/dist/auth/session/session_storage.d.ts +12 -0
- package/dist/auth/session/session_storage.d.ts.map +1 -1
- package/dist/auth/session/storage/__tests__/battery-of-tests.d.ts.map +1 -1
- package/dist/auth/session/storage/__tests__/battery-of-tests.js +124 -0
- package/dist/auth/session/storage/__tests__/session-test-utils.d.ts +3 -0
- package/dist/auth/session/storage/__tests__/session-test-utils.d.ts.map +1 -0
- package/dist/auth/session/storage/__tests__/session-test-utils.js +46 -0
- package/dist/auth/session/storage/custom.d.ts +5 -1
- package/dist/auth/session/storage/custom.d.ts.map +1 -1
- package/dist/auth/session/storage/custom.js +56 -1
- package/dist/auth/session/storage/memory.d.ts +2 -0
- package/dist/auth/session/storage/memory.d.ts.map +1 -1
- package/dist/auth/session/storage/memory.js +18 -0
- package/dist/auth/session/storage/mongodb.d.ts +2 -0
- package/dist/auth/session/storage/mongodb.d.ts.map +1 -1
- package/dist/auth/session/storage/mongodb.js +39 -6
- package/dist/auth/session/storage/mysql.d.ts +2 -0
- package/dist/auth/session/storage/mysql.d.ts.map +1 -1
- package/dist/auth/session/storage/mysql.js +39 -0
- package/dist/auth/session/storage/postgresql.d.ts +2 -0
- package/dist/auth/session/storage/postgresql.d.ts.map +1 -1
- package/dist/auth/session/storage/postgresql.js +39 -0
- package/dist/auth/session/storage/redis.d.ts +2 -0
- package/dist/auth/session/storage/redis.d.ts.map +1 -1
- package/dist/auth/session/storage/redis.js +65 -0
- package/dist/auth/session/storage/sqlite.d.ts +2 -0
- package/dist/auth/session/storage/sqlite.d.ts.map +1 -1
- package/dist/auth/session/storage/sqlite.js +39 -0
- package/dist/clients/http_client/http_client.d.ts.map +1 -1
- package/dist/clients/http_client/http_client.js +4 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/registry.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## [4.2.0] - 2022-07-20
|
|
11
|
+
|
|
12
|
+
- Return a 401 instead of 403 when webhooks fail validation [#425](https://github.com/Shopify/shopify-api-node/pull/425)
|
|
13
|
+
- Add optional new methods `deleteSession` and `findSessionsByShop` to `SessionStorage`, with the corresponding implementations for the various session storage adapters [#418](https://github.com/Shopify/shopify-api-node/pull/418)
|
|
14
|
+
- Include subset of query body in API deprecation logs [#426](https://github.com/Shopify/shopify-api-node/pull/426)
|
|
15
|
+
|
|
10
16
|
## [4.1.0] - 2022-07-14
|
|
11
17
|
|
|
12
18
|
- Add new method to construct the host app URL [#419](https://github.com/Shopify/shopify-api-node/pull/419)
|
|
@@ -23,25 +29,29 @@ and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
|
23
29
|
## [3.1.3] - 2022-06-08
|
|
24
30
|
|
|
25
31
|
### Fixes
|
|
32
|
+
|
|
26
33
|
- Return instances of `Session` from session storages, not POJOs.
|
|
27
34
|
|
|
28
35
|
## [3.1.2] - 2022-06-07
|
|
29
36
|
|
|
30
37
|
### Added
|
|
38
|
+
|
|
31
39
|
- Store user id and expiration date of online tokens
|
|
32
40
|
|
|
33
41
|
### Fixes
|
|
42
|
+
|
|
34
43
|
- Properly parse a non-json HTTP response [#257](https://github.com/Shopify/shopify-api-node/issues/257)
|
|
35
44
|
- Don’t create a SQLite DB file if the SQLite storage is not used.
|
|
36
45
|
|
|
37
|
-
|
|
38
46
|
## [3.1.0] - 2022-05-16
|
|
39
47
|
|
|
40
48
|
### Added
|
|
49
|
+
|
|
41
50
|
- Support for specifying the URI scheme of the host [#385](https://github.com/Shopify/shopify-api-node/pull/385)
|
|
42
51
|
- Add optional `saving` parameter to `serialize` of `Base` class - default is `false` and will include read-only attributes in returned object; `true` used for `save` when committing via API to Shopify.
|
|
43
52
|
|
|
44
53
|
### Fixed
|
|
54
|
+
|
|
45
55
|
- Fixes [#363](https://github.com/Shopify/shopify-api-node/issues/363)
|
|
46
56
|
- Webhooks `register` now checks for any attempt to register a GDPR topic (not done via API but by Partner Dashboard), provides an error message in response
|
|
47
57
|
- For topics that don't exist, `register` checks the response from the initial API call for an `errors` field and returns accordingly
|
|
@@ -21,6 +21,18 @@ interface SessionStorage {
|
|
|
21
21
|
* @param id Id of the session to delete
|
|
22
22
|
*/
|
|
23
23
|
deleteSession(id: string): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Deletes an array of sessions from storage.
|
|
26
|
+
*
|
|
27
|
+
* @param ids Array of session id's to delete
|
|
28
|
+
*/
|
|
29
|
+
deleteSessions?(ids: string[]): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Return an array of sessions for a given shop (or [] if none found).
|
|
32
|
+
*
|
|
33
|
+
* @param shop shop of the session(s) to return
|
|
34
|
+
*/
|
|
35
|
+
findSessionsByShop?(shop: string): Promise<SessionInterface[]>;
|
|
24
36
|
}
|
|
25
37
|
export { SessionStorage };
|
|
26
38
|
//# sourceMappingURL=session_storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_storage.d.ts","sourceRoot":"","sources":["../../../src/auth/session/session_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAEzC;;GAEG;AACH,UAAU,cAAc;IACtB;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAE/D;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session_storage.d.ts","sourceRoot":"","sources":["../../../src/auth/session/session_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAEzC;;GAEG;AACH,UAAU,cAAc;IACtB;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAE/D;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C;;;;OAIG;IACH,cAAc,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CAChE;AAED,OAAO,EAAC,cAAc,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"battery-of-tests.d.ts","sourceRoot":"","sources":["../../../../../src/auth/session/storage/__tests__/battery-of-tests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"battery-of-tests.d.ts","sourceRoot":"","sources":["../../../../../src/auth/session/storage/__tests__/battery-of-tests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAKrD,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,QA6J3E"}
|
|
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var context_1 = require("../../../../context");
|
|
6
6
|
var session_1 = require("../../session");
|
|
7
7
|
var session_utils_1 = require("../../session-utils");
|
|
8
|
+
var session_test_utils_1 = require("./session-test-utils");
|
|
8
9
|
function batteryOfTests(storageFactory) {
|
|
9
10
|
var _this = this;
|
|
10
11
|
it('can store and delete all kinds of sessions', function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
@@ -187,5 +188,128 @@ function batteryOfTests(storageFactory) {
|
|
|
187
188
|
}
|
|
188
189
|
});
|
|
189
190
|
}); });
|
|
191
|
+
it('can find all the sessions for a given shop', function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
192
|
+
var storage, prefix, sessions, sessions_1, sessions_1_1, session, e_2_1, shop1Sessions;
|
|
193
|
+
var e_2, _a;
|
|
194
|
+
return tslib_1.__generator(this, function (_b) {
|
|
195
|
+
switch (_b.label) {
|
|
196
|
+
case 0: return [4 /*yield*/, storageFactory()];
|
|
197
|
+
case 1:
|
|
198
|
+
storage = _b.sent();
|
|
199
|
+
prefix = 'find_sessions';
|
|
200
|
+
sessions = [
|
|
201
|
+
new session_1.Session("".concat(prefix, "_1"), 'find-shop1-sessions', 'state', true),
|
|
202
|
+
new session_1.Session("".concat(prefix, "_2"), 'do-not-find-shop2-sessions', 'state', true),
|
|
203
|
+
new session_1.Session("".concat(prefix, "_3"), 'find-shop1-sessions', 'state', true),
|
|
204
|
+
new session_1.Session("".concat(prefix, "_4"), 'do-not-find-shop3-sessions', 'state', true),
|
|
205
|
+
];
|
|
206
|
+
_b.label = 2;
|
|
207
|
+
case 2:
|
|
208
|
+
_b.trys.push([2, 7, 8, 9]);
|
|
209
|
+
sessions_1 = tslib_1.__values(sessions), sessions_1_1 = sessions_1.next();
|
|
210
|
+
_b.label = 3;
|
|
211
|
+
case 3:
|
|
212
|
+
if (!!sessions_1_1.done) return [3 /*break*/, 6];
|
|
213
|
+
session = sessions_1_1.value;
|
|
214
|
+
return [4 /*yield*/, expect(storage.storeSession(session)).resolves.toBe(true)];
|
|
215
|
+
case 4:
|
|
216
|
+
_b.sent();
|
|
217
|
+
_b.label = 5;
|
|
218
|
+
case 5:
|
|
219
|
+
sessions_1_1 = sessions_1.next();
|
|
220
|
+
return [3 /*break*/, 3];
|
|
221
|
+
case 6: return [3 /*break*/, 9];
|
|
222
|
+
case 7:
|
|
223
|
+
e_2_1 = _b.sent();
|
|
224
|
+
e_2 = { error: e_2_1 };
|
|
225
|
+
return [3 /*break*/, 9];
|
|
226
|
+
case 8:
|
|
227
|
+
try {
|
|
228
|
+
if (sessions_1_1 && !sessions_1_1.done && (_a = sessions_1.return)) _a.call(sessions_1);
|
|
229
|
+
}
|
|
230
|
+
finally { if (e_2) throw e_2.error; }
|
|
231
|
+
return [7 /*endfinally*/];
|
|
232
|
+
case 9:
|
|
233
|
+
expect(storage.findSessionsByShop).toBeDefined();
|
|
234
|
+
if (!storage.findSessionsByShop) return [3 /*break*/, 11];
|
|
235
|
+
return [4 /*yield*/, storage.findSessionsByShop('find-shop1-sessions')];
|
|
236
|
+
case 10:
|
|
237
|
+
shop1Sessions = _b.sent();
|
|
238
|
+
expect(shop1Sessions).toBeDefined();
|
|
239
|
+
if (shop1Sessions) {
|
|
240
|
+
expect(shop1Sessions.length).toBe(2);
|
|
241
|
+
expect((0, session_test_utils_1.sessionArraysEqual)(shop1Sessions, [
|
|
242
|
+
sessions[0],
|
|
243
|
+
sessions[2],
|
|
244
|
+
])).toBe(true);
|
|
245
|
+
}
|
|
246
|
+
_b.label = 11;
|
|
247
|
+
case 11: return [2 /*return*/];
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}); });
|
|
251
|
+
it('can delete the sessions for a given array of ids', function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
252
|
+
var storage, prefix, sessions, sessions_2, sessions_2_1, session, e_3_1, shop1Sessions, idsToDelete;
|
|
253
|
+
var e_3, _a;
|
|
254
|
+
return tslib_1.__generator(this, function (_b) {
|
|
255
|
+
switch (_b.label) {
|
|
256
|
+
case 0: return [4 /*yield*/, storageFactory()];
|
|
257
|
+
case 1:
|
|
258
|
+
storage = _b.sent();
|
|
259
|
+
prefix = 'delete_sessions';
|
|
260
|
+
sessions = [
|
|
261
|
+
new session_1.Session("".concat(prefix, "_1"), 'delete-shop1-sessions', 'state', true),
|
|
262
|
+
new session_1.Session("".concat(prefix, "_2"), 'do-not-delete-shop2-sessions', 'state', true),
|
|
263
|
+
new session_1.Session("".concat(prefix, "_3"), 'delete-shop1-sessions', 'state', true),
|
|
264
|
+
new session_1.Session("".concat(prefix, "_4"), 'do-not-delete-shop3-sessions', 'state', true),
|
|
265
|
+
];
|
|
266
|
+
_b.label = 2;
|
|
267
|
+
case 2:
|
|
268
|
+
_b.trys.push([2, 7, 8, 9]);
|
|
269
|
+
sessions_2 = tslib_1.__values(sessions), sessions_2_1 = sessions_2.next();
|
|
270
|
+
_b.label = 3;
|
|
271
|
+
case 3:
|
|
272
|
+
if (!!sessions_2_1.done) return [3 /*break*/, 6];
|
|
273
|
+
session = sessions_2_1.value;
|
|
274
|
+
return [4 /*yield*/, expect(storage.storeSession(session)).resolves.toBe(true)];
|
|
275
|
+
case 4:
|
|
276
|
+
_b.sent();
|
|
277
|
+
_b.label = 5;
|
|
278
|
+
case 5:
|
|
279
|
+
sessions_2_1 = sessions_2.next();
|
|
280
|
+
return [3 /*break*/, 3];
|
|
281
|
+
case 6: return [3 /*break*/, 9];
|
|
282
|
+
case 7:
|
|
283
|
+
e_3_1 = _b.sent();
|
|
284
|
+
e_3 = { error: e_3_1 };
|
|
285
|
+
return [3 /*break*/, 9];
|
|
286
|
+
case 8:
|
|
287
|
+
try {
|
|
288
|
+
if (sessions_2_1 && !sessions_2_1.done && (_a = sessions_2.return)) _a.call(sessions_2);
|
|
289
|
+
}
|
|
290
|
+
finally { if (e_3) throw e_3.error; }
|
|
291
|
+
return [7 /*endfinally*/];
|
|
292
|
+
case 9:
|
|
293
|
+
expect(storage.deleteSessions).toBeDefined();
|
|
294
|
+
if (!(storage.deleteSessions && storage.findSessionsByShop)) return [3 /*break*/, 13];
|
|
295
|
+
return [4 /*yield*/, storage.findSessionsByShop('delete-shop1-sessions')];
|
|
296
|
+
case 10:
|
|
297
|
+
shop1Sessions = _b.sent();
|
|
298
|
+
expect(shop1Sessions).toBeDefined();
|
|
299
|
+
if (!shop1Sessions) return [3 /*break*/, 13];
|
|
300
|
+
expect(shop1Sessions.length).toBe(2);
|
|
301
|
+
idsToDelete = shop1Sessions.map(function (session) { return session.id; });
|
|
302
|
+
return [4 /*yield*/, expect(storage.deleteSessions(idsToDelete)).resolves.toBe(true)];
|
|
303
|
+
case 11:
|
|
304
|
+
_b.sent();
|
|
305
|
+
return [4 /*yield*/, storage.findSessionsByShop('delete-shop1-sessions')];
|
|
306
|
+
case 12:
|
|
307
|
+
shop1Sessions = _b.sent();
|
|
308
|
+
expect(shop1Sessions).toEqual([]);
|
|
309
|
+
_b.label = 13;
|
|
310
|
+
case 13: return [2 /*return*/];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}); });
|
|
190
314
|
}
|
|
191
315
|
exports.batteryOfTests = batteryOfTests;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-test-utils.d.ts","sourceRoot":"","sources":["../../../../../src/auth/session/storage/__tests__/session-test-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAI7C,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,gBAAgB,EAAE,EACjC,aAAa,EAAE,gBAAgB,EAAE,GAChC,OAAO,CAgBT"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sessionArraysEqual = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var session_utils_1 = require("../../session-utils");
|
|
6
|
+
// compare two arrays of sessions that should contain
|
|
7
|
+
// the same sessions but may be in a different order
|
|
8
|
+
function sessionArraysEqual(sessionArray1, sessionArray2) {
|
|
9
|
+
var e_1, _a, e_2, _b;
|
|
10
|
+
if (sessionArray1.length !== sessionArray2.length) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
for (var sessionArray1_1 = tslib_1.__values(sessionArray1), sessionArray1_1_1 = sessionArray1_1.next(); !sessionArray1_1_1.done; sessionArray1_1_1 = sessionArray1_1.next()) {
|
|
15
|
+
var session1 = sessionArray1_1_1.value;
|
|
16
|
+
var found = false;
|
|
17
|
+
try {
|
|
18
|
+
for (var sessionArray2_1 = (e_2 = void 0, tslib_1.__values(sessionArray2)), sessionArray2_1_1 = sessionArray2_1.next(); !sessionArray2_1_1.done; sessionArray2_1_1 = sessionArray2_1.next()) {
|
|
19
|
+
var session2 = sessionArray2_1_1.value;
|
|
20
|
+
if ((0, session_utils_1.sessionEqual)(session1, session2)) {
|
|
21
|
+
found = true;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
27
|
+
finally {
|
|
28
|
+
try {
|
|
29
|
+
if (sessionArray2_1_1 && !sessionArray2_1_1.done && (_b = sessionArray2_1.return)) _b.call(sessionArray2_1);
|
|
30
|
+
}
|
|
31
|
+
finally { if (e_2) throw e_2.error; }
|
|
32
|
+
}
|
|
33
|
+
if (!found)
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
38
|
+
finally {
|
|
39
|
+
try {
|
|
40
|
+
if (sessionArray1_1_1 && !sessionArray1_1_1.done && (_a = sessionArray1_1.return)) _a.call(sessionArray1_1);
|
|
41
|
+
}
|
|
42
|
+
finally { if (e_1) throw e_1.error; }
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
exports.sessionArraysEqual = sessionArraysEqual;
|
|
@@ -6,11 +6,15 @@ export declare class CustomSessionStorage implements SessionStorage {
|
|
|
6
6
|
[key: string]: unknown;
|
|
7
7
|
} | undefined>;
|
|
8
8
|
readonly deleteCallback: (id: string) => Promise<boolean>;
|
|
9
|
+
readonly deleteSessionsCallback?: ((ids: string[]) => Promise<boolean>) | undefined;
|
|
10
|
+
readonly findSessionsByShopCallback?: ((shop: string) => Promise<SessionInterface[]>) | undefined;
|
|
9
11
|
constructor(storeCallback: (session: SessionInterface) => Promise<boolean>, loadCallback: (id: string) => Promise<SessionInterface | {
|
|
10
12
|
[key: string]: unknown;
|
|
11
|
-
} | undefined>, deleteCallback: (id: string) => Promise<boolean>);
|
|
13
|
+
} | undefined>, deleteCallback: (id: string) => Promise<boolean>, deleteSessionsCallback?: ((ids: string[]) => Promise<boolean>) | undefined, findSessionsByShopCallback?: ((shop: string) => Promise<SessionInterface[]>) | undefined);
|
|
12
14
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
13
15
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
14
16
|
deleteSession(id: string): Promise<boolean>;
|
|
17
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
18
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
15
19
|
}
|
|
16
20
|
//# sourceMappingURL=custom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/custom.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,qBAAa,oBAAqB,YAAW,cAAc;IAEvD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC;IACvE,QAAQ,CAAC,YAAY,EAAE,CACrB,EAAE,EAAE,MAAM,KACP,OAAO,CAAC,gBAAgB,GAAG;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/custom.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,qBAAa,oBAAqB,YAAW,cAAc;IAEvD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC;IACvE,QAAQ,CAAC,YAAY,EAAE,CACrB,EAAE,EAAE,MAAM,KACP,OAAO,CAAC,gBAAgB,GAAG;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;IACzD,QAAQ,CAAC,sBAAsB,CAAC,SAAQ,MAAM,EAAE,KAAK,QAAQ,OAAO,CAAC;IACrE,QAAQ,CAAC,0BAA0B,CAAC,UAC5B,MAAM,KACT,QAAQ,gBAAgB,EAAE,CAAC;gBARvB,aAAa,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,EAC9D,YAAY,EAAE,CACrB,EAAE,EAAE,MAAM,KACP,OAAO,CAAC,gBAAgB,GAAG;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,GAAG,SAAS,CAAC,EAC5D,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAChD,sBAAsB,CAAC,SAAQ,MAAM,EAAE,KAAK,QAAQ,OAAO,CAAC,aAAA,EAC5D,0BAA0B,CAAC,UAC5B,MAAM,KACT,QAAQ,gBAAgB,EAAE,CAAC,aAAA;IASrB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA0C9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAkB3E"}
|
|
@@ -5,13 +5,17 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var session_1 = require("../session");
|
|
6
6
|
var ShopifyErrors = tslib_1.__importStar(require("../../../error"));
|
|
7
7
|
var CustomSessionStorage = /** @class */ (function () {
|
|
8
|
-
function CustomSessionStorage(storeCallback, loadCallback, deleteCallback) {
|
|
8
|
+
function CustomSessionStorage(storeCallback, loadCallback, deleteCallback, deleteSessionsCallback, findSessionsByShopCallback) {
|
|
9
9
|
this.storeCallback = storeCallback;
|
|
10
10
|
this.loadCallback = loadCallback;
|
|
11
11
|
this.deleteCallback = deleteCallback;
|
|
12
|
+
this.deleteSessionsCallback = deleteSessionsCallback;
|
|
13
|
+
this.findSessionsByShopCallback = findSessionsByShopCallback;
|
|
12
14
|
this.storeCallback = storeCallback;
|
|
13
15
|
this.loadCallback = loadCallback;
|
|
14
16
|
this.deleteCallback = deleteCallback;
|
|
17
|
+
this.deleteSessionsCallback = deleteSessionsCallback;
|
|
18
|
+
this.findSessionsByShopCallback = findSessionsByShopCallback;
|
|
15
19
|
}
|
|
16
20
|
CustomSessionStorage.prototype.storeSession = function (session) {
|
|
17
21
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
@@ -89,6 +93,57 @@ var CustomSessionStorage = /** @class */ (function () {
|
|
|
89
93
|
});
|
|
90
94
|
});
|
|
91
95
|
};
|
|
96
|
+
CustomSessionStorage.prototype.deleteSessions = function (ids) {
|
|
97
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
98
|
+
var error_4;
|
|
99
|
+
return tslib_1.__generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
if (!this.deleteSessionsCallback) return [3 /*break*/, 5];
|
|
103
|
+
_a.label = 1;
|
|
104
|
+
case 1:
|
|
105
|
+
_a.trys.push([1, 3, , 4]);
|
|
106
|
+
return [4 /*yield*/, this.deleteSessionsCallback(ids)];
|
|
107
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
108
|
+
case 3:
|
|
109
|
+
error_4 = _a.sent();
|
|
110
|
+
throw new ShopifyErrors.SessionStorageError("CustomSessionStorage failed to delete array of sessions. Error Details: ".concat(error_4));
|
|
111
|
+
case 4: return [3 /*break*/, 6];
|
|
112
|
+
case 5:
|
|
113
|
+
console.warn("CustomSessionStorage failed to delete array of sessions. Error Details: deleteSessionsCallback not defined.");
|
|
114
|
+
_a.label = 6;
|
|
115
|
+
case 6: return [2 /*return*/, false];
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
CustomSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
121
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
122
|
+
var sessions, error_5;
|
|
123
|
+
return tslib_1.__generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
sessions = [];
|
|
127
|
+
if (!this.findSessionsByShopCallback) return [3 /*break*/, 5];
|
|
128
|
+
_a.label = 1;
|
|
129
|
+
case 1:
|
|
130
|
+
_a.trys.push([1, 3, , 4]);
|
|
131
|
+
return [4 /*yield*/, this.findSessionsByShopCallback(shop)];
|
|
132
|
+
case 2:
|
|
133
|
+
sessions = _a.sent();
|
|
134
|
+
return [3 /*break*/, 4];
|
|
135
|
+
case 3:
|
|
136
|
+
error_5 = _a.sent();
|
|
137
|
+
throw new ShopifyErrors.SessionStorageError("CustomSessionStorage failed to find sessions by shop. Error Details: ".concat(error_5));
|
|
138
|
+
case 4: return [3 /*break*/, 6];
|
|
139
|
+
case 5:
|
|
140
|
+
console.warn("CustomSessionStorage failed to find sessions by shop. Error Details: findSessionsByShopCallback not defined.");
|
|
141
|
+
_a.label = 6;
|
|
142
|
+
case 6: return [2 /*return*/, sessions];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
};
|
|
92
147
|
return CustomSessionStorage;
|
|
93
148
|
}());
|
|
94
149
|
exports.CustomSessionStorage = CustomSessionStorage;
|
|
@@ -5,5 +5,7 @@ export declare class MemorySessionStorage implements SessionStorage {
|
|
|
5
5
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
6
6
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
7
7
|
deleteSession(id: string): Promise<boolean>;
|
|
8
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
9
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAElD,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAwC;IAE3C,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAI9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAElD,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAwC;IAE3C,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAI9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAM3E"}
|
|
@@ -31,6 +31,24 @@ var MemorySessionStorage = /** @class */ (function () {
|
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
+
MemorySessionStorage.prototype.deleteSessions = function (ids) {
|
|
35
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
36
|
+
var _this = this;
|
|
37
|
+
return tslib_1.__generator(this, function (_a) {
|
|
38
|
+
ids.forEach(function (id) { return delete _this.sessions[id]; });
|
|
39
|
+
return [2 /*return*/, true];
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
MemorySessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
44
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
45
|
+
var results;
|
|
46
|
+
return tslib_1.__generator(this, function (_a) {
|
|
47
|
+
results = Object.values(this.sessions).filter(function (session) { return session.shop === shop; });
|
|
48
|
+
return [2 /*return*/, results];
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
};
|
|
34
52
|
return MemorySessionStorage;
|
|
35
53
|
}());
|
|
36
54
|
exports.MemorySessionStorage = MemorySessionStorage;
|
|
@@ -14,6 +14,8 @@ export declare class MongoDBSessionStorage implements SessionStorage {
|
|
|
14
14
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
15
15
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
16
16
|
deleteSession(id: string): Promise<boolean>;
|
|
17
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
18
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
17
19
|
disconnect(): Promise<void>;
|
|
18
20
|
private get collection();
|
|
19
21
|
private init;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/mongodb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAKD,qBAAa,qBAAsB,YAAW,cAAc;IAyBxD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IAzBhB,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,4BAA4B,CAAC;IAa7C,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,MAAM,CAAM;gBAGV,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,MAAM,EACtB,IAAI,GAAE,OAAO,CAAC,4BAA4B,CAAM;IASrC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAazD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/mongodb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAKD,qBAAa,qBAAsB,YAAW,cAAc;IAyBxD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IAzBhB,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,4BAA4B,CAAC;IAa7C,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,MAAM,CAAM;gBAGV,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,MAAM,EACtB,IAAI,GAAE,OAAO,CAAC,4BAA4B,CAAM;IASrC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAazD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAQ9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAM/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,KAAK,UAAU,GAIrB;YAEa,IAAI;YAOJ,oBAAoB;YAOpB,gBAAgB;CAM/B"}
|
|
@@ -28,7 +28,7 @@ var MongoDBSessionStorage = /** @class */ (function () {
|
|
|
28
28
|
case 0: return [4 /*yield*/, this.ready];
|
|
29
29
|
case 1:
|
|
30
30
|
_a.sent();
|
|
31
|
-
return [4 /*yield*/, this.collection.findOneAndReplace({ id: session.id },
|
|
31
|
+
return [4 /*yield*/, this.collection.findOneAndReplace({ id: session.id }, Object.fromEntries((0, session_utils_1.sessionEntries)(session)), {
|
|
32
32
|
upsert: true,
|
|
33
33
|
})];
|
|
34
34
|
case 2:
|
|
@@ -40,7 +40,7 @@ var MongoDBSessionStorage = /** @class */ (function () {
|
|
|
40
40
|
};
|
|
41
41
|
MongoDBSessionStorage.prototype.loadSession = function (id) {
|
|
42
42
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
43
|
-
var
|
|
43
|
+
var result;
|
|
44
44
|
return tslib_1.__generator(this, function (_a) {
|
|
45
45
|
switch (_a.label) {
|
|
46
46
|
case 0: return [4 /*yield*/, this.ready];
|
|
@@ -48,10 +48,8 @@ var MongoDBSessionStorage = /** @class */ (function () {
|
|
|
48
48
|
_a.sent();
|
|
49
49
|
return [4 /*yield*/, this.collection.findOne({ id: id })];
|
|
50
50
|
case 2:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return [2 /*return*/, undefined];
|
|
54
|
-
return [2 /*return*/, (0, session_utils_1.sessionFromEntries)(rawResult.entries)];
|
|
51
|
+
result = _a.sent();
|
|
52
|
+
return [2 /*return*/, result ? (0, session_utils_1.sessionFromEntries)(Object.entries(result)) : undefined];
|
|
55
53
|
}
|
|
56
54
|
});
|
|
57
55
|
});
|
|
@@ -71,6 +69,41 @@ var MongoDBSessionStorage = /** @class */ (function () {
|
|
|
71
69
|
});
|
|
72
70
|
});
|
|
73
71
|
};
|
|
72
|
+
MongoDBSessionStorage.prototype.deleteSessions = function (ids) {
|
|
73
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
74
|
+
return tslib_1.__generator(this, function (_a) {
|
|
75
|
+
switch (_a.label) {
|
|
76
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
77
|
+
case 1:
|
|
78
|
+
_a.sent();
|
|
79
|
+
return [4 /*yield*/, this.collection.deleteMany({ id: { $in: ids } })];
|
|
80
|
+
case 2:
|
|
81
|
+
_a.sent();
|
|
82
|
+
return [2 /*return*/, true];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
MongoDBSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
88
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
89
|
+
var rawResults;
|
|
90
|
+
return tslib_1.__generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
93
|
+
case 1:
|
|
94
|
+
_a.sent();
|
|
95
|
+
return [4 /*yield*/, this.collection.find({ shop: shop }).toArray()];
|
|
96
|
+
case 2:
|
|
97
|
+
rawResults = _a.sent();
|
|
98
|
+
if (!rawResults || (rawResults === null || rawResults === void 0 ? void 0 : rawResults.length) === 0)
|
|
99
|
+
return [2 /*return*/, []];
|
|
100
|
+
return [2 /*return*/, rawResults.map(function (rawResult) {
|
|
101
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(rawResult));
|
|
102
|
+
})];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
};
|
|
74
107
|
MongoDBSessionStorage.prototype.disconnect = function () {
|
|
75
108
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
76
109
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -13,6 +13,8 @@ export declare class MySQLSessionStorage implements SessionStorage {
|
|
|
13
13
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
14
14
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
15
15
|
deleteSession(id: string): Promise<boolean>;
|
|
16
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
17
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
16
18
|
disconnect(): Promise<void>;
|
|
17
19
|
private init;
|
|
18
20
|
private hasSessionTable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/mysql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,qBAAa,mBAAoB,YAAW,cAAc;IAuBtD,OAAO,CAAC,KAAK;IAtBf,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAY3C,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAmB;gBAG3B,KAAK,EAAE,GAAG,EAClB,IAAI,GAAE,OAAO,CAAC,0BAA0B,CAAM;IASnC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAY9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAI1B,IAAI;YAKJ,eAAe;YAQf,WAAW;IAmBzB,OAAO,CAAC,KAAK;CAGd"}
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/mysql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,qBAAa,mBAAoB,YAAW,cAAc;IAuBtD,OAAO,CAAC,KAAK;IAtBf,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAY3C,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAmB;gBAG3B,KAAK,EAAE,GAAG,EAClB,IAAI,GAAE,OAAO,CAAC,0BAA0B,CAAM;IASnC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAY9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAe7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAI1B,IAAI;YAKJ,eAAe;YAQf,WAAW;IAmBzB,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -81,6 +81,45 @@ var MySQLSessionStorage = /** @class */ (function () {
|
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
83
|
};
|
|
84
|
+
MySQLSessionStorage.prototype.deleteSessions = function (ids) {
|
|
85
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
86
|
+
var query;
|
|
87
|
+
return tslib_1.__generator(this, function (_a) {
|
|
88
|
+
switch (_a.label) {
|
|
89
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
90
|
+
case 1:
|
|
91
|
+
_a.sent();
|
|
92
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id IN (").concat(ids.map(function () { return '?'; }).join(','), ");\n ");
|
|
93
|
+
return [4 /*yield*/, this.query(query, ids)];
|
|
94
|
+
case 2:
|
|
95
|
+
_a.sent();
|
|
96
|
+
return [2 /*return*/, true];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
MySQLSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
102
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
103
|
+
var query, _a, rows, results;
|
|
104
|
+
return tslib_1.__generator(this, function (_b) {
|
|
105
|
+
switch (_b.label) {
|
|
106
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
107
|
+
case 1:
|
|
108
|
+
_b.sent();
|
|
109
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE shop = ?;\n ");
|
|
110
|
+
return [4 /*yield*/, this.query(query, [shop])];
|
|
111
|
+
case 2:
|
|
112
|
+
_a = tslib_1.__read.apply(void 0, [_b.sent(), 1]), rows = _a[0];
|
|
113
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) === 0)
|
|
114
|
+
return [2 /*return*/, []];
|
|
115
|
+
results = rows.map(function (row) {
|
|
116
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(row));
|
|
117
|
+
});
|
|
118
|
+
return [2 /*return*/, results];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
};
|
|
84
123
|
MySQLSessionStorage.prototype.disconnect = function () {
|
|
85
124
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
86
125
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -14,6 +14,8 @@ export declare class PostgreSQLSessionStorage implements SessionStorage {
|
|
|
14
14
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
15
15
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
16
16
|
deleteSession(id: string): Promise<boolean>;
|
|
17
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
18
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
17
19
|
disconnect(): Promise<void>;
|
|
18
20
|
private init;
|
|
19
21
|
private connectClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/postgresql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,+BAA+B;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,qBAAa,wBAAyB,YAAW,cAAc;IAuB3D,OAAO,CAAC,KAAK;IAtBf,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,+BAA+B,CAAC;IAYhD,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAY;gBAGhB,KAAK,EAAE,GAAG,EAClB,IAAI,GAAE,OAAO,CAAC,+BAA+B,CAAM;IASxC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAY9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/postgresql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,+BAA+B;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,qBAAa,wBAAyB,YAAW,cAAc;IAuB3D,OAAO,CAAC,KAAK;IAtBf,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,+BAA+B,CAAC;IAYhD,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAY;gBAGhB,KAAK,EAAE,GAAG,EAClB,IAAI,GAAE,OAAO,CAAC,+BAA+B,CAAM;IASxC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAY9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAenE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAIpB,IAAI;YAMJ,aAAa;YAIb,eAAe;YAQf,WAAW;YAmBX,KAAK;CAIpB"}
|
|
@@ -87,6 +87,45 @@ var PostgreSQLSessionStorage = /** @class */ (function () {
|
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
89
|
};
|
|
90
|
+
PostgreSQLSessionStorage.prototype.deleteSessions = function (ids) {
|
|
91
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
92
|
+
var query;
|
|
93
|
+
return tslib_1.__generator(this, function (_a) {
|
|
94
|
+
switch (_a.label) {
|
|
95
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
96
|
+
case 1:
|
|
97
|
+
_a.sent();
|
|
98
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id IN (").concat(ids.map(function (_, i) { return "$".concat(i + 1); }).join(', '), ");\n ");
|
|
99
|
+
return [4 /*yield*/, this.query(query, ids)];
|
|
100
|
+
case 2:
|
|
101
|
+
_a.sent();
|
|
102
|
+
return [2 /*return*/, true];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
PostgreSQLSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
108
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
109
|
+
var query, rows, results;
|
|
110
|
+
return tslib_1.__generator(this, function (_a) {
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
113
|
+
case 1:
|
|
114
|
+
_a.sent();
|
|
115
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE shop = $1;\n ");
|
|
116
|
+
return [4 /*yield*/, this.query(query, [shop])];
|
|
117
|
+
case 2:
|
|
118
|
+
rows = _a.sent();
|
|
119
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) === 0)
|
|
120
|
+
return [2 /*return*/, []];
|
|
121
|
+
results = rows.map(function (row) {
|
|
122
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(row));
|
|
123
|
+
});
|
|
124
|
+
return [2 /*return*/, results];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
};
|
|
90
129
|
PostgreSQLSessionStorage.prototype.disconnect = function () {
|
|
91
130
|
return this.client.end();
|
|
92
131
|
};
|
|
@@ -13,6 +13,8 @@ export declare class RedisSessionStorage implements SessionStorage {
|
|
|
13
13
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
14
14
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
15
15
|
deleteSession(id: string): Promise<boolean>;
|
|
16
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
17
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
16
18
|
disconnect(): Promise<void>;
|
|
17
19
|
private fullKey;
|
|
18
20
|
private init;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/redis.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,qBAAa,mBAAoB,YAAW,cAAc;IAuBtD,OAAO,CAAC,KAAK;IAtBf,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAY3C,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAkB;gBAGtB,KAAK,EAAE,GAAG,EAClB,IAAI,GAAE,OAAO,CAAC,0BAA0B,CAAM;IASnC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAW9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,CAAC,OAAO;YAID,IAAI;CAMnB"}
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/redis.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,qBAAa,mBAAoB,YAAW,cAAc;IAuBtD,OAAO,CAAC,KAAK;IAtBf,MAAM,CAAC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAY3C,SAAgB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAkB;gBAGtB,KAAK,EAAE,GAAG,EAClB,IAAI,GAAE,OAAO,CAAC,0BAA0B,CAAM;IASnC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAW9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAM/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgB7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,CAAC,OAAO;YAID,IAAI;CAMnB"}
|
|
@@ -69,6 +69,71 @@ var RedisSessionStorage = /** @class */ (function () {
|
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
71
|
};
|
|
72
|
+
RedisSessionStorage.prototype.deleteSessions = function (ids) {
|
|
73
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
74
|
+
var _this = this;
|
|
75
|
+
return tslib_1.__generator(this, function (_a) {
|
|
76
|
+
switch (_a.label) {
|
|
77
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
78
|
+
case 1:
|
|
79
|
+
_a.sent();
|
|
80
|
+
return [4 /*yield*/, this.client.del(ids.map(function (id) { return _this.fullKey(id); }))];
|
|
81
|
+
case 2:
|
|
82
|
+
_a.sent();
|
|
83
|
+
return [2 /*return*/, true];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
RedisSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
89
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
90
|
+
var keys, results, keys_1, keys_1_1, key, rawResult, session, e_1_1;
|
|
91
|
+
var e_1, _a;
|
|
92
|
+
return tslib_1.__generator(this, function (_b) {
|
|
93
|
+
switch (_b.label) {
|
|
94
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
95
|
+
case 1:
|
|
96
|
+
_b.sent();
|
|
97
|
+
return [4 /*yield*/, this.client.keys('*')];
|
|
98
|
+
case 2:
|
|
99
|
+
keys = _b.sent();
|
|
100
|
+
results = [];
|
|
101
|
+
_b.label = 3;
|
|
102
|
+
case 3:
|
|
103
|
+
_b.trys.push([3, 8, 9, 10]);
|
|
104
|
+
keys_1 = tslib_1.__values(keys), keys_1_1 = keys_1.next();
|
|
105
|
+
_b.label = 4;
|
|
106
|
+
case 4:
|
|
107
|
+
if (!!keys_1_1.done) return [3 /*break*/, 7];
|
|
108
|
+
key = keys_1_1.value;
|
|
109
|
+
return [4 /*yield*/, this.client.get(key)];
|
|
110
|
+
case 5:
|
|
111
|
+
rawResult = _b.sent();
|
|
112
|
+
if (!rawResult)
|
|
113
|
+
return [3 /*break*/, 6];
|
|
114
|
+
session = (0, session_utils_1.sessionFromEntries)(JSON.parse(rawResult));
|
|
115
|
+
if (session.shop === shop)
|
|
116
|
+
results.push(session);
|
|
117
|
+
_b.label = 6;
|
|
118
|
+
case 6:
|
|
119
|
+
keys_1_1 = keys_1.next();
|
|
120
|
+
return [3 /*break*/, 4];
|
|
121
|
+
case 7: return [3 /*break*/, 10];
|
|
122
|
+
case 8:
|
|
123
|
+
e_1_1 = _b.sent();
|
|
124
|
+
e_1 = { error: e_1_1 };
|
|
125
|
+
return [3 /*break*/, 10];
|
|
126
|
+
case 9:
|
|
127
|
+
try {
|
|
128
|
+
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
129
|
+
}
|
|
130
|
+
finally { if (e_1) throw e_1.error; }
|
|
131
|
+
return [7 /*endfinally*/];
|
|
132
|
+
case 10: return [2 /*return*/, results];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
};
|
|
72
137
|
RedisSessionStorage.prototype.disconnect = function () {
|
|
73
138
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
74
139
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -12,6 +12,8 @@ export declare class SQLiteSessionStorage implements SessionStorage {
|
|
|
12
12
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
13
13
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
14
14
|
deleteSession(id: string): Promise<boolean>;
|
|
15
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
16
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
15
17
|
private hasSessionTable;
|
|
16
18
|
private init;
|
|
17
19
|
private query;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,qBAAa,oBAAqB,YAAW,cAAc;IAMvD,OAAO,CAAC,QAAQ;IALlB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,KAAK,CAAgB;gBAGnB,QAAQ,EAAE,MAAM,EACxB,IAAI,GAAE,OAAO,CAAC,2BAA2B,CAAM;IAOpC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAa9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,qBAAa,oBAAqB,YAAW,cAAc;IAMvD,OAAO,CAAC,QAAQ;IALlB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,KAAK,CAAgB;gBAGnB,QAAQ,EAAE,MAAM,EACxB,IAAI,GAAE,OAAO,CAAC,2BAA2B,CAAM;IAOpC,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBzD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAa9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAe5D,eAAe;YAWf,IAAI;IAmBlB,OAAO,CAAC,KAAK;CAWd"}
|
|
@@ -76,6 +76,45 @@ var SQLiteSessionStorage = /** @class */ (function () {
|
|
|
76
76
|
});
|
|
77
77
|
});
|
|
78
78
|
};
|
|
79
|
+
SQLiteSessionStorage.prototype.deleteSessions = function (ids) {
|
|
80
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
81
|
+
var query;
|
|
82
|
+
return tslib_1.__generator(this, function (_a) {
|
|
83
|
+
switch (_a.label) {
|
|
84
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
85
|
+
case 1:
|
|
86
|
+
_a.sent();
|
|
87
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id IN (").concat(ids.map(function () { return '?'; }).join(','), ");\n ");
|
|
88
|
+
return [4 /*yield*/, this.query(query, ids)];
|
|
89
|
+
case 2:
|
|
90
|
+
_a.sent();
|
|
91
|
+
return [2 /*return*/, true];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
SQLiteSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
97
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
98
|
+
var query, rows, results;
|
|
99
|
+
return tslib_1.__generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
101
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
102
|
+
case 1:
|
|
103
|
+
_a.sent();
|
|
104
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE shop = ?;\n ");
|
|
105
|
+
return [4 /*yield*/, this.query(query, [shop])];
|
|
106
|
+
case 2:
|
|
107
|
+
rows = _a.sent();
|
|
108
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) === 0)
|
|
109
|
+
return [2 /*return*/, []];
|
|
110
|
+
results = rows.map(function (row) {
|
|
111
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(row));
|
|
112
|
+
});
|
|
113
|
+
return [2 /*return*/, results];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
};
|
|
79
118
|
SQLiteSessionStorage.prototype.hasSessionTable = function () {
|
|
80
119
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
81
120
|
var query, rows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http_client.d.ts","sourceRoot":"","sources":["../../../src/clients/http_client/http_client.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"http_client.d.ts","sourceRoot":"","sources":["../../../src/clients/http_client/http_client.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAC;AAQjB,qBAAa,UAAU;IAOF,OAAO,CAAC,MAAM;IALjC,MAAM,CAAC,QAAQ,CAAC,eAAe,QAAQ;IAEvC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,UAAU;IACjD,OAAO,CAAC,mBAAmB,CAA+B;gBAE/B,MAAM,EAAE,MAAM;IAIzC;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIlE;;OAEG;IACU,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpE;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIlE;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;cAIxD,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA0GtE,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;YAIhC,SAAS;CAqHxB"}
|
|
@@ -180,6 +180,10 @@ var HttpClient = /** @class */ (function () {
|
|
|
180
180
|
message: response.headers.get('X-Shopify-API-Deprecated-Reason'),
|
|
181
181
|
path: url,
|
|
182
182
|
};
|
|
183
|
+
if (options.body) {
|
|
184
|
+
// This can only be a string, since we're always converting the body before calling this method
|
|
185
|
+
deprecation.body = "".concat(options.body.substring(0, 100), "...");
|
|
186
|
+
}
|
|
183
187
|
depHash = crypto_1.default
|
|
184
188
|
.createHash('md5')
|
|
185
189
|
.update(JSON.stringify(deprecation))
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SHOPIFY_API_LIBRARY_VERSION = "4.
|
|
1
|
+
export declare const SHOPIFY_API_LIBRARY_VERSION = "4.2.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -305,12 +305,12 @@ var WebhooksRegistry = {
|
|
|
305
305
|
return [3 /*break*/, 4];
|
|
306
306
|
case 4: return [3 /*break*/, 6];
|
|
307
307
|
case 5:
|
|
308
|
-
statusCode = network_1.StatusCode.
|
|
308
|
+
statusCode = network_1.StatusCode.NotFound;
|
|
309
309
|
responseError = new ShopifyErrors.InvalidWebhookError("No webhook is registered for topic ".concat(topic));
|
|
310
310
|
_a.label = 6;
|
|
311
311
|
case 6: return [3 /*break*/, 8];
|
|
312
312
|
case 7:
|
|
313
|
-
statusCode = network_1.StatusCode.
|
|
313
|
+
statusCode = network_1.StatusCode.Unauthorized;
|
|
314
314
|
responseError = new ShopifyErrors.InvalidWebhookError("Could not validate request for topic ".concat(topic));
|
|
315
315
|
_a.label = 8;
|
|
316
316
|
case 8:
|
package/package.json
CHANGED