@agnostack/next-shopify 1.8.1-beta.6 → 1.8.1-beta.8
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.
|
@@ -5,12 +5,9 @@ const utils_1 = require("../../utils");
|
|
|
5
5
|
// NOTE: typically handling: "/api/auth"
|
|
6
6
|
const handleAuth = (serverRuntimeConfig) => async (req, res) => {
|
|
7
7
|
var _a;
|
|
8
|
-
const {
|
|
8
|
+
const { API_URLS, API_PATHS, PAGE_PATHS } = serverRuntimeConfig;
|
|
9
9
|
const query = (_a = req.query) !== null && _a !== void 0 ? _a : {};
|
|
10
10
|
const { embedded, host, shop: _shop, isOnline: _isOnline = true } = query !== null && query !== void 0 ? query : {};
|
|
11
|
-
console.log(`>>> > handleAuth > _isOnline: '${_isOnline}'`);
|
|
12
|
-
const isOnline = utils_1.isTrue(_isOnline);
|
|
13
|
-
console.log(`>>> > handleAuth > isOnline: '${isOnline}'`);
|
|
14
11
|
const shopify = await utils_1.getInitializedShopify(serverRuntimeConfig);
|
|
15
12
|
const shop = shopify.utils.sanitizeShop(_shop);
|
|
16
13
|
if (utils_1.stringEmpty(shop)) {
|
|
@@ -25,13 +22,14 @@ const handleAuth = (serverRuntimeConfig) => async (req, res) => {
|
|
|
25
22
|
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, redirectUri: `${API_URLS[utils_1.API_ROUTE_NAMES.AUTH_CALLBACK]}?${redirectUriParams}` })).toString();
|
|
26
23
|
return res.redirect(`${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.EXIT]}?${queryParams}`);
|
|
27
24
|
}
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
isOnline,
|
|
25
|
+
const isOnline = utils_1.isTrue(_isOnline);
|
|
26
|
+
return shopify.auth.begin({
|
|
31
27
|
shop,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
isOnline,
|
|
29
|
+
rawRequest: req,
|
|
30
|
+
rawResponse: res,
|
|
31
|
+
callbackPath: `${API_PATHS[utils_1.API_ROUTE_NAMES.AUTH_CALLBACK]}?isOnline=${isOnline}`,
|
|
32
|
+
});
|
|
35
33
|
};
|
|
36
34
|
exports.handleAuth = handleAuth;
|
|
37
35
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/handlers/api/auth.js"],"names":[],"mappings":";;;AAAA,uCAMoB;AAEpB,wCAAwC;AACjC,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IACpE,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/handlers/api/auth.js"],"names":[],"mappings":";;;AAAA,uCAMoB;AAEpB,wCAAwC;AACjC,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;;IACpE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAA;IAC/D,MAAM,KAAK,GAAG,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,CAAA;IAC7B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAA;IAE/E,MAAM,OAAO,GAAG,MAAM,6BAAqB,CAAC,mBAAmB,CAAC,CAAA;IAEhE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,mBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;KACnG;IAED,IAAI,QAAQ,KAAK,GAAG,EAAE;QACpB,oCAAoC;QACpC,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC;YAC5C,IAAI;YACJ,IAAI;SACL,CAAC,CAAC,QAAQ,EAAE,CAAA;QACb,MAAM,WAAW,GAAG,IAAI,eAAe,iCAClC,KAAK,KACR,IAAI,EACJ,WAAW,EAAE,GAAG,QAAQ,CAAC,uBAAe,CAAC,aAAa,CAAC,IAAI,iBAAiB,EAAE,IAC9E,CAAC,QAAQ,EAAE,CAAA;QAEb,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,wBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;KAC3E;IAED,MAAM,QAAQ,GAAG,cAAM,CAAC,SAAS,CAAC,CAAA;IAClC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,GAAG,SAAS,CAAC,uBAAe,CAAC,aAAa,CAAC,aAAa,QAAQ,EAAE;KACjF,CAAC,CAAA;AACJ,CAAC,CAAA;AAnCY,QAAA,UAAU,cAmCtB"}
|
|
@@ -17,13 +17,20 @@ const utils_1 = require("../../utils");
|
|
|
17
17
|
// NOTE: typically handling: "/api/auth/callback"
|
|
18
18
|
const handleCallback = (serverRuntimeConfig) => async (req, res) => {
|
|
19
19
|
var _a;
|
|
20
|
-
const _b = serverRuntimeConfig !== null && serverRuntimeConfig !== void 0 ? serverRuntimeConfig : {}, { PAYMENT_CONFIG, PAGE_PATHS, API_PATHS
|
|
20
|
+
const _b = serverRuntimeConfig !== null && serverRuntimeConfig !== void 0 ? serverRuntimeConfig : {}, { PAYMENT_CONFIG, PAGE_PATHS, API_PATHS } = _b,
|
|
21
|
+
// API_URLS,
|
|
22
|
+
_c = _b.APP_WEBHOOKS,
|
|
23
|
+
// API_URLS,
|
|
24
|
+
_d = _c === void 0 ? {} : _c,
|
|
21
25
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
22
26
|
_e = utils_1.API_WEBHOOK_TOPICS.APP_UNINSTALLED,
|
|
23
27
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
28
|
_uninstalledWebhook = _d[_e], webhooks = __rest(_d, [typeof _e === "symbol" ? _e : _e + ""]);
|
|
25
|
-
const _f = req.query, { isOnline
|
|
29
|
+
const _f = req.query, { isOnline } = _f, queryParams = __rest(_f, ["isOnline"]);
|
|
30
|
+
console.log(`>>> > handleCallback > queryParams/isOnline:`, { queryParams, isOnline, webhooks });
|
|
26
31
|
const { shop, host } = queryParams;
|
|
32
|
+
const errorPath = PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR];
|
|
33
|
+
console.log(`>>> > handleCallback > errorPath:`, errorPath);
|
|
27
34
|
if (utils_1.stringEmpty(shop) || utils_1.stringEmpty(host)) {
|
|
28
35
|
// HMMM: why is this a 303 (rather than a 302 or or anything)??
|
|
29
36
|
return res.redirect(303, `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?code=${utils_1.ERROR_CODES.INVALID_CALLBACK}`);
|
|
@@ -36,22 +43,20 @@ const handleCallback = (serverRuntimeConfig) => async (req, res) => {
|
|
|
36
43
|
// TODO clear sessions if undefined???
|
|
37
44
|
await storeSession(session.toObject());
|
|
38
45
|
await shopify.webhooks.register({ session });
|
|
39
|
-
const isOnline = utils_1.isTrue(_isOnline);
|
|
40
46
|
if (isOnline && utils_1.objectNotEmpty(webhooks)) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
return shopify.auth.begin({
|
|
48
|
+
shop,
|
|
49
|
+
rawRequest: req,
|
|
50
|
+
rawResponse: res,
|
|
51
|
+
callbackPath: `${API_PATHS[utils_1.API_ROUTE_NAMES.AUTH_CALLBACK]}?isOnline=false`,
|
|
52
|
+
});
|
|
46
53
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
redirectUrl = confirmationUrl;
|
|
54
|
-
}
|
|
54
|
+
redirectUrl = await shopify.auth.getEmbeddedAppUrl(authPayload);
|
|
55
|
+
// TODO!!!!!: is this where we may actually need to fix???!?
|
|
56
|
+
if (PAYMENT_CONFIG === null || PAYMENT_CONFIG === void 0 ? void 0 : PAYMENT_CONFIG.required) {
|
|
57
|
+
const confirmationUrl = await ensureBilling(session);
|
|
58
|
+
if (utils_1.stringNotEmpty(confirmationUrl)) {
|
|
59
|
+
redirectUrl = confirmationUrl;
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
}
|
|
@@ -80,30 +85,26 @@ const handleCallback = (serverRuntimeConfig) => async (req, res) => {
|
|
|
80
85
|
// TODO: fix these to not just redirect as standalone route (as app already installed)
|
|
81
86
|
case error instanceof shopify_api_1.BillingError: {
|
|
82
87
|
console.error(`${errorMessage}. Billing Error ${error.message}`, error.errorData);
|
|
83
|
-
redirectUrl =
|
|
84
|
-
// TODO: use PAGE_PATHS[PAGE_ROUTE_NAMES.ERROR]!!
|
|
88
|
+
redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?code=${utils_1.ERROR_CODES.BILLING}`;
|
|
85
89
|
break;
|
|
86
90
|
}
|
|
87
91
|
// TODO: fix these to not just redirect as standalone route (as app already installed)
|
|
88
92
|
case error instanceof shopify_api_1.GraphqlQueryError: {
|
|
89
93
|
const errorMessages = utils_1.ensureArray((_a = error.response) === null || _a === void 0 ? void 0 : _a.errors).map(({ message }) => utils_1.ensureString(message));
|
|
90
94
|
console.error(`${errorMessage}. GraphqlQuery Error ${errorMessages.join('. ')}`);
|
|
91
|
-
|
|
92
|
-
redirectUrl = `/error?code=${utils_1.ERROR_CODES.QUERY}`;
|
|
95
|
+
redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?code=${utils_1.ERROR_CODES.QUERY}`;
|
|
93
96
|
break;
|
|
94
97
|
}
|
|
95
98
|
// TODO: fix these to not just redirect as standalone route (as app already installed)
|
|
96
99
|
case error instanceof shopify_api_1.InvalidOAuthError: {
|
|
97
100
|
console.error(`${errorMessage}. InvalidOAuth Error`, error);
|
|
98
|
-
|
|
99
|
-
redirectUrl = `/error?code=${utils_1.ERROR_CODES.OAUTH}`;
|
|
101
|
+
redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?code=${utils_1.ERROR_CODES.OAUTH}`;
|
|
100
102
|
break;
|
|
101
103
|
}
|
|
102
104
|
// TODO: fix these to not just redirect as standalone route (as app already installed)
|
|
103
105
|
default: {
|
|
104
106
|
console.error(errorMessage, error);
|
|
105
|
-
|
|
106
|
-
redirectUrl = `/error?code=${utils_1.ERROR_CODES.CALLBACK}`;
|
|
107
|
+
redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?code=${utils_1.ERROR_CODES.CALLBACK}`;
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../src/handlers/api/callback.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAM6B;AAE7B,
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../src/handlers/api/callback.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agnostack/next-shopify",
|
|
3
|
-
"version": "1.8.1-beta.
|
|
3
|
+
"version": "1.8.1-beta.8",
|
|
4
4
|
"author": "agnoStack Dev <developers@agnostack.com> (https://agnostack.com)",
|
|
5
5
|
"owner": "agnoStack",
|
|
6
6
|
"description": "Please contact agnoStack via info@agnostack.com for any questions",
|