@agnostack/next-shopify 2.1.1-alpha.3 → 2.1.1-alpha.30

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 (51) hide show
  1. package/CHANGELOG.md +83 -6
  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 +12 -5
  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 +0 -2
  39. package/dist/lib/handlers/ssr/protect.d.ts.map +1 -1
  40. package/dist/lib/handlers/ssr/protect.js +34 -88
  41. package/dist/lib/handlers/ssr/protect.js.map +1 -1
  42. package/dist/lib/utils/session.d.ts +3 -3
  43. package/dist/lib/utils/session.d.ts.map +1 -1
  44. package/dist/lib/utils/session.js +105 -90
  45. package/dist/lib/utils/session.js.map +1 -1
  46. package/dist/lib/utils/shopify-api-js/oauth.js +1 -1
  47. package/dist/shared/shopify.d.ts +1 -0
  48. package/dist/shared/shopify.d.ts.map +1 -1
  49. package/dist/shared/shopify.js +4 -1
  50. package/dist/shared/shopify.js.map +1 -1
  51. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,23 +1,100 @@
1
- ## [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)
1
+ ## [2.1.1-alpha.30](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.29...v2.1.1-alpha.30) (2024-11-07)
2
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * wip ensure online session ([205b049](https://github.com/agnostack/next-shopify/commit/205b0495fa7bf53686465fda3e79d632e822b274))
6
+ * debug ([e580c5f](https://github.com/agnostack/next-shopify/commit/e580c5feece2ff717e8da37a5a7e5f36562277c0))
7
7
 
8
- ## [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)
8
+ ## [2.1.1-alpha.29](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.28...v2.1.1-alpha.29) (2024-11-07)
9
9
 
10
10
 
11
11
  ### Bug Fixes
12
12
 
13
- * wip ensure online session ([9d05c9d](https://github.com/agnostack/next-shopify/commit/9d05c9d41c56608fdfbba47c95adc6a65a776855))
13
+ * debug ([feeca33](https://github.com/agnostack/next-shopify/commit/feeca33b83ace12584fa3526874c98e0c3ab35b8))
14
14
 
15
- ## [2.1.1-alpha.1](https://github.com/agnostack/next-shopify/compare/v2.1.0...v2.1.1-alpha.1) (2024-10-28)
15
+ ## [2.1.1-alpha.28](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.27...v2.1.1-alpha.28) (2024-11-07)
16
16
 
17
17
 
18
18
  ### Bug Fixes
19
19
 
20
- * added TODO ([2959ef9](https://github.com/agnostack/next-shopify/commit/2959ef9ddf7f1903462686a9574dfc031e91b2ca))
20
+ * debug ([63160c1](https://github.com/agnostack/next-shopify/commit/63160c13b9c1fd1985f7a4ebf294b6c5f6d94063))
21
+
22
+ ## [2.1.1-alpha.27](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.26...v2.1.1-alpha.27) (2024-11-07)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * debug ([a36ca02](https://github.com/agnostack/next-shopify/commit/a36ca0264096ab8f3f39d23ee2f4f688eecd924b))
28
+
29
+ ## [2.1.1-alpha.26](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.25...v2.1.1-alpha.26) (2024-11-07)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * debug ([37ca8cb](https://github.com/agnostack/next-shopify/commit/37ca8cbd297f716a28386b8abcf3e85968f0f3f5))
35
+
36
+ ## [2.1.1-alpha.25](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.24...v2.1.1-alpha.25) (2024-11-07)
37
+
38
+
39
+ ### Bug Fixes
40
+
41
+ * debug ([2ecc57d](https://github.com/agnostack/next-shopify/commit/2ecc57de2972abaf1f99fe1823c2873fa8bc3cbc))
42
+
43
+ ## [2.1.1-alpha.24](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.23...v2.1.1-alpha.24) (2024-11-07)
44
+
45
+
46
+ ### Bug Fixes
47
+
48
+ * debug ([3930d28](https://github.com/agnostack/next-shopify/commit/3930d281f615688eb6566f6da3b7df468c70eda6))
49
+
50
+ ## [2.1.1-alpha.23](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.22...v2.1.1-alpha.23) (2024-11-07)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * debug ([ce11c51](https://github.com/agnostack/next-shopify/commit/ce11c51a307e7acc58a72add1a575e3d8b1edcde))
56
+
57
+ ## [2.1.1-alpha.22](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.21...v2.1.1-alpha.22) (2024-11-07)
58
+
59
+
60
+ ### Bug Fixes
61
+
62
+ * debug ([5c7388e](https://github.com/agnostack/next-shopify/commit/5c7388e05d6a47a6666d51001cbc8256a2bdf3be))
63
+
64
+ ## [2.1.1-alpha.21](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.20...v2.1.1-alpha.21) (2024-11-07)
65
+
66
+
67
+ ### Bug Fixes
68
+
69
+ * debug ([17f09d7](https://github.com/agnostack/next-shopify/commit/17f09d731effddedd0c60299de61fba41a0ae3ce))
70
+
71
+ ## [2.1.1-alpha.20](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.19...v2.1.1-alpha.20) (2024-11-06)
72
+
73
+
74
+ ### Bug Fixes
75
+
76
+ * debug ([3ade098](https://github.com/agnostack/next-shopify/commit/3ade098dc2ee051e04ab07fd63de6cbd6444443c))
77
+
78
+ ## [2.1.1-alpha.19](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.18...v2.1.1-alpha.19) (2024-11-06)
79
+
80
+
81
+ ### Bug Fixes
82
+
83
+ * debug ([c9ed2ae](https://github.com/agnostack/next-shopify/commit/c9ed2ae8ffdb9e5ef2f9e2229e0436b213d645aa))
84
+
85
+ ## [2.1.1-alpha.18](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.17...v2.1.1-alpha.18) (2024-11-06)
86
+
87
+
88
+ ### Bug Fixes
89
+
90
+ * debug ([c28f662](https://github.com/agnostack/next-shopify/commit/c28f66229f57754c07a80b4bf0fce8ec49f598bf))
91
+
92
+ ## [2.1.1-alpha.17](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.16...v2.1.1-alpha.17) (2024-11-06)
93
+
94
+
95
+ ### Bug Fixes
96
+
97
+ * updated changelog ([6325f61](https://github.com/agnostack/next-shopify/commit/6325f614045cd38af72a1f34a0ebe27425bcb250))
21
98
 
22
99
  # [2.1.0](https://github.com/agnostack/next-shopify/compare/v2.0.14...v2.1.0) (2024-10-28)
23
100
 
@@ -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 = 307) => {
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 = 307) => {
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
- // 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}`);
39
+ // HMMM: why is this a 303 (rather than a 302/307 or or anything)??
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":"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"}
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"}