@shopify/shopify-api 4.0.0 → 5.0.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 +80 -55
- package/dist/auth/oauth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth/oauth.js +7 -5
- 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/custom.d.ts +5 -1
- package/dist/auth/session/storage/custom.d.ts.map +1 -1
- package/dist/auth/session/storage/custom.js +59 -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 +20 -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 +41 -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 +41 -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 +45 -4
- package/dist/auth/session/storage/redis.d.ts +4 -1
- package/dist/auth/session/storage/redis.d.ts.map +1 -1
- package/dist/auth/session/storage/redis.js +68 -3
- 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 +42 -0
- package/dist/base-types.d.ts +1 -0
- package/dist/base-types.d.ts.map +1 -1
- package/dist/clients/graphql/graphql_client.d.ts.map +1 -1
- package/dist/clients/graphql/graphql_client.js +25 -14
- package/dist/clients/http_client/http_client.d.ts.map +1 -1
- package/dist/clients/http_client/http_client.js +5 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -0
- package/dist/error.d.ts +15 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +28 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/utils/delete-offline-session.d.ts.map +1 -1
- package/dist/utils/delete-offline-session.js +4 -2
- package/dist/utils/get-embedded-app-url.d.ts +9 -0
- package/dist/utils/get-embedded-app-url.d.ts.map +1 -0
- package/dist/utils/get-embedded-app-url.js +27 -0
- package/dist/utils/index.d.ts +5 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -2
- package/dist/utils/load-offline-session.d.ts.map +1 -1
- package/dist/utils/load-offline-session.js +4 -2
- package/dist/utils/setup-jest.d.ts.map +1 -1
- package/dist/utils/setup-jest.js +1 -0
- package/dist/utils/shop-validator.d.ts +12 -3
- package/dist/utils/shop-validator.d.ts.map +1 -1
- package/dist/utils/shop-validator.js +39 -7
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/registry.js +23 -20
- package/package.json +4 -4
- package/dist/__tests__/fake-resource-with-custom-prefix.d.ts +0 -21
- package/dist/__tests__/fake-resource-with-custom-prefix.d.ts.map +0 -1
- package/dist/__tests__/fake-resource-with-custom-prefix.js +0 -46
- package/dist/__tests__/fake-resource.d.ts +0 -41
- package/dist/__tests__/fake-resource.d.ts.map +0 -1
- package/dist/__tests__/fake-resource.js +0 -122
- package/dist/auth/session/storage/__tests__/battery-of-tests.d.ts +0 -3
- package/dist/auth/session/storage/__tests__/battery-of-tests.d.ts.map +0 -1
- package/dist/auth/session/storage/__tests__/battery-of-tests.js +0 -191
- package/dist/auth/session/storage/__tests__/utils.d.ts +0 -10
- package/dist/auth/session/storage/__tests__/utils.d.ts.map +0 -1
- package/dist/auth/session/storage/__tests__/utils.js +0 -87
|
@@ -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;
|
|
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;AAIlD,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;IAiB7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAI1B,IAAI;YAKJ,eAAe;YAQf,WAAW;IAmBzB,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -4,6 +4,7 @@ exports.MySQLSessionStorage = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var promise_1 = tslib_1.__importDefault(require("mysql2/promise"));
|
|
6
6
|
var session_utils_1 = require("../session-utils");
|
|
7
|
+
var shop_validator_1 = require("../../../utils/shop-validator");
|
|
7
8
|
var defaultMySQLSessionStorageOptions = {
|
|
8
9
|
sessionTableName: 'shopify_sessions',
|
|
9
10
|
};
|
|
@@ -81,6 +82,46 @@ var MySQLSessionStorage = /** @class */ (function () {
|
|
|
81
82
|
});
|
|
82
83
|
});
|
|
83
84
|
};
|
|
85
|
+
MySQLSessionStorage.prototype.deleteSessions = function (ids) {
|
|
86
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
87
|
+
var query;
|
|
88
|
+
return tslib_1.__generator(this, function (_a) {
|
|
89
|
+
switch (_a.label) {
|
|
90
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
91
|
+
case 1:
|
|
92
|
+
_a.sent();
|
|
93
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id IN (").concat(ids.map(function () { return '?'; }).join(','), ");\n ");
|
|
94
|
+
return [4 /*yield*/, this.query(query, ids)];
|
|
95
|
+
case 2:
|
|
96
|
+
_a.sent();
|
|
97
|
+
return [2 /*return*/, true];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
MySQLSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
103
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
104
|
+
var cleanShop, query, _a, rows, results;
|
|
105
|
+
return tslib_1.__generator(this, function (_b) {
|
|
106
|
+
switch (_b.label) {
|
|
107
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
108
|
+
case 1:
|
|
109
|
+
_b.sent();
|
|
110
|
+
cleanShop = (0, shop_validator_1.sanitizeShop)(shop, true);
|
|
111
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE shop = ?;\n ");
|
|
112
|
+
return [4 /*yield*/, this.query(query, [cleanShop])];
|
|
113
|
+
case 2:
|
|
114
|
+
_a = tslib_1.__read.apply(void 0, [_b.sent(), 1]), rows = _a[0];
|
|
115
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) === 0)
|
|
116
|
+
return [2 /*return*/, []];
|
|
117
|
+
results = rows.map(function (row) {
|
|
118
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(row));
|
|
119
|
+
});
|
|
120
|
+
return [2 /*return*/, results];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
};
|
|
84
125
|
MySQLSessionStorage.prototype.disconnect = function () {
|
|
85
126
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
86
127
|
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;
|
|
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;AAIlD,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;IAiBnE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAIpB,IAAI;YAMJ,aAAa;YAIb,eAAe;YAQf,WAAW;YAmBX,KAAK;CAIpB"}
|
|
@@ -4,6 +4,7 @@ exports.PostgreSQLSessionStorage = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var pg_1 = tslib_1.__importDefault(require("pg"));
|
|
6
6
|
var session_utils_1 = require("../session-utils");
|
|
7
|
+
var shop_validator_1 = require("../../../utils/shop-validator");
|
|
7
8
|
var defaultPostgreSQLSessionStorageOptions = {
|
|
8
9
|
sessionTableName: 'shopify_sessions',
|
|
9
10
|
port: 3211,
|
|
@@ -87,6 +88,46 @@ var PostgreSQLSessionStorage = /** @class */ (function () {
|
|
|
87
88
|
});
|
|
88
89
|
});
|
|
89
90
|
};
|
|
91
|
+
PostgreSQLSessionStorage.prototype.deleteSessions = function (ids) {
|
|
92
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
93
|
+
var query;
|
|
94
|
+
return tslib_1.__generator(this, function (_a) {
|
|
95
|
+
switch (_a.label) {
|
|
96
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
97
|
+
case 1:
|
|
98
|
+
_a.sent();
|
|
99
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id IN (").concat(ids.map(function (_, i) { return "$".concat(i + 1); }).join(', '), ");\n ");
|
|
100
|
+
return [4 /*yield*/, this.query(query, ids)];
|
|
101
|
+
case 2:
|
|
102
|
+
_a.sent();
|
|
103
|
+
return [2 /*return*/, true];
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
PostgreSQLSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
109
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
110
|
+
var cleanShop, query, rows, results;
|
|
111
|
+
return tslib_1.__generator(this, function (_a) {
|
|
112
|
+
switch (_a.label) {
|
|
113
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
114
|
+
case 1:
|
|
115
|
+
_a.sent();
|
|
116
|
+
cleanShop = (0, shop_validator_1.sanitizeShop)(shop, true);
|
|
117
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE shop = $1;\n ");
|
|
118
|
+
return [4 /*yield*/, this.query(query, [cleanShop])];
|
|
119
|
+
case 2:
|
|
120
|
+
rows = _a.sent();
|
|
121
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) === 0)
|
|
122
|
+
return [2 /*return*/, []];
|
|
123
|
+
results = rows.map(function (row) {
|
|
124
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(row));
|
|
125
|
+
});
|
|
126
|
+
return [2 /*return*/, results];
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
};
|
|
90
131
|
PostgreSQLSessionStorage.prototype.disconnect = function () {
|
|
91
132
|
return this.client.end();
|
|
92
133
|
};
|
|
@@ -121,14 +162,14 @@ var PostgreSQLSessionStorage = /** @class */ (function () {
|
|
|
121
162
|
};
|
|
122
163
|
PostgreSQLSessionStorage.prototype.hasSessionTable = function () {
|
|
123
164
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
124
|
-
var query,
|
|
125
|
-
return tslib_1.__generator(this, function (
|
|
126
|
-
switch (
|
|
165
|
+
var query, rows;
|
|
166
|
+
return tslib_1.__generator(this, function (_a) {
|
|
167
|
+
switch (_a.label) {
|
|
127
168
|
case 0:
|
|
128
169
|
query = "\n SELECT * FROM pg_catalog.pg_tables WHERE tablename = $1\n ";
|
|
129
170
|
return [4 /*yield*/, this.query(query, [this.options.sessionTableName])];
|
|
130
171
|
case 1:
|
|
131
|
-
|
|
172
|
+
rows = _a.sent();
|
|
132
173
|
return [2 /*return*/, Array.isArray(rows) && rows.length === 1];
|
|
133
174
|
}
|
|
134
175
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { RedisClientOptions } from 'redis';
|
|
1
2
|
import { SessionInterface } from '../types';
|
|
2
3
|
import { SessionStorage } from '../session_storage';
|
|
3
|
-
export interface RedisSessionStorageOptions {
|
|
4
|
+
export interface RedisSessionStorageOptions extends RedisClientOptions {
|
|
4
5
|
sessionKeyPrefix: string;
|
|
5
6
|
}
|
|
6
7
|
export declare class RedisSessionStorage implements SessionStorage {
|
|
@@ -13,6 +14,8 @@ export declare class RedisSessionStorage implements SessionStorage {
|
|
|
13
14
|
storeSession(session: SessionInterface): Promise<boolean>;
|
|
14
15
|
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
15
16
|
deleteSession(id: string): Promise<boolean>;
|
|
17
|
+
deleteSessions(ids: string[]): Promise<boolean>;
|
|
18
|
+
findSessionsByShop(shop: string): Promise<SessionInterface[]>;
|
|
16
19
|
disconnect(): Promise<void>;
|
|
17
20
|
private fullKey;
|
|
18
21
|
private init;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/redis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/auth/session/storage/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,kBAAkB,EAAC,MAAM,OAAO,CAAC;AAExE,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAIlD,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,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;IAiB7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,CAAC,OAAO;YAID,IAAI;CAOnB"}
|
|
@@ -4,6 +4,7 @@ exports.RedisSessionStorage = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var redis_1 = require("redis");
|
|
6
6
|
var session_utils_1 = require("../session-utils");
|
|
7
|
+
var shop_validator_1 = require("../../../utils/shop-validator");
|
|
7
8
|
var defaultRedisSessionStorageOptions = {
|
|
8
9
|
sessionKeyPrefix: 'shopify_sessions',
|
|
9
10
|
};
|
|
@@ -69,6 +70,72 @@ var RedisSessionStorage = /** @class */ (function () {
|
|
|
69
70
|
});
|
|
70
71
|
});
|
|
71
72
|
};
|
|
73
|
+
RedisSessionStorage.prototype.deleteSessions = function (ids) {
|
|
74
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
75
|
+
var _this = this;
|
|
76
|
+
return tslib_1.__generator(this, function (_a) {
|
|
77
|
+
switch (_a.label) {
|
|
78
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
79
|
+
case 1:
|
|
80
|
+
_a.sent();
|
|
81
|
+
return [4 /*yield*/, this.client.del(ids.map(function (id) { return _this.fullKey(id); }))];
|
|
82
|
+
case 2:
|
|
83
|
+
_a.sent();
|
|
84
|
+
return [2 /*return*/, true];
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
RedisSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
90
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
91
|
+
var cleanShop, keys, results, keys_1, keys_1_1, key, rawResult, session, e_1_1;
|
|
92
|
+
var e_1, _a;
|
|
93
|
+
return tslib_1.__generator(this, function (_b) {
|
|
94
|
+
switch (_b.label) {
|
|
95
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
96
|
+
case 1:
|
|
97
|
+
_b.sent();
|
|
98
|
+
cleanShop = (0, shop_validator_1.sanitizeShop)(shop, true);
|
|
99
|
+
return [4 /*yield*/, this.client.keys('*')];
|
|
100
|
+
case 2:
|
|
101
|
+
keys = _b.sent();
|
|
102
|
+
results = [];
|
|
103
|
+
_b.label = 3;
|
|
104
|
+
case 3:
|
|
105
|
+
_b.trys.push([3, 8, 9, 10]);
|
|
106
|
+
keys_1 = tslib_1.__values(keys), keys_1_1 = keys_1.next();
|
|
107
|
+
_b.label = 4;
|
|
108
|
+
case 4:
|
|
109
|
+
if (!!keys_1_1.done) return [3 /*break*/, 7];
|
|
110
|
+
key = keys_1_1.value;
|
|
111
|
+
return [4 /*yield*/, this.client.get(key)];
|
|
112
|
+
case 5:
|
|
113
|
+
rawResult = _b.sent();
|
|
114
|
+
if (!rawResult)
|
|
115
|
+
return [3 /*break*/, 6];
|
|
116
|
+
session = (0, session_utils_1.sessionFromEntries)(JSON.parse(rawResult));
|
|
117
|
+
if (session.shop === cleanShop)
|
|
118
|
+
results.push(session);
|
|
119
|
+
_b.label = 6;
|
|
120
|
+
case 6:
|
|
121
|
+
keys_1_1 = keys_1.next();
|
|
122
|
+
return [3 /*break*/, 4];
|
|
123
|
+
case 7: return [3 /*break*/, 10];
|
|
124
|
+
case 8:
|
|
125
|
+
e_1_1 = _b.sent();
|
|
126
|
+
e_1 = { error: e_1_1 };
|
|
127
|
+
return [3 /*break*/, 10];
|
|
128
|
+
case 9:
|
|
129
|
+
try {
|
|
130
|
+
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
131
|
+
}
|
|
132
|
+
finally { if (e_1) throw e_1.error; }
|
|
133
|
+
return [7 /*endfinally*/];
|
|
134
|
+
case 10: return [2 /*return*/, results];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
72
139
|
RedisSessionStorage.prototype.disconnect = function () {
|
|
73
140
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
74
141
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -89,9 +156,7 @@ var RedisSessionStorage = /** @class */ (function () {
|
|
|
89
156
|
return tslib_1.__generator(this, function (_a) {
|
|
90
157
|
switch (_a.label) {
|
|
91
158
|
case 0:
|
|
92
|
-
this.client = (0, redis_1.createClient)({
|
|
93
|
-
url: this.dbUrl.toString(),
|
|
94
|
-
});
|
|
159
|
+
this.client = (0, redis_1.createClient)(tslib_1.__assign(tslib_1.__assign({}, this.options), { url: this.dbUrl.toString() }));
|
|
95
160
|
return [4 /*yield*/, this.client.connect()];
|
|
96
161
|
case 1:
|
|
97
162
|
_a.sent();
|
|
@@ -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;
|
|
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;AAIlD,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;YAiB5D,eAAe;YAWf,IAAI;IAmBlB,OAAO,CAAC,KAAK;CAWd"}
|
|
@@ -4,6 +4,7 @@ exports.SQLiteSessionStorage = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var sqlite3_1 = tslib_1.__importDefault(require("sqlite3"));
|
|
6
6
|
var session_utils_1 = require("../session-utils");
|
|
7
|
+
var shop_validator_1 = require("../../../utils/shop-validator");
|
|
7
8
|
var defaultSQLiteSessionStorageOptions = {
|
|
8
9
|
sessionTableName: 'shopify_sessions',
|
|
9
10
|
};
|
|
@@ -76,6 +77,47 @@ var SQLiteSessionStorage = /** @class */ (function () {
|
|
|
76
77
|
});
|
|
77
78
|
});
|
|
78
79
|
};
|
|
80
|
+
SQLiteSessionStorage.prototype.deleteSessions = function (ids) {
|
|
81
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
82
|
+
var query;
|
|
83
|
+
return tslib_1.__generator(this, function (_a) {
|
|
84
|
+
switch (_a.label) {
|
|
85
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
86
|
+
case 1:
|
|
87
|
+
_a.sent();
|
|
88
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id IN (").concat(ids.map(function () { return '?'; }).join(','), ");\n ");
|
|
89
|
+
return [4 /*yield*/, this.query(query, ids)];
|
|
90
|
+
case 2:
|
|
91
|
+
_a.sent();
|
|
92
|
+
return [2 /*return*/, true];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
SQLiteSessionStorage.prototype.findSessionsByShop = function (shop) {
|
|
98
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
99
|
+
var cleanShop, query, rows, results;
|
|
100
|
+
return tslib_1.__generator(this, function (_a) {
|
|
101
|
+
switch (_a.label) {
|
|
102
|
+
case 0:
|
|
103
|
+
cleanShop = (0, shop_validator_1.sanitizeShop)(shop, true);
|
|
104
|
+
return [4 /*yield*/, this.ready];
|
|
105
|
+
case 1:
|
|
106
|
+
_a.sent();
|
|
107
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE shop = ?;\n ");
|
|
108
|
+
return [4 /*yield*/, this.query(query, [cleanShop])];
|
|
109
|
+
case 2:
|
|
110
|
+
rows = _a.sent();
|
|
111
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) === 0)
|
|
112
|
+
return [2 /*return*/, []];
|
|
113
|
+
results = rows.map(function (row) {
|
|
114
|
+
return (0, session_utils_1.sessionFromEntries)(Object.entries(row));
|
|
115
|
+
});
|
|
116
|
+
return [2 /*return*/, results];
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
};
|
|
79
121
|
SQLiteSessionStorage.prototype.hasSessionTable = function () {
|
|
80
122
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
81
123
|
var query, rows;
|
package/dist/base-types.d.ts
CHANGED
package/dist/base-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mCAAmC,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAC7C,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3C;AAED,oBAAY,UAAU;IACpB,SAAS,YAAY;IACrB,SAAS,YAAY;IACrB,OAAO,YAAY;IACnB,MAAM,YAAY;IAClB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD,oBAAY,aAAa;IACvB,WAAW,2BAA2B;IACtC,qBAAqB,sCAAsC;IAC3D,IAAI,0BAA0B;IAC9B,KAAK,oBAAoB;IACzB,MAAM,0BAA0B;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql_client.d.ts","sourceRoot":"","sources":["../../../src/clients/graphql/graphql_client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphql_client.d.ts","sourceRoot":"","sources":["../../../src/clients/graphql/graphql_client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IAKZ,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,WAAW,CAAC;IAJ1D,SAAS,CAAC,WAAW,SAAgB;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,MAAM,EAAW,WAAW,CAAC,oBAAQ;IAU5D,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAgC1D,SAAS,CAAC,oBAAoB,IAAI,iBAAiB;CAQpD"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GraphqlClient = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var error_1 = require("../../error");
|
|
6
5
|
var context_1 = require("../../context");
|
|
7
6
|
var base_types_1 = require("../../base-types");
|
|
8
7
|
var http_client_1 = require("../http_client/http_client");
|
|
@@ -20,22 +19,34 @@ var GraphqlClient = /** @class */ (function () {
|
|
|
20
19
|
}
|
|
21
20
|
GraphqlClient.prototype.query = function (params) {
|
|
22
21
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
23
|
-
var accessTokenHeader, path, dataType;
|
|
22
|
+
var accessTokenHeader, path, dataType, result;
|
|
24
23
|
var _a;
|
|
25
24
|
return tslib_1.__generator(this, function (_b) {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
switch (_b.label) {
|
|
26
|
+
case 0:
|
|
27
|
+
if (params.data.length === 0) {
|
|
28
|
+
throw new ShopifyErrors.MissingRequiredArgument('Query missing.');
|
|
29
|
+
}
|
|
30
|
+
accessTokenHeader = this.getAccessTokenHeader();
|
|
31
|
+
params.extraHeaders = tslib_1.__assign((_a = {}, _a[accessTokenHeader.header] = accessTokenHeader.value, _a), params.extraHeaders);
|
|
32
|
+
path = "".concat(this.baseApiPath, "/").concat(context_1.Context.API_VERSION, "/graphql.json");
|
|
33
|
+
if (typeof params.data === 'object') {
|
|
34
|
+
dataType = types_1.DataType.JSON;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
dataType = types_1.DataType.GraphQL;
|
|
38
|
+
}
|
|
39
|
+
return [4 /*yield*/, this.client.post(tslib_1.__assign({ path: path, type: dataType }, params))];
|
|
40
|
+
case 1:
|
|
41
|
+
result = _b.sent();
|
|
42
|
+
if (result.body.errors) {
|
|
43
|
+
throw new ShopifyErrors.GraphqlQueryError({
|
|
44
|
+
message: 'GraphQL query returned errors',
|
|
45
|
+
response: result.body,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return [2 /*return*/, result];
|
|
28
49
|
}
|
|
29
|
-
accessTokenHeader = this.getAccessTokenHeader();
|
|
30
|
-
params.extraHeaders = tslib_1.__assign((_a = {}, _a[accessTokenHeader.header] = accessTokenHeader.value, _a), params.extraHeaders);
|
|
31
|
-
path = "".concat(this.baseApiPath, "/").concat(context_1.Context.API_VERSION, "/graphql.json");
|
|
32
|
-
if (typeof params.data === 'object') {
|
|
33
|
-
dataType = types_1.DataType.JSON;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
dataType = types_1.DataType.GraphQL;
|
|
37
|
-
}
|
|
38
|
-
return [2 /*return*/, this.client.post(tslib_1.__assign({ path: path, type: dataType }, params))];
|
|
39
50
|
});
|
|
40
51
|
});
|
|
41
52
|
};
|
|
@@ -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"}
|
|
@@ -107,7 +107,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
107
107
|
body = data;
|
|
108
108
|
break;
|
|
109
109
|
}
|
|
110
|
-
headers = tslib_1.__assign({ 'Content-Type': type, 'Content-Length': Buffer.byteLength(body) }
|
|
110
|
+
headers = tslib_1.__assign(tslib_1.__assign({}, headers), { 'Content-Type': type, 'Content-Length': Buffer.byteLength(body) });
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
url = "https://".concat(this.domain).concat(this.getRequestPath(params.path)).concat(processed_query_1.default.stringify(params.query));
|
|
@@ -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/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAa,aAAa,EAAC,MAAM,cAAc,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,UAAU,gBAAiB,SAAQ,aAAa;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,oBAAoB,IAAI,IAAI,GAAG,KAAK,CAAC;IAErC;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;CAClD;AAOD,QAAA,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAa,aAAa,EAAC,MAAM,cAAc,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,UAAU,gBAAiB,SAAQ,aAAa;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,oBAAoB,IAAI,IAAI,GAAG,KAAK,CAAC;IAErC;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;CAClD;AAOD,QAAA,MAAM,OAAO,EAAE,gBAyFd,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAC,CAAC"}
|
package/dist/context.js
CHANGED
|
@@ -68,6 +68,9 @@ var Context = {
|
|
|
68
68
|
this.PRIVATE_APP_STOREFRONT_ACCESS_TOKEN =
|
|
69
69
|
params.PRIVATE_APP_STOREFRONT_ACCESS_TOKEN;
|
|
70
70
|
}
|
|
71
|
+
if (params.CUSTOM_SHOP_DOMAINS) {
|
|
72
|
+
this.CUSTOM_SHOP_DOMAINS = params.CUSTOM_SHOP_DOMAINS;
|
|
73
|
+
}
|
|
71
74
|
},
|
|
72
75
|
throwIfUninitialized: function () {
|
|
73
76
|
if (!this.API_KEY || this.API_KEY.length === 0) {
|
package/dist/error.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export declare class InvalidHmacError extends ShopifyError {
|
|
|
5
5
|
}
|
|
6
6
|
export declare class InvalidShopError extends ShopifyError {
|
|
7
7
|
}
|
|
8
|
+
export declare class InvalidHostError extends ShopifyError {
|
|
9
|
+
}
|
|
8
10
|
export declare class InvalidJwtError extends ShopifyError {
|
|
9
11
|
}
|
|
10
12
|
export declare class MissingJwtTokenError extends ShopifyError {
|
|
@@ -52,6 +54,17 @@ export declare class HttpThrottlingError extends HttpRetriableError {
|
|
|
52
54
|
}
|
|
53
55
|
export declare class RestResourceError extends ShopifyError {
|
|
54
56
|
}
|
|
57
|
+
export declare class GraphqlQueryError extends ShopifyError {
|
|
58
|
+
readonly response: {
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
};
|
|
61
|
+
constructor({ message, response, }: {
|
|
62
|
+
message: string;
|
|
63
|
+
response: {
|
|
64
|
+
[key: string]: unknown;
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
}
|
|
55
68
|
export declare class InvalidOAuthError extends ShopifyError {
|
|
56
69
|
}
|
|
57
70
|
export declare class SessionNotFound extends ShopifyError {
|
|
@@ -68,5 +81,7 @@ export declare class MissingRequiredArgument extends ShopifyError {
|
|
|
68
81
|
}
|
|
69
82
|
export declare class UnsupportedClientType extends ShopifyError {
|
|
70
83
|
}
|
|
84
|
+
export declare class InvalidRequestError extends ShopifyError {
|
|
85
|
+
}
|
|
71
86
|
export {};
|
|
72
87
|
//# sourceMappingURL=error.d.ts.map
|
package/dist/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;gBACzB,GAAG,IAAI,EAAE,GAAG;CAIzB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,eAAgB,SAAQ,YAAY;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,YAAY;CAAG;AAEzD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,yBAA0B,SAAQ,YAAY;CAAG;AAC9D,qBAAa,eAAgB,SAAQ,YAAY;CAAG;AAEpD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AAExD,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAChC,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CACpC;AACD,UAAU,uBAAwB,SAAQ,gBAAgB;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAEjB,EACjB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,OAAO,GACR,EAAE,uBAAuB;CAS3B;AACD,qBAAa,kBAAmB,SAAQ,iBAAiB;CAAG;AAC5D,qBAAa,iBAAkB,SAAQ,kBAAkB;CAAG;AAE5D,UAAU,uBAAwB,SAAQ,gBAAgB;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,yBAA0B,SAAQ,uBAAuB;IACjE,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;gBAExB,EAAC,UAAU,EAAE,GAAG,MAAM,EAAC,EAAE,yBAAyB;CAItE;AAED,qBAAa,iBAAkB,SAAQ,YAAY;CAAG;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;gBACzB,GAAG,IAAI,EAAE,GAAG;CAIzB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,eAAgB,SAAQ,YAAY;CAAG;AACpD,qBAAa,oBAAqB,SAAQ,YAAY;CAAG;AAEzD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,yBAA0B,SAAQ,YAAY;CAAG;AAC9D,qBAAa,eAAgB,SAAQ,YAAY;CAAG;AAEpD,qBAAa,gBAAiB,SAAQ,YAAY;CAAG;AACrD,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AAExD,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAChC,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CACpC;AACD,UAAU,uBAAwB,SAAQ,gBAAgB;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAEjB,EACjB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,OAAO,GACR,EAAE,uBAAuB;CAS3B;AACD,qBAAa,kBAAmB,SAAQ,iBAAiB;CAAG;AAC5D,qBAAa,iBAAkB,SAAQ,kBAAkB;CAAG;AAE5D,UAAU,uBAAwB,SAAQ,gBAAgB;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,yBAA0B,SAAQ,uBAAuB;IACjE,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;gBAExB,EAAC,UAAU,EAAE,GAAG,MAAM,EAAC,EAAE,yBAAyB;CAItE;AAED,qBAAa,iBAAkB,SAAQ,YAAY;CAAG;AACtD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,QAAQ,CAAC,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;gBAEzB,EACjB,OAAO,EACP,QAAQ,GACT,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;KACpC;CAIF;AAED,qBAAa,iBAAkB,SAAQ,YAAY;CAAG;AACtD,qBAAa,eAAgB,SAAQ,YAAY;CAAG;AACpD,qBAAa,cAAe,SAAQ,YAAY;CAAG;AACnD,qBAAa,cAAe,SAAQ,YAAY;CAAG;AAEnD,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AACxD,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AAExD,qBAAa,uBAAwB,SAAQ,YAAY;CAAG;AAC5D,qBAAa,qBAAsB,SAAQ,YAAY;CAAG;AAE1D,qBAAa,mBAAoB,SAAQ,YAAY;CAAG"}
|
package/dist/error.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnsupportedClientType = exports.MissingRequiredArgument = exports.SessionStorageError = exports.InvalidWebhookError = exports.InvalidSession = exports.CookieNotFound = exports.SessionNotFound = exports.InvalidOAuthError = exports.RestResourceError = exports.HttpThrottlingError = exports.HttpInternalError = exports.HttpRetriableError = exports.HttpResponseError = exports.HttpMaxRetriesError = exports.HttpRequestError = exports.PrivateAppError = exports.UninitializedContextError = exports.SafeCompareError = exports.MissingJwtTokenError = exports.InvalidJwtError = exports.InvalidShopError = exports.InvalidHmacError = exports.ShopifyError = void 0;
|
|
3
|
+
exports.InvalidRequestError = exports.UnsupportedClientType = exports.MissingRequiredArgument = exports.SessionStorageError = exports.InvalidWebhookError = exports.InvalidSession = exports.CookieNotFound = exports.SessionNotFound = exports.InvalidOAuthError = exports.GraphqlQueryError = exports.RestResourceError = exports.HttpThrottlingError = exports.HttpInternalError = exports.HttpRetriableError = exports.HttpResponseError = exports.HttpMaxRetriesError = exports.HttpRequestError = exports.PrivateAppError = exports.UninitializedContextError = exports.SafeCompareError = exports.MissingJwtTokenError = exports.InvalidJwtError = exports.InvalidHostError = exports.InvalidShopError = exports.InvalidHmacError = exports.ShopifyError = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var ShopifyError = /** @class */ (function (_super) {
|
|
6
6
|
tslib_1.__extends(ShopifyError, _super);
|
|
@@ -33,6 +33,14 @@ var InvalidShopError = /** @class */ (function (_super) {
|
|
|
33
33
|
return InvalidShopError;
|
|
34
34
|
}(ShopifyError));
|
|
35
35
|
exports.InvalidShopError = InvalidShopError;
|
|
36
|
+
var InvalidHostError = /** @class */ (function (_super) {
|
|
37
|
+
tslib_1.__extends(InvalidHostError, _super);
|
|
38
|
+
function InvalidHostError() {
|
|
39
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
40
|
+
}
|
|
41
|
+
return InvalidHostError;
|
|
42
|
+
}(ShopifyError));
|
|
43
|
+
exports.InvalidHostError = InvalidHostError;
|
|
36
44
|
var InvalidJwtError = /** @class */ (function (_super) {
|
|
37
45
|
tslib_1.__extends(InvalidJwtError, _super);
|
|
38
46
|
function InvalidJwtError() {
|
|
@@ -141,6 +149,17 @@ var RestResourceError = /** @class */ (function (_super) {
|
|
|
141
149
|
return RestResourceError;
|
|
142
150
|
}(ShopifyError));
|
|
143
151
|
exports.RestResourceError = RestResourceError;
|
|
152
|
+
var GraphqlQueryError = /** @class */ (function (_super) {
|
|
153
|
+
tslib_1.__extends(GraphqlQueryError, _super);
|
|
154
|
+
function GraphqlQueryError(_a) {
|
|
155
|
+
var message = _a.message, response = _a.response;
|
|
156
|
+
var _this = _super.call(this, message) || this;
|
|
157
|
+
_this.response = response;
|
|
158
|
+
return _this;
|
|
159
|
+
}
|
|
160
|
+
return GraphqlQueryError;
|
|
161
|
+
}(ShopifyError));
|
|
162
|
+
exports.GraphqlQueryError = GraphqlQueryError;
|
|
144
163
|
var InvalidOAuthError = /** @class */ (function (_super) {
|
|
145
164
|
tslib_1.__extends(InvalidOAuthError, _super);
|
|
146
165
|
function InvalidOAuthError() {
|
|
@@ -205,3 +224,11 @@ var UnsupportedClientType = /** @class */ (function (_super) {
|
|
|
205
224
|
return UnsupportedClientType;
|
|
206
225
|
}(ShopifyError));
|
|
207
226
|
exports.UnsupportedClientType = UnsupportedClientType;
|
|
227
|
+
var InvalidRequestError = /** @class */ (function (_super) {
|
|
228
|
+
tslib_1.__extends(InvalidRequestError, _super);
|
|
229
|
+
function InvalidRequestError() {
|
|
230
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
231
|
+
}
|
|
232
|
+
return InvalidRequestError;
|
|
233
|
+
}(ShopifyError));
|
|
234
|
+
exports.InvalidRequestError = InvalidRequestError;
|
package/dist/index.d.ts
CHANGED
|
@@ -37,9 +37,11 @@ export declare const Shopify: {
|
|
|
37
37
|
safeCompare: typeof import("./utils/safe-compare").default;
|
|
38
38
|
storeSession: typeof import("./utils/store-session").default;
|
|
39
39
|
validateHmac: typeof import("./utils/hmac-validator").default;
|
|
40
|
-
|
|
40
|
+
sanitizeShop: typeof import("./utils/shop-validator").sanitizeShop;
|
|
41
|
+
sanitizeHost: typeof import("./utils/shop-validator").sanitizeHost;
|
|
41
42
|
versionCompatible: typeof import("./utils/version-compatible").default;
|
|
42
43
|
withSession: typeof import("./utils/with-session").default;
|
|
44
|
+
getEmbeddedAppUrl: typeof import("./utils/get-embedded-app-url").default;
|
|
43
45
|
};
|
|
44
46
|
Webhooks: {
|
|
45
47
|
Registry: import("./webhooks/registry").RegistryInterface;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AAOzC,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AAOzC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnB,CAAC;AAEF,eAAe,OAAO,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-offline-session.d.ts","sourceRoot":"","sources":["../../src/utils/delete-offline-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete-offline-session.d.ts","sourceRoot":"","sources":["../../src/utils/delete-offline-session.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAA8B,oBAAoB,CAChD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAOlB"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
var context_1 = require("../context");
|
|
5
5
|
var oauth_1 = tslib_1.__importDefault(require("../auth/oauth"));
|
|
6
|
+
var shop_validator_1 = require("./shop-validator");
|
|
6
7
|
/**
|
|
7
8
|
* Helper method to find and delete offline sessions by shop url.
|
|
8
9
|
*
|
|
@@ -10,10 +11,11 @@ var oauth_1 = tslib_1.__importDefault(require("../auth/oauth"));
|
|
|
10
11
|
*/
|
|
11
12
|
function deleteOfflineSession(shop) {
|
|
12
13
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
13
|
-
var sessionId;
|
|
14
|
+
var cleanShop, sessionId;
|
|
14
15
|
return tslib_1.__generator(this, function (_a) {
|
|
15
16
|
context_1.Context.throwIfUninitialized();
|
|
16
|
-
|
|
17
|
+
cleanShop = (0, shop_validator_1.sanitizeShop)(shop, true);
|
|
18
|
+
sessionId = oauth_1.default.getOfflineSessionId(cleanShop);
|
|
17
19
|
return [2 /*return*/, context_1.Context.SESSION_STORAGE.deleteSession(sessionId)];
|
|
18
20
|
});
|
|
19
21
|
});
|