@shopify/shopify-api 6.0.0-rc2 → 6.0.0-rc4
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/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/registry.js +33 -28
- package/package.json +7 -1
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SHOPIFY_API_LIBRARY_VERSION = "6.0.0-
|
|
1
|
+
export declare const SHOPIFY_API_LIBRARY_VERSION = "6.0.0-rc4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -295,7 +295,7 @@ function createProcess(config, httpWebhookRegistry) {
|
|
|
295
295
|
return function process(_a) {
|
|
296
296
|
var rawBody = _a.rawBody, adapterArgs = tslib_1.__rest(_a, ["rawBody"]);
|
|
297
297
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
298
|
-
var request, response, webhookCheck, webhookOk, hmac, topic, domain, errorMessage, generatedHash, graphqlTopic, handler, returnResponse;
|
|
298
|
+
var request, response, webhookCheck, webhookOk, hmac, topic, domain, errorMessage, generatedHash, graphqlTopic, handler, error_2, returnResponse;
|
|
299
299
|
return tslib_1.__generator(this, function (_b) {
|
|
300
300
|
switch (_b.label) {
|
|
301
301
|
case 0: return [4 /*yield*/, (0, http_1.abstractConvertRequest)(adapterArgs)];
|
|
@@ -309,40 +309,45 @@ function createProcess(config, httpWebhookRegistry) {
|
|
|
309
309
|
webhookCheck = checkWebhookRequest(rawBody, request.headers);
|
|
310
310
|
webhookOk = webhookCheck.webhookOk, hmac = webhookCheck.hmac, topic = webhookCheck.topic, domain = webhookCheck.domain;
|
|
311
311
|
errorMessage = webhookCheck.errorMessage;
|
|
312
|
-
if (!webhookOk) return [3 /*break*/,
|
|
312
|
+
if (!webhookOk) return [3 /*break*/, 11];
|
|
313
313
|
return [4 /*yield*/, (0, crypto_1.createSHA256HMAC)(config.apiSecretKey, rawBody, types_1.HashFormat.Base64)];
|
|
314
314
|
case 2:
|
|
315
315
|
generatedHash = _b.sent();
|
|
316
|
-
if ((0, safe_compare_1.safeCompare)(generatedHash, hmac))
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
handler(graphqlTopic, domain, rawBody);
|
|
322
|
-
response.statusCode = network_1.StatusCode.Ok;
|
|
323
|
-
}
|
|
324
|
-
catch (error) {
|
|
325
|
-
response.statusCode = network_1.StatusCode.InternalServerError;
|
|
326
|
-
errorMessage = error.message;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
response.statusCode = network_1.StatusCode.NotFound;
|
|
331
|
-
errorMessage = "No webhook is registered for topic ".concat(topic);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
response.statusCode = network_1.StatusCode.Unauthorized;
|
|
336
|
-
errorMessage = "Could not validate request for topic ".concat(topic);
|
|
337
|
-
}
|
|
338
|
-
return [3 /*break*/, 4];
|
|
316
|
+
if (!(0, safe_compare_1.safeCompare)(generatedHash, hmac)) return [3 /*break*/, 9];
|
|
317
|
+
graphqlTopic = topicForStorage(topic);
|
|
318
|
+
handler = getHttpHandler(graphqlTopic);
|
|
319
|
+
if (!handler) return [3 /*break*/, 7];
|
|
320
|
+
_b.label = 3;
|
|
339
321
|
case 3:
|
|
340
|
-
|
|
341
|
-
|
|
322
|
+
_b.trys.push([3, 5, , 6]);
|
|
323
|
+
return [4 /*yield*/, handler(graphqlTopic, domain, rawBody)];
|
|
342
324
|
case 4:
|
|
325
|
+
_b.sent();
|
|
326
|
+
response.statusCode = network_1.StatusCode.Ok;
|
|
327
|
+
return [3 /*break*/, 6];
|
|
328
|
+
case 5:
|
|
329
|
+
error_2 = _b.sent();
|
|
330
|
+
response.statusCode = network_1.StatusCode.InternalServerError;
|
|
331
|
+
errorMessage = error_2.message;
|
|
332
|
+
return [3 /*break*/, 6];
|
|
333
|
+
case 6: return [3 /*break*/, 8];
|
|
334
|
+
case 7:
|
|
335
|
+
response.statusCode = network_1.StatusCode.NotFound;
|
|
336
|
+
errorMessage = "No webhook is registered for topic ".concat(topic);
|
|
337
|
+
_b.label = 8;
|
|
338
|
+
case 8: return [3 /*break*/, 10];
|
|
339
|
+
case 9:
|
|
340
|
+
response.statusCode = network_1.StatusCode.Unauthorized;
|
|
341
|
+
errorMessage = "Could not validate request for topic ".concat(topic);
|
|
342
|
+
_b.label = 10;
|
|
343
|
+
case 10: return [3 /*break*/, 12];
|
|
344
|
+
case 11:
|
|
345
|
+
response.statusCode = network_1.StatusCode.BadRequest;
|
|
346
|
+
_b.label = 12;
|
|
347
|
+
case 12:
|
|
343
348
|
response.statusText = statusTextLookup[response.statusCode];
|
|
344
349
|
return [4 /*yield*/, (0, http_1.abstractConvertResponse)(response, adapterArgs)];
|
|
345
|
-
case
|
|
350
|
+
case 13:
|
|
346
351
|
returnResponse = _b.sent();
|
|
347
352
|
if (!(0, http_1.isOK)(response)) {
|
|
348
353
|
throw new ShopifyErrors.InvalidWebhookError({
|
package/package.json
CHANGED
|
@@ -1,30 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shopify/shopify-api",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-rc4",
|
|
4
4
|
"description": "Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"import": "./dist/index.js",
|
|
8
|
+
"require": "./dist/index.js",
|
|
8
9
|
"types": "./dist/index.d.ts"
|
|
9
10
|
},
|
|
10
11
|
"./session-storage/*": {
|
|
11
12
|
"import": "./dist/session-storage/*.js",
|
|
13
|
+
"require": "./dist/session-storage/*.js",
|
|
12
14
|
"types": "./dist/session-storage/*.d.ts"
|
|
13
15
|
},
|
|
14
16
|
"./rest/admin/*": {
|
|
15
17
|
"import": "./dist/rest/admin/*/index.js",
|
|
18
|
+
"require": "./dist/rest/admin/*/index.js",
|
|
16
19
|
"types": "./dist/rest/admin/*/index.d.ts"
|
|
17
20
|
},
|
|
18
21
|
"./runtime": {
|
|
19
22
|
"import": "./dist/runtime/index.js",
|
|
23
|
+
"require": "./dist/runtime/index.js",
|
|
20
24
|
"types": "./dist/runtime/index.d.ts"
|
|
21
25
|
},
|
|
22
26
|
"./adapters/node": {
|
|
23
27
|
"import": "./dist/adapters/node/index.js",
|
|
28
|
+
"require": "./dist/adapters/node/index.js",
|
|
24
29
|
"types": "./dist/adapters/node/index.d.ts"
|
|
25
30
|
},
|
|
26
31
|
"./adapters/cf-worker": {
|
|
27
32
|
"import": "./dist/adapters/cf-worker/index.js",
|
|
33
|
+
"require": "./dist/adapters/cf-worker/index.js",
|
|
28
34
|
"types": "./dist/adapters/cf-worker/index.d.ts"
|
|
29
35
|
}
|
|
30
36
|
},
|