@agnostack/next-shopify 1.8.1-beta.30 → 1.8.1-beta.31
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/utils/session.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export function getShopifyHelpers(serverRuntimeConfig: any, { shop }: {
|
|
|
8
8
|
storeSession: (_session: any) => Promise<any>;
|
|
9
9
|
deleteSessions: (sessionIds: any) => Promise<any[]>;
|
|
10
10
|
findSessionIds: (_shop: any) => Promise<any[]>;
|
|
11
|
+
ensureBilling: (session: any) => Promise<any>;
|
|
11
12
|
shopify: any;
|
|
12
13
|
}>;
|
|
13
14
|
export function getVerifiedClients(serverRuntimeConfig: any, { req, res, shop, apiVersion }: {
|
package/dist/utils/session.js
CHANGED
|
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.getVerifiedClients = exports.getShopifyHelpers = void 0;
|
|
15
15
|
const shopify_api_1 = require("@shopify/shopify-api");
|
|
16
16
|
const luxon_1 = require("luxon");
|
|
17
|
+
const billing_1 = require("./billing");
|
|
17
18
|
const display_1 = require("./display");
|
|
18
19
|
const shopify_1 = require("./shopify");
|
|
19
20
|
const firebase_1 = require("./firebase");
|
|
@@ -22,7 +23,7 @@ const errors_1 = require("./errors");
|
|
|
22
23
|
const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
23
24
|
var _a;
|
|
24
25
|
const shopify = await shopify_1.getInitializedShopify(serverRuntimeConfig);
|
|
25
|
-
const { FB_CONFIG, FB_ROOT_COLLECTION, SESSION_CONFIG, APP_ID } = serverRuntimeConfig;
|
|
26
|
+
const { FB_CONFIG, FB_ROOT_COLLECTION, SESSION_CONFIG, APP_ID, PAYMENT_CONFIG } = serverRuntimeConfig;
|
|
26
27
|
const cryptoHandler = crypto_1.CryptoHandler.getInstance(SESSION_CONFIG);
|
|
27
28
|
const sessionHandler = firebase_1.FirebaseSessionHandler.getInstance(FB_CONFIG, {
|
|
28
29
|
collection: FB_ROOT_COLLECTION,
|
|
@@ -40,14 +41,13 @@ const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
|
40
41
|
})) : (await shopify.session.getOfflineId(shop) // NOTE: not sure if this is working yet?
|
|
41
42
|
);
|
|
42
43
|
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
|
|
44
|
+
// TODO clear sessions if undefined???
|
|
44
45
|
if (display_1.stringNotEmpty(session === null || session === void 0 ? void 0 : session.shop) && (session.shop !== shop)) {
|
|
45
46
|
throw new Error('Invalid shop');
|
|
46
47
|
}
|
|
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));
|
|
48
48
|
// NOTE only online sessions have expirations
|
|
49
49
|
const sessionExpired = isOnline && (!(session === null || session === void 0 ? void 0 : session.expires) || (luxon_1.DateTime.fromISO(session.expires) < luxon_1.DateTime.now()));
|
|
50
|
-
const sessionActive = (
|
|
50
|
+
const sessionActive = (!sessionExpired && 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)));
|
|
51
51
|
if (!sessionActive) {
|
|
52
52
|
throw new Error('Inactive session');
|
|
53
53
|
}
|
|
@@ -61,22 +61,23 @@ const getShopifyHelpers = async (serverRuntimeConfig, { shop }) => {
|
|
|
61
61
|
const { accessToken } = _session, session = __rest(_session, ["accessToken"]);
|
|
62
62
|
return firebase_1.storeCallback(sessionHandler, Object.assign(Object.assign({}, session), { accessToken: cryptoHandler.encrypt(accessToken) }));
|
|
63
63
|
};
|
|
64
|
-
return Object.assign({ shopify, loadSession: () => ({}), storeSession: () => ({}), deleteSessions: () => undefined, findSessionIds: () => ([]) }, shopify && {
|
|
64
|
+
return Object.assign({ shopify, loadSession: () => ({}), storeSession: () => ({}), deleteSessions: () => undefined, findSessionIds: () => ([]), ensureBilling: () => undefined }, shopify && {
|
|
65
65
|
loadSession: decryptVerifySession,
|
|
66
66
|
storeSession: encryptStoreSession,
|
|
67
67
|
deleteSessions: async (sessionIds) => firebase_1.deleteSessionsCallback(sessionHandler, sessionIds),
|
|
68
68
|
findSessionIds: async (_shop) => firebase_1.findSessionIdsByShop(sessionHandler, shopify.utils.sanitizeShop(_shop)),
|
|
69
|
+
ensureBilling: (session) => billing_1.ensureBilling(PAYMENT_CONFIG, { session, shopify }),
|
|
69
70
|
});
|
|
70
71
|
};
|
|
71
72
|
exports.getShopifyHelpers = getShopifyHelpers;
|
|
72
73
|
const getVerifiedClients = async (serverRuntimeConfig, { req, res, shop, apiVersion }) => {
|
|
74
|
+
var _a;
|
|
73
75
|
try {
|
|
74
76
|
const isOnline = (req != undefined) && (res != undefined);
|
|
75
77
|
const { shopify, loadSession, ensureBilling } = await exports.getShopifyHelpers(serverRuntimeConfig, { shop });
|
|
76
78
|
const session = await loadSession({ req, res });
|
|
77
79
|
const Graphql = new shopify.clients.Graphql(Object.assign({ session }, apiVersion && { apiVersion }));
|
|
78
|
-
|
|
79
|
-
if (isOnline && (PAYMENT_CONFIG === null || PAYMENT_CONFIG === void 0 ? void 0 : PAYMENT_CONFIG.required)) {
|
|
80
|
+
if (isOnline && display_1.isTrue((_a = serverRuntimeConfig === null || serverRuntimeConfig === void 0 ? void 0 : serverRuntimeConfig.PAYMENT_CONFIG) === null || _a === void 0 ? void 0 : _a.required)) {
|
|
80
81
|
const confirmationUrl = await ensureBilling(session);
|
|
81
82
|
if (display_1.stringNotEmpty(confirmationUrl)) {
|
|
82
83
|
throw new errors_1.ShopifyAuthenticationError('Invalid payment status', { redirectUrl: confirmationUrl });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.js"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,sDAAwD;AACxD,iCAAgC;AAEhC,
|
|
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-beta.
|
|
3
|
+
"version": "1.8.1-beta.31",
|
|
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",
|