@shopify/shopify-api 3.0.0-rc.3 → 3.1.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 +19 -0
- package/dist/__tests__/fake-resource-with-custom-prefix.d.ts.map +1 -1
- package/dist/__tests__/fake-resource-with-custom-prefix.js +7 -5
- package/dist/__tests__/fake-resource.d.ts +1 -0
- package/dist/__tests__/fake-resource.d.ts.map +1 -1
- package/dist/__tests__/fake-resource.js +16 -13
- package/dist/auth/oauth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth/oauth.js +12 -15
- package/dist/auth/scopes/index.js +5 -5
- package/dist/auth/session/index.d.ts +11 -1
- package/dist/auth/session/index.d.ts.map +1 -1
- package/dist/auth/session/index.js +16 -1
- package/dist/auth/session/session-utils.d.ts +7 -0
- package/dist/auth/session/session-utils.d.ts.map +1 -0
- package/dist/auth/session/session-utils.js +50 -0
- package/dist/auth/session/storage/__tests__/battery-of-tests.d.ts +3 -0
- package/dist/auth/session/storage/__tests__/battery-of-tests.d.ts.map +1 -0
- package/dist/auth/session/storage/__tests__/battery-of-tests.js +78 -0
- package/dist/auth/session/storage/__tests__/utils.d.ts +10 -0
- package/dist/auth/session/storage/__tests__/utils.d.ts.map +1 -0
- package/dist/auth/session/storage/__tests__/utils.js +87 -0
- package/dist/auth/session/storage/custom.js +4 -4
- package/dist/auth/session/storage/mongodb.d.ts +23 -0
- package/dist/auth/session/storage/mongodb.d.ts.map +1 -0
- package/dist/auth/session/storage/mongodb.js +150 -0
- package/dist/auth/session/storage/mysql.d.ts +22 -0
- package/dist/auth/session/storage/mysql.d.ts.map +1 -0
- package/dist/auth/session/storage/mysql.js +154 -0
- package/dist/auth/session/storage/postgresql.d.ts +24 -0
- package/dist/auth/session/storage/postgresql.d.ts.map +1 -0
- package/dist/auth/session/storage/postgresql.js +172 -0
- package/dist/auth/session/storage/redis.d.ts +20 -0
- package/dist/auth/session/storage/redis.d.ts.map +1 -0
- package/dist/auth/session/storage/redis.js +105 -0
- package/dist/auth/session/storage/sqlite.d.ts +19 -0
- package/dist/auth/session/storage/sqlite.d.ts.map +1 -0
- package/dist/auth/session/storage/sqlite.js +125 -0
- package/dist/base-rest-resource.d.ts +3 -1
- package/dist/base-rest-resource.d.ts.map +1 -1
- package/dist/base-rest-resource.js +31 -19
- package/dist/base-types.d.ts +1 -0
- package/dist/base-types.d.ts.map +1 -1
- package/dist/clients/graphql/graphql_client.js +1 -1
- package/dist/clients/http_client/http_client.d.ts.map +1 -1
- package/dist/clients/http_client/http_client.js +16 -20
- package/dist/clients/rest/rest_client.js +5 -3
- package/dist/context.d.ts +1 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +9 -3
- package/dist/error.js +4 -3
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/abandoned_checkout.d.ts +2 -2
- package/dist/rest-resources/2021-07/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/abandoned_checkout.js +2 -3
- package/dist/rest-resources/2021-07/article.d.ts +4 -1
- package/dist/rest-resources/2021-07/article.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/article.js +7 -6
- package/dist/rest-resources/2021-07/checkout.d.ts +2 -0
- package/dist/rest-resources/2021-07/checkout.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/customer.d.ts +2 -1
- package/dist/rest-resources/2021-07/customer.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/customer.js +5 -5
- package/dist/rest-resources/2021-07/draft_order.d.ts +1 -0
- package/dist/rest-resources/2021-07/draft_order.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/fulfillment.d.ts +0 -21
- package/dist/rest-resources/2021-07/fulfillment.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/fulfillment.js +1 -74
- package/dist/rest-resources/2021-07/gift_card_adjustment.js +1 -1
- package/dist/rest-resources/2021-07/index.js +2 -0
- package/dist/rest-resources/2021-07/metafield.d.ts +54 -5
- package/dist/rest-resources/2021-07/metafield.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/metafield.js +82 -22
- package/dist/rest-resources/2021-07/order.d.ts +2 -0
- package/dist/rest-resources/2021-07/order.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/variant.d.ts +1 -0
- package/dist/rest-resources/2021-07/variant.d.ts.map +1 -1
- package/dist/rest-resources/2021-07/variant.js +4 -0
- package/dist/rest-resources/2021-10/abandoned_checkout.d.ts +2 -2
- package/dist/rest-resources/2021-10/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/abandoned_checkout.js +2 -3
- package/dist/rest-resources/2021-10/article.d.ts +4 -1
- package/dist/rest-resources/2021-10/article.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/article.js +7 -6
- package/dist/rest-resources/2021-10/checkout.d.ts +2 -0
- package/dist/rest-resources/2021-10/checkout.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/customer.d.ts +2 -1
- package/dist/rest-resources/2021-10/customer.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/customer.js +5 -5
- package/dist/rest-resources/2021-10/draft_order.d.ts +1 -0
- package/dist/rest-resources/2021-10/draft_order.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/fulfillment.d.ts +0 -21
- package/dist/rest-resources/2021-10/fulfillment.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/fulfillment.js +1 -74
- package/dist/rest-resources/2021-10/gift_card_adjustment.js +1 -1
- package/dist/rest-resources/2021-10/index.js +2 -0
- package/dist/rest-resources/2021-10/metafield.d.ts +54 -5
- package/dist/rest-resources/2021-10/metafield.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/metafield.js +82 -22
- package/dist/rest-resources/2021-10/order.d.ts +2 -0
- package/dist/rest-resources/2021-10/order.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/variant.d.ts +1 -0
- package/dist/rest-resources/2021-10/variant.d.ts.map +1 -1
- package/dist/rest-resources/2021-10/variant.js +4 -0
- package/dist/rest-resources/2022-01/abandoned_checkout.d.ts +2 -2
- package/dist/rest-resources/2022-01/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/abandoned_checkout.js +2 -3
- package/dist/rest-resources/2022-01/article.d.ts +4 -1
- package/dist/rest-resources/2022-01/article.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/article.js +7 -6
- package/dist/rest-resources/2022-01/checkout.d.ts +2 -0
- package/dist/rest-resources/2022-01/checkout.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/customer.d.ts +2 -1
- package/dist/rest-resources/2022-01/customer.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/customer.js +5 -5
- package/dist/rest-resources/2022-01/draft_order.d.ts +1 -0
- package/dist/rest-resources/2022-01/draft_order.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/fulfillment.d.ts +0 -21
- package/dist/rest-resources/2022-01/fulfillment.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/fulfillment.js +1 -74
- package/dist/rest-resources/2022-01/gift_card_adjustment.js +1 -1
- package/dist/rest-resources/2022-01/index.js +2 -0
- package/dist/rest-resources/2022-01/metafield.d.ts +54 -5
- package/dist/rest-resources/2022-01/metafield.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/metafield.js +82 -22
- package/dist/rest-resources/2022-01/order.d.ts +2 -0
- package/dist/rest-resources/2022-01/order.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/variant.d.ts +1 -0
- package/dist/rest-resources/2022-01/variant.d.ts.map +1 -1
- package/dist/rest-resources/2022-01/variant.js +4 -0
- package/dist/rest-resources/2022-04/abandoned_checkout.d.ts +2 -2
- package/dist/rest-resources/2022-04/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/abandoned_checkout.js +2 -3
- package/dist/rest-resources/2022-04/article.d.ts +4 -1
- package/dist/rest-resources/2022-04/article.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/article.js +7 -6
- package/dist/rest-resources/2022-04/checkout.d.ts +2 -0
- package/dist/rest-resources/2022-04/checkout.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/customer.d.ts +5 -1
- package/dist/rest-resources/2022-04/customer.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/customer.js +5 -5
- package/dist/rest-resources/2022-04/draft_order.d.ts +1 -0
- package/dist/rest-resources/2022-04/draft_order.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/gift_card_adjustment.js +1 -1
- package/dist/rest-resources/2022-04/index.js +2 -0
- package/dist/rest-resources/2022-04/metafield.d.ts +54 -5
- package/dist/rest-resources/2022-04/metafield.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/metafield.js +82 -22
- package/dist/rest-resources/2022-04/order.d.ts +2 -0
- package/dist/rest-resources/2022-04/order.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/variant.d.ts +1 -0
- package/dist/rest-resources/2022-04/variant.d.ts.map +1 -1
- package/dist/rest-resources/2022-04/variant.js +4 -0
- package/dist/utils/decode-session-token.d.ts.map +1 -1
- package/dist/utils/decode-session-token.js +1 -5
- package/dist/utils/graphql_proxy.js +1 -1
- package/dist/utils/hmac-validator.js +2 -5
- package/dist/utils/processed-query.js +3 -3
- package/dist/utils/safe-compare.d.ts.map +1 -1
- package/dist/utils/safe-compare.js +17 -15
- package/dist/utils/setup-jest.d.ts.map +1 -1
- package/dist/utils/setup-jest.js +4 -3
- package/dist/utils/shop-validator.d.ts.map +1 -1
- package/dist/utils/shop-validator.js +1 -0
- package/dist/utils/with-session.js +3 -3
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/registry.d.ts +2 -1
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/registry.js +39 -13
- package/package.json +12 -4
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisSessionStorage = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var redis_1 = require("redis");
|
|
6
|
+
var session_utils_1 = require("../session-utils");
|
|
7
|
+
var defaultRedisSessionStorageOptions = {
|
|
8
|
+
sessionKeyPrefix: 'shopify_sessions',
|
|
9
|
+
};
|
|
10
|
+
var RedisSessionStorage = /** @class */ (function () {
|
|
11
|
+
function RedisSessionStorage(dbUrl, opts) {
|
|
12
|
+
if (opts === void 0) { opts = {}; }
|
|
13
|
+
this.dbUrl = dbUrl;
|
|
14
|
+
if (typeof this.dbUrl === 'string') {
|
|
15
|
+
this.dbUrl = new URL(this.dbUrl);
|
|
16
|
+
}
|
|
17
|
+
this.options = tslib_1.__assign(tslib_1.__assign({}, defaultRedisSessionStorageOptions), opts);
|
|
18
|
+
this.ready = this.init();
|
|
19
|
+
}
|
|
20
|
+
RedisSessionStorage.withCredentials = function (host, db, username, password, opts) {
|
|
21
|
+
return new RedisSessionStorage(new URL("redis://".concat(encodeURIComponent(username), ":").concat(encodeURIComponent(password), "@").concat(host, "/").concat(db)), opts);
|
|
22
|
+
};
|
|
23
|
+
RedisSessionStorage.prototype.storeSession = function (session) {
|
|
24
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
25
|
+
return tslib_1.__generator(this, function (_a) {
|
|
26
|
+
switch (_a.label) {
|
|
27
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
28
|
+
case 1:
|
|
29
|
+
_a.sent();
|
|
30
|
+
return [4 /*yield*/, this.client.set(this.fullKey(session.id), JSON.stringify((0, session_utils_1.sessionEntries)(session)))];
|
|
31
|
+
case 2:
|
|
32
|
+
_a.sent();
|
|
33
|
+
return [2 /*return*/, true];
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
RedisSessionStorage.prototype.loadSession = function (id) {
|
|
39
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
40
|
+
var rawResult;
|
|
41
|
+
return tslib_1.__generator(this, function (_a) {
|
|
42
|
+
switch (_a.label) {
|
|
43
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
44
|
+
case 1:
|
|
45
|
+
_a.sent();
|
|
46
|
+
return [4 /*yield*/, this.client.get(this.fullKey(id))];
|
|
47
|
+
case 2:
|
|
48
|
+
rawResult = _a.sent();
|
|
49
|
+
if (!rawResult)
|
|
50
|
+
return [2 /*return*/, undefined];
|
|
51
|
+
rawResult = JSON.parse(rawResult);
|
|
52
|
+
return [2 /*return*/, (0, session_utils_1.sessionFromEntries)(rawResult)];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
RedisSessionStorage.prototype.deleteSession = function (id) {
|
|
58
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
59
|
+
return tslib_1.__generator(this, function (_a) {
|
|
60
|
+
switch (_a.label) {
|
|
61
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
62
|
+
case 1:
|
|
63
|
+
_a.sent();
|
|
64
|
+
return [4 /*yield*/, this.client.del(this.fullKey(id))];
|
|
65
|
+
case 2:
|
|
66
|
+
_a.sent();
|
|
67
|
+
return [2 /*return*/, true];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
RedisSessionStorage.prototype.disconnect = function () {
|
|
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.client.quit()];
|
|
77
|
+
case 1:
|
|
78
|
+
_a.sent();
|
|
79
|
+
return [2 /*return*/];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
RedisSessionStorage.prototype.fullKey = function (name) {
|
|
85
|
+
return "".concat(this.options.sessionKeyPrefix, "_").concat(name);
|
|
86
|
+
};
|
|
87
|
+
RedisSessionStorage.prototype.init = function () {
|
|
88
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
89
|
+
return tslib_1.__generator(this, function (_a) {
|
|
90
|
+
switch (_a.label) {
|
|
91
|
+
case 0:
|
|
92
|
+
this.client = (0, redis_1.createClient)({
|
|
93
|
+
url: this.dbUrl.toString(),
|
|
94
|
+
});
|
|
95
|
+
return [4 /*yield*/, this.client.connect()];
|
|
96
|
+
case 1:
|
|
97
|
+
_a.sent();
|
|
98
|
+
return [2 /*return*/];
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
return RedisSessionStorage;
|
|
104
|
+
}());
|
|
105
|
+
exports.RedisSessionStorage = RedisSessionStorage;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SessionInterface } from '../types';
|
|
2
|
+
import { SessionStorage } from '../session_storage';
|
|
3
|
+
export interface SQLiteSessionStorageOptions {
|
|
4
|
+
sessionTableName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class SQLiteSessionStorage implements SessionStorage {
|
|
7
|
+
private filename;
|
|
8
|
+
private options;
|
|
9
|
+
private db;
|
|
10
|
+
private ready;
|
|
11
|
+
constructor(filename: string, opts?: Partial<SQLiteSessionStorageOptions>);
|
|
12
|
+
storeSession(session: SessionInterface): Promise<boolean>;
|
|
13
|
+
loadSession(id: string): Promise<SessionInterface | undefined>;
|
|
14
|
+
deleteSession(id: string): Promise<boolean>;
|
|
15
|
+
private hasSessionTable;
|
|
16
|
+
private init;
|
|
17
|
+
private query;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -0,0 +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;YAU1C,eAAe;YAWf,IAAI;IAiBlB,OAAO,CAAC,KAAK;CAWd"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLiteSessionStorage = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var sqlite3_1 = tslib_1.__importDefault(require("sqlite3"));
|
|
6
|
+
var session_utils_1 = require("../session-utils");
|
|
7
|
+
var defaultSQLiteSessionStorageOptions = {
|
|
8
|
+
sessionTableName: 'shopify_sessions',
|
|
9
|
+
};
|
|
10
|
+
var SQLiteSessionStorage = /** @class */ (function () {
|
|
11
|
+
function SQLiteSessionStorage(filename, opts) {
|
|
12
|
+
if (opts === void 0) { opts = {}; }
|
|
13
|
+
this.filename = filename;
|
|
14
|
+
this.options = tslib_1.__assign(tslib_1.__assign({}, defaultSQLiteSessionStorageOptions), opts);
|
|
15
|
+
this.db = new sqlite3_1.default.Database(this.filename);
|
|
16
|
+
this.ready = this.init();
|
|
17
|
+
}
|
|
18
|
+
SQLiteSessionStorage.prototype.storeSession = function (session) {
|
|
19
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
20
|
+
var entries, query;
|
|
21
|
+
return tslib_1.__generator(this, function (_a) {
|
|
22
|
+
switch (_a.label) {
|
|
23
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
24
|
+
case 1:
|
|
25
|
+
_a.sent();
|
|
26
|
+
entries = (0, session_utils_1.sessionEntries)(session);
|
|
27
|
+
query = "\n INSERT OR REPLACE INTO ".concat(this.options.sessionTableName, "\n (").concat(Object.keys(session).join(', '), ")\n VALUES (").concat(entries.map(function () { return '?'; }).join(', '), ");\n ");
|
|
28
|
+
return [4 /*yield*/, this.query(query, entries.map(function (_a) {
|
|
29
|
+
var _b = tslib_1.__read(_a, 2), _key = _b[0], value = _b[1];
|
|
30
|
+
return value;
|
|
31
|
+
}))];
|
|
32
|
+
case 2:
|
|
33
|
+
_a.sent();
|
|
34
|
+
return [2 /*return*/, true];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
SQLiteSessionStorage.prototype.loadSession = function (id) {
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
41
|
+
var query, rows, rawResult;
|
|
42
|
+
return tslib_1.__generator(this, function (_a) {
|
|
43
|
+
switch (_a.label) {
|
|
44
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
45
|
+
case 1:
|
|
46
|
+
_a.sent();
|
|
47
|
+
query = "\n SELECT * FROM ".concat(this.options.sessionTableName, "\n WHERE id = ?;\n ");
|
|
48
|
+
return [4 /*yield*/, this.query(query, [id])];
|
|
49
|
+
case 2:
|
|
50
|
+
rows = _a.sent();
|
|
51
|
+
if (!Array.isArray(rows) || (rows === null || rows === void 0 ? void 0 : rows.length) !== 1)
|
|
52
|
+
return [2 /*return*/, undefined];
|
|
53
|
+
rawResult = rows[0];
|
|
54
|
+
return [2 /*return*/, (0, session_utils_1.sessionFromEntries)(Object.entries(rawResult))];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
SQLiteSessionStorage.prototype.deleteSession = function (id) {
|
|
60
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
61
|
+
var query;
|
|
62
|
+
return tslib_1.__generator(this, function (_a) {
|
|
63
|
+
switch (_a.label) {
|
|
64
|
+
case 0: return [4 /*yield*/, this.ready];
|
|
65
|
+
case 1:
|
|
66
|
+
_a.sent();
|
|
67
|
+
query = "\n DELETE FROM ".concat(this.options.sessionTableName, "\n WHERE id = ?;\n ");
|
|
68
|
+
return [4 /*yield*/, this.query(query, [id])];
|
|
69
|
+
case 2:
|
|
70
|
+
_a.sent();
|
|
71
|
+
return [2 /*return*/, true];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
SQLiteSessionStorage.prototype.hasSessionTable = function () {
|
|
77
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
78
|
+
var query, rows;
|
|
79
|
+
return tslib_1.__generator(this, function (_a) {
|
|
80
|
+
switch (_a.label) {
|
|
81
|
+
case 0:
|
|
82
|
+
query = "\n SELECT name FROM sqlite_schema\n WHERE\n type = 'table' AND\n name = ?;\n ";
|
|
83
|
+
return [4 /*yield*/, this.query(query, [this.options.sessionTableName])];
|
|
84
|
+
case 1:
|
|
85
|
+
rows = _a.sent();
|
|
86
|
+
return [2 /*return*/, rows.length === 1];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
SQLiteSessionStorage.prototype.init = function () {
|
|
92
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
93
|
+
var hasSessionTable, query;
|
|
94
|
+
return tslib_1.__generator(this, function (_a) {
|
|
95
|
+
switch (_a.label) {
|
|
96
|
+
case 0: return [4 /*yield*/, this.hasSessionTable()];
|
|
97
|
+
case 1:
|
|
98
|
+
hasSessionTable = _a.sent();
|
|
99
|
+
if (!!hasSessionTable) return [3 /*break*/, 3];
|
|
100
|
+
query = "\n CREATE TABLE ".concat(this.options.sessionTableName, " (\n id varchar(255) NOT NULL PRIMARY KEY,\n shop varchar(255) NOT NULL,\n state varchar(255) NOT NULL,\n isOnline tinyint NOT NULL,\n scope varchar(255),\n accessToken varchar(255)\n )\n ");
|
|
101
|
+
return [4 /*yield*/, this.query(query)];
|
|
102
|
+
case 2:
|
|
103
|
+
_a.sent();
|
|
104
|
+
_a.label = 3;
|
|
105
|
+
case 3: return [2 /*return*/];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
SQLiteSessionStorage.prototype.query = function (sql, params) {
|
|
111
|
+
var _this = this;
|
|
112
|
+
if (params === void 0) { params = []; }
|
|
113
|
+
return new Promise(function (resolve, reject) {
|
|
114
|
+
_this.db.all(sql, params, function (err, result) {
|
|
115
|
+
if (err) {
|
|
116
|
+
reject(err);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
resolve(result);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
return SQLiteSessionStorage;
|
|
124
|
+
}());
|
|
125
|
+
exports.SQLiteSessionStorage = SQLiteSessionStorage;
|
|
@@ -41,6 +41,7 @@ declare class Base {
|
|
|
41
41
|
protected static PLURAL_NAME: string;
|
|
42
42
|
protected static PRIMARY_KEY: string;
|
|
43
43
|
protected static CUSTOM_PREFIX: string | null;
|
|
44
|
+
protected static READ_ONLY_ATTRIBUTES: string[];
|
|
44
45
|
protected static HAS_ONE: {
|
|
45
46
|
[attribute: string]: typeof Base;
|
|
46
47
|
};
|
|
@@ -61,9 +62,10 @@ declare class Base {
|
|
|
61
62
|
}): Promise<void>;
|
|
62
63
|
saveAndUpdate(): Promise<void>;
|
|
63
64
|
delete(): Promise<void>;
|
|
64
|
-
serialize(): Body;
|
|
65
|
+
serialize(saving?: boolean): Body;
|
|
65
66
|
protected setData(data: Body): void;
|
|
66
67
|
private resource;
|
|
68
|
+
private serializeSubAttribute;
|
|
67
69
|
}
|
|
68
70
|
export default Base;
|
|
69
71
|
//# sourceMappingURL=base-rest-resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-rest-resource.d.ts","sourceRoot":"","sources":["../src/base-rest-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAW,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AASD,cAAM,IAAI;IAER,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB,OAAc,WAAW,EAAE,UAAU,CAAC;IACtC,OAAc,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3D,OAAc,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAE3D,SAAS,CAAC,MAAM,CAAC,IAAI,SAAM;IAC3B,SAAS,CAAC,MAAM,CAAC,WAAW,SAAM;IAClC,SAAS,CAAC,MAAM,CAAC,WAAW,SAAQ;IACpC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErD,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;QAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI,CAAA;KAAC,CAAM;IAClE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;QAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI,CAAA;KAAC,CAAM;IAEnE,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAM;qBAErB,QAAQ,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,MAAM,GACP,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;qBAeV,OAAO,CAAC,EAC7B,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,GACP,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4C3C,SAAS,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM;IAI1C,OAAO,CAAC,MAAM,CAAC,OAAO;IA+DtB,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAmB1C,OAAO,CAAC,MAAM,CAAC,cAAc;IAgBtB,OAAO,EAAE,gBAAgB,CAAC;gBAErB,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAE,mBAAmB;IAQvC,IAAI,CAAC,EAAC,MAAc,EAAC;;KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAU7B,SAAS,
|
|
1
|
+
{"version":3,"file":"base-rest-resource.d.ts","sourceRoot":"","sources":["../src/base-rest-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAW,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AASD,cAAM,IAAI;IAER,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB,OAAc,WAAW,EAAE,UAAU,CAAC;IACtC,OAAc,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3D,OAAc,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAE3D,SAAS,CAAC,MAAM,CAAC,IAAI,SAAM;IAC3B,SAAS,CAAC,MAAM,CAAC,WAAW,SAAM;IAClC,SAAS,CAAC,MAAM,CAAC,WAAW,SAAQ;IACpC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrD,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAM;IAErD,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;QAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI,CAAA;KAAC,CAAM;IAClE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;QAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI,CAAA;KAAC,CAAM;IAEnE,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAM;qBAErB,QAAQ,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,MAAM,GACP,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;qBAeV,OAAO,CAAC,EAC7B,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,MAAM,GACP,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4C3C,SAAS,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM;IAI1C,OAAO,CAAC,MAAM,CAAC,OAAO;IA+DtB,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAmB1C,OAAO,CAAC,MAAM,CAAC,cAAc;IAgBtB,OAAO,EAAE,gBAAgB,CAAC;gBAErB,EAAC,OAAO,EAAE,QAAQ,EAAC,EAAE,mBAAmB;IAQvC,IAAI,CAAC,EAAC,MAAc,EAAC;;KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAU7B,SAAS,CAAC,MAAM,UAAQ,GAAG,IAAI;IA0BtC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAwBnC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,qBAAqB;CAO9B;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -42,7 +42,7 @@ var Base = /** @class */ (function () {
|
|
|
42
42
|
var client, path, cleanParams, key;
|
|
43
43
|
return tslib_1.__generator(this, function (_b) {
|
|
44
44
|
if (context_1.Context.API_VERSION !== this.API_VERSION) {
|
|
45
|
-
throw new error_1.RestResourceError("Current Context.API_VERSION '"
|
|
45
|
+
throw new error_1.RestResourceError("Current Context.API_VERSION '".concat(context_1.Context.API_VERSION, "' does not match resource version ").concat(this.API_VERSION));
|
|
46
46
|
}
|
|
47
47
|
client = new rest_1.RestClient(session.shop, session.accessToken);
|
|
48
48
|
path = this.getPath({ http_method: http_method, operation: operation, urlIds: urlIds, entity: entity });
|
|
@@ -74,7 +74,7 @@ var Base = /** @class */ (function () {
|
|
|
74
74
|
case 'delete':
|
|
75
75
|
return [2 /*return*/, client.delete({ path: path, query: cleanParams })];
|
|
76
76
|
default:
|
|
77
|
-
throw new Error("Unrecognized HTTP method \""
|
|
77
|
+
throw new Error("Unrecognized HTTP method \"".concat(http_method, "\""));
|
|
78
78
|
}
|
|
79
79
|
return [2 /*return*/];
|
|
80
80
|
});
|
|
@@ -114,13 +114,13 @@ var Base = /** @class */ (function () {
|
|
|
114
114
|
specificity = path.ids.length;
|
|
115
115
|
match = path.path.replace(/(<([^>]+)>)/g,
|
|
116
116
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
117
|
-
function (_m1, _m2, id) { return ""
|
|
117
|
+
function (_m1, _m2, id) { return "".concat(pathUrlIds[id]); });
|
|
118
118
|
});
|
|
119
119
|
if (!match) {
|
|
120
120
|
throw new error_1.RestResourceError('Could not find a path for request');
|
|
121
121
|
}
|
|
122
122
|
if (this.CUSTOM_PREFIX) {
|
|
123
|
-
return this.CUSTOM_PREFIX
|
|
123
|
+
return "".concat(this.CUSTOM_PREFIX, "/").concat(match);
|
|
124
124
|
}
|
|
125
125
|
else {
|
|
126
126
|
return match;
|
|
@@ -148,26 +148,26 @@ var Base = /** @class */ (function () {
|
|
|
148
148
|
return instance;
|
|
149
149
|
};
|
|
150
150
|
Base.prototype.save = function (_a) {
|
|
151
|
-
var _b =
|
|
151
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.update, update = _c === void 0 ? false : _c;
|
|
152
152
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
153
|
-
var
|
|
154
|
-
var
|
|
155
|
-
return tslib_1.__generator(this, function (
|
|
156
|
-
switch (
|
|
153
|
+
var _d, PRIMARY_KEY, NAME, method, data, response, body;
|
|
154
|
+
var _e;
|
|
155
|
+
return tslib_1.__generator(this, function (_f) {
|
|
156
|
+
switch (_f.label) {
|
|
157
157
|
case 0:
|
|
158
|
-
|
|
158
|
+
_d = this.resource(), PRIMARY_KEY = _d.PRIMARY_KEY, NAME = _d.NAME;
|
|
159
159
|
method = this[PRIMARY_KEY] ? 'put' : 'post';
|
|
160
|
-
data = this.serialize();
|
|
160
|
+
data = this.serialize(true);
|
|
161
161
|
return [4 /*yield*/, this.resource().request({
|
|
162
162
|
http_method: method,
|
|
163
163
|
operation: method,
|
|
164
164
|
session: this.session,
|
|
165
165
|
urlIds: {},
|
|
166
|
-
body: (
|
|
166
|
+
body: (_e = {}, _e[this.resource().getJsonBodyName()] = data, _e),
|
|
167
167
|
entity: this,
|
|
168
168
|
})];
|
|
169
169
|
case 1:
|
|
170
|
-
response =
|
|
170
|
+
response = _f.sent();
|
|
171
171
|
body = response.body[NAME];
|
|
172
172
|
if (update && body) {
|
|
173
173
|
this.setData(body);
|
|
@@ -207,20 +207,24 @@ var Base = /** @class */ (function () {
|
|
|
207
207
|
});
|
|
208
208
|
});
|
|
209
209
|
};
|
|
210
|
-
Base.prototype.serialize = function () {
|
|
211
|
-
var
|
|
210
|
+
Base.prototype.serialize = function (saving) {
|
|
211
|
+
var _this = this;
|
|
212
|
+
if (saving === void 0) { saving = false; }
|
|
213
|
+
var _a = this.resource(), HAS_MANY = _a.HAS_MANY, HAS_ONE = _a.HAS_ONE, READ_ONLY_ATTRIBUTES = _a.READ_ONLY_ATTRIBUTES;
|
|
212
214
|
return Object.entries(this).reduce(function (acc, _a) {
|
|
213
215
|
var _b = tslib_1.__read(_a, 2), attribute = _b[0], value = _b[1];
|
|
214
|
-
if (
|
|
216
|
+
if (saving &&
|
|
217
|
+
(['session'].includes(attribute) ||
|
|
218
|
+
READ_ONLY_ATTRIBUTES.includes(attribute))) {
|
|
215
219
|
return acc;
|
|
216
220
|
}
|
|
217
221
|
if (attribute in HAS_MANY && value) {
|
|
218
222
|
acc[attribute] = value.reduce(function (attrAcc, entry) {
|
|
219
|
-
return attrAcc.concat(
|
|
223
|
+
return attrAcc.concat(_this.serializeSubAttribute(entry, saving));
|
|
220
224
|
}, []);
|
|
221
225
|
}
|
|
222
|
-
else if (attribute in HAS_ONE && value
|
|
223
|
-
acc[attribute] =
|
|
226
|
+
else if (attribute in HAS_ONE && value) {
|
|
227
|
+
acc[attribute] = _this.serializeSubAttribute(value, saving);
|
|
224
228
|
}
|
|
225
229
|
else {
|
|
226
230
|
acc[attribute] = value;
|
|
@@ -255,10 +259,18 @@ var Base = /** @class */ (function () {
|
|
|
255
259
|
Base.prototype.resource = function () {
|
|
256
260
|
return this.constructor;
|
|
257
261
|
};
|
|
262
|
+
Base.prototype.serializeSubAttribute = function (attribute, saving) {
|
|
263
|
+
return attribute.serialize
|
|
264
|
+
? attribute.serialize(saving)
|
|
265
|
+
: this.resource()
|
|
266
|
+
.createInstance(this.session, attribute)
|
|
267
|
+
.serialize(saving);
|
|
268
|
+
};
|
|
258
269
|
Base.NAME = '';
|
|
259
270
|
Base.PLURAL_NAME = '';
|
|
260
271
|
Base.PRIMARY_KEY = 'id';
|
|
261
272
|
Base.CUSTOM_PREFIX = null;
|
|
273
|
+
Base.READ_ONLY_ATTRIBUTES = [];
|
|
262
274
|
Base.HAS_ONE = {};
|
|
263
275
|
Base.HAS_MANY = {};
|
|
264
276
|
Base.PATHS = [];
|
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,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;CAC9C;AAED,oBAAY,UAAU;IACpB,MAAM,YAAY;IAClB,SAAS,YAAY;IACrB,SAAS,YAAY;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,aAAa;IACvB,WAAW,2BAA2B;IACtC,qBAAqB,sCAAsC;IAC3D,IAAI,0BAA0B;IAC9B,KAAK,oBAAoB;IACzB,MAAM,0BAA0B;CACjC"}
|
|
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;CAC9C;AAED,oBAAY,UAAU;IACpB,MAAM,YAAY;IAClB,SAAS,YAAY;IACrB,SAAS,YAAY;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,aAAa;IACvB,WAAW,2BAA2B;IACtC,qBAAqB,sCAAsC;IAC3D,IAAI,0BAA0B;IAC9B,KAAK,oBAAoB;IACzB,MAAM,0BAA0B;CACjC"}
|
|
@@ -28,7 +28,7 @@ var GraphqlClient = /** @class */ (function () {
|
|
|
28
28
|
}
|
|
29
29
|
accessTokenHeader = this.getAccessTokenHeader();
|
|
30
30
|
params.extraHeaders = tslib_1.__assign((_a = {}, _a[accessTokenHeader.header] = accessTokenHeader.value, _a), params.extraHeaders);
|
|
31
|
-
path = this.baseApiPath
|
|
31
|
+
path = "".concat(this.baseApiPath, "/").concat(context_1.Context.API_VERSION, "/graphql.json");
|
|
32
32
|
if (typeof params.data === 'object') {
|
|
33
33
|
dataType = types_1.DataType.JSON;
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http_client.d.ts","sourceRoot":"","sources":["../../../src/clients/http_client/http_client.ts"],"names":[],"mappings":"
|
|
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;AAEjB,cAAM,UAAU;IAOK,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;CA8GxB;AAED,OAAO,EAAC,UAAU,EAAC,CAAC"}
|
|
@@ -9,7 +9,6 @@ var node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
|
9
9
|
var network_1 = require("@shopify/network");
|
|
10
10
|
var ShopifyErrors = tslib_1.__importStar(require("../../error"));
|
|
11
11
|
var version_1 = require("../../version");
|
|
12
|
-
var shop_validator_1 = tslib_1.__importDefault(require("../../utils/shop-validator"));
|
|
13
12
|
var context_1 = require("../../context");
|
|
14
13
|
var processed_query_1 = tslib_1.__importDefault(require("../../utils/processed-query"));
|
|
15
14
|
var types_1 = require("./types");
|
|
@@ -17,9 +16,6 @@ var HttpClient = /** @class */ (function () {
|
|
|
17
16
|
function HttpClient(domain) {
|
|
18
17
|
this.domain = domain;
|
|
19
18
|
this.LOGGED_DEPRECATIONS = {};
|
|
20
|
-
if (!shop_validator_1.default(domain)) {
|
|
21
|
-
throw new ShopifyErrors.InvalidShopError("Domain " + domain + " is not valid");
|
|
22
|
-
}
|
|
23
19
|
this.domain = domain;
|
|
24
20
|
}
|
|
25
21
|
/**
|
|
@@ -77,19 +73,19 @@ var HttpClient = /** @class */ (function () {
|
|
|
77
73
|
case 0:
|
|
78
74
|
maxTries = params.tries ? params.tries : 1;
|
|
79
75
|
if (maxTries <= 0) {
|
|
80
|
-
throw new ShopifyErrors.HttpRequestError("Number of tries must be >= 0, got "
|
|
76
|
+
throw new ShopifyErrors.HttpRequestError("Number of tries must be >= 0, got ".concat(maxTries));
|
|
81
77
|
}
|
|
82
|
-
userAgent = "Shopify API Library v"
|
|
78
|
+
userAgent = "Shopify API Library v".concat(version_1.SHOPIFY_API_LIBRARY_VERSION, " | Node ").concat(process.version);
|
|
83
79
|
if (context_1.Context.USER_AGENT_PREFIX) {
|
|
84
|
-
userAgent = context_1.Context.USER_AGENT_PREFIX
|
|
80
|
+
userAgent = "".concat(context_1.Context.USER_AGENT_PREFIX, " | ").concat(userAgent);
|
|
85
81
|
}
|
|
86
82
|
if (params.extraHeaders) {
|
|
87
83
|
if (params.extraHeaders['user-agent']) {
|
|
88
|
-
userAgent = params.extraHeaders['user-agent']
|
|
84
|
+
userAgent = "".concat(params.extraHeaders['user-agent'], " | ").concat(userAgent);
|
|
89
85
|
delete params.extraHeaders['user-agent'];
|
|
90
86
|
}
|
|
91
87
|
else if (params.extraHeaders['User-Agent']) {
|
|
92
|
-
userAgent = params.extraHeaders['User-Agent']
|
|
88
|
+
userAgent = "".concat(params.extraHeaders['User-Agent'], " | ").concat(userAgent);
|
|
93
89
|
}
|
|
94
90
|
}
|
|
95
91
|
headers = tslib_1.__assign(tslib_1.__assign({}, params.extraHeaders), { 'User-Agent': userAgent });
|
|
@@ -114,7 +110,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
114
110
|
headers = tslib_1.__assign({ 'Content-Type': type, 'Content-Length': Buffer.byteLength(body) }, params.extraHeaders);
|
|
115
111
|
}
|
|
116
112
|
}
|
|
117
|
-
url = "https://"
|
|
113
|
+
url = "https://".concat(this.domain).concat(this.getRequestPath(params.path)).concat(processed_query_1.default.stringify(params.query));
|
|
118
114
|
options = {
|
|
119
115
|
method: params.method.toString(),
|
|
120
116
|
headers: headers,
|
|
@@ -146,7 +142,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
146
142
|
case 6:
|
|
147
143
|
// We're set to multiple tries but ran out
|
|
148
144
|
if (maxTries > 1) {
|
|
149
|
-
throw new ShopifyErrors.HttpMaxRetriesError("Exceeded maximum retry count of "
|
|
145
|
+
throw new ShopifyErrors.HttpMaxRetriesError("Exceeded maximum retry count of ".concat(maxTries, ". Last message: ").concat(error_1.message));
|
|
150
146
|
}
|
|
151
147
|
_b.label = 7;
|
|
152
148
|
case 7:
|
|
@@ -162,13 +158,13 @@ var HttpClient = /** @class */ (function () {
|
|
|
162
158
|
});
|
|
163
159
|
};
|
|
164
160
|
HttpClient.prototype.getRequestPath = function (path) {
|
|
165
|
-
return "/"
|
|
161
|
+
return "/".concat(path.replace(/^\//, ''));
|
|
166
162
|
};
|
|
167
163
|
HttpClient.prototype.doRequest = function (url, options) {
|
|
168
164
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
169
165
|
var _this = this;
|
|
170
166
|
return tslib_1.__generator(this, function (_a) {
|
|
171
|
-
return [2 /*return*/, node_fetch_1.default(url, options)
|
|
167
|
+
return [2 /*return*/, (0, node_fetch_1.default)(url, options)
|
|
172
168
|
.then(function (response) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
173
169
|
var body, deprecation, depHash, stack, log, errorMessages, errorMessage, headers, code, statusText, retryAfter;
|
|
174
170
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -193,7 +189,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
193
189
|
this.LOGGED_DEPRECATIONS[depHash] = Date.now();
|
|
194
190
|
if (context_1.Context.LOG_FILE) {
|
|
195
191
|
stack = new Error().stack;
|
|
196
|
-
log = "API Deprecation Notice "
|
|
192
|
+
log = "API Deprecation Notice ".concat(new Date().toLocaleString(), " : ").concat(JSON.stringify(deprecation), "\n Stack Trace: ").concat(stack, "\n");
|
|
197
193
|
fs_1.default.writeFileSync(context_1.Context.LOG_FILE, log, {
|
|
198
194
|
flag: 'a',
|
|
199
195
|
encoding: 'utf-8',
|
|
@@ -215,10 +211,10 @@ var HttpClient = /** @class */ (function () {
|
|
|
215
211
|
errorMessages.push(JSON.stringify(body.errors, null, 2));
|
|
216
212
|
}
|
|
217
213
|
if (response.headers && response.headers.get('x-request-id')) {
|
|
218
|
-
errorMessages.push("If you report this error, please include this id: "
|
|
214
|
+
errorMessages.push("If you report this error, please include this id: ".concat(response.headers.get('x-request-id')));
|
|
219
215
|
}
|
|
220
216
|
errorMessage = errorMessages.length
|
|
221
|
-
? ":\n"
|
|
217
|
+
? ":\n".concat(errorMessages.join('\n'))
|
|
222
218
|
: '';
|
|
223
219
|
headers = response.headers.raw();
|
|
224
220
|
code = response.status;
|
|
@@ -227,7 +223,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
227
223
|
case response.status === network_1.StatusCode.TooManyRequests: {
|
|
228
224
|
retryAfter = response.headers.get('Retry-After');
|
|
229
225
|
throw new ShopifyErrors.HttpThrottlingError({
|
|
230
|
-
message: "Shopify is throttling requests"
|
|
226
|
+
message: "Shopify is throttling requests".concat(errorMessage),
|
|
231
227
|
code: code,
|
|
232
228
|
statusText: statusText,
|
|
233
229
|
body: body,
|
|
@@ -237,7 +233,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
237
233
|
}
|
|
238
234
|
case response.status >= network_1.StatusCode.InternalServerError:
|
|
239
235
|
throw new ShopifyErrors.HttpInternalError({
|
|
240
|
-
message: "Shopify internal error"
|
|
236
|
+
message: "Shopify internal error".concat(errorMessage),
|
|
241
237
|
code: code,
|
|
242
238
|
statusText: statusText,
|
|
243
239
|
body: body,
|
|
@@ -245,7 +241,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
245
241
|
});
|
|
246
242
|
default:
|
|
247
243
|
throw new ShopifyErrors.HttpResponseError({
|
|
248
|
-
message: "Received an error response ("
|
|
244
|
+
message: "Received an error response (".concat(response.status, " ").concat(response.statusText, ") from Shopify").concat(errorMessage),
|
|
249
245
|
code: code,
|
|
250
246
|
statusText: statusText,
|
|
251
247
|
body: body,
|
|
@@ -262,7 +258,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
262
258
|
throw error;
|
|
263
259
|
}
|
|
264
260
|
else {
|
|
265
|
-
throw new ShopifyErrors.HttpRequestError("Failed to make Shopify HTTP request: "
|
|
261
|
+
throw new ShopifyErrors.HttpRequestError("Failed to make Shopify HTTP request: ".concat(error));
|
|
266
262
|
}
|
|
267
263
|
})];
|
|
268
264
|
});
|
|
@@ -34,7 +34,9 @@ var RestClient = /** @class */ (function (_super) {
|
|
|
34
34
|
link = ret.headers.get('link');
|
|
35
35
|
if (link !== undefined) {
|
|
36
36
|
pageInfo = {
|
|
37
|
-
limit: ((_a = params.query) === null || _a === void 0 ? void 0 : _a.limit)
|
|
37
|
+
limit: ((_a = params.query) === null || _a === void 0 ? void 0 : _a.limit)
|
|
38
|
+
? (_b = params.query) === null || _b === void 0 ? void 0 : _b.limit.toString()
|
|
39
|
+
: RestClient.DEFAULT_LIMIT,
|
|
38
40
|
};
|
|
39
41
|
if (link) {
|
|
40
42
|
links = link.split(', ');
|
|
@@ -84,10 +86,10 @@ var RestClient = /** @class */ (function (_super) {
|
|
|
84
86
|
RestClient.prototype.getRequestPath = function (path) {
|
|
85
87
|
var cleanPath = _super.prototype.getRequestPath.call(this, path);
|
|
86
88
|
if (cleanPath.startsWith('/admin')) {
|
|
87
|
-
return cleanPath.replace(/\.json$/, '')
|
|
89
|
+
return "".concat(cleanPath.replace(/\.json$/, ''), ".json");
|
|
88
90
|
}
|
|
89
91
|
else {
|
|
90
|
-
return "/admin/api/"
|
|
92
|
+
return "/admin/api/".concat(context_1.Context.API_VERSION).concat(cleanPath.replace(/\.json$/, ''), ".json");
|
|
91
93
|
}
|
|
92
94
|
};
|
|
93
95
|
RestClient.prototype.buildRequestParams = function (newPageUrl) {
|
package/dist/context.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { SessionStorage } from './auth/session/session_storage';
|
|
|
2
2
|
import { ContextParams } from './base-types';
|
|
3
3
|
import { AuthScopes } from './auth/scopes';
|
|
4
4
|
interface ContextInterface extends ContextParams {
|
|
5
|
+
HOST_SCHEME: string;
|
|
5
6
|
SESSION_STORAGE: SessionStorage;
|
|
6
7
|
SCOPES: AuthScopes;
|
|
7
8
|
/**
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
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,gBAqFd,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAC,CAAC"}
|