@agnostack/next-shopify 2.1.1-alpha.9 → 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.
Files changed (44) hide show
  1. package/CHANGELOG.md +12 -39
  2. package/dist/lib/handlers/api/auth.d.ts +1 -1
  3. package/dist/lib/handlers/api/auth.d.ts.map +1 -1
  4. package/dist/lib/handlers/api/auth.js +10 -3
  5. package/dist/lib/handlers/api/auth.js.map +1 -1
  6. package/dist/lib/handlers/api/billing.d.ts +1 -1
  7. package/dist/lib/handlers/api/billing.d.ts.map +1 -1
  8. package/dist/lib/handlers/api/billing.js +52 -43
  9. package/dist/lib/handlers/api/billing.js.map +1 -1
  10. package/dist/lib/handlers/api/callback.d.ts +1 -1
  11. package/dist/lib/handlers/api/callback.d.ts.map +1 -1
  12. package/dist/lib/handlers/api/callback.js +11 -4
  13. package/dist/lib/handlers/api/callback.js.map +1 -1
  14. package/dist/lib/handlers/api/uninstall.d.ts +1 -1
  15. package/dist/lib/handlers/api/uninstall.d.ts.map +1 -1
  16. package/dist/lib/handlers/api/uninstall.js +42 -32
  17. package/dist/lib/handlers/api/uninstall.js.map +1 -1
  18. package/dist/lib/handlers/api/verifiable/appInstallation.d.ts +1 -1
  19. package/dist/lib/handlers/api/verifiable/appInstallation.d.ts.map +1 -1
  20. package/dist/lib/handlers/api/verifiable/appInstallation.js +10 -3
  21. package/dist/lib/handlers/api/verifiable/appInstallation.js.map +1 -1
  22. package/dist/lib/handlers/api/verifiable/graph.d.ts +1 -1
  23. package/dist/lib/handlers/api/verifiable/graph.d.ts.map +1 -1
  24. package/dist/lib/handlers/api/verifiable/graph.js +15 -8
  25. package/dist/lib/handlers/api/verifiable/graph.js.map +1 -1
  26. package/dist/lib/handlers/api/verifiable/proxy.d.ts +1 -1
  27. package/dist/lib/handlers/api/verifiable/proxy.d.ts.map +1 -1
  28. package/dist/lib/handlers/api/verifiable/proxy.js +16 -10
  29. package/dist/lib/handlers/api/verifiable/proxy.js.map +1 -1
  30. package/dist/lib/handlers/api/verifiable/token.d.ts +1 -3
  31. package/dist/lib/handlers/api/verifiable/token.d.ts.map +1 -1
  32. package/dist/lib/handlers/api/verifiable/token.js +13 -7
  33. package/dist/lib/handlers/api/verifiable/token.js.map +1 -1
  34. package/dist/lib/handlers/api/webhook.d.ts +1 -1
  35. package/dist/lib/handlers/api/webhook.d.ts.map +1 -1
  36. package/dist/lib/handlers/api/webhook.js +19 -12
  37. package/dist/lib/handlers/api/webhook.js.map +1 -1
  38. package/dist/lib/handlers/ssr/protect.d.ts.map +1 -1
  39. package/dist/lib/handlers/ssr/protect.js +4 -24
  40. package/dist/lib/handlers/ssr/protect.js.map +1 -1
  41. package/dist/lib/utils/session.d.ts.map +1 -1
  42. package/dist/lib/utils/session.js +68 -60
  43. package/dist/lib/utils/session.js.map +1 -1
  44. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,57 +1,30 @@
1
- ## [2.1.1-alpha.9](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.8...v2.1.1-alpha.9) (2024-11-01)
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
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * wip ensure online session ([e3dbd45](https://github.com/agnostack/next-shopify/commit/e3dbd45d406002d939680a3cb164f3683c4fbdd1))
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))
7
10
 
8
- ## [2.1.1-alpha.8](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.7...v2.1.1-alpha.8) (2024-11-01)
11
+ ## [2.1.1-beta.1](https://github.com/agnostack/next-shopify/compare/v2.1.0...v2.1.1-beta.1) (2024-11-04)
9
12
 
10
13
 
11
14
  ### Bug Fixes
12
15
 
16
+ * added TODO ([2959ef9](https://github.com/agnostack/next-shopify/commit/2959ef9ddf7f1903462686a9574dfc031e91b2ca))
17
+ * cleanup ([58a14a0](https://github.com/agnostack/next-shopify/commit/58a14a0a57839f10554b090854305a92da6ae1d1))
18
+ * removed early return if idToken ([5de2514](https://github.com/agnostack/next-shopify/commit/5de25146a91729f494f5472c925d16363bb2e43c))
19
+ * reordered decryptVerifyData, added TODOs ([4e4e59d](https://github.com/agnostack/next-shopify/commit/4e4e59d0825ce9a84131bd47ab83cb14e73d28b3))
20
+ * wip ensure online session ([48d7bed](https://github.com/agnostack/next-shopify/commit/48d7bed9b0149a32849bd0843e5fa724537f985b))
21
+ * wip ensure online session ([e3dbd45](https://github.com/agnostack/next-shopify/commit/e3dbd45d406002d939680a3cb164f3683c4fbdd1))
13
22
  * wip ensure online session ([e0af5d9](https://github.com/agnostack/next-shopify/commit/e0af5d96fafa0da945892c42239d82dd02922725))
14
-
15
- ## [2.1.1-alpha.7](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.6...v2.1.1-alpha.7) (2024-11-01)
16
-
17
-
18
- ### Bug Fixes
19
-
20
23
  * wip ensure online session ([fd0027e](https://github.com/agnostack/next-shopify/commit/fd0027efa22349db8b1e6ea74154e30ac6a1e768))
21
-
22
- ## [2.1.1-alpha.6](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.5...v2.1.1-alpha.6) (2024-11-01)
23
-
24
-
25
- ### Bug Fixes
26
-
27
24
  * wip ensure online session ([8bab4d4](https://github.com/agnostack/next-shopify/commit/8bab4d4492617d8dde6ce021f87e36fe1f14c530))
28
-
29
- ## [2.1.1-alpha.5](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.4...v2.1.1-alpha.5) (2024-11-01)
30
-
31
-
32
- ### Bug Fixes
33
-
34
25
  * wip ensure online session ([25d66a5](https://github.com/agnostack/next-shopify/commit/25d66a5b473c1e3dc6cb2becbc2329ef412213d9))
35
-
36
- ## [2.1.1-alpha.4](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.3...v2.1.1-alpha.4) (2024-11-01)
37
-
38
-
39
- ### Bug Fixes
40
-
41
26
  * wip ensure online session ([2cb27f1](https://github.com/agnostack/next-shopify/commit/2cb27f15cf2f594f1504679eccccbc8ed866f6a1))
42
-
43
- ## [2.1.1-alpha.3](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.2...v2.1.1-alpha.3) (2024-11-01)
44
-
45
-
46
- ### Bug Fixes
47
-
48
27
  * wip ensure online session ([205b049](https://github.com/agnostack/next-shopify/commit/205b0495fa7bf53686465fda3e79d632e822b274))
49
-
50
- ## [2.1.1-alpha.2](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.1...v2.1.1-alpha.2) (2024-11-01)
51
-
52
-
53
- ### Bug Fixes
54
-
55
28
  * wip ensure online session ([9d05c9d](https://github.com/agnostack/next-shopify/commit/9d05c9d41c56608fdfbba47c95adc6a65a776855))
56
29
 
57
30
  ## [2.1.1-alpha.1](https://github.com/agnostack/next-shopify/compare/v2.1.0...v2.1.1-alpha.1) (2024-10-28)
@@ -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,wGAgDN"}
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 res.redirect(`${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.ERROR]}?code=no_shop_provided&type=handleAuth`);
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 res.redirect(`${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.EXIT]}?${queryParams}`);
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;IAChD,MAAM,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,GACX,GAAG,mBAAmB,CAAA;IAEvB,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,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;SACnG;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,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,yBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;SAC3E;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;AAhDY,QAAA,UAAU,cAgDtB"}
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,iGAyDN"}
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) => (req, res) => __awaiter(void 0, void 0, void 0, function* () {
34
- var _a, _b;
35
- try {
36
- 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 : {};
37
- if ((0, shared_1.stringEmpty)(shop)) {
38
- return res.status(200).json({ handler: 'billing', error: 'Missing shop' });
39
- }
40
- const { shopify, loadSession, updateSession, getVerifiedClients } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
41
- // TODO: explore getVerificationHelpers?
42
- const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
43
- const _c = yield shopify.webhooks.validate({
44
- rawBody,
45
- rawRequest: req,
46
- rawResponse: res,
47
- }), { valid } = _c, webhookCheck = __rest(_c, ["valid"]);
48
- if (valid) {
49
- try {
50
- let message = 'ignored';
51
- const [eventType, { status } = {}] = Object.entries((0, shared_1.safeParse)(rawBody || '{}'))[0];
52
- if ((eventType === shared_1.BILLING_EVENT_TYPES.SUBSCRIPTION) && TERMINAL_STATUSES.includes(status)) {
53
- const { Rest } = (_b = yield getVerifiedClients()) !== null && _b !== void 0 ? _b : {};
54
- // NOTE: this deletes the app in the case of subscription apps in a "terminal" state to cover the info in ShopifyApi docs for billing:
55
- // "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."
56
- yield Rest.delete({
57
- path: '/admin/api_permissions/current.json',
58
- });
59
- message = 'deleted';
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
- if ((serverRuntimeConfig.SHOPIFY_RUN_MODE === 'review') && !TERMINAL_STATUSES.includes(status)) {
62
- const { id: sessionId } = yield loadSession();
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
- console.warn('Unable to validate billing webhook', webhookCheck);
73
- return res.status(200).json({ handler: 'billing', error: 'Unable to validate billing webhook' });
74
- }
75
- catch (error) {
76
- console.error('Error handling billing', error);
77
- return res.status(200).json({ handler: 'billing', error: 'Error handling billing' });
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":"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"}
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,4GA6JN"}
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 res.redirect(303, `${errorPath}?code=${shared_1.ERROR_CODES.INVALID_CALLBACK}`);
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 res.redirect(302, `${API_PATHS[shared_1.API_ROUTE_NAMES.AUTH_OFFLINE]}?${queryParams}`);
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 res.redirect(302, redirectUrl);
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;IACpD,MAAM,EACJ,SAAS,EACT,UAAU,EACV,cAAc,GACf,GAAG,mBAAmB,CAAA;IACvB,MAAM,sBAAsB,GAAG,IAAA,iCAAyB,EAAC,mBAAmB,CAAC,CAAA;IAE7E,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;;QAChC,MAAM,SAAS,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QACzC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,CAAA;QAC7C,MAAM,WAAW,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAA;QAEzD,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;YAC1C,+DAA+D;YAC/D,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,SAAS,SAAS,oBAAW,CAAC,gBAAgB,EAAE,CAAC,CAAA;SAC9E;QAED,IAAI,WAAW,GAAG,GAAG,SAAS,iCAAiC,CAAA;QAC/D,IAAI,OAAO,CAAA;QAEX,IAAI;YACF,MAAM,EACJ,OAAO,EAAE,QAAQ,EACjB,WAAW,EACX,YAAY,EAAE,mBAAmB,EACjC,aAAa,EAAE,mBAAmB,GACnC,GAAG,MAAM,IAAA,yBAAiB,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1D,OAAO,GAAG,QAAQ,CAAA;YAElB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YACtE,MAAM,OAAO,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAE,CAAA;YAEpC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,wBAAe,CAAC,YAAY,CAAC,CAAC,CAAA;YACtF,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAA,eAAM,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAe,CAAC,YAAY,CAAC,CAAC,CAAA;YACvG,MAAM,kBAAkB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAA;YAEnD,kHAAkH;YAClH,IAAI,QAAQ,IAAI,CAAC,kBAAkB,EAAE;gBACnC,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAA;aACnC;YAED,kHAAkH;YAClH,IAAI,wBAAwB,EAAE;gBAC5B,oCAAoC;gBACpC,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAClG,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,wBAAe,CAAC,YAAY,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;aACtF;YAED,IAAI,sBAAsB,EAAE;gBAC1B,IAAI,KAAK,CAAA;gBACT,IAAI;oBACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,EAAE,CAAA;oBACvC,KAAK,GAAG,IAAA,2BAAkB,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC,CAAC,EAAE,CAAA;oBAC5C,oCAAoC;iBACnC;gBAAC,OAAO,OAAO,EAAE;oBAChB,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAA;iBACxD;gBAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;gBAC7C,gIAAgI;gBAChI,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;aAC7C;YAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;YACxE,+CAA+C;YAC/C,WAAW,GAAG,GAAG,cAAc,GAAG,IAAA,2BAAkB,EAAC,UAAU,CAAC,yBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAA;YAE5F,IAAI,kBAAkB,EAAE;gBACtB,4GAA4G;gBAC5G,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;gBAEtE,IAAI,IAAA,uBAAc,EAAC,eAAe,CAAC,EAAE;oBACnC,WAAW,GAAG,eAAe,CAAA;iBAC9B;aACF;YAED,kEAAkE;YAClE,qEAAqE;YACrE,WAAW,GAAG,IAAA,oBAAW,EAAC,WAAW,EAAE,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;SAClF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YACrD,MAAM,YAAY,GAAG,+BAA+B,CAAA;YAEpD,IAAI,YAAY,GAAG,SAAS,CAAA;YAC5B,IAAI,OAAO,EAAE;gBACX,IAAI;oBACF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;oBACxE,IAAI,IAAA,uBAAc,EAAC,cAAc,CAAC,EAAE;wBAClC,YAAY,GAAG,GAAG,cAAc,GAAG,IAAA,2BAAkB,EAAC,SAAS,CAAC,EAAE,CAAA;qBACnE;oBACH,oCAAoC;iBACnC;gBAAC,OAAO,OAAO,EAAE,GAAE;aACrB;YAED,QAAQ,IAAI,EAAE;gBACZ,gDAAgD;gBAChD,KAAK,KAAK,YAAY,8BAAgB,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBAEnE,kBAAkB;oBAClB,MAAM,cAAc,GAAG,SAAS,CAAC,wBAAe,CAAC,WAAW,CAAC,CAAA;oBAC7D,MAAM,QAAQ,GAAG,QAAQ;wBACvB,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,SAAS,CAAC,wBAAe,CAAC,YAAY,CAAC,IAAI,cAAc,CAAA;oBAE7D,oCAAoC;oBACpC,MAAM,WAAW,GAAG,IAAI,eAAe,iBAAG,IAAI,EAAE,IAAI,IAAK,KAAK,IAAI,EAAE,KAAK,EAAE,EAAG,CAAC,QAAQ,EAAE,CAAA;oBACzF,WAAW,GAAG,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAA;oBAC1C,MAAK;iBACN;gBAED,KAAK,KAAK,YAAY,4BAAc,CAAC,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,uEAAuE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;oBAEnH,kBAAkB;oBAClB,MAAM,cAAc,GAAG,SAAS,CAAC,wBAAe,CAAC,WAAW,CAAC,CAAA;oBAC7D,MAAM,QAAQ,GAAG,QAAQ;wBACvB,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,SAAS,CAAC,wBAAe,CAAC,YAAY,CAAC,IAAI,cAAc,CAAA;oBAE7D,oCAAoC;oBACpC,MAAM,WAAW,GAAG,IAAI,eAAe,iBAAG,IAAI,EAAE,IAAI,IAAK,KAAK,IAAI,EAAE,KAAK,EAAE,EAAG,CAAC,QAAQ,EAAE,CAAA;oBACzF,WAAW,GAAG,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAA;oBAC1C,MAAK;iBACN;gBAED,KAAK,KAAK,YAAY,0BAAY,CAAC,CAAC;oBAClC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,mBAAmB,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;oBACjF,WAAW,GAAG,GAAG,YAAY,SAAS,oBAAW,CAAC,OAAO,EAAE,CAAA;oBAC3D,MAAK;iBACN;gBAED,KAAK,KAAK,YAAY,+BAAiB,CAAC,CAAC;oBACvC,MAAM,aAAa,GAAG,IAAA,oBAAW,EAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAA,qBAAY,EAAC,OAAO,CAAC,CAAC,CAAA;oBACrG,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,wBAAwB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBAChF,WAAW,GAAG,GAAG,YAAY,SAAS,oBAAW,CAAC,KAAK,EAAE,CAAA;oBACzD,MAAK;iBACN;gBAED,KAAK,KAAK,YAAY,+BAAiB,CAAC,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,sBAAsB,EAAE,KAAK,CAAC,CAAA;oBAC3D,WAAW,GAAG,GAAG,YAAY,SAAS,oBAAW,CAAC,KAAK,EAAE,CAAA;oBACzD,MAAK;iBACN;gBAED,OAAO,CAAC,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;oBAClC,WAAW,GAAG,GAAG,YAAY,SAAS,oBAAW,CAAC,QAAQ,EAAE,CAAA;iBAC7D;aACF;SACF;QAED,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACvC,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AA7JY,QAAA,cAAc,kBA6J1B"}
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,qGAwCN"}
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) => (req, res) => __awaiter(void 0, void 0, void 0, function* () {
29
- var _a;
30
- try {
31
- 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 : {};
32
- if ((0, shared_1.stringEmpty)(shop)) {
33
- return res.status(200).json({ handler: 'uninstall', error: 'Missing shop' });
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
- catch (error) {
52
- return res.status(200).json({ handler: 'uninstall', error: error === null || error === void 0 ? void 0 : error.message });
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
- console.warn('Unable to validate uninstall webhook', webhookCheck);
56
- return res.status(200).json({ handler: 'uninstall', error: 'Unable to validate uninstall webhook' });
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,CAAC,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;;IAC9E,IAAI;QACF,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;QAErB,IAAI,IAAA,oBAAW,EAAC,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,IAAA,yBAAiB,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1G,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAA;QACxC,MAAM,KAA6B,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjE,OAAO;YACP,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,IAAA,sBAAa,EAAC,WAAW,CAAC,EAAE;oBAC9B,MAAM,cAAc,CAAC,WAAW,CAAC,CAAA;iBAClC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;aAC1E;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,CAAA;AAxCY,QAAA,oBAAoB,wBAwChC"}
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,uHAgBN"}
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 res.status(412).json({ message: 'Missing required param' });
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;IAC/D,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,mBAAmB,CAAC,CAAA;IAErD,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QAE9B,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;SACnE;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;AAhBY,QAAA,yBAAyB,6BAgBrC"}
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,yGAuIN"}
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 res.status(error.code).json(Object.assign({ message: error.message }, error.data));
46
+ return handleResponse(Object.assign({ message: error.message }, error.data), error.code);
40
47
  }
41
- return res.status(403).json({ message: 'Verification error' });
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 res.status(400).json({ message: 'Invalid arguments' });
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 res.status(statusCode).json({ message });
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 res.status(500).json({ message: `${message}. ${errorMessages.join('. ')}.` });
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 res.status(statusCode).json(yield processResponse(transform(responseData, responseBody)));
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 res.status(500).json({ message });
138
+ return handleResponse({ message }, 500);
132
139
  }
133
140
  });
134
141
  };