@agnostack/next-shopify 1.7.5-beta.37 → 1.7.5-beta.39
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.
|
@@ -20,18 +20,14 @@ const utils_1 = require("../../utils");
|
|
|
20
20
|
// NOTE: typically handling: "/api/webhooks/app/uninstalled"
|
|
21
21
|
const handleAppUninstalled = (serverRuntimeConfig) => async (req, res) => {
|
|
22
22
|
var _a;
|
|
23
|
-
// NOTE raw request body is required for Shopify webhook validation
|
|
24
|
-
const rawBody = await raw_body_1.default(req).catch((error) => {
|
|
25
|
-
console.error('Error extracting raw body for app uninstall', error);
|
|
26
|
-
// HMMMM: dont think we can return a 500 here (vs a 200 w/ an error object)
|
|
27
|
-
return res.status(500).send('Unable to get request body');
|
|
28
|
-
});
|
|
29
23
|
try {
|
|
30
24
|
const { 'x-shopify-shop-domain': shop } = (_a = req.headers) !== null && _a !== void 0 ? _a : {};
|
|
31
25
|
if (utils_1.stringEmpty(shop)) {
|
|
32
26
|
return res.status(200).json({ handler: 'uninstall', error: 'Missing shop' });
|
|
33
27
|
}
|
|
34
28
|
const { shopify, findSessionIds, deleteSessions } = await utils_1.getShopifyHelpers(serverRuntimeConfig, { shop });
|
|
29
|
+
// NOTE raw request body is required for Shopify webhook validation
|
|
30
|
+
const rawBody = await raw_body_1.default(req);
|
|
35
31
|
const _b = await shopify.webhooks.validate({
|
|
36
32
|
rawBody: rawBody.toString(),
|
|
37
33
|
rawRequest: req,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAiC;AAEjC,uCAIoB;AAEpB,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IAC9E,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAiC;AAEjC,uCAIoB;AAEpB,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IAC9E,IAAI;QACF,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAA;QAE3D,IAAI,mBAAW,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;SAC7E;QAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,yBAAiB,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1G,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,kBAAU,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,KAA6B,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC3B,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,GAAG;SACjB,CAAC,EAJI,EAAE,KAAK,OAIX,EAJgB,YAAY,cAAxB,SAA0B,CAI9B,CAAA;QAEF,IAAI,KAAK,EAAE;YACT,IAAI;gBACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;gBAC9C,IAAI,qBAAa,CAAC,WAAW,CAAC,EAAE;oBAC9B,MAAM,cAAc,CAAC,WAAW,CAAC,CAAA;iBAClC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;aACvC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC,CAAA;aAC7E;SACF;QAED,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAA;QAClE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAA;KACrG;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;KACzF;AACH,CAAC,CAAA;AApCY,QAAA,oBAAoB,wBAoChC"}
|
|
@@ -20,10 +20,8 @@ const utils_1 = require("../../utils");
|
|
|
20
20
|
// NOTE: typically handling: "/api/webhooks/app/event"
|
|
21
21
|
const handlWebhookEvent = (serverRuntimeConfig, topicHandlers) => async (req, res) => {
|
|
22
22
|
var _a;
|
|
23
|
-
console.log(`>>> > handlWebhookEvents2 > topicHandlers:`, topicHandlers);
|
|
24
23
|
try {
|
|
25
|
-
const
|
|
26
|
-
console.log(`>>> > handlWebhookEvent > shop:`, shop);
|
|
24
|
+
const _b = (_a = req.headers) !== null && _a !== void 0 ? _a : {}, { 'x-shopify-test': isTestWebhook, 'x-shopify-shop-domain': shop } = _b, _headers = __rest(_b, ['x-shopify-test', 'x-shopify-shop-domain']);
|
|
27
25
|
if (utils_1.stringEmpty(shop)) {
|
|
28
26
|
return res.status(200).json({ handler: 'webhook', error: 'Missing shop' });
|
|
29
27
|
}
|
|
@@ -33,11 +31,18 @@ const handlWebhookEvent = (serverRuntimeConfig, topicHandlers) => async (req, re
|
|
|
33
31
|
const _rawBody = await raw_body_1.default(req);
|
|
34
32
|
const rawBody = _rawBody.toString();
|
|
35
33
|
console.log(`>>> > handlWebhookEvent > rawBody:`, rawBody);
|
|
36
|
-
const
|
|
34
|
+
const _c = ((serverRuntimeConfig.SHOPIFY_RUN_MODE === 'cli') && (isTestWebhook === 'true')) ? {
|
|
35
|
+
valid: true,
|
|
36
|
+
topic: _headers['x-shopify-topic'],
|
|
37
|
+
domain: _headers['x-shopify-shop-domain'],
|
|
38
|
+
webhookId: _headers['x-shopify-webhook-id'],
|
|
39
|
+
apiVersion: _headers['x-shopify-api-version'],
|
|
40
|
+
rawBody,
|
|
41
|
+
} : (await shopify.webhooks.validate({
|
|
37
42
|
rawBody,
|
|
38
43
|
rawRequest: req,
|
|
39
44
|
rawResponse: res,
|
|
40
|
-
}), { valid } =
|
|
45
|
+
})), { valid } = _c, message = __rest(_c, ["valid"]);
|
|
41
46
|
if (valid) {
|
|
42
47
|
try {
|
|
43
48
|
const { topic, domain, webhookId, apiVersion, rawBody: eventRawBody } = message;
|
|
@@ -46,15 +51,25 @@ const handlWebhookEvent = (serverRuntimeConfig, topicHandlers) => async (req, re
|
|
|
46
51
|
});
|
|
47
52
|
const eventBody = JSON.parse(eventRawBody);
|
|
48
53
|
console.log(`>>> > handlWebhookEvent > eventBody:`, eventBody);
|
|
49
|
-
const
|
|
54
|
+
const topicHandlePromises = utils_1.ensureArray(topicHandlers === null || topicHandlers === void 0 ? void 0 : topicHandlers[topic]).map(handler => handler({
|
|
50
55
|
apiVersion,
|
|
51
56
|
webhookId,
|
|
52
57
|
topic,
|
|
53
58
|
shop: domain,
|
|
54
59
|
body: eventBody,
|
|
55
60
|
}));
|
|
56
|
-
console.log(`>>> > handlePromises > handlePromises:`,
|
|
57
|
-
|
|
61
|
+
console.log(`>>> > handlePromises > handlePromises:`, topicHandlePromises);
|
|
62
|
+
const registrationHandlePromises = shopify.webhooks.getHandlers(topic).reduce((_registrationHandlePromises, handler) => {
|
|
63
|
+
if (!handler.callback) {
|
|
64
|
+
return _registrationHandlePromises;
|
|
65
|
+
}
|
|
66
|
+
return [
|
|
67
|
+
..._registrationHandlePromises,
|
|
68
|
+
handler.callback(topic, domain, eventRawBody, webhookId, apiVersion)
|
|
69
|
+
];
|
|
70
|
+
}, []);
|
|
71
|
+
console.log(`>>> > handlWebhookEvent > registrationHandlePromises:`, registrationHandlePromises);
|
|
72
|
+
await Promise.all([...topicHandlePromises, ...registrationHandlePromises]);
|
|
58
73
|
return res.status(200).send('success');
|
|
59
74
|
}
|
|
60
75
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/handlers/api/webhook.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAiC;AAEjC,uCAIoB;AAEpB,sDAAsD;AAC/C,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,EAAE,aAAa,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IAC1F,
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/handlers/api/webhook.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agnostack/next-shopify",
|
|
3
|
-
"version": "1.7.5-beta.
|
|
3
|
+
"version": "1.7.5-beta.39",
|
|
4
4
|
"author": "agnoStack Dev <developers@agnostack.com> (https://agnostack.com)",
|
|
5
5
|
"owner": "agnoStack",
|
|
6
6
|
"description": "Please contact agnoStack via info@agnostack.com for any questions",
|