@agnostack/next-shopify 1.8.1-alpha.20 → 1.8.1-alpha.22
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/dist/handlers/api/billing.js +53 -5
- package/dist/handlers/api/billing.js.map +1 -1
- package/dist/handlers/ssr/protect.d.ts +4 -2
- package/dist/handlers/ssr/protect.js +20 -49
- package/dist/handlers/ssr/protect.js.map +1 -1
- package/dist/utils/crypto.d.ts +1 -1
- package/dist/utils/crypto.js +14 -12
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/session.js +6 -18
- package/dist/utils/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.handleAppBilling = void 0;
|
|
18
18
|
const raw_body_1 = __importDefault(require("raw-body"));
|
|
19
19
|
const utils_1 = require("../../utils");
|
|
20
|
+
const HAS_PAYMENTS_QUERY = `
|
|
21
|
+
query appSubscription($endCursor: String) {
|
|
22
|
+
currentAppInstallation {
|
|
23
|
+
activeSubscriptions {
|
|
24
|
+
id
|
|
25
|
+
name
|
|
26
|
+
test
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
oneTimePurchases(first: 250, sortKey: CREATED_AT, after: $endCursor) {
|
|
30
|
+
edges {
|
|
31
|
+
node {
|
|
32
|
+
id
|
|
33
|
+
name
|
|
34
|
+
test
|
|
35
|
+
status
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
pageInfo {
|
|
39
|
+
hasNextPage
|
|
40
|
+
endCursor
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
20
46
|
// NOTE: typically handling: "/api/webhooks/app/billing"
|
|
21
47
|
const handleAppBilling = (serverRuntimeConfig) => async (req, res) => {
|
|
22
48
|
var _a;
|
|
@@ -26,18 +52,40 @@ const handleAppBilling = (serverRuntimeConfig) => async (req, res) => {
|
|
|
26
52
|
return res.status(200).json({ handler: 'billing', error: 'Missing shop' });
|
|
27
53
|
}
|
|
28
54
|
const { shopify } = await utils_1.getShopifyHelpers(serverRuntimeConfig, { shop });
|
|
29
|
-
console.log(`>>> > handleAppBilling > req.body`, req.body);
|
|
30
55
|
// NOTE raw request body is required for Shopify webhook validation
|
|
31
|
-
const
|
|
56
|
+
const _rawBody = await raw_body_1.default(req);
|
|
57
|
+
const rawBody = _rawBody.toString();
|
|
32
58
|
const _b = await shopify.webhooks.validate({
|
|
33
|
-
rawBody
|
|
59
|
+
rawBody,
|
|
34
60
|
rawRequest: req,
|
|
35
61
|
rawResponse: res,
|
|
36
62
|
}), { valid } = _b, webhookCheck = __rest(_b, ["valid"]);
|
|
37
63
|
if (valid) {
|
|
38
64
|
try {
|
|
39
|
-
|
|
40
|
-
//
|
|
65
|
+
// const [type, { status } = {}] = Object.entries(JSON.parse(rawBody))[0]
|
|
66
|
+
// const { Rest, Graph } = await getVerifiedClients(serverRuntimeConfig, { shop })
|
|
67
|
+
const { Graph } = await utils_1.getVerifiedClients(serverRuntimeConfig, { shop });
|
|
68
|
+
// TODO support pagination
|
|
69
|
+
const currentInstallations = await Graph.query({
|
|
70
|
+
data: {
|
|
71
|
+
query: HAS_PAYMENTS_QUERY,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
console.log(`>>>>>>> ~ currentInstallations`, currentInstallations);
|
|
75
|
+
// const {
|
|
76
|
+
// currentAppInstallation,
|
|
77
|
+
// oneTimePurchases,
|
|
78
|
+
// } = ensureObject(currentInstallations?.body?.data?.currentAppInstallation)
|
|
79
|
+
// call grpah for subscriptions
|
|
80
|
+
// check for any subs
|
|
81
|
+
// TODO convert to constants
|
|
82
|
+
// TODO handle subscriptions
|
|
83
|
+
// TODO only revoke installation if there are previous plans
|
|
84
|
+
// if (type === 'app_purchase_one_time' && status === 'DECLINED') {
|
|
85
|
+
// await Rest.delete({
|
|
86
|
+
// path: '/admin/api_permissions/current.json',
|
|
87
|
+
// })
|
|
88
|
+
// }
|
|
41
89
|
return res.status(200).json({ handler: 'billing', message: 'success' });
|
|
42
90
|
}
|
|
43
91
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/handlers/api/billing.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAiC;AAEjC,
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/handlers/api/billing.js"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@ export function protectRoute(props: any): ({ req, res, query, locale }: {
|
|
|
4
4
|
query: any;
|
|
5
5
|
locale: any;
|
|
6
6
|
}, data: any) => Promise<{
|
|
7
|
+
props: any;
|
|
8
|
+
redirect?: undefined;
|
|
9
|
+
} | {
|
|
7
10
|
redirect: {
|
|
8
11
|
destination: any;
|
|
9
12
|
permanent: boolean;
|
|
10
13
|
};
|
|
11
|
-
|
|
12
|
-
props: any;
|
|
14
|
+
props?: undefined;
|
|
13
15
|
}>;
|
|
@@ -3,12 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.protectRoute = void 0;
|
|
4
4
|
const utils_1 = require("../../utils");
|
|
5
5
|
const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) => {
|
|
6
|
-
var _a, _b, _c, _d
|
|
6
|
+
var _a, _b, _c, _d;
|
|
7
7
|
const { PAGE_PATHS, API_PATHS } = props;
|
|
8
8
|
const shop = (_a = query === null || query === void 0 ? void 0 : query.shop) !== null && _a !== void 0 ? _a : (_b = req.query) === null || _b === void 0 ? void 0 : _b.shop;
|
|
9
9
|
const embedded = (_c = query === null || query === void 0 ? void 0 : query.embedded) !== null && _c !== void 0 ? _c : (_d = req.query) === null || _d === void 0 ? void 0 : _d.embedded;
|
|
10
|
-
const isEmbedded = embedded === '1';
|
|
11
|
-
console.log(`>>> protectRoute ~ isEmbedded`, isEmbedded);
|
|
12
10
|
if (utils_1.stringEmpty(shop)) {
|
|
13
11
|
return {
|
|
14
12
|
redirect: {
|
|
@@ -23,10 +21,9 @@ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) =
|
|
|
23
21
|
props: utils_1.cleanObject(Object.assign({ locale }, data)),
|
|
24
22
|
};
|
|
25
23
|
}
|
|
26
|
-
const { shopify, findSessionIds, loadSession
|
|
24
|
+
const { shopify, findSessionIds, loadSession } = await utils_1.getShopifyHelpers(props, { shop });
|
|
27
25
|
res.setHeader('Content-Security-Policy', utils_1.getSecurityHeader(shop, shopify.config));
|
|
28
26
|
const existingSessionIds = await findSessionIds(shop);
|
|
29
|
-
console.log(`>>> protectRoute ~ existingSessionIds`, existingSessionIds);
|
|
30
27
|
if (utils_1.arrayEmpty(existingSessionIds)) {
|
|
31
28
|
// TODO: explore objectToQuerystring
|
|
32
29
|
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop })).toString();
|
|
@@ -37,63 +34,37 @@ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) =
|
|
|
37
34
|
},
|
|
38
35
|
};
|
|
39
36
|
}
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
if (embedded !== '1') {
|
|
38
|
+
try {
|
|
42
39
|
await loadSession({ req, res });
|
|
43
|
-
const
|
|
40
|
+
const destination = await shopify.auth.getEmbeddedAppUrl({
|
|
44
41
|
rawRequest: req,
|
|
45
42
|
rawResponse: res,
|
|
46
43
|
});
|
|
47
|
-
|
|
44
|
+
return {
|
|
48
45
|
redirect: {
|
|
49
|
-
destination
|
|
46
|
+
destination,
|
|
50
47
|
permanent: false,
|
|
51
48
|
},
|
|
52
49
|
};
|
|
53
|
-
console.log(`>>> protectRoute ~ return NOT EMBEDDED`, pload1);
|
|
54
|
-
return pload1;
|
|
55
50
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (error instanceof utils_1.ShopifyAuthenticationError) {
|
|
53
|
+
// TODO clear sessions???
|
|
54
|
+
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop })).toString();
|
|
55
|
+
return {
|
|
56
|
+
redirect: {
|
|
57
|
+
destination: `${API_PATHS[utils_1.API_ROUTE_NAMES.AUTH]}?${queryParams}`,
|
|
58
|
+
permanent: false,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
throw error;
|
|
61
63
|
}
|
|
62
|
-
console.log(`>>> ~ confirmationUrl`, confirmationUrl);
|
|
63
|
-
if (utils_1.stringNotEmpty(confirmationUrl)) {
|
|
64
|
-
const queryParams = new URLSearchParams({ redirectUri: confirmationUrl }).toString();
|
|
65
|
-
console.log(`>>> protectRoute ~ queryParams`, queryParams);
|
|
66
|
-
const pload2 = {
|
|
67
|
-
redirect: {
|
|
68
|
-
destination: `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.EXIT]}?${queryParams}`,
|
|
69
|
-
permanent: false,
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
console.log(`>>> protectRoute ~ return BILLING`, pload2);
|
|
73
|
-
return pload2;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
console.log(`>>> protectRoute ~ PROTECT CATCH`, error);
|
|
78
|
-
if (error instanceof utils_1.ShopifyAuthenticationError) {
|
|
79
|
-
// TODO clear sessions???
|
|
80
|
-
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop })).toString();
|
|
81
|
-
const pload3 = {
|
|
82
|
-
redirect: {
|
|
83
|
-
destination: `${API_PATHS[utils_1.API_ROUTE_NAMES.AUTH]}?${queryParams}`,
|
|
84
|
-
permanent: false,
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
console.log(`>>> protectRoute ~ return CATCH EXIT`, pload3);
|
|
88
|
-
return pload3;
|
|
89
|
-
}
|
|
90
|
-
throw error;
|
|
91
64
|
}
|
|
92
|
-
|
|
65
|
+
return {
|
|
93
66
|
props: utils_1.cleanObject(Object.assign({ locale }, data)),
|
|
94
67
|
};
|
|
95
|
-
console.log(`>>> ~ CLEAN END`, pload4);
|
|
96
|
-
return pload4;
|
|
97
68
|
};
|
|
98
69
|
exports.protectRoute = protectRoute;
|
|
99
70
|
//# sourceMappingURL=protect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect.js","sourceRoot":"","sources":["../../../src/handlers/ssr/protect.js"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"protect.js","sourceRoot":"","sources":["../../../src/handlers/ssr/protect.js"],"names":[],"mappings":";;;AAAA,uCAUoB;AAEb,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;;IACtF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IACvC,MAAM,IAAI,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,IAAI,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,QAAQ,CAAA;IAEvD,IAAI,mBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,0CAA0C;gBAC5F,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,6EAA6E;IAC7E,IAAI,wBAAgB,CAAC,KAAK,CAAC,EAAE;QAC3B,OAAO;YACL,KAAK,EAAE,mBAAW,iBAChB,MAAM,IACH,IAAI,EACP;SACH,CAAA;KACF;IAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,yBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACzF,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,yBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAEjF,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;IACrD,IAAI,kBAAU,CAAC,kBAAkB,CAAC,EAAE;QAClC,oCAAoC;QACpC,MAAM,WAAW,GAAG,IAAI,eAAe,iCAAM,KAAK,KAAE,IAAI,IAAG,CAAC,QAAQ,EAAE,CAAA;QAEtE,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,GAAG,SAAS,CAAC,uBAAe,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;gBAChE,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,IAAI,QAAQ,KAAK,GAAG,EAAE;QACpB,IAAI;YACF,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YAE/B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACvD,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG;aACjB,CAAC,CAAA;YAEF,OAAO;gBACL,QAAQ,EAAE;oBACR,WAAW;oBACX,SAAS,EAAE,KAAK;iBACjB;aACF,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,kCAA0B,EAAE;gBAC/C,yBAAyB;gBACzB,MAAM,WAAW,GAAG,IAAI,eAAe,iCAAM,KAAK,KAAE,IAAI,IAAG,CAAC,QAAQ,EAAE,CAAA;gBAEtE,OAAO;oBACL,QAAQ,EAAE;wBACR,WAAW,EAAE,GAAG,SAAS,CAAC,uBAAe,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;wBAChE,SAAS,EAAE,KAAK;qBACjB;iBACF,CAAA;aACF;YAED,MAAM,KAAK,CAAA;SACZ;KACF;IAED,OAAO;QACL,KAAK,EAAE,mBAAW,iBAChB,MAAM,IACH,IAAI,EACP;KACH,CAAA;AACH,CAAC,CAAA;AA9EY,QAAA,YAAY,gBA8ExB"}
|
package/dist/utils/crypto.d.ts
CHANGED
package/dist/utils/crypto.js
CHANGED
|
@@ -21,16 +21,18 @@ const decryptAES = (toDecrypt, sharedSecret, initialVector) => {
|
|
|
21
21
|
]);
|
|
22
22
|
return decrypted.toString('utf8');
|
|
23
23
|
};
|
|
24
|
-
const decryptRSAPublic = (toDecrypt, publicKey, encoding = 'utf8') => (!toDecrypt || !publicKey
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
// const decryptRSAPublic = (toDecrypt, publicKey, encoding = 'utf8') => (!toDecrypt || !publicKey
|
|
25
|
+
// ? ''
|
|
26
|
+
// : crypto
|
|
27
|
+
// .publicDecrypt(publicKey, Buffer.from(toDecrypt, 'base64'))
|
|
28
|
+
// .toString(encoding)
|
|
29
|
+
// )
|
|
30
|
+
// const encryptRSAPrivate = (toEncrypt, privateKey, encoding = 'utf8') => (!toEncrypt || !privateKey
|
|
31
|
+
// ? ''
|
|
32
|
+
// : crypto
|
|
33
|
+
// .privateEncrypt(privateKey, Buffer.from(JSON.stringify(toEncrypt), encoding))
|
|
34
|
+
// .toString('base64')
|
|
35
|
+
// )
|
|
34
36
|
const generateHMAC = (message, apiSecret, digest = 'hex') => (crypto_1.default.createHmac('sha256', apiSecret)
|
|
35
37
|
.update(message)
|
|
36
38
|
.digest(digest));
|
|
@@ -80,10 +82,10 @@ class CryptoHandler {
|
|
|
80
82
|
return this[singleton];
|
|
81
83
|
}
|
|
82
84
|
decrypt(encrypted) {
|
|
83
|
-
return JSON.parse(decryptRSAPublic(encrypted, this.cryptoConfig.publicKey))
|
|
85
|
+
return encrypted; //JSON.parse(decryptRSAPublic(encrypted, this.cryptoConfig.publicKey))
|
|
84
86
|
}
|
|
85
87
|
encrypt(decrypted) {
|
|
86
|
-
return encryptRSAPrivate(decrypted, this.cryptoConfig.privateKey)
|
|
88
|
+
return decrypted; // encryptRSAPrivate(decrypted, this.cryptoConfig.privateKey)
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
exports.CryptoHandler = CryptoHandler;
|
package/dist/utils/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.js"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,uCAAwD;AAExD,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,EAAE,CAAC,CACxD,cAAc,OAAO,YACnB,sBAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CACxC,YAAY,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CACvD,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,EAAE;IACjC,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,GAAG,EAAE,EAAE,CAAA;AAChF,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAC5D,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAA;IAC5D,MAAM,QAAQ,GAAG,gBAAM,CAAC,gBAAgB,CACtC,aAAa,EACb,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EACnC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CACrC,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,QAAQ,CAAC,KAAK,EAAE;KACjB,CAAC,CAAA;IACF,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.js"],"names":[],"mappings":"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"}
|
package/dist/utils/session.js
CHANGED
|
@@ -30,37 +30,25 @@ const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
|
30
30
|
config: { configurationId: APP_ID, shop: (_a = shopify === null || shopify === void 0 ? void 0 : shopify.utils) === null || _a === void 0 ? void 0 : _a.sanitizeShop(shop) },
|
|
31
31
|
});
|
|
32
32
|
const decryptVerifySession = async ({ req, res } = {}) => {
|
|
33
|
-
var _a, _b
|
|
33
|
+
var _a, _b;
|
|
34
34
|
try {
|
|
35
|
-
const
|
|
36
|
-
const sessionId = (isOnline)
|
|
35
|
+
const sessionId = ((req != undefined) && (res != undefined))
|
|
37
36
|
? (await shopify.session.getCurrentId({
|
|
38
37
|
isOnline: true,
|
|
39
38
|
rawRequest: req,
|
|
40
39
|
rawResponse: res,
|
|
41
40
|
})) : (await shopify.session.getOfflineId(shop) // NOTE: not sure if this is working yet?
|
|
42
41
|
);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
console.log(`>>> ~ session`, session);
|
|
46
|
-
// TODO clear sessions if undefined????
|
|
42
|
+
const _c = (_a = (await firebase_1.loadCallback(sessionHandler, sessionId))) !== null && _a !== void 0 ? _a : {}, { accessToken: encryptedAccessToken } = _c, session = __rest(_c, ["accessToken"]);
|
|
43
|
+
// TODO clear sessions if undefined???
|
|
47
44
|
if (display_1.stringNotEmpty(session === null || session === void 0 ? void 0 : session.shop) && (session.shop !== shop)) {
|
|
48
45
|
throw new Error('Invalid shop');
|
|
49
46
|
}
|
|
50
|
-
|
|
51
|
-
const scopesUnchanged = display_1.arraysMatch(display_1.splitCommas((_c = shopify.config) === null || _c === void 0 ? void 0 : _c.scopes.toString()), display_1.splitCommas(session === null || session === void 0 ? void 0 : session.scope));
|
|
47
|
+
const scopesUnchanged = display_1.arraysMatch(display_1.splitCommas((_b = shopify.config) === null || _b === void 0 ? void 0 : _b.scopes.toString()), display_1.splitCommas(session === null || session === void 0 ? void 0 : session.scope));
|
|
52
48
|
const sessionExpired = !(session === null || session === void 0 ? void 0 : session.expires) || (luxon_1.DateTime.fromISO(session.expires) < luxon_1.DateTime.now());
|
|
53
|
-
console.log(`>>> ~ sessionExpired`, sessionExpired);
|
|
54
49
|
const sessionActive = (scopesUnchanged && !sessionExpired);
|
|
55
|
-
console.log(`>>> ~ sessionActive`, sessionActive);
|
|
56
50
|
if (!sessionActive) {
|
|
57
|
-
|
|
58
|
-
isOnline,
|
|
59
|
-
sessionActive,
|
|
60
|
-
sessionExpired,
|
|
61
|
-
session,
|
|
62
|
-
};
|
|
63
|
-
throw new Error(`Inactive session: ${JSON.stringify(errr)}`);
|
|
51
|
+
throw new Error('Inactive session');
|
|
64
52
|
}
|
|
65
53
|
return Object.assign(Object.assign({}, session), { accessToken: cryptoHandler.decrypt(encryptedAccessToken) });
|
|
66
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAAwD;AACxD,iCAAgC;AAEhC,uCAAyC;AACzC,uCAA4E;AAC5E,uCAA6D;AAC7D,yCAMmB;AACnB,qCAAwC;AACxC,qCAAqD;AAE9C,MAAM,iBAAiB,GAAG,KAAK,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;;IACvE,MAAM,OAAO,GAAG,MAAM,+BAAqB,CAAC,mBAAmB,CAAC,CAAA;IAChE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAA;IAErG,MAAM,aAAa,GAAG,sBAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,cAAc,GAAG,iCAAsB,CAAC,WAAW,CACvD,SAAS,EACT;QACE,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,YAAY,CAAC,IAAI,CAAC,EAAE;KAC9E,CACF,CAAA;IAED,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;;QACvD,IAAI;YACF,MAAM,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.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-alpha.
|
|
3
|
+
"version": "1.8.1-alpha.22",
|
|
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",
|