@agnostack/next-shopify 1.14.1 → 1.15.0-beta.1
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 +7 -0
- package/dist/lib/handlers/api/auth.js +11 -15
- package/dist/lib/handlers/api/auth.js.map +1 -1
- package/dist/lib/handlers/api/billing.d.ts.map +1 -1
- package/dist/lib/handlers/api/billing.js +9 -12
- package/dist/lib/handlers/api/billing.js.map +1 -1
- package/dist/lib/handlers/api/callback.js +33 -37
- package/dist/lib/handlers/api/callback.js.map +1 -1
- package/dist/lib/handlers/api/index.js +7 -25
- package/dist/lib/handlers/api/index.js.map +1 -1
- package/dist/lib/handlers/api/uninstall.d.ts.map +1 -1
- package/dist/lib/handlers/api/uninstall.js +8 -11
- package/dist/lib/handlers/api/uninstall.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.js +7 -11
- package/dist/lib/handlers/api/verifiable/appInstallation.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/graph.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/graph.js +22 -25
- package/dist/lib/handlers/api/verifiable/graph.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/index.js +5 -21
- package/dist/lib/handlers/api/verifiable/index.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.js +32 -38
- package/dist/lib/handlers/api/verifiable/proxy.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/rest.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/rest.js +19 -22
- package/dist/lib/handlers/api/verifiable/rest.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/token.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/token.js +23 -26
- package/dist/lib/handlers/api/verifiable/token.js.map +1 -1
- package/dist/lib/handlers/api/webhook.d.ts.map +1 -1
- package/dist/lib/handlers/api/webhook.js +9 -12
- package/dist/lib/handlers/api/webhook.js.map +1 -1
- package/dist/lib/handlers/index.js +2 -18
- package/dist/lib/handlers/index.js.map +1 -1
- package/dist/lib/handlers/ssr/index.js +2 -18
- package/dist/lib/handlers/ssr/index.js.map +1 -1
- package/dist/lib/handlers/ssr/protect.js +17 -24
- package/dist/lib/handlers/ssr/protect.js.map +1 -1
- package/dist/lib/handlers/ssr/wrap.js +6 -10
- package/dist/lib/handlers/ssr/wrap.js.map +1 -1
- package/dist/lib/index.js +4 -25
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/utils/billing.js +18 -23
- package/dist/lib/utils/billing.js.map +1 -1
- package/dist/lib/utils/crypto.js +15 -25
- package/dist/lib/utils/crypto.js.map +1 -1
- package/dist/lib/utils/firebase.js +17 -29
- package/dist/lib/utils/firebase.js.map +1 -1
- package/dist/lib/utils/headers.js +6 -13
- package/dist/lib/utils/headers.js.map +1 -1
- package/dist/lib/utils/index.js +10 -26
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/rawbody.js +3 -10
- package/dist/lib/utils/rawbody.js.map +1 -1
- package/dist/lib/utils/session.js +59 -64
- package/dist/lib/utils/session.js.map +1 -1
- package/dist/lib/utils/shopify-api-js/oauth.js +16 -23
- package/dist/lib/utils/shopify-api-js/oauth.js.map +1 -1
- package/dist/lib/utils/shopify.js +25 -37
- package/dist/lib/utils/shopify.js.map +1 -1
- package/dist/lib/utils/token.d.ts +1 -1
- package/dist/lib/utils/token.js +11 -15
- package/dist/lib/utils/token.js.map +1 -1
- package/dist/lib/utils/verification.js +17 -21
- package/dist/lib/utils/verification.js.map +1 -1
- package/dist/lib/withShopify.js +77 -81
- package/dist/lib/withShopify.js.map +1 -1
- package/dist/react/hooks/index.js +1 -17
- package/dist/react/hooks/index.js.map +1 -1
- package/dist/react/hooks/useVerification.js +7 -11
- package/dist/react/hooks/useVerification.js.map +1 -1
- package/dist/react/index.js +1 -17
- package/dist/react/index.js.map +1 -1
- package/dist/runtime/index.js +1 -17
- package/dist/runtime/index.js.map +1 -1
- package/dist/shared/constants.js +11 -15
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/datetime.js +83 -110
- package/dist/shared/datetime.js.map +1 -1
- package/dist/shared/display.js +154 -236
- package/dist/shared/display.js.map +1 -1
- package/dist/shared/errors.js +6 -14
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/graph.js +11 -14
- package/dist/shared/graph.js.map +1 -1
- package/dist/shared/index.js +10 -26
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/match.js +17 -25
- package/dist/shared/match.js.map +1 -1
- package/dist/shared/request.js +10 -15
- package/dist/shared/request.js.map +1 -1
- package/dist/shared/shopify.d.ts +1 -1
- package/dist/shared/shopify.js +24 -35
- package/dist/shared/shopify.js.map +1 -1
- package/dist/shared/subtlecrypto.js +13 -39
- package/dist/shared/subtlecrypto.js.map +1 -1
- package/dist/shared/verification.js +23 -29
- package/dist/shared/verification.js.map +1 -1
- package/dist/umd/lib/handlers/api/auth.d.ts +2 -0
- package/dist/umd/lib/handlers/api/auth.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/billing.d.ts +2 -0
- package/dist/umd/lib/handlers/api/billing.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/callback.d.ts +2 -0
- package/dist/umd/lib/handlers/api/callback.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/index.d.ts +10 -0
- package/dist/umd/lib/handlers/api/index.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/types.d.ts +1 -0
- package/dist/umd/lib/handlers/api/types.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/uninstall.d.ts +2 -0
- package/dist/umd/lib/handlers/api/uninstall.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/verifiable/appInstallation.d.ts +2 -0
- package/dist/umd/lib/handlers/api/verifiable/appInstallation.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/verifiable/graph.d.ts +2 -0
- package/dist/umd/lib/handlers/api/verifiable/graph.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/verifiable/index.d.ts +6 -0
- package/dist/umd/lib/handlers/api/verifiable/index.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/verifiable/proxy.d.ts +2 -0
- package/dist/umd/lib/handlers/api/verifiable/proxy.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/verifiable/rest.d.ts +2 -0
- package/dist/umd/lib/handlers/api/verifiable/rest.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/verifiable/token.d.ts +4 -0
- package/dist/umd/lib/handlers/api/verifiable/token.d.ts.map +1 -0
- package/dist/umd/lib/handlers/api/webhook.d.ts +2 -0
- package/dist/umd/lib/handlers/api/webhook.d.ts.map +1 -0
- package/dist/umd/lib/handlers/index.d.ts +3 -0
- package/dist/umd/lib/handlers/index.d.ts.map +1 -0
- package/dist/umd/lib/handlers/ssr/index.d.ts +3 -0
- package/dist/umd/lib/handlers/ssr/index.d.ts.map +1 -0
- package/dist/umd/lib/handlers/ssr/protect.d.ts +16 -0
- package/dist/umd/lib/handlers/ssr/protect.d.ts.map +1 -0
- package/dist/umd/lib/handlers/ssr/types.d.ts +1 -0
- package/dist/umd/lib/handlers/ssr/types.d.ts.map +1 -0
- package/dist/umd/lib/handlers/ssr/wrap.d.ts +9 -0
- package/dist/umd/lib/handlers/ssr/wrap.d.ts.map +1 -0
- package/dist/umd/lib/handlers/types.d.ts +1 -0
- package/dist/umd/lib/handlers/types.d.ts.map +1 -0
- package/dist/umd/lib/index.d.ts +5 -0
- package/dist/umd/lib/index.d.ts.map +1 -0
- package/dist/umd/lib/types.d.ts +1 -0
- package/dist/umd/lib/types.d.ts.map +1 -0
- package/dist/umd/lib/utils/billing.d.ts +24 -0
- package/dist/umd/lib/utils/billing.d.ts.map +1 -0
- package/dist/umd/lib/utils/crypto.d.ts +22 -0
- package/dist/umd/lib/utils/crypto.d.ts.map +1 -0
- package/dist/umd/lib/utils/firebase.d.ts +25 -0
- package/dist/umd/lib/utils/firebase.d.ts.map +1 -0
- package/dist/umd/lib/utils/headers.d.ts +5 -0
- package/dist/umd/lib/utils/headers.d.ts.map +1 -0
- package/dist/umd/lib/utils/index.d.ts +11 -0
- package/dist/umd/lib/utils/index.d.ts.map +1 -0
- package/dist/umd/lib/utils/rawbody.d.ts +2 -0
- package/dist/umd/lib/utils/rawbody.d.ts.map +1 -0
- package/dist/umd/lib/utils/session.d.ts +41 -0
- package/dist/umd/lib/utils/session.d.ts.map +1 -0
- package/dist/umd/lib/utils/shopify-api-js/oauth.d.ts +9 -0
- package/dist/umd/lib/utils/shopify-api-js/oauth.d.ts.map +1 -0
- package/dist/umd/lib/utils/shopify.d.ts +26 -0
- package/dist/umd/lib/utils/shopify.d.ts.map +1 -0
- package/dist/umd/lib/utils/token.d.ts +19 -0
- package/dist/umd/lib/utils/token.d.ts.map +1 -0
- package/dist/umd/lib/utils/types.d.ts +1 -0
- package/dist/umd/lib/utils/types.d.ts.map +1 -0
- package/dist/umd/lib/utils/verification.d.ts +8 -0
- package/dist/umd/lib/utils/verification.d.ts.map +1 -0
- package/dist/umd/lib/withShopify.d.ts +6 -0
- package/dist/umd/lib/withShopify.d.ts.map +1 -0
- package/dist/umd/react/hooks/index.d.ts +2 -0
- package/dist/umd/react/hooks/index.d.ts.map +1 -0
- package/dist/umd/react/hooks/useVerification.d.ts +8 -0
- package/dist/umd/react/hooks/useVerification.d.ts.map +1 -0
- package/dist/umd/react/index.d.ts +2 -0
- package/dist/umd/react/index.d.ts.map +1 -0
- package/dist/umd/react/types.d.ts +1 -0
- package/dist/umd/react/types.d.ts.map +1 -0
- package/dist/umd/react.js +813 -0
- package/dist/umd/react.js.map +1 -0
- package/dist/umd/runtime/index.d.ts +2 -0
- package/dist/umd/runtime/index.d.ts.map +1 -0
- package/dist/umd/runtime/types.d.ts +1 -0
- package/dist/umd/runtime/types.d.ts.map +1 -0
- package/dist/umd/runtime.js +2299 -0
- package/dist/umd/runtime.js.map +1 -0
- package/dist/umd/shared/constants.d.ts +211 -0
- package/dist/umd/shared/constants.d.ts.map +1 -0
- package/dist/umd/shared/datetime.d.ts +96 -0
- package/dist/umd/shared/datetime.d.ts.map +1 -0
- package/dist/umd/shared/display.d.ts +102 -0
- package/dist/umd/shared/display.d.ts.map +1 -0
- package/dist/umd/shared/errors.d.ts +24 -0
- package/dist/umd/shared/errors.d.ts.map +1 -0
- package/dist/umd/shared/graph.d.ts +24 -0
- package/dist/umd/shared/graph.d.ts.map +1 -0
- package/dist/umd/shared/index.d.ts +11 -0
- package/dist/umd/shared/index.d.ts.map +1 -0
- package/dist/umd/shared/match.d.ts +6 -0
- package/dist/umd/shared/match.d.ts.map +1 -0
- package/dist/umd/shared/request.d.ts +11 -0
- package/dist/umd/shared/request.d.ts.map +1 -0
- package/dist/umd/shared/shopify.d.ts +36 -0
- package/dist/umd/shared/shopify.d.ts.map +1 -0
- package/dist/umd/shared/subtlecrypto.d.ts +41 -0
- package/dist/umd/shared/subtlecrypto.d.ts.map +1 -0
- package/dist/umd/shared/types.d.ts +1 -0
- package/dist/umd/shared/types.d.ts.map +1 -0
- package/dist/umd/shared/verification.d.ts +24 -0
- package/dist/umd/shared/verification.d.ts.map +1 -0
- package/dist/umd/verification/index.d.ts +4 -0
- package/dist/umd/verification/index.d.ts.map +1 -0
- package/dist/umd/verification/rawbody.d.ts +2 -0
- package/dist/umd/verification/rawbody.d.ts.map +1 -0
- package/dist/umd/verification/types.d.ts +1 -0
- package/dist/umd/verification/types.d.ts.map +1 -0
- package/dist/umd/verification/verification.d.ts +8 -0
- package/dist/umd/verification/verification.d.ts.map +1 -0
- package/dist/umd/verification.js +2417 -0
- package/dist/umd/verification.js.map +1 -0
- package/dist/verification/index.d.ts +4 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +4 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/rawbody.d.ts +2 -0
- package/dist/verification/rawbody.d.ts.map +1 -0
- package/dist/verification/rawbody.js +30 -0
- package/dist/verification/rawbody.js.map +1 -0
- package/dist/verification/types.d.ts +1 -0
- package/dist/verification/types.d.ts.map +1 -0
- package/dist/verification/types.js +1 -0
- package/dist/verification/types.js.map +1 -0
- package/dist/verification/verification.d.ts +8 -0
- package/dist/verification/verification.d.ts.map +1 -0
- package/dist/verification/verification.js +72 -0
- package/dist/verification/verification.js.map +1 -0
- package/package.json +28 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.15.0-beta.1](https://github.com/agnostack/next-shopify/compare/v1.14.1...v1.15.0-beta.1) (2023-12-07)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* added rollup ([3745a20](https://github.com/agnostack/next-shopify/commit/3745a2085199583b002627c12564a3d79705691c))
|
|
7
|
+
|
|
1
8
|
## [1.14.1](https://github.com/agnostack/next-shopify/compare/v1.14.0...v1.14.1) (2023-12-07)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,32 +18,30 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
18
|
}
|
|
20
19
|
return t;
|
|
21
20
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const utils_1 = require("../../utils");
|
|
25
|
-
const shared_1 = require("../../../shared");
|
|
21
|
+
import { beginAuth, getCallback, getInitializedShopify, } from '../../utils';
|
|
22
|
+
import { isTrue, stringEmpty, PAGE_ROUTE_NAMES, } from '../../../shared';
|
|
26
23
|
// NOTE: typically handling: "/api/auth/online" and "/api/auth/offline"
|
|
27
|
-
const handleAuth = (serverRuntimeConfig) => (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
export const handleAuth = (serverRuntimeConfig) => (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
25
|
var _a;
|
|
29
26
|
const { PAGE_PATHS, API_PATHS, API_URLS, APP_CONFIG, } = serverRuntimeConfig;
|
|
30
27
|
const { isOnline } = params !== null && params !== void 0 ? params : {};
|
|
31
28
|
const _b = (_a = req.query) !== null && _a !== void 0 ? _a : {}, { reAuth: _reAuth } = _b, query = __rest(_b, ["reAuth"]);
|
|
32
29
|
const { embedded, state, host, shop: _shop } = query;
|
|
33
|
-
const reAuth =
|
|
34
|
-
const shopify =
|
|
30
|
+
const reAuth = isTrue(_reAuth, 'undefined');
|
|
31
|
+
const shopify = getInitializedShopify(serverRuntimeConfig);
|
|
35
32
|
const shop = shopify.utils.sanitizeShop(_shop);
|
|
36
|
-
if (
|
|
37
|
-
return res.redirect(`${PAGE_PATHS[
|
|
33
|
+
if (stringEmpty(shop)) {
|
|
34
|
+
return res.redirect(`${PAGE_PATHS[PAGE_ROUTE_NAMES.ERROR]}?code=no_shop_provided&type=handleAuth`);
|
|
38
35
|
}
|
|
39
36
|
if (embedded === '1') {
|
|
40
|
-
const callbackUrl =
|
|
37
|
+
const callbackUrl = getCallback(API_URLS, { reAuth, isOnline });
|
|
41
38
|
// TODO: explore objectToQuerystring
|
|
42
39
|
const redirectUriParams = new URLSearchParams({ shop, host, state }).toString();
|
|
43
40
|
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, redirectUri: `${callbackUrl}?${redirectUriParams}` })).toString();
|
|
44
|
-
return res.redirect(`${PAGE_PATHS[
|
|
41
|
+
return res.redirect(`${PAGE_PATHS[PAGE_ROUTE_NAMES.EXIT]}?${queryParams}`);
|
|
45
42
|
}
|
|
46
|
-
const callbackPath =
|
|
47
|
-
return
|
|
43
|
+
const callbackPath = getCallback(API_PATHS, { reAuth, isOnline });
|
|
44
|
+
return beginAuth({
|
|
48
45
|
shop,
|
|
49
46
|
state,
|
|
50
47
|
isOnline,
|
|
@@ -54,5 +51,4 @@ const handleAuth = (serverRuntimeConfig) => (req, res, params) => __awaiter(void
|
|
|
54
51
|
config: APP_CONFIG,
|
|
55
52
|
});
|
|
56
53
|
});
|
|
57
|
-
exports.handleAuth = handleAuth;
|
|
58
54
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,MAAM,EACN,WAAW,EACX,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AAExB,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;;IAC5E,MAAM,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,GACX,GAAG,mBAAmB,CAAA;IACvB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;IACjC,MAAM,KAAgC,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,EAA/C,EAAE,MAAM,EAAE,OAAO,OAA8B,EAAzB,KAAK,cAA3B,UAA6B,CAAkB,CAAA;IACrD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAE3C,MAAM,OAAO,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAE9C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;KACnG;IAED,IAAI,QAAQ,KAAK,GAAG,EAAE;QACpB,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/D,oCAAoC;QACpC,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC/E,MAAM,WAAW,GAAG,IAAI,eAAe,iCAClC,KAAK,KACR,IAAI,EACJ,WAAW,EAAE,GAAG,WAAW,IAAI,iBAAiB,EAAE,IAClD,CAAC,QAAQ,EAAE,CAAA;QAEb,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;KAC3E;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEjE,OAAO,SAAS,CAAC;QACf,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,YAAY;QACZ,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"AAeO,iGAyDN"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,26 +18,25 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
18
|
}
|
|
20
19
|
return t;
|
|
21
20
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const shared_1 = require("../../../shared");
|
|
21
|
+
import { getShopifyHelpers } from '../../utils';
|
|
22
|
+
import { ensureRawBody } from '../../../verification';
|
|
23
|
+
import { safeParse, stringEmpty, BILLING_EVENT_TYPES, } from '../../../shared';
|
|
26
24
|
const TERMINAL_STATUSES = [
|
|
27
25
|
'EXPIRED',
|
|
28
26
|
'DECLINED',
|
|
29
27
|
'CANCELLED'
|
|
30
28
|
];
|
|
31
29
|
// NOTE: typically handling: "/api/webhooks/app/billing"
|
|
32
|
-
const handleAppBilling = (serverRuntimeConfig) => (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
export const handleAppBilling = (serverRuntimeConfig) => (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
31
|
var _a;
|
|
34
32
|
try {
|
|
35
33
|
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 : {};
|
|
36
|
-
if (
|
|
34
|
+
if (stringEmpty(shop)) {
|
|
37
35
|
return res.status(200).json({ handler: 'billing', error: 'Missing shop' });
|
|
38
36
|
}
|
|
39
|
-
const { shopify, loadSession, updateSession, getVerifiedClients } = yield
|
|
37
|
+
const { shopify, loadSession, updateSession, getVerifiedClients } = yield getShopifyHelpers(serverRuntimeConfig, { shop });
|
|
40
38
|
// TODO: explore getVerificationHelpers?
|
|
41
|
-
const rawBody = yield
|
|
39
|
+
const rawBody = yield ensureRawBody(req);
|
|
42
40
|
const _b = yield shopify.webhooks.validate({
|
|
43
41
|
rawBody,
|
|
44
42
|
rawRequest: req,
|
|
@@ -47,8 +45,8 @@ const handleAppBilling = (serverRuntimeConfig) => (req, res) => __awaiter(void 0
|
|
|
47
45
|
if (valid) {
|
|
48
46
|
try {
|
|
49
47
|
let message = 'ignored';
|
|
50
|
-
const [eventType, { status } = {}] = Object.entries(
|
|
51
|
-
if ((eventType ===
|
|
48
|
+
const [eventType, { status } = {}] = Object.entries(safeParse(rawBody || '{}'))[0];
|
|
49
|
+
if ((eventType === BILLING_EVENT_TYPES.SUBSCRIPTION) && TERMINAL_STATUSES.includes(status)) {
|
|
52
50
|
const { Rest } = yield getVerifiedClients();
|
|
53
51
|
// NOTE: this deletes the app in the case of subscription apps in a "terminal" state to cover the info in ShopifyApi docs for billing:
|
|
54
52
|
// "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."
|
|
@@ -76,5 +74,4 @@ const handleAppBilling = (serverRuntimeConfig) => (req, res) => __awaiter(void 0
|
|
|
76
74
|
return res.status(200).json({ handler: 'billing', error: 'Error handling billing' });
|
|
77
75
|
}
|
|
78
76
|
});
|
|
79
|
-
exports.handleAppBilling = handleAppBilling;
|
|
80
77
|
//# sourceMappingURL=billing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,41 +18,39 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
18
|
}
|
|
20
19
|
return t;
|
|
21
20
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const utils_1 = require("../../utils");
|
|
26
|
-
const shared_1 = require("../../../shared");
|
|
21
|
+
import { InvalidHmacError, InvalidOAuthError, GraphqlQueryError, CookieNotFound, BillingError, } from '@shopify/shopify-api';
|
|
22
|
+
import { prepareWebhookHandlers, getShopifyHelpers, } from '../../utils';
|
|
23
|
+
import { isTrue, appendQuery, ensureArray, ensureString, stringEmpty, stringNotEmpty, objectNotEmpty, normalizeShopifyId, ensureLeadingSlash, PAGE_ROUTE_NAMES, ERROR_CODES, API_ROUTE_NAMES, API_WEBHOOK_TOPICS, } from '../../../shared';
|
|
27
24
|
/* NOTE: typically handling:
|
|
28
25
|
* "/api/auth/online/callback"
|
|
29
26
|
* "/api/auth/offline/callback"
|
|
30
27
|
* "/api/auth/online/callback/reauth"
|
|
31
28
|
* "/api/auth/offline/callback/reauth"
|
|
32
29
|
*/
|
|
33
|
-
const handleCallback = (serverRuntimeConfig) => (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
export const handleCallback = (serverRuntimeConfig) => (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
31
|
var _a, _b;
|
|
35
32
|
const _c = serverRuntimeConfig, { API_PATHS, PAGE_PATHS, PAYMENT_CONFIG } = _c, _d = _c.APP_WEBHOOKS, _e = _d === void 0 ? {} : _d,
|
|
36
33
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
|
-
_f =
|
|
34
|
+
_f = API_WEBHOOK_TOPICS.APP_UNINSTALLED,
|
|
38
35
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
39
36
|
_uninstalledWebhook = _e[_f], webhooks = __rest(_e, [typeof _f === "symbol" ? _f : _f + ""]);
|
|
40
|
-
const errorPath = PAGE_PATHS[
|
|
37
|
+
const errorPath = PAGE_PATHS[PAGE_ROUTE_NAMES.ERROR];
|
|
41
38
|
const { isOnline, reAuth } = params !== null && params !== void 0 ? params : {};
|
|
42
39
|
const { shop, host, state } = (_a = req.query) !== null && _a !== void 0 ? _a : {};
|
|
43
40
|
const authPayload = { rawRequest: req, rawResponse: res };
|
|
44
|
-
if (
|
|
41
|
+
if (stringEmpty(shop) || stringEmpty(host)) {
|
|
45
42
|
// HMMM: why is this a 303 (rather than a 302 or or anything)??
|
|
46
|
-
return res.redirect(303, `${errorPath}?code=${
|
|
43
|
+
return res.redirect(303, `${errorPath}?code=${ERROR_CODES.INVALID_CALLBACK}`);
|
|
47
44
|
}
|
|
48
45
|
let redirectUrl = `${errorPath}?code=invalid_callback_response`;
|
|
49
46
|
let shopify;
|
|
50
47
|
try {
|
|
51
|
-
const { shopify: _shopify, loadAppData, storeSession: encryptStoreSession, ensureBilling: handleEnsureBilling, } = yield
|
|
48
|
+
const { shopify: _shopify, loadAppData, storeSession: encryptStoreSession, ensureBilling: handleEnsureBilling, } = yield getShopifyHelpers(serverRuntimeConfig, { shop });
|
|
52
49
|
shopify = _shopify;
|
|
53
50
|
const { session: _session } = yield shopify.auth.callback(authPayload);
|
|
54
51
|
const session = _session.toObject();
|
|
55
|
-
const shouldProcessOfflineAuth = (isOnline &&
|
|
56
|
-
const shouldRegisterWebhooks = (!
|
|
52
|
+
const shouldProcessOfflineAuth = (isOnline && objectNotEmpty(webhooks) && API_PATHS[API_ROUTE_NAMES.AUTH_OFFLINE]);
|
|
53
|
+
const shouldRegisterWebhooks = (!isTrue(session === null || session === void 0 ? void 0 : session.isOnline) || !API_PATHS[API_ROUTE_NAMES.AUTH_OFFLINE]);
|
|
57
54
|
const shouldCheckBilling = PAYMENT_CONFIG === null || PAYMENT_CONFIG === void 0 ? void 0 : PAYMENT_CONFIG.required;
|
|
58
55
|
// NOTE: handleEnsureBilling below handles calling encryptStoreSession for offline session when shouldCheckBilling
|
|
59
56
|
if (isOnline || !shouldCheckBilling) {
|
|
@@ -63,36 +60,36 @@ const handleCallback = (serverRuntimeConfig) => (req, res, params) => __awaiter(
|
|
|
63
60
|
if (shouldProcessOfflineAuth) {
|
|
64
61
|
// TODO: explore objectToQuerystring
|
|
65
62
|
const queryParams = new URLSearchParams({ host, shop, state, reAuth, isOnline: false }).toString();
|
|
66
|
-
return res.redirect(302, `${API_PATHS[
|
|
63
|
+
return res.redirect(302, `${API_PATHS[API_ROUTE_NAMES.AUTH_OFFLINE]}?${queryParams}`);
|
|
67
64
|
}
|
|
68
65
|
if (shouldRegisterWebhooks) {
|
|
69
66
|
let appId;
|
|
70
67
|
try {
|
|
71
68
|
const { appInfo } = yield loadAppData();
|
|
72
|
-
appId =
|
|
69
|
+
appId = normalizeShopifyId(appInfo === null || appInfo === void 0 ? void 0 : appInfo.id).id;
|
|
73
70
|
// eslint-disable-next-line no-empty
|
|
74
71
|
}
|
|
75
72
|
catch (_ignore) {
|
|
76
73
|
console.info('Ignoring error loading appData', _ignore);
|
|
77
74
|
}
|
|
78
|
-
const webhookHandlers =
|
|
75
|
+
const webhookHandlers = prepareWebhookHandlers(serverRuntimeConfig, { appId });
|
|
79
76
|
shopify.webhooks.addHandlers(webhookHandlers);
|
|
80
77
|
// NOTE: webhooks cannot use an online session to make API calls to Shopify (but not all webooks may be doing that for all apps)
|
|
81
78
|
yield shopify.webhooks.register({ session });
|
|
82
79
|
}
|
|
83
80
|
const embeddedAppUrl = yield shopify.auth.getEmbeddedAppUrl(authPayload);
|
|
84
81
|
// NOTE this is the final/successful return URL
|
|
85
|
-
redirectUrl = `${embeddedAppUrl}${
|
|
82
|
+
redirectUrl = `${embeddedAppUrl}${ensureLeadingSlash(PAGE_PATHS[PAGE_ROUTE_NAMES.SUCCESS])}`;
|
|
86
83
|
if (shouldCheckBilling) {
|
|
87
84
|
// NOTE: handleEnsureBilling handles calling encryptStoreSession for offline session when shouldCheckBilling
|
|
88
85
|
const confirmationUrl = yield handleEnsureBilling(session, reAuth);
|
|
89
|
-
if (
|
|
86
|
+
if (stringNotEmpty(confirmationUrl)) {
|
|
90
87
|
redirectUrl = confirmationUrl;
|
|
91
88
|
}
|
|
92
89
|
}
|
|
93
90
|
// NOTE confirm that state can be appended to the confirmationUrl,
|
|
94
91
|
// otherwise we can append to the redirectUrl above the billing check
|
|
95
|
-
redirectUrl =
|
|
92
|
+
redirectUrl = appendQuery(redirectUrl, new URLSearchParams({ state }).toString());
|
|
96
93
|
}
|
|
97
94
|
catch (error) {
|
|
98
95
|
console.error('Error handling callback route', error);
|
|
@@ -101,8 +98,8 @@ const handleCallback = (serverRuntimeConfig) => (req, res, params) => __awaiter(
|
|
|
101
98
|
if (shopify) {
|
|
102
99
|
try {
|
|
103
100
|
const embeddedAppUrl = yield shopify.auth.getEmbeddedAppUrl(authPayload);
|
|
104
|
-
if (
|
|
105
|
-
baseErrorUrl = `${embeddedAppUrl}${
|
|
101
|
+
if (stringNotEmpty(embeddedAppUrl)) {
|
|
102
|
+
baseErrorUrl = `${embeddedAppUrl}${ensureLeadingSlash(errorPath)}`;
|
|
106
103
|
}
|
|
107
104
|
// eslint-disable-next-line no-empty
|
|
108
105
|
}
|
|
@@ -110,53 +107,52 @@ const handleCallback = (serverRuntimeConfig) => (req, res, params) => __awaiter(
|
|
|
110
107
|
}
|
|
111
108
|
switch (true) {
|
|
112
109
|
// TODO implement a custom SessionNotFound error
|
|
113
|
-
case error instanceof
|
|
110
|
+
case error instanceof InvalidHmacError: {
|
|
114
111
|
console.warn(`${errorMessage}. InvalidHmac Error ${error.message}`);
|
|
115
112
|
// HMMMM: not sure
|
|
116
|
-
const authOnlinePath = API_PATHS[
|
|
113
|
+
const authOnlinePath = API_PATHS[API_ROUTE_NAMES.AUTH_ONLINE];
|
|
117
114
|
const authPath = isOnline
|
|
118
115
|
? authOnlinePath
|
|
119
|
-
: API_PATHS[
|
|
116
|
+
: API_PATHS[API_ROUTE_NAMES.AUTH_OFFLINE] || authOnlinePath;
|
|
120
117
|
// TODO: explore objectToQuerystring
|
|
121
118
|
const queryParams = new URLSearchParams({ host, shop, state }).toString();
|
|
122
119
|
redirectUrl = `${authPath}?${queryParams}`;
|
|
123
120
|
break;
|
|
124
121
|
}
|
|
125
|
-
case error instanceof
|
|
122
|
+
case error instanceof CookieNotFound: {
|
|
126
123
|
console.warn(`${errorMessage}. This may occur if Cookie is already deleted. CookieNotFound Error ${error.message}`);
|
|
127
124
|
// HMMMM: not sure
|
|
128
|
-
const authOnlinePath = API_PATHS[
|
|
125
|
+
const authOnlinePath = API_PATHS[API_ROUTE_NAMES.AUTH_ONLINE];
|
|
129
126
|
const authPath = isOnline
|
|
130
127
|
? authOnlinePath
|
|
131
|
-
: API_PATHS[
|
|
128
|
+
: API_PATHS[API_ROUTE_NAMES.AUTH_OFFLINE] || authOnlinePath;
|
|
132
129
|
// TODO: explore objectToQuerystring
|
|
133
130
|
const queryParams = new URLSearchParams({ host, shop, state }).toString();
|
|
134
131
|
redirectUrl = `${authPath}?${queryParams}`;
|
|
135
132
|
break;
|
|
136
133
|
}
|
|
137
|
-
case error instanceof
|
|
134
|
+
case error instanceof BillingError: {
|
|
138
135
|
console.error(`${errorMessage}. Billing Error ${error.message}`, error.errorData);
|
|
139
|
-
redirectUrl = `${baseErrorUrl}?code=${
|
|
136
|
+
redirectUrl = `${baseErrorUrl}?code=${ERROR_CODES.BILLING}`;
|
|
140
137
|
break;
|
|
141
138
|
}
|
|
142
|
-
case error instanceof
|
|
143
|
-
const errorMessages =
|
|
139
|
+
case error instanceof GraphqlQueryError: {
|
|
140
|
+
const errorMessages = ensureArray((_b = error.response) === null || _b === void 0 ? void 0 : _b.errors).map(({ message }) => ensureString(message));
|
|
144
141
|
console.error(`${errorMessage}. GraphqlQuery Error ${errorMessages.join('. ')}`);
|
|
145
|
-
redirectUrl = `${baseErrorUrl}?code=${
|
|
142
|
+
redirectUrl = `${baseErrorUrl}?code=${ERROR_CODES.QUERY}`;
|
|
146
143
|
break;
|
|
147
144
|
}
|
|
148
|
-
case error instanceof
|
|
145
|
+
case error instanceof InvalidOAuthError: {
|
|
149
146
|
console.error(`${errorMessage}. InvalidOAuth Error`, error);
|
|
150
|
-
redirectUrl = `${baseErrorUrl}?code=${
|
|
147
|
+
redirectUrl = `${baseErrorUrl}?code=${ERROR_CODES.OAUTH}`;
|
|
151
148
|
break;
|
|
152
149
|
}
|
|
153
150
|
default: {
|
|
154
151
|
console.error(errorMessage, error);
|
|
155
|
-
redirectUrl = `${baseErrorUrl}?code=${
|
|
152
|
+
redirectUrl = `${baseErrorUrl}?code=${ERROR_CODES.CALLBACK}`;
|
|
156
153
|
}
|
|
157
154
|
}
|
|
158
155
|
}
|
|
159
156
|
return res.redirect(302, redirectUrl);
|
|
160
157
|
});
|
|
161
|
-
exports.handleCallback = handleCallback;
|
|
162
158
|
//# sourceMappingURL=callback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.getAPIConfig = void 0;
|
|
18
|
-
__exportStar(require("./auth"), exports);
|
|
19
|
-
__exportStar(require("./billing"), exports);
|
|
20
|
-
__exportStar(require("./callback"), exports);
|
|
21
|
-
__exportStar(require("./uninstall"), exports);
|
|
22
|
-
__exportStar(require("./verifiable"), exports);
|
|
23
|
-
__exportStar(require("./webhook"), exports);
|
|
24
|
-
const getAPIConfig = (config) => ({
|
|
1
|
+
export * from './auth';
|
|
2
|
+
export * from './billing';
|
|
3
|
+
export * from './callback';
|
|
4
|
+
export * from './uninstall';
|
|
5
|
+
export * from './verifiable';
|
|
6
|
+
export * from './webhook';
|
|
7
|
+
export const getAPIConfig = (config) => ({
|
|
25
8
|
api: Object.assign({ bodyParser: false }, config),
|
|
26
9
|
});
|
|
27
|
-
exports.getAPIConfig = getAPIConfig;
|
|
28
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/index.js"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AAEzB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvC,GAAG,kBACD,UAAU,EAAE,KAAK,IACd,MAAM,CACV;CACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"AAQO,qGAwCN"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,21 +18,20 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
18
|
}
|
|
20
19
|
return t;
|
|
21
20
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const shared_1 = require("../../../shared");
|
|
21
|
+
import { getShopifyHelpers } from '../../utils';
|
|
22
|
+
import { ensureRawBody } from '../../../verification';
|
|
23
|
+
import { stringEmpty, arrayNotEmpty, } from '../../../shared';
|
|
26
24
|
// NOTE: typically handling: "/api/webhooks/app/uninstalled"
|
|
27
|
-
const handleAppUninstalled = (serverRuntimeConfig) => (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
export const handleAppUninstalled = (serverRuntimeConfig) => (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
26
|
var _a;
|
|
29
27
|
try {
|
|
30
28
|
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 : {};
|
|
31
|
-
if (
|
|
29
|
+
if (stringEmpty(shop)) {
|
|
32
30
|
return res.status(200).json({ handler: 'uninstall', error: 'Missing shop' });
|
|
33
31
|
}
|
|
34
|
-
const { shopify, findSessionIds, deleteSessions } = yield
|
|
32
|
+
const { shopify, findSessionIds, deleteSessions } = yield getShopifyHelpers(serverRuntimeConfig, { shop });
|
|
35
33
|
// TODO: explore getVerificationHelpers?
|
|
36
|
-
const rawBody = yield
|
|
34
|
+
const rawBody = yield ensureRawBody(req);
|
|
37
35
|
const _b = yield shopify.webhooks.validate({
|
|
38
36
|
rawBody,
|
|
39
37
|
rawRequest: req,
|
|
@@ -42,7 +40,7 @@ const handleAppUninstalled = (serverRuntimeConfig) => (req, res) => __awaiter(vo
|
|
|
42
40
|
if (valid) {
|
|
43
41
|
try {
|
|
44
42
|
const sessionsIds = yield findSessionIds(shop);
|
|
45
|
-
if (
|
|
43
|
+
if (arrayNotEmpty(sessionsIds)) {
|
|
46
44
|
yield deleteSessions(sessionsIds);
|
|
47
45
|
}
|
|
48
46
|
return res.status(200).json({ handler: 'uninstall', message: 'success' });
|
|
@@ -59,5 +57,4 @@ const handleAppUninstalled = (serverRuntimeConfig) => (req, res) => __awaiter(vo
|
|
|
59
57
|
return res.status(200).json({ handler: 'uninstall', error: 'Error handling uninstall' });
|
|
60
58
|
}
|
|
61
59
|
});
|
|
62
|
-
exports.handleAppUninstalled = handleAppUninstalled;
|
|
63
60
|
//# sourceMappingURL=uninstall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EACL,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAA;AAExB,4DAA4D;AAC5D,MAAM,CAAC,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,WAAW,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;SAC7E;QAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1G,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,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,aAAa,CAAC,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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,22 +7,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const shared_1 = require("../../../../shared");
|
|
14
|
-
const graph_1 = require("./graph");
|
|
10
|
+
import { stringEmpty, APP_QUERY, TRANSFORM } from '../../../../shared';
|
|
11
|
+
import { handleGraph } from './graph';
|
|
15
12
|
// NOTE: typically handling: "/api/admin/installation/[appId]" (called by getUseAppInstallation)
|
|
16
|
-
const handleLoadAppInstallation = (serverRuntimeConfig) => (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
export const handleLoadAppInstallation = (serverRuntimeConfig) => (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
14
|
const { appId } = params !== null && params !== void 0 ? params : {};
|
|
18
|
-
if (
|
|
15
|
+
if (stringEmpty(appId)) {
|
|
19
16
|
return res.status(412).json({ message: 'Missing required param' });
|
|
20
17
|
}
|
|
21
|
-
const _handleGraph =
|
|
18
|
+
const _handleGraph = handleGraph(serverRuntimeConfig);
|
|
22
19
|
return _handleGraph(req, res, {
|
|
23
|
-
query:
|
|
20
|
+
query: APP_QUERY.INSTALLATION,
|
|
24
21
|
variables: { namespace: `${appId}-metafields` },
|
|
25
|
-
transform:
|
|
22
|
+
transform: TRANSFORM.APP_QUERY,
|
|
26
23
|
});
|
|
27
24
|
});
|
|
28
|
-
exports.handleLoadAppInstallation = handleLoadAppInstallation;
|
|
29
25
|
//# sourceMappingURL=appInstallation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appInstallation.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appInstallation.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,gGAAgG;AAChG,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC3F,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;IAE9B,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;KACnE;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAA;IAErD,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,KAAK,EAAE,SAAS,CAAC,YAAY;QAC7B,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,aAAa,EAAE;QAC/C,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"AAkBO,yGA8HN"}
|