@agnostack/next-shopify 2.1.1-beta.1 → 2.1.1-beta.2
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 +10 -0
- package/dist/lib/handlers/api/auth.d.ts +1 -1
- package/dist/lib/handlers/api/auth.d.ts.map +1 -1
- package/dist/lib/handlers/api/auth.js +10 -3
- package/dist/lib/handlers/api/auth.js.map +1 -1
- package/dist/lib/handlers/api/billing.d.ts +1 -1
- package/dist/lib/handlers/api/billing.d.ts.map +1 -1
- package/dist/lib/handlers/api/billing.js +52 -43
- package/dist/lib/handlers/api/billing.js.map +1 -1
- package/dist/lib/handlers/api/callback.d.ts +1 -1
- package/dist/lib/handlers/api/callback.d.ts.map +1 -1
- package/dist/lib/handlers/api/callback.js +11 -4
- package/dist/lib/handlers/api/callback.js.map +1 -1
- package/dist/lib/handlers/api/uninstall.d.ts +1 -1
- package/dist/lib/handlers/api/uninstall.d.ts.map +1 -1
- package/dist/lib/handlers/api/uninstall.js +42 -32
- package/dist/lib/handlers/api/uninstall.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.d.ts +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.js +10 -3
- package/dist/lib/handlers/api/verifiable/appInstallation.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/graph.d.ts +1 -1
- package/dist/lib/handlers/api/verifiable/graph.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/graph.js +15 -8
- package/dist/lib/handlers/api/verifiable/graph.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.d.ts +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.js +16 -10
- package/dist/lib/handlers/api/verifiable/proxy.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/token.d.ts +1 -3
- package/dist/lib/handlers/api/verifiable/token.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/token.js +13 -7
- package/dist/lib/handlers/api/verifiable/token.js.map +1 -1
- package/dist/lib/handlers/api/webhook.d.ts +1 -1
- package/dist/lib/handlers/api/webhook.d.ts.map +1 -1
- package/dist/lib/handlers/api/webhook.js +19 -12
- package/dist/lib/handlers/api/webhook.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## [2.1.1-beta.2](https://github.com/agnostack/next-shopify/compare/v2.1.1-beta.1...v2.1.1-beta.2) (2024-11-06)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add returnResponse logic ([66e252f](https://github.com/agnostack/next-shopify/commit/66e252f919768039988b8fc56e1651bf60aa201d))
|
|
7
|
+
* add returnResponse logic ([2be1629](https://github.com/agnostack/next-shopify/commit/2be16294823eacf5441a99930f0154f29a2e6d22))
|
|
8
|
+
* add returnResponse logic ([bb543b5](https://github.com/agnostack/next-shopify/commit/bb543b557730475c1fada5677c4f2d5ca857a9af))
|
|
9
|
+
* add returnResponse logic ([678fa85](https://github.com/agnostack/next-shopify/commit/678fa858a65da3d3a1e4c21ef827601b266d5f1a))
|
|
10
|
+
|
|
1
11
|
## [2.1.1-beta.1](https://github.com/agnostack/next-shopify/compare/v2.1.0...v2.1.1-beta.1) (2024-11-04)
|
|
2
12
|
|
|
3
13
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleAuth(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleAuth(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":"AAYO,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":"AAYO,mHAyDN"}
|
|
@@ -24,8 +24,9 @@ exports.handleAuth = void 0;
|
|
|
24
24
|
const utils_1 = require("../../utils");
|
|
25
25
|
const shared_1 = require("../../../shared");
|
|
26
26
|
// NOTE: typically handling: "/api/auth/online" and "/api/auth/offline"
|
|
27
|
-
const handleAuth = (serverRuntimeConfig) => {
|
|
27
|
+
const handleAuth = (serverRuntimeConfig, data) => {
|
|
28
28
|
const { PAGE_PATHS, API_PATHS, API_URLS, APP_CONFIG, } = serverRuntimeConfig;
|
|
29
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
29
30
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
31
|
var _a;
|
|
31
32
|
const { isOnline } = params !== null && params !== void 0 ? params : {};
|
|
@@ -34,8 +35,14 @@ const handleAuth = (serverRuntimeConfig) => {
|
|
|
34
35
|
const reAuth = (0, shared_1.isTrue)(_reAuth, 'undefined');
|
|
35
36
|
const shopify = (0, utils_1.getInitializedShopify)(serverRuntimeConfig);
|
|
36
37
|
const shop = shopify.utils.sanitizeShop(_shop);
|
|
38
|
+
const handleResponse = (body, statusCode = 302) => {
|
|
39
|
+
if (returnResponse) {
|
|
40
|
+
return res.redirect(statusCode, body);
|
|
41
|
+
}
|
|
42
|
+
return { statusCode, body };
|
|
43
|
+
};
|
|
37
44
|
if ((0, shared_1.stringEmpty)(shop)) {
|
|
38
|
-
return
|
|
45
|
+
return handleResponse(`${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.ERROR]}?code=no_shop_provided&type=handleAuth`);
|
|
39
46
|
}
|
|
40
47
|
if (embedded === '1') {
|
|
41
48
|
const callbackUrl = (0, utils_1.getCallback)(API_URLS, { reAuth, isOnline });
|
|
@@ -43,7 +50,7 @@ const handleAuth = (serverRuntimeConfig) => {
|
|
|
43
50
|
const redirectUriParams = new URLSearchParams(Object.assign({ shop,
|
|
44
51
|
host }, state && { state })).toString();
|
|
45
52
|
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, redirectUri: `${callbackUrl}?${redirectUriParams}` })).toString();
|
|
46
|
-
return
|
|
53
|
+
return handleResponse(`${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.EXIT]}?${queryParams}`);
|
|
47
54
|
}
|
|
48
55
|
return (0, utils_1.beginAuth)({
|
|
49
56
|
shop,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAIoB;AACpB,4CAIwB;AAExB,wEAAwE;AACjE,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAIoB;AACpB,4CAIwB;AAExB,wEAAwE;AACjE,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,GACX,GAAG,mBAAmB,CAAA;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAE5C,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;;QAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QACjC,MAAM,KAAgC,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,EAA/C,EAAE,MAAM,EAAE,OAAO,OAA8B,EAAzB,KAAK,cAA3B,UAA6B,CAAkB,CAAA;QACrD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QACpD,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAE3C,MAAM,OAAO,GAAG,IAAA,6BAAqB,EAAC,mBAAmB,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE9C,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;YAChD,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;aACtC;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;YACrB,OAAO,cAAc,CAAC,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;SACrG;QAED,IAAI,QAAQ,KAAK,GAAG,EAAE;YACpB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/D,oCAAoC;YACpC,MAAM,iBAAiB,GAAG,IAAI,eAAe,iBAC3C,IAAI;gBACJ,IAAI,IACD,KAAK,IAAI,EAAE,KAAK,EAAE,EACrB,CAAC,QAAQ,EAAE,CAAA;YACb,MAAM,WAAW,GAAG,IAAI,eAAe,iCAClC,KAAK,KACR,IAAI,EACJ,WAAW,EAAE,GAAG,WAAW,IAAI,iBAAiB,EAAE,IAClD,CAAC,QAAQ,EAAE,CAAA;YAEb,OAAO,cAAc,CAAC,GAAG,UAAU,CAAC,yBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;SAC7E;QAED,OAAO,IAAA,iBAAS,EAAC;YACf,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,YAAY,EAAE,IAAA,mBAAW,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC1D,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AAzDY,QAAA,UAAU,cAyDtB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleAppBilling(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
1
|
+
export function handleAppBilling(serverRuntimeConfig: any, data: any): (req: any, res: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"AAgBO,
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"AAgBO,4GAqEN"}
|
|
@@ -30,52 +30,61 @@ const TERMINAL_STATUSES = [
|
|
|
30
30
|
'CANCELLED'
|
|
31
31
|
];
|
|
32
32
|
// NOTE: typically handling: "/api/webhooks/app/billing"
|
|
33
|
-
const handleAppBilling = (serverRuntimeConfig
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
33
|
+
const handleAppBilling = (serverRuntimeConfig, data) => {
|
|
34
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
35
|
+
return (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
38
|
+
if (returnResponse) {
|
|
39
|
+
return res.status(statusCode).json(body);
|
|
40
|
+
}
|
|
41
|
+
return { statusCode, body };
|
|
42
|
+
};
|
|
43
|
+
try {
|
|
44
|
+
const { 'x-shop-domain': shopDomain, 'x-shopify-shop-domain': shopifyShopDomain, 'x-shopify-shop': shop = shopifyShopDomain !== null && shopifyShopDomain !== void 0 ? shopifyShopDomain : shopDomain, } = (_a = req.headers) !== null && _a !== void 0 ? _a : {};
|
|
45
|
+
if ((0, shared_1.stringEmpty)(shop)) {
|
|
46
|
+
return handleResponse({ handler: 'billing', error: 'Missing shop' });
|
|
47
|
+
}
|
|
48
|
+
const { shopify, loadSession, updateSession, getVerifiedClients } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
49
|
+
// TODO: explore getVerificationHelpers?
|
|
50
|
+
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
51
|
+
const _c = yield shopify.webhooks.validate({
|
|
52
|
+
rawBody,
|
|
53
|
+
rawRequest: req,
|
|
54
|
+
rawResponse: res,
|
|
55
|
+
}), { valid } = _c, webhookCheck = __rest(_c, ["valid"]);
|
|
56
|
+
if (valid) {
|
|
57
|
+
try {
|
|
58
|
+
let message = 'ignored';
|
|
59
|
+
const [eventType, { status } = {}] = Object.entries((0, shared_1.safeParse)(rawBody || '{}'))[0];
|
|
60
|
+
if ((eventType === shared_1.BILLING_EVENT_TYPES.SUBSCRIPTION) && TERMINAL_STATUSES.includes(status)) {
|
|
61
|
+
const { Rest } = (_b = yield getVerifiedClients()) !== null && _b !== void 0 ? _b : {};
|
|
62
|
+
// NOTE: this deletes the app in the case of subscription apps in a "terminal" state to cover the info in ShopifyApi docs for billing:
|
|
63
|
+
// "Note: the merchant may refuse payment when prompted or cancel subscriptions later on, but the app will already be installed at that point. We recommend using billing webhooks to revoke access for merchants when they cancel / decline payment."
|
|
64
|
+
yield Rest.delete({
|
|
65
|
+
path: '/admin/api_permissions/current.json',
|
|
66
|
+
});
|
|
67
|
+
message = 'deleted';
|
|
68
|
+
}
|
|
69
|
+
if ((serverRuntimeConfig.SHOPIFY_RUN_MODE === 'review') && !TERMINAL_STATUSES.includes(status)) {
|
|
70
|
+
const { id: sessionId } = yield loadSession();
|
|
71
|
+
// NOTE: billingStatus is a custom field we add when we're in review mode to handle reauth billing correctly
|
|
72
|
+
yield updateSession(sessionId, { billingStatus: status });
|
|
73
|
+
}
|
|
74
|
+
return handleResponse({ handler: 'billing', message });
|
|
60
75
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// NOTE: billingStatus is a custom field we add when we're in review mode to handle reauth billing correctly
|
|
64
|
-
yield updateSession(sessionId, { billingStatus: status });
|
|
76
|
+
catch (error) {
|
|
77
|
+
return handleResponse({ handler: 'billing', error: error === null || error === void 0 ? void 0 : error.message });
|
|
65
78
|
}
|
|
66
|
-
return res.status(200).json({ handler: 'billing', message });
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
return res.status(200).json({ handler: 'billing', error: error === null || error === void 0 ? void 0 : error.message });
|
|
70
79
|
}
|
|
80
|
+
console.warn('Unable to validate billing webhook', webhookCheck);
|
|
81
|
+
return handleResponse({ handler: 'billing', error: 'Unable to validate billing webhook' });
|
|
71
82
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
});
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error('Error handling billing', error);
|
|
85
|
+
return handleResponse({ handler: 'billing', error: 'Error handling billing' });
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
};
|
|
80
89
|
exports.handleAppBilling = handleAppBilling;
|
|
81
90
|
//# sourceMappingURL=billing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAIwB;AAExB,MAAM,iBAAiB,GAAG;IACxB,SAAS;IACT,UAAU;IACV,WAAW;CACZ,CAAA;AAED,wDAAwD;AACjD,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleCallback(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleCallback(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=callback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"AAgCO,
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"AAgCO,uHAuKN"}
|
|
@@ -19,8 +19,9 @@ const shared_1 = require("../../../shared");
|
|
|
19
19
|
* "/api/auth/online/callback/reauth"
|
|
20
20
|
* "/api/auth/offline/callback/reauth"
|
|
21
21
|
*/
|
|
22
|
-
const handleCallback = (serverRuntimeConfig) => {
|
|
22
|
+
const handleCallback = (serverRuntimeConfig, data) => {
|
|
23
23
|
const { API_PATHS, PAGE_PATHS, PAYMENT_CONFIG, } = serverRuntimeConfig;
|
|
24
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
24
25
|
const prepareWebhookHandlers = (0, utils_1.getPrepareWebhookHandlers)(serverRuntimeConfig);
|
|
25
26
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
27
|
var _a, _b;
|
|
@@ -28,9 +29,15 @@ const handleCallback = (serverRuntimeConfig) => {
|
|
|
28
29
|
const { isOnline, reAuth } = params !== null && params !== void 0 ? params : {};
|
|
29
30
|
const { shop, host, state } = (_a = req.query) !== null && _a !== void 0 ? _a : {};
|
|
30
31
|
const authPayload = { rawRequest: req, rawResponse: res };
|
|
32
|
+
const handleResponse = (body, statusCode = 302) => {
|
|
33
|
+
if (returnResponse) {
|
|
34
|
+
return res.redirect(statusCode, body);
|
|
35
|
+
}
|
|
36
|
+
return { statusCode, body };
|
|
37
|
+
};
|
|
31
38
|
if ((0, shared_1.stringEmpty)(shop) || (0, shared_1.stringEmpty)(host)) {
|
|
32
39
|
// HMMM: why is this a 303 (rather than a 302 or or anything)??
|
|
33
|
-
return
|
|
40
|
+
return handleResponse(`${errorPath}?code=${shared_1.ERROR_CODES.INVALID_CALLBACK}`, 303);
|
|
34
41
|
}
|
|
35
42
|
let redirectUrl = `${errorPath}?code=invalid_callback_response`;
|
|
36
43
|
let shopify;
|
|
@@ -50,7 +57,7 @@ const handleCallback = (serverRuntimeConfig) => {
|
|
|
50
57
|
if (shouldProcessOfflineAuth) {
|
|
51
58
|
// TODO: explore objectToQuerystring
|
|
52
59
|
const queryParams = new URLSearchParams({ host, shop, state, reAuth, isOnline: false }).toString();
|
|
53
|
-
return
|
|
60
|
+
return handleResponse(`${API_PATHS[shared_1.API_ROUTE_NAMES.AUTH_OFFLINE]}?${queryParams}`);
|
|
54
61
|
}
|
|
55
62
|
if (shouldRegisterWebhooks) {
|
|
56
63
|
let appId;
|
|
@@ -143,7 +150,7 @@ const handleCallback = (serverRuntimeConfig) => {
|
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
}
|
|
146
|
-
return
|
|
153
|
+
return handleResponse(redirectUrl);
|
|
147
154
|
});
|
|
148
155
|
};
|
|
149
156
|
exports.handleCallback = handleCallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAM6B;AAE7B,uCAGoB;AACpB,4CAYwB;AAExB;;;;;EAKE;AACK,MAAM,cAAc,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleAppUninstalled(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
1
|
+
export function handleAppUninstalled(serverRuntimeConfig: any, data: any): (req: any, res: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"AASO,
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"AASO,gHAqDN"}
|
|
@@ -25,40 +25,50 @@ const verifyd_1 = require("@agnostack/verifyd");
|
|
|
25
25
|
const utils_1 = require("../../utils");
|
|
26
26
|
const shared_1 = require("../../../shared");
|
|
27
27
|
// NOTE: typically handling: "/api/webhooks/app/uninstalled"
|
|
28
|
-
const handleAppUninstalled = (serverRuntimeConfig
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const { shopify, findSessionIds, deleteSessions } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
36
|
-
// TODO: explore getVerificationHelpers?
|
|
37
|
-
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
38
|
-
const _b = yield shopify.webhooks.validate({
|
|
39
|
-
rawBody,
|
|
40
|
-
rawRequest: req,
|
|
41
|
-
rawResponse: res,
|
|
42
|
-
}), { valid } = _b, webhookCheck = __rest(_b, ["valid"]);
|
|
43
|
-
if (valid) {
|
|
44
|
-
try {
|
|
45
|
-
const sessionsIds = yield findSessionIds(shop);
|
|
46
|
-
if ((0, shared_1.arrayNotEmpty)(sessionsIds)) {
|
|
47
|
-
yield deleteSessions(sessionsIds);
|
|
48
|
-
}
|
|
49
|
-
return res.status(200).json({ handler: 'uninstall', message: 'success' });
|
|
28
|
+
const handleAppUninstalled = (serverRuntimeConfig, data) => {
|
|
29
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
30
|
+
return (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
var _a;
|
|
32
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
33
|
+
if (returnResponse) {
|
|
34
|
+
return res.status(statusCode).json(body);
|
|
50
35
|
}
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
return { statusCode, body };
|
|
37
|
+
};
|
|
38
|
+
try {
|
|
39
|
+
const { 'x-shop-domain': shopDomain, 'x-shopify-shop-domain': shopifyShopDomain, 'x-shopify-shop': shop = shopifyShopDomain !== null && shopifyShopDomain !== void 0 ? shopifyShopDomain : shopDomain, } = (_a = req.headers) !== null && _a !== void 0 ? _a : {};
|
|
40
|
+
if ((0, shared_1.stringEmpty)(shop)) {
|
|
41
|
+
return handleResponse({ handler: 'uninstall', error: 'Missing shop' });
|
|
42
|
+
}
|
|
43
|
+
const { shopify, findSessionIds, deleteSessions } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
44
|
+
// TODO: explore getVerificationHelpers?
|
|
45
|
+
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
46
|
+
const _b = yield shopify.webhooks.validate({
|
|
47
|
+
rawBody,
|
|
48
|
+
rawRequest: req,
|
|
49
|
+
rawResponse: res,
|
|
50
|
+
}), { valid } = _b, webhookCheck = __rest(_b, ["valid"]);
|
|
51
|
+
if (valid) {
|
|
52
|
+
try {
|
|
53
|
+
const sessionsIds = yield findSessionIds(shop);
|
|
54
|
+
if ((0, shared_1.arrayNotEmpty)(sessionsIds)) {
|
|
55
|
+
yield deleteSessions(sessionsIds);
|
|
56
|
+
}
|
|
57
|
+
return handleResponse({ handler: 'uninstall', message: 'success' });
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('Error handling uninstall', error);
|
|
61
|
+
return handleResponse({ handler: 'uninstall', error: (error === null || error === void 0 ? void 0 : error.message) || 'Error handling uninstall' });
|
|
62
|
+
}
|
|
53
63
|
}
|
|
64
|
+
console.warn('Unable to validate uninstall webhook', webhookCheck);
|
|
65
|
+
return handleResponse({ handler: 'uninstall', error: 'Unable to validate uninstall webhook' });
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error('Error handling uninstall', error);
|
|
69
|
+
return handleResponse({ handler: 'uninstall', error: 'Error handling uninstall' });
|
|
54
70
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
console.error('Error handling uninstall', error);
|
|
60
|
-
return res.status(200).json({ handler: 'uninstall', error: 'Error handling uninstall' });
|
|
61
|
-
}
|
|
62
|
-
});
|
|
71
|
+
});
|
|
72
|
+
};
|
|
63
73
|
exports.handleAppUninstalled = handleAppUninstalled;
|
|
64
74
|
//# sourceMappingURL=uninstall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAGwB;AAExB,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAGwB;AAExB,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE;IAChE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAE5C,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;;QACxB,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;YAChD,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACzC;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,IAAI;YACF,MAAM,EACJ,eAAe,EAAE,UAAU,EAC3B,uBAAuB,EAAE,iBAAiB,EAC1C,gBAAgB,EAAE,IAAI,GAAG,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,UAAU,GACzD,GAAG,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAA;YAErB,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;gBACrB,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;aACvE;YAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,yBAAiB,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YAE1G,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAA;YACxC,MAAM,KAA6B,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjE,OAAO;gBACP,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG;aACjB,CAAC,EAJI,EAAE,KAAK,OAIX,EAJgB,YAAY,cAAxB,SAA0B,CAI9B,CAAA;YAEF,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;oBAC9C,IAAI,IAAA,sBAAa,EAAC,WAAW,CAAC,EAAE;wBAC9B,MAAM,cAAc,CAAC,WAAW,CAAC,CAAA;qBAClC;oBACD,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;iBACpE;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;oBAChD,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,0BAA0B,EAAE,CAAC,CAAA;iBACrG;aACF;YAED,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAA;YAClE,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAA;SAC/F;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;YAChD,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;SACnF;IACH,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AArDY,QAAA,oBAAoB,wBAqDhC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleLoadAppInstallation(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleLoadAppInstallation(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=appInstallation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appInstallation.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":"AAIO,
|
|
1
|
+
{"version":3,"file":"appInstallation.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":"AAIO,kIAyBN"}
|
|
@@ -13,12 +13,19 @@ exports.handleLoadAppInstallation = void 0;
|
|
|
13
13
|
const shared_1 = require("../../../../shared");
|
|
14
14
|
const graph_1 = require("./graph");
|
|
15
15
|
// NOTE: typically handling: "/api/admin/installation/[appId]" (called by getUseAppInstallation)
|
|
16
|
-
const handleLoadAppInstallation = (serverRuntimeConfig) => {
|
|
17
|
-
const _handleGraph = (0, graph_1.handleGraph)(serverRuntimeConfig);
|
|
16
|
+
const handleLoadAppInstallation = (serverRuntimeConfig, data) => {
|
|
17
|
+
const _handleGraph = (0, graph_1.handleGraph)(serverRuntimeConfig, data);
|
|
18
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
18
19
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
20
|
const { appId } = params !== null && params !== void 0 ? params : {};
|
|
21
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
22
|
+
if (returnResponse) {
|
|
23
|
+
return res.status(statusCode).json(body);
|
|
24
|
+
}
|
|
25
|
+
return { statusCode, body };
|
|
26
|
+
};
|
|
20
27
|
if ((0, shared_1.stringEmpty)(appId)) {
|
|
21
|
-
return
|
|
28
|
+
return handleResponse({ message: 'Missing required param' }, 412);
|
|
22
29
|
}
|
|
23
30
|
return _handleGraph(req, res, {
|
|
24
31
|
query: shared_1.APP_QUERY.INSTALLATION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appInstallation.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAsE;AACtE,mCAAqC;AAErC,gGAAgG;AACzF,MAAM,yBAAyB,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"appInstallation.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAsE;AACtE,mCAAqC;AAErC,gGAAgG;AACzF,MAAM,yBAAyB,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE;IACrE,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC3D,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAE5C,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QAE9B,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;YAChD,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACzC;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,CAAA;SAClE;QAED,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;YAC5B,KAAK,EAAE,kBAAS,CAAC,YAAY;YAC7B,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,aAAa,EAAE;YAC/C,SAAS,EAAE,kBAAS,CAAC,SAAS;SAC/B,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,yBAAyB,6BAyBrC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleGraph(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleGraph(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"AAmBO,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"AAmBO,oHAiJN"}
|
|
@@ -25,10 +25,17 @@ const shopify_api_1 = require("@shopify/shopify-api");
|
|
|
25
25
|
const verifyd_1 = require("@agnostack/verifyd");
|
|
26
26
|
const utils_1 = require("../../../utils");
|
|
27
27
|
const shared_1 = require("../../../../shared");
|
|
28
|
-
const handleGraph = (serverRuntimeConfig) => {
|
|
28
|
+
const handleGraph = (serverRuntimeConfig, data) => {
|
|
29
29
|
const _getVerificationHelpers = (0, verifyd_1.getVerificationHelpers)(serverRuntimeConfig);
|
|
30
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
30
31
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
32
|
var _a, _b;
|
|
33
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
34
|
+
if (returnResponse) {
|
|
35
|
+
return res.status(statusCode).json(body);
|
|
36
|
+
}
|
|
37
|
+
return { statusCode, body };
|
|
38
|
+
};
|
|
32
39
|
let requestBody;
|
|
33
40
|
let processResponse;
|
|
34
41
|
try {
|
|
@@ -36,9 +43,9 @@ const handleGraph = (serverRuntimeConfig) => {
|
|
|
36
43
|
}
|
|
37
44
|
catch (error) {
|
|
38
45
|
if (error instanceof verifyd_1.VerificationError) {
|
|
39
|
-
return
|
|
46
|
+
return handleResponse(Object.assign({ message: error.message }, error.data), error.code);
|
|
40
47
|
}
|
|
41
|
-
return
|
|
48
|
+
return handleResponse({ message: 'Verification error' }, 403);
|
|
42
49
|
}
|
|
43
50
|
const _c = (_a = req.query) !== null && _a !== void 0 ? _a : {}, { shop, apiVersion } = _c, _query = __rest(_c, ["shop", "apiVersion"]);
|
|
44
51
|
const _d = params !== null && params !== void 0 ? params : (0, shared_1.safeParse)(requestBody || '{}'), { isOnline, query: graphQuery, variables: graphVariables, transform = (_data) => _data } = _d, graphParams = __rest(_d, ["isOnline", "query", "variables", "transform"]);
|
|
@@ -47,7 +54,7 @@ const handleGraph = (serverRuntimeConfig) => {
|
|
|
47
54
|
query = (0, shared_1.querystringToObject)(query);
|
|
48
55
|
}
|
|
49
56
|
if ((0, shared_1.stringEmpty)(shop) || (0, shared_1.stringEmpty)(graphQuery)) {
|
|
50
|
-
return
|
|
57
|
+
return handleResponse({ message: 'Invalid arguments' }, 400);
|
|
51
58
|
}
|
|
52
59
|
let statusCode;
|
|
53
60
|
let response;
|
|
@@ -114,21 +121,21 @@ const handleGraph = (serverRuntimeConfig) => {
|
|
|
114
121
|
res.setHeader(key, value);
|
|
115
122
|
});
|
|
116
123
|
if (!(response === null || response === void 0 ? void 0 : response.data)) {
|
|
117
|
-
return
|
|
124
|
+
return handleResponse({ message }, statusCode);
|
|
118
125
|
}
|
|
119
126
|
const responseBody = (0, shared_1.ensureObject)(response.data);
|
|
120
127
|
const [_responseData] = Object.values(responseBody);
|
|
121
128
|
const _e = (0, shared_1.ensureObject)(_responseData), { userErrors } = _e, responseData = __rest(_e, ["userErrors"]);
|
|
122
129
|
if ((0, shared_1.arrayNotEmpty)(userErrors)) {
|
|
123
130
|
const errorMessages = (0, shared_1.ensureArray)(userErrors).map(({ message }) => (0, shared_1.ensureString)(message));
|
|
124
|
-
return
|
|
131
|
+
return handleResponse({ message: `${message}. ${errorMessages.join('. ')}.` }, 500);
|
|
125
132
|
}
|
|
126
133
|
// NOTE: sending in both to transform in case someone needs the userErrors
|
|
127
|
-
return
|
|
134
|
+
return handleResponse(yield processResponse(transform(responseData, responseBody)), statusCode);
|
|
128
135
|
}
|
|
129
136
|
catch (error) {
|
|
130
137
|
console.error(`${message}. Transformation Error.`, error);
|
|
131
|
-
return
|
|
138
|
+
return handleResponse({ message }, 500);
|
|
132
139
|
}
|
|
133
140
|
});
|
|
134
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsE;AAEtE,gDAA8E;AAE9E,0CAAwE;AACxE,+CAY2B;AAEpB,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleProxy(serverRuntimeConfig: any,
|
|
1
|
+
export function handleProxy(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/proxy.js"],"names":[],"mappings":"AAsCO,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/proxy.js"],"names":[],"mappings":"AAsCO,oHAwON"}
|
|
@@ -36,8 +36,8 @@ const verifyAppProxySignature = (signature, verifiable, hmacSecret) => {
|
|
|
36
36
|
const hmac = (0, utils_1.generateHMAC)((0, shared_1.objectToSortedString)(verifiable), hmacSecret);
|
|
37
37
|
return (0, utils_1.compareHashes)(signature, hmac);
|
|
38
38
|
};
|
|
39
|
-
const handleProxy = (serverRuntimeConfig,
|
|
40
|
-
const { generateReplacements } =
|
|
39
|
+
const handleProxy = (serverRuntimeConfig, data) => {
|
|
40
|
+
const { generateReplacements, returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
41
41
|
const { API_BASE_PATH, API_URLS, API_PATHS, APP_CONFIG, APP_BASE_URL, TARGET_SAFELIST, ORIGIN_SAFELIST, } = serverRuntimeConfig;
|
|
42
42
|
const _prepareHeaders = (0, utils_1.prepareHeaders)(serverRuntimeConfig);
|
|
43
43
|
const _getVerificationHelpers = (0, verifyd_1.getVerificationHelpers)(serverRuntimeConfig);
|
|
@@ -50,6 +50,12 @@ const handleProxy = (serverRuntimeConfig, config) => {
|
|
|
50
50
|
// 'x-app-installation-id': appInstallationId = shopifyAppInstallationId, // TODO: pass along installationId??
|
|
51
51
|
// TODO: pass along providerSetId???
|
|
52
52
|
} = _headers;
|
|
53
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
54
|
+
if (returnResponse) {
|
|
55
|
+
return res.status(statusCode).json(body);
|
|
56
|
+
}
|
|
57
|
+
return { statusCode, body };
|
|
58
|
+
};
|
|
53
59
|
let targetPath;
|
|
54
60
|
try {
|
|
55
61
|
// NOTE: GET requests are not always sending along origin
|
|
@@ -89,17 +95,17 @@ const handleProxy = (serverRuntimeConfig, config) => {
|
|
|
89
95
|
},
|
|
90
96
|
} }, TARGET_SAFELIST));
|
|
91
97
|
if ((0, shared_1.stringEmpty)(targetPath) || (safelistedTarget == undefined)) {
|
|
92
|
-
return
|
|
98
|
+
return handleResponse({ message: 'Unproxyable target' }, 407);
|
|
93
99
|
}
|
|
94
100
|
if (!shop || !host || !extensionPoint || !signature || !proxyEncoded) {
|
|
95
|
-
return
|
|
101
|
+
return handleResponse({ message: 'Invalid or missing headers', extensionPoint }, 400);
|
|
96
102
|
}
|
|
97
103
|
const isShopifyOriginOrRelative = (0, shared_1.stringNotEmpty)((0, shared_1.ensureString)(path_prefix).startsWith('http')
|
|
98
104
|
? (0, shared_1.sanitizeShop)(new URL(path_prefix).hostname)
|
|
99
105
|
: path_prefix);
|
|
100
106
|
// TODO: once Shopify fixes CORS issue when origin is cdn.shopify.com, update this!
|
|
101
107
|
if (!verifyAppProxySignature(signature, verifiable, isShopifyOriginOrRelative ? APP_CONFIG.apiSecretKey : timestamp)) {
|
|
102
|
-
return
|
|
108
|
+
return handleResponse({ message: 'Invalid signature' }, 403);
|
|
103
109
|
}
|
|
104
110
|
const isTokenRequest = ((targetParam === null || targetParam === void 0 ? void 0 : targetParam.startsWith(API_PATHS[shared_1.API_ROUTE_NAMES.SESSION_TOKEN])) ||
|
|
105
111
|
(targetParam === null || targetParam === void 0 ? void 0 : targetParam.startsWith(API_URLS[shared_1.API_ROUTE_NAMES.SESSION_TOKEN])));
|
|
@@ -107,7 +113,7 @@ const handleProxy = (serverRuntimeConfig, config) => {
|
|
|
107
113
|
const isVerifiedSession = yield _getVerifiedSessionData(sessionToken, { shop, host });
|
|
108
114
|
if (!isVerifiedSession) {
|
|
109
115
|
// NOTE: this should not get here/above should throw ShopifySessionInvalidError
|
|
110
|
-
return
|
|
116
|
+
return handleResponse({ message: 'Unverified signature' }, 403);
|
|
111
117
|
}
|
|
112
118
|
}
|
|
113
119
|
const { headers: targetHeaders, params: targetParams } = (0, shared_1.ensureObject)(safelistedTarget);
|
|
@@ -124,9 +130,9 @@ const handleProxy = (serverRuntimeConfig, config) => {
|
|
|
124
130
|
}
|
|
125
131
|
catch (error) {
|
|
126
132
|
if (error instanceof verifyd_1.VerificationError) {
|
|
127
|
-
return
|
|
133
|
+
return handleResponse({ message: error.message }, error.code);
|
|
128
134
|
}
|
|
129
|
-
return
|
|
135
|
+
return handleResponse({ message: 'Verification error' }, 403);
|
|
130
136
|
}
|
|
131
137
|
const headers = yield _prepareHeaders({
|
|
132
138
|
generateReplacements,
|
|
@@ -182,9 +188,9 @@ const handleProxy = (serverRuntimeConfig, config) => {
|
|
|
182
188
|
// eslint-disable-next-line max-len
|
|
183
189
|
console.error(`Error handling proxy request: ${targetPath}`, (0, shared_1.cleanObject)(Object.assign({ type: error === null || error === void 0 ? void 0 : error.type, code: error === null || error === void 0 ? void 0 : error.code, name: error === null || error === void 0 ? void 0 : error.name, message: error === null || error === void 0 ? void 0 : error.message }, error === null || error === void 0 ? void 0 : error.data), false, shared_1.stringEmptyOnly));
|
|
184
190
|
if (error instanceof shared_1.ShopifySessionInvalidError) {
|
|
185
|
-
return
|
|
191
|
+
return handleResponse({ message: error.message, type: (_c = error === null || error === void 0 ? void 0 : error.type) !== null && _c !== void 0 ? _c : 'ShopifySessionInvalidError' }, (_d = error === null || error === void 0 ? void 0 : error.code) !== null && _d !== void 0 ? _d : 407);
|
|
186
192
|
}
|
|
187
|
-
return
|
|
193
|
+
return handleResponse({ message: (error === null || error === void 0 ? void 0 : error.message) || 'Error handling proxy request', targetPath }, 400);
|
|
188
194
|
}
|
|
189
195
|
});
|
|
190
196
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/proxy.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,8DAAkC;AAClC,4DAAkC;AAClC,gFAAkD;AAElD,gDAA8E;AAE9E,0CAKuB;AACvB,+CAe2B;AAE3B,MAAM,aAAa,GAAG,IAAI,CAAA,CAAC,kBAAkB;AAE7C,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;IACpE,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAC,IAAA,6BAAoB,EAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;IAEvE,OAAO,IAAA,qBAAa,EAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA;AAEM,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/proxy.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export function handleSessionToken(serverRuntimeConfig: any,
|
|
2
|
-
signingSecret: any;
|
|
3
|
-
}): (req: any, res: any) => Promise<any>;
|
|
1
|
+
export function handleSessionToken(serverRuntimeConfig: any, data: any): (req: any, res: any) => Promise<any>;
|
|
4
2
|
//# sourceMappingURL=token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/token.js"],"names":[],"mappings":"AAgBO
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/token.js"],"names":[],"mappings":"AAgBO,8GAuHN"}
|
|
@@ -28,8 +28,8 @@ const verifyd_1 = require("@agnostack/verifyd");
|
|
|
28
28
|
const utils_1 = require("../../../utils");
|
|
29
29
|
const shared_1 = require("../../../../shared");
|
|
30
30
|
// NOTE: typically handling: "/api/token"
|
|
31
|
-
const handleSessionToken = (serverRuntimeConfig,
|
|
32
|
-
|
|
31
|
+
const handleSessionToken = (serverRuntimeConfig, data) => {
|
|
32
|
+
const _a = data !== null && data !== void 0 ? data : {}, { signingSecret: _signingSecret, returnResponse = true } = _a, signingData = __rest(_a, ["signingSecret", "returnResponse"]);
|
|
33
33
|
const { APP_CONFIG } = serverRuntimeConfig !== null && serverRuntimeConfig !== void 0 ? serverRuntimeConfig : {};
|
|
34
34
|
const _getVerificationHelpers = (0, verifyd_1.getVerificationHelpers)(serverRuntimeConfig);
|
|
35
35
|
return (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -38,9 +38,15 @@ const handleSessionToken = (serverRuntimeConfig, _a = {}) => {
|
|
|
38
38
|
const _d = (_c = req.headers) !== null && _c !== void 0 ? _c : {}, { 'x-shopify-app-installation-id': shopifyAppInstallationId, 'x-shopify-app-id': shopifyAppId, 'x-app-installation-id': appInstallationId = shopifyAppInstallationId, 'x-app-id': appId = shopifyAppId,
|
|
39
39
|
// TODO: pass along providerSetId??
|
|
40
40
|
'x-client-id': clientId, 'x-shop-domain': shopDomain, 'x-shopify-shop-domain': shopifyShopDomain, 'x-shopify-shop': shop = shopifyShopDomain !== null && shopifyShopDomain !== void 0 ? shopifyShopDomain : shopDomain } = _d, headers = __rest(_d, ['x-shopify-app-installation-id', 'x-shopify-app-id', 'x-app-installation-id', 'x-app-id', 'x-client-id', 'x-shop-domain', 'x-shopify-shop-domain', 'x-shopify-shop']);
|
|
41
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
42
|
+
if (returnResponse) {
|
|
43
|
+
return res.status(statusCode).json(body);
|
|
44
|
+
}
|
|
45
|
+
return { statusCode, body };
|
|
46
|
+
};
|
|
41
47
|
// TODO: un-btoa the host and check??
|
|
42
48
|
if ((0, shared_1.stringEmpty)(shop) || (0, shared_1.stringEmpty)(host)) {
|
|
43
|
-
return
|
|
49
|
+
return handleResponse({ message: 'Missing required param' }, 412);
|
|
44
50
|
}
|
|
45
51
|
let requestBody;
|
|
46
52
|
let processResponse;
|
|
@@ -49,9 +55,9 @@ const handleSessionToken = (serverRuntimeConfig, _a = {}) => {
|
|
|
49
55
|
}
|
|
50
56
|
catch (error) {
|
|
51
57
|
if (error instanceof verifyd_1.VerificationError) {
|
|
52
|
-
return
|
|
58
|
+
return handleResponse(Object.assign({ message: error.message }, error.data), error.code);
|
|
53
59
|
}
|
|
54
|
-
return
|
|
60
|
+
return handleResponse({ message: 'Verification error' }, 403);
|
|
55
61
|
}
|
|
56
62
|
try {
|
|
57
63
|
const appClaims = Object.entries(headers).reduce((_appClaims, [headerKey, headerValue]) => (Object.assign(Object.assign({}, _appClaims), headerKey.startsWith('x-shopify-app-metafield-') && {
|
|
@@ -87,11 +93,11 @@ const handleSessionToken = (serverRuntimeConfig, _a = {}) => {
|
|
|
87
93
|
throw new Error('Error signing token');
|
|
88
94
|
}
|
|
89
95
|
const response = yield processResponse({ token });
|
|
90
|
-
return
|
|
96
|
+
return handleResponse(response);
|
|
91
97
|
}
|
|
92
98
|
catch (error) {
|
|
93
99
|
console.error('Error generating session token', error);
|
|
94
|
-
return
|
|
100
|
+
return handleResponse({ message: 'Error generating session token' }, 500);
|
|
95
101
|
}
|
|
96
102
|
});
|
|
97
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/token.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAkC;AAClC,+CAAmC;AACnC,+BAAmC;AAEnC,gDAA8E;AAE9E,0CAA6C;AAC7C,+CAM2B;AAE3B,yCAAyC;AAClC,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/token.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleWebhookEvent(serverRuntimeConfig: any,
|
|
1
|
+
export function handleWebhookEvent(serverRuntimeConfig: any, data: any): (req: any, res: any, data: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/webhook.js"],"names":[],"mappings":"AAcO,
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/webhook.js"],"names":[],"mappings":"AAcO,yHAiHN"}
|
|
@@ -25,22 +25,29 @@ const verifyd_1 = require("@agnostack/verifyd");
|
|
|
25
25
|
const utils_1 = require("../../utils");
|
|
26
26
|
const shared_1 = require("../../../shared");
|
|
27
27
|
// NOTE: typically handling: "/api/webhooks/event" or "/api/webhooks/event/{appId}" or "/api/webhooks/event?appId={appId}"
|
|
28
|
-
const handleWebhookEvent = (serverRuntimeConfig,
|
|
28
|
+
const handleWebhookEvent = (serverRuntimeConfig, data) => {
|
|
29
29
|
const { ORIGIN_SAFELIST, WEBHOOK_TOPIC_BLOCKLIST } = serverRuntimeConfig;
|
|
30
|
+
const _a = data !== null && data !== void 0 ? data : {}, { returnResponse = true } = _a, config = __rest(_a, ["returnResponse"]);
|
|
30
31
|
return (req, res, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
-
var
|
|
32
|
+
var _b;
|
|
33
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
34
|
+
if (returnResponse) {
|
|
35
|
+
return res.status(statusCode).json(body);
|
|
36
|
+
}
|
|
37
|
+
return { statusCode, body };
|
|
38
|
+
};
|
|
32
39
|
try {
|
|
33
|
-
const
|
|
40
|
+
const _c = (_b = req.headers) !== null && _b !== void 0 ? _b : {}, { 'x-shop-domain': shopDomain, 'x-shopify-shop-domain': shopifyShopDomain, 'x-shopify-shop': shop = shopifyShopDomain !== null && shopifyShopDomain !== void 0 ? shopifyShopDomain : shopDomain } = _c, _headers = __rest(_c, ['x-shop-domain', 'x-shopify-shop-domain', 'x-shopify-shop']);
|
|
34
41
|
if ((0, shared_1.stringEmpty)(shop)) {
|
|
35
|
-
return
|
|
42
|
+
return handleResponse({ handler: 'webhook', error: 'Missing shop' });
|
|
36
43
|
}
|
|
37
44
|
if (!(0, shared_1.matchHostname)(shop, ORIGIN_SAFELIST)) {
|
|
38
|
-
return
|
|
45
|
+
return handleResponse({ handler: 'webhook', error: 'Shop is not safelisted' });
|
|
39
46
|
}
|
|
40
47
|
const { shopify } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
41
48
|
// TODO: explore getVerificationHelpers?
|
|
42
49
|
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
43
|
-
const
|
|
50
|
+
const _d = (serverRuntimeConfig.SHOPIFY_RUN_MODE === 'cli') ? {
|
|
44
51
|
valid: true,
|
|
45
52
|
topic: _headers['x-shopify-topic'],
|
|
46
53
|
domain: _headers['x-shopify-shop-domain'] || shop,
|
|
@@ -50,10 +57,10 @@ const handleWebhookEvent = (serverRuntimeConfig, config) => {
|
|
|
50
57
|
rawBody,
|
|
51
58
|
rawRequest: req,
|
|
52
59
|
rawResponse: res,
|
|
53
|
-
})), { valid } =
|
|
60
|
+
})), { valid } = _d, message = __rest(_d, ["valid"]);
|
|
54
61
|
if (!valid) {
|
|
55
62
|
console.warn('Unable to validate webhook', message);
|
|
56
|
-
return
|
|
63
|
+
return handleResponse({ handler: 'webhook', error: 'Unable to validate webhook', message });
|
|
57
64
|
}
|
|
58
65
|
try {
|
|
59
66
|
const { topic, domain, webhookId, apiVersion } = message;
|
|
@@ -62,7 +69,7 @@ const handleWebhookEvent = (serverRuntimeConfig, config) => {
|
|
|
62
69
|
if (!shared_1.API_WEBHOOK_TOPICS_IMMUTABLE.includes(eventType) &&
|
|
63
70
|
((0, shared_1.stringEmpty)(eventShop) ||
|
|
64
71
|
((WEBHOOK_TOPIC_BLOCKLIST === 'ALL') || (0, shared_1.splitCommas)(WEBHOOK_TOPIC_BLOCKLIST).includes(eventShop)))) {
|
|
65
|
-
return
|
|
72
|
+
return handleResponse({ handler: 'webhook', message: 'blocked' });
|
|
66
73
|
}
|
|
67
74
|
const eventBody = (0, shared_1.safeParse)(rawBody);
|
|
68
75
|
// NOTE: this callback signature matches the built in callback option PLUS data
|
|
@@ -86,16 +93,16 @@ const handleWebhookEvent = (serverRuntimeConfig, config) => {
|
|
|
86
93
|
];
|
|
87
94
|
}, []);
|
|
88
95
|
yield Promise.all([...topicHandlePromises, ...registrationHandlePromises]);
|
|
89
|
-
return
|
|
96
|
+
return handleResponse({ handler: 'webhook', message: 'success' });
|
|
90
97
|
}
|
|
91
98
|
catch (error) {
|
|
92
99
|
console.error('Error handling webhook promises', error);
|
|
93
|
-
return
|
|
100
|
+
return handleResponse({ handler: 'webhook', error: error === null || error === void 0 ? void 0 : error.message });
|
|
94
101
|
}
|
|
95
102
|
}
|
|
96
103
|
catch (error) {
|
|
97
104
|
console.error('Error handling webhook', error);
|
|
98
|
-
return
|
|
105
|
+
return handleResponse({ handler: 'webhook', error: 'Error handling webhook' });
|
|
99
106
|
}
|
|
100
107
|
});
|
|
101
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/webhook.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAQwB;AAExB,0HAA0H;AACnH,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../../src/lib/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": "2.1.1-beta.
|
|
3
|
+
"version": "2.1.1-beta.2",
|
|
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",
|