@agnostack/next-shopify 2.1.0 → 2.1.1-alpha.10
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 +70 -0
- package/dist/lib/handlers/ssr/protect.d.ts +1 -1
- package/dist/lib/handlers/ssr/protect.d.ts.map +1 -1
- package/dist/lib/handlers/ssr/protect.js +105 -65
- package/dist/lib/handlers/ssr/protect.js.map +1 -1
- package/dist/lib/utils/session.d.ts +6 -1
- package/dist/lib/utils/session.d.ts.map +1 -1
- package/dist/lib/utils/session.js +130 -71
- package/dist/lib/utils/session.js.map +1 -1
- package/dist/shared/shopify.d.ts +1 -0
- package/dist/shared/shopify.d.ts.map +1 -1
- package/dist/shared/shopify.js +4 -1
- package/dist/shared/shopify.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,73 @@
|
|
|
1
|
+
## [2.1.1-alpha.10](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.9...v2.1.1-alpha.10) (2024-11-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* wip ensure online session ([48d7bed](https://github.com/agnostack/next-shopify/commit/48d7bed9b0149a32849bd0843e5fa724537f985b))
|
|
7
|
+
|
|
8
|
+
## [2.1.1-alpha.9](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.8...v2.1.1-alpha.9) (2024-11-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* wip ensure online session ([e3dbd45](https://github.com/agnostack/next-shopify/commit/e3dbd45d406002d939680a3cb164f3683c4fbdd1))
|
|
14
|
+
|
|
15
|
+
## [2.1.1-alpha.8](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.7...v2.1.1-alpha.8) (2024-11-01)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* wip ensure online session ([e0af5d9](https://github.com/agnostack/next-shopify/commit/e0af5d96fafa0da945892c42239d82dd02922725))
|
|
21
|
+
|
|
22
|
+
## [2.1.1-alpha.7](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.6...v2.1.1-alpha.7) (2024-11-01)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* wip ensure online session ([fd0027e](https://github.com/agnostack/next-shopify/commit/fd0027efa22349db8b1e6ea74154e30ac6a1e768))
|
|
28
|
+
|
|
29
|
+
## [2.1.1-alpha.6](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.5...v2.1.1-alpha.6) (2024-11-01)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* wip ensure online session ([8bab4d4](https://github.com/agnostack/next-shopify/commit/8bab4d4492617d8dde6ce021f87e36fe1f14c530))
|
|
35
|
+
|
|
36
|
+
## [2.1.1-alpha.5](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.4...v2.1.1-alpha.5) (2024-11-01)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* wip ensure online session ([25d66a5](https://github.com/agnostack/next-shopify/commit/25d66a5b473c1e3dc6cb2becbc2329ef412213d9))
|
|
42
|
+
|
|
43
|
+
## [2.1.1-alpha.4](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.3...v2.1.1-alpha.4) (2024-11-01)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* wip ensure online session ([2cb27f1](https://github.com/agnostack/next-shopify/commit/2cb27f15cf2f594f1504679eccccbc8ed866f6a1))
|
|
49
|
+
|
|
50
|
+
## [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)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### Bug Fixes
|
|
54
|
+
|
|
55
|
+
* wip ensure online session ([205b049](https://github.com/agnostack/next-shopify/commit/205b0495fa7bf53686465fda3e79d632e822b274))
|
|
56
|
+
|
|
57
|
+
## [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)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Bug Fixes
|
|
61
|
+
|
|
62
|
+
* wip ensure online session ([9d05c9d](https://github.com/agnostack/next-shopify/commit/9d05c9d41c56608fdfbba47c95adc6a65a776855))
|
|
63
|
+
|
|
64
|
+
## [2.1.1-alpha.1](https://github.com/agnostack/next-shopify/compare/v2.1.0...v2.1.1-alpha.1) (2024-10-28)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
### Bug Fixes
|
|
68
|
+
|
|
69
|
+
* added TODO ([2959ef9](https://github.com/agnostack/next-shopify/commit/2959ef9ddf7f1903462686a9574dfc031e91b2ca))
|
|
70
|
+
|
|
1
71
|
# [2.1.0](https://github.com/agnostack/next-shopify/compare/v2.0.14...v2.1.0) (2024-10-28)
|
|
2
72
|
|
|
3
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/ssr/protect.js"],"names":[],"mappings":"AA0BO;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"protect.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/ssr/protect.js"],"names":[],"mappings":"AA0BO;;;;;;;;;;;;;;;GAkON"}
|
|
@@ -27,9 +27,19 @@ exports.protectRoute = void 0;
|
|
|
27
27
|
const chalk_1 = __importDefault(require("chalk"));
|
|
28
28
|
const utils_1 = require("../../utils");
|
|
29
29
|
const shared_1 = require("../../../shared");
|
|
30
|
-
const protectRoute = (serverRuntimeConfig,
|
|
30
|
+
const protectRoute = (serverRuntimeConfig, _props) => {
|
|
31
31
|
const { PAGE_PATHS, API_PATHS, APP_CONFIG, PAYMENT_CONFIG } = serverRuntimeConfig;
|
|
32
32
|
const isEmbedded = APP_CONFIG.isEmbeddedApp;
|
|
33
|
+
const processExitRedirect = ({ shop, query, url }) => {
|
|
34
|
+
const queryString = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, redirectUri: url })).toString();
|
|
35
|
+
// TODO determine the correct way to refresh a session token via AppBridge version 3
|
|
36
|
+
return {
|
|
37
|
+
redirect: {
|
|
38
|
+
destination: `${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.EXIT]}?${queryString}`,
|
|
39
|
+
permanent: false,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
};
|
|
33
43
|
return ({ req, res, query, locale, resolvedUrl, // NOTE: this comes in from nextJS
|
|
34
44
|
} = {}, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
45
|
var _a, _b, _c, _d;
|
|
@@ -42,44 +52,73 @@ const protectRoute = (serverRuntimeConfig, props) => {
|
|
|
42
52
|
},
|
|
43
53
|
};
|
|
44
54
|
}
|
|
55
|
+
const props = (0, shared_1.cleanObject)(Object.assign(Object.assign({ locale }, _props), data), false, shared_1.stringEmptyOnly);
|
|
45
56
|
// NOTE: this should handle running in next to test non-shopify functionality
|
|
46
57
|
const shouldBypassProtect = (0, utils_1.allowLocalBypass)(serverRuntimeConfig);
|
|
47
58
|
if (shouldBypassProtect) {
|
|
48
59
|
console.info(`${chalk_1.default.yellowBright('next-shopify')} - [${chalk_1.default.bold('protectRoute')}]: ${`Bypassing local protect - should ONLY happen when running in next to test non-shopify functionality!`}`);
|
|
49
|
-
return {
|
|
50
|
-
props: (0, shared_1.cleanObject)(Object.assign(Object.assign({ locale }, props), data), false, shared_1.stringEmptyOnly),
|
|
51
|
-
};
|
|
60
|
+
return { props };
|
|
52
61
|
}
|
|
53
|
-
const { shopify, loadAppData, loadSession, storeSession, findSessionIds,
|
|
62
|
+
const { shopify, loadAppData, loadSession, storeSession, findSessionIds, validateSessionToken, exchangeSessionToken, ensureBilling: handleEnsureBilling, } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
54
63
|
if (shopify === null || shopify === void 0 ? void 0 : shopify.config) {
|
|
55
64
|
res.setHeader('Content-Security-Policy', (0, utils_1.getSecurityHeader)(shop, shopify.config));
|
|
56
65
|
}
|
|
66
|
+
// #region EMBEDDED APP FLOW
|
|
57
67
|
if (isEmbedded) {
|
|
68
|
+
console.info(`>>> ~~~~~~~ PROTECT`);
|
|
58
69
|
const idToken = (_c = query === null || query === void 0 ? void 0 : query[shared_1.SESSION_TOKEN_PARAM]) !== null && _c !== void 0 ? _c : (_d = req.query) === null || _d === void 0 ? void 0 : _d[shared_1.SESSION_TOKEN_PARAM];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const [resolvedPath, _resolvedParams] = (0, shared_1.ensureString)(resolvedUrl).split('?');
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
63
|
-
const _e = (0, shared_1.querystringToObject)(_resolvedParams), _f = shared_1.SESSION_TOKEN_PARAM, _oldToken = _e[_f], resolvedParams = __rest(_e, [typeof _f === "symbol" ? _f : _f + ""]);
|
|
64
|
-
const redirectUri = (0, shared_1.appendQuery)(resolvedPath, new URLSearchParams(resolvedParams).toString());
|
|
65
|
-
// TODO determine the correct way to refresh a session token via AppBridge version 3
|
|
70
|
+
if ((0, shared_1.stringEmpty)(idToken)) {
|
|
71
|
+
console.info(`>>> ~ PROTECT (no idToken, redirect)`);
|
|
66
72
|
return {
|
|
67
73
|
redirect: {
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
// TODO add custom code for this use case
|
|
75
|
+
destination: `${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.ERROR]}?type=protectRoute`,
|
|
70
76
|
permanent: false,
|
|
71
77
|
},
|
|
72
78
|
};
|
|
73
79
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
let isValid;
|
|
81
|
+
let offlineSession;
|
|
82
|
+
const { isValid: isValidToken } = yield validateSessionToken({ idToken });
|
|
83
|
+
isValid = isValidToken;
|
|
84
|
+
console.info(`>>> ~ PROTECT (validateSessionToken) ${isValidToken}`);
|
|
85
|
+
if (isValid) {
|
|
86
|
+
const { isValid: isValidExchange, accessToken: { session, } = {}, } = yield exchangeSessionToken({ idToken });
|
|
87
|
+
isValid = isValidExchange;
|
|
88
|
+
offlineSession = session;
|
|
89
|
+
console.info(`>>> ~ PROTECT (exchangeSessionToken) ${isValidExchange}`, { session });
|
|
90
|
+
}
|
|
91
|
+
// NOTE: this handles an invalid session token
|
|
92
|
+
if (!isValid || !offlineSession) {
|
|
93
|
+
const [resolvedPath, _resolvedParams] = (0, shared_1.ensureString)(resolvedUrl).split('?');
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
95
|
+
const _e = (0, shared_1.querystringToObject)(_resolvedParams), _f = shared_1.SESSION_TOKEN_PARAM, _oldToken = _e[_f], resolvedParams = __rest(_e, [typeof _f === "symbol" ? _f : _f + ""]);
|
|
96
|
+
return processExitRedirect({
|
|
97
|
+
shop,
|
|
98
|
+
query,
|
|
99
|
+
url: (0, shared_1.appendQuery)(resolvedPath, new URLSearchParams(resolvedParams).toString()),
|
|
100
|
+
});
|
|
77
101
|
}
|
|
78
102
|
const existingSessionIds = yield findSessionIds(shop);
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
103
|
+
console.info(`>>> ~ PROTECT (findSessionIds) ${offlineSession.id}`, { existingSessionIds });
|
|
104
|
+
// NOTE: this handles first time installs
|
|
105
|
+
if (!existingSessionIds.includes(offlineSession.id)) {
|
|
106
|
+
console.info(`>>> ~ PROTECT (first install)`);
|
|
107
|
+
try {
|
|
108
|
+
yield storeSession(offlineSession.toObject());
|
|
109
|
+
console.info(`>>> ~ PROTECT (storeSession, offlineSession)`);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error('Error storing session', error);
|
|
113
|
+
console.info(`>>> ~ PROTECT ERROR (storeSession, offlineSession)`);
|
|
114
|
+
return {
|
|
115
|
+
redirect: {
|
|
116
|
+
// TODO add custom code for this use case
|
|
117
|
+
destination: `${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.ERROR]}?type=protectRoute`,
|
|
118
|
+
permanent: false,
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
83
122
|
let appId;
|
|
84
123
|
try {
|
|
85
124
|
const { appInfo } = yield loadAppData();
|
|
@@ -99,21 +138,48 @@ const protectRoute = (serverRuntimeConfig, props) => {
|
|
|
99
138
|
// NOTE: handleEnsureBilling handles calling encryptStoreSession for offline session when shouldCheckBilling
|
|
100
139
|
const callbackUrl = yield handleEnsureBilling(offlineSession);
|
|
101
140
|
if ((0, shared_1.stringNotEmpty)(callbackUrl)) {
|
|
102
|
-
return {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
};
|
|
141
|
+
return processExitRedirect({
|
|
142
|
+
shop,
|
|
143
|
+
query,
|
|
144
|
+
url: callbackUrl,
|
|
145
|
+
});
|
|
108
146
|
}
|
|
109
147
|
}
|
|
110
148
|
}
|
|
149
|
+
console.info(`>>> ~ PROTECT (all good)`);
|
|
150
|
+
return { props };
|
|
111
151
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
152
|
+
// #endregion EMBEDDED APP FLOW
|
|
153
|
+
// NOTE: this flow is not currently being use dby any apps
|
|
154
|
+
// #region NON_EMBEDDED APP FLOW
|
|
155
|
+
const existingSessionIds = yield findSessionIds(shop);
|
|
156
|
+
if ((0, shared_1.arrayEmpty)(existingSessionIds)) {
|
|
157
|
+
// TODO: explore objectToQuerystring
|
|
158
|
+
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop })).toString();
|
|
159
|
+
return {
|
|
160
|
+
redirect: {
|
|
161
|
+
destination: `${API_PATHS[shared_1.API_ROUTE_NAMES.AUTH_ONLINE]}?${queryParams}`,
|
|
162
|
+
permanent: false,
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
// NOTE: this does not work if called INSIDE of embedded
|
|
168
|
+
yield loadSession({ req, res });
|
|
169
|
+
return {
|
|
170
|
+
redirect: {
|
|
171
|
+
destination: yield shopify.auth.getEmbeddedAppUrl({
|
|
172
|
+
rawRequest: req,
|
|
173
|
+
rawResponse: res,
|
|
174
|
+
}),
|
|
175
|
+
permanent: false,
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (error instanceof shared_1.ShopifyAuthenticationError) {
|
|
115
181
|
// TODO: explore objectToQuerystring
|
|
116
|
-
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop })).toString();
|
|
182
|
+
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, reAuth: (error instanceof shared_1.ShopifySessionAuthenticationError) })).toString();
|
|
117
183
|
return {
|
|
118
184
|
redirect: {
|
|
119
185
|
destination: `${API_PATHS[shared_1.API_ROUTE_NAMES.AUTH_ONLINE]}?${queryParams}`,
|
|
@@ -121,41 +187,15 @@ const protectRoute = (serverRuntimeConfig, props) => {
|
|
|
121
187
|
},
|
|
122
188
|
};
|
|
123
189
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
});
|
|
132
|
-
return {
|
|
133
|
-
redirect: {
|
|
134
|
-
destination,
|
|
135
|
-
permanent: false,
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
if (error instanceof shared_1.ShopifyAuthenticationError) {
|
|
141
|
-
// TODO: explore objectToQuerystring
|
|
142
|
-
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, reAuth: (error instanceof shared_1.ShopifySessionAuthenticationError) })).toString();
|
|
143
|
-
return {
|
|
144
|
-
redirect: {
|
|
145
|
-
destination: `${API_PATHS[shared_1.API_ROUTE_NAMES.AUTH_ONLINE]}?${queryParams}`,
|
|
146
|
-
permanent: false,
|
|
147
|
-
},
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
console.error('Error protecting route.', error);
|
|
151
|
-
// HMMMMMMM: this doesnt look right to throw here!!??!
|
|
152
|
-
throw error;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
190
|
+
return {
|
|
191
|
+
redirect: {
|
|
192
|
+
// TODO add custom code for this use case
|
|
193
|
+
destination: `${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.ERROR]}?type=protectRoute`,
|
|
194
|
+
permanent: false,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
155
197
|
}
|
|
156
|
-
|
|
157
|
-
props: (0, shared_1.cleanObject)(Object.assign(Object.assign({ locale }, props), data), false, shared_1.stringEmptyOnly),
|
|
158
|
-
};
|
|
198
|
+
// #endregion NON_EMBEDDED APP FLOW
|
|
159
199
|
});
|
|
160
200
|
};
|
|
161
201
|
exports.protectRoute = protectRoute;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect.js","sourceRoot":"","sources":["../../../../src/lib/handlers/ssr/protect.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AAEzB,uCAKoB;AACpB,4CAgBwB;AAEjB,MAAM,YAAY,GAAG,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"protect.js","sourceRoot":"","sources":["../../../../src/lib/handlers/ssr/protect.js"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,12 @@ export function getShopifyHelpers(serverRuntimeConfig: any, config: any): Promis
|
|
|
8
8
|
Graphql: import("@shopify/shopify-api").GraphqlClient;
|
|
9
9
|
} | undefined>);
|
|
10
10
|
getAppUrl: (() => undefined) | ((_appPath: any) => Promise<string | undefined>);
|
|
11
|
-
|
|
11
|
+
validateSessionToken: (() => {}) | (({ idToken: idTokens }?: {
|
|
12
|
+
idToken: any;
|
|
13
|
+
}) => Promise<{
|
|
14
|
+
isValid: boolean;
|
|
15
|
+
}>);
|
|
16
|
+
exchangeSessionToken: (() => {}) | (({ idToken: idTokens, isOnline }?: {
|
|
12
17
|
idToken: any;
|
|
13
18
|
isOnline: any;
|
|
14
19
|
}) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/session.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/session.js"],"names":[],"mappings":"AAsCO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8aN;AAoCM;;;;;;mBAoBN"}
|
|
@@ -45,6 +45,14 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
45
45
|
collection: FB_ROOT_COLLECTION,
|
|
46
46
|
configurationId: APP_ID,
|
|
47
47
|
});
|
|
48
|
+
const buildEmbeddedAppUrl = (_appPath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
if ((0, shared_1.stringEmpty)(shop)) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const embeddedAppBaseUrl = yield shopify.auth.buildEmbeddedAppUrl((0, js_base64_1.encode)(`${shop}/admin`));
|
|
53
|
+
const appPath = (0, shared_1.removeLeadingSlash)(_appPath);
|
|
54
|
+
return `${embeddedAppBaseUrl}${(0, shared_1.stringNotEmpty)(appPath) ? `/${appPath}` : ''}`;
|
|
55
|
+
});
|
|
48
56
|
const decryptData = (encrypted, { publicKey, sharedSecret } = {}) => {
|
|
49
57
|
if (!cryptoHandler.verifyPublicKey(publicKey, sharedSecret)) {
|
|
50
58
|
throw new Error('Invalid or missing public key');
|
|
@@ -56,7 +64,7 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
56
64
|
[key]: encryptData(value),
|
|
57
65
|
})), {}));
|
|
58
66
|
// #region internal shopifyHelper implementations
|
|
59
|
-
const
|
|
67
|
+
const validateSessionToken = ({ idToken: idTokens } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
68
|
const [idToken] = (0, shared_1.ensureArray)(idTokens);
|
|
61
69
|
if ((0, shared_1.stringEmpty)(idToken)) {
|
|
62
70
|
console.warn('Missing ID token');
|
|
@@ -67,11 +75,19 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
67
75
|
if (!(decodedSessionToken === null || decodedSessionToken === void 0 ? void 0 : decodedSessionToken.dest) || (new URL(decodedSessionToken.dest).hostname !== shop)) {
|
|
68
76
|
return { isValid: false };
|
|
69
77
|
}
|
|
78
|
+
return { isValid: true };
|
|
70
79
|
}
|
|
71
80
|
catch (error) {
|
|
72
81
|
console.error('Error decoding/validating session token', error);
|
|
73
82
|
return { isValid: false };
|
|
74
83
|
}
|
|
84
|
+
});
|
|
85
|
+
const exchangeSessionToken = ({ idToken: idTokens, isOnline } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
86
|
+
const [idToken] = (0, shared_1.ensureArray)(idTokens);
|
|
87
|
+
if ((0, shared_1.stringEmpty)(idToken)) {
|
|
88
|
+
console.warn('Missing ID token');
|
|
89
|
+
return { isValid: false };
|
|
90
|
+
}
|
|
75
91
|
const tokenPayload = {
|
|
76
92
|
shop,
|
|
77
93
|
sessionToken: idToken,
|
|
@@ -86,61 +102,6 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
86
102
|
return { isValid: false };
|
|
87
103
|
}
|
|
88
104
|
});
|
|
89
|
-
const verifySession = ({ req, res, isOnline: _isOnline } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
-
var _c, _d;
|
|
91
|
-
try {
|
|
92
|
-
const isOnline = _isOnline !== null && _isOnline !== void 0 ? _isOnline : ((req != undefined) && (res != undefined));
|
|
93
|
-
let session;
|
|
94
|
-
let accessToken;
|
|
95
|
-
if (isOnline) {
|
|
96
|
-
const authHeader = req.headers.authorization;
|
|
97
|
-
const idToken = (authHeader === null || authHeader === void 0 ? void 0 : authHeader.startsWith('Bearer '))
|
|
98
|
-
? authHeader.substring(7)
|
|
99
|
-
: (_c = req === null || req === void 0 ? void 0 : req.query) === null || _c === void 0 ? void 0 : _c[shared_1.SESSION_TOKEN_PARAM];
|
|
100
|
-
if ((0, shared_1.stringEmpty)(idToken)) {
|
|
101
|
-
throw new shared_1.ShopifySessionMissingError('Missing session token');
|
|
102
|
-
}
|
|
103
|
-
const { isValid, accessToken: { session: _onlineSession, } = {}, } = yield validateAccessToken({ idToken, isOnline });
|
|
104
|
-
if (!isValid) {
|
|
105
|
-
console.warn('Invalid Session');
|
|
106
|
-
throw new shared_1.ShopifySessionAuthenticationError('Invalid session');
|
|
107
|
-
}
|
|
108
|
-
const _e = (0, shared_1.ensureObject)(_onlineSession), { accessToken: onlineAccessToken } = _e, onlineSession = __rest(_e, ["accessToken"]);
|
|
109
|
-
if ((0, shared_1.stringEmpty)(onlineAccessToken)) {
|
|
110
|
-
throw new shared_1.ShopifySessionMissingError('Missing online session');
|
|
111
|
-
}
|
|
112
|
-
accessToken = onlineAccessToken;
|
|
113
|
-
session = onlineSession;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
const sessionId = shopify.session.getOfflineId(shop);
|
|
117
|
-
const _f = (_d = (yield (0, firebase_1.loadCallback)(sessionHandler, shopId, sessionId))) !== null && _d !== void 0 ? _d : {}, { accessToken: encryptedOfflineAccessToken } = _f, offlineSession = __rest(_f, ["accessToken"]);
|
|
118
|
-
if ((0, shared_1.stringEmpty)(encryptedOfflineAccessToken)) {
|
|
119
|
-
throw new shared_1.ShopifySessionMissingError('Missing offline session', { sessionId });
|
|
120
|
-
}
|
|
121
|
-
accessToken = encryptedOfflineAccessToken;
|
|
122
|
-
session = offlineSession;
|
|
123
|
-
}
|
|
124
|
-
if ((0, shared_1.stringNotEmpty)(session === null || session === void 0 ? void 0 : session.shop) && (session.shop !== shop)) {
|
|
125
|
-
throw new Error('Invalid shop');
|
|
126
|
-
}
|
|
127
|
-
return Object.assign(Object.assign({}, session), { accessToken, encrypted: !isOnline });
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
if (error instanceof shared_1.ShopifySessionAuthenticationError) {
|
|
131
|
-
throw error;
|
|
132
|
-
}
|
|
133
|
-
throw new shared_1.ShopifyAuthenticationError(error === null || error === void 0 ? void 0 : error.message);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
const decryptVerifySession = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
137
|
-
const _g = yield verifySession(params), {
|
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
139
|
-
data,
|
|
140
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
141
|
-
secure, encrypted, accessToken } = _g, session = __rest(_g, ["data", "secure", "encrypted", "accessToken"]);
|
|
142
|
-
return Object.assign(Object.assign({}, session), { accessToken: encrypted ? cryptoHandler.decrypt(accessToken) : accessToken });
|
|
143
|
-
});
|
|
144
105
|
const decryptVerifyData = (includeSecure) => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
106
|
const { id, data, secure } = yield verifySession();
|
|
146
107
|
return Object.assign(Object.assign({ id }, data), (includeSecure && secure) && cryptoHandler.decrypt(secure));
|
|
@@ -164,13 +125,110 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
164
125
|
const encryptStoreSession = (session) => __awaiter(void 0, void 0, void 0, function* () {
|
|
165
126
|
return (encryptUpdateSession(session));
|
|
166
127
|
});
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
128
|
+
const verifyOnlineSession = ({ req, res }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
129
|
+
var _c, _d;
|
|
130
|
+
console.info(`>>> ~~~~~~ verifyOnlineSession`);
|
|
131
|
+
const authHeader = req.headers.authorization;
|
|
132
|
+
const idToken = (authHeader === null || authHeader === void 0 ? void 0 : authHeader.startsWith('Bearer '))
|
|
133
|
+
? authHeader.substring(7)
|
|
134
|
+
: (_c = req === null || req === void 0 ? void 0 : req.query) === null || _c === void 0 ? void 0 : _c[shared_1.SESSION_TOKEN_PARAM];
|
|
135
|
+
if ((0, shared_1.stringEmpty)(idToken)) {
|
|
136
|
+
console.info(`>>> ~ verifyOnlineSession (missing idToken)`);
|
|
137
|
+
throw new shared_1.ShopifySessionMissingError('Missing session token');
|
|
170
138
|
}
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
139
|
+
const { isValid: isValidSession } = yield validateSessionToken({ idToken, isOnline: true });
|
|
140
|
+
console.info(`>>> ~ verifyOnlineSession (validateSessionToken, isValidSession) ${isValidSession}`);
|
|
141
|
+
if (!isValidSession) {
|
|
142
|
+
console.warn('Invalid Session');
|
|
143
|
+
console.info(`>>> ~ verifyOnlineSession INVALID (validateSessionToken)`);
|
|
144
|
+
throw new shared_1.ShopifySessionAuthenticationError('Invalid session');
|
|
145
|
+
}
|
|
146
|
+
const sessionId = yield shopify.session.getCurrentId({
|
|
147
|
+
isOnline: true,
|
|
148
|
+
rawRequest: req,
|
|
149
|
+
rawResponse: res,
|
|
150
|
+
});
|
|
151
|
+
console.info(`>>> ~ verifyOnlineSession (sessionId) ${sessionId}`);
|
|
152
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
153
|
+
const _e = (_d = (yield (0, firebase_1.loadCallback)(sessionHandler, shopId, sessionId))) !== null && _d !== void 0 ? _d : {}, { accessToken: encryptedOnlineAccessToken } = _e, storedOnlineSession = __rest(_e, ["accessToken"]);
|
|
154
|
+
console.info(`>>> ~ verifyOnlineSession (storedOnlineSession)`, { storedOnlineSession });
|
|
155
|
+
let session = storedOnlineSession;
|
|
156
|
+
let accessToken = encryptedOnlineAccessToken;
|
|
157
|
+
let isEncrypted = true;
|
|
158
|
+
if ((0, shared_1.isTokenExpired)(storedOnlineSession)) {
|
|
159
|
+
console.info(`>>> ~ verifyOnlineSession (tokenExpired)`);
|
|
160
|
+
const { isValid: isValidExchange, accessToken: { session: newOnlineSession, } = {}, } = yield exchangeSessionToken({ idToken, isOnline: true });
|
|
161
|
+
console.info(`>>> ~ verifyOnlineSession (isValidExchange)`, { isValidExchange, newOnlineSession });
|
|
162
|
+
if (!isValidExchange) {
|
|
163
|
+
console.warn('Invalid Session');
|
|
164
|
+
console.info(`>>> ~ verifyOnlineSession INVALID (exchangeSessionToken)`);
|
|
165
|
+
throw new shared_1.ShopifySessionAuthenticationError('Invalid session exchange');
|
|
166
|
+
}
|
|
167
|
+
yield encryptStoreSession(newOnlineSession);
|
|
168
|
+
console.info(`>>> ~ verifyOnlineSession (encryptStoreSession written)`);
|
|
169
|
+
session = newOnlineSession;
|
|
170
|
+
accessToken = newOnlineSession === null || newOnlineSession === void 0 ? void 0 : newOnlineSession.accessToken;
|
|
171
|
+
isEncrypted = false;
|
|
172
|
+
}
|
|
173
|
+
console.info(`>>> ~ verifyOnlineSession (return)`, {
|
|
174
|
+
session,
|
|
175
|
+
sessionId,
|
|
176
|
+
isEncrypted,
|
|
177
|
+
});
|
|
178
|
+
return {
|
|
179
|
+
session,
|
|
180
|
+
sessionId,
|
|
181
|
+
accessToken,
|
|
182
|
+
isEncrypted,
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
const verifyOfflineSession = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
186
|
+
var _f;
|
|
187
|
+
console.info(`>>> ~~~~~~ verifyOfflineSession`);
|
|
188
|
+
const sessionId = shopify.session.getOfflineId(shop);
|
|
189
|
+
console.info(`>>> ~ verifyOfflineSession (sessionId) ${sessionId}`);
|
|
190
|
+
const _g = (_f = (yield (0, firebase_1.loadCallback)(sessionHandler, shopId, sessionId))) !== null && _f !== void 0 ? _f : {}, { accessToken: encryptedOfflineAccessToken } = _g, offlineSession = __rest(_g, ["accessToken"]);
|
|
191
|
+
console.info(`>>> ~ verifyOnlineSession (return)`, {
|
|
192
|
+
session: offlineSession,
|
|
193
|
+
sessionId,
|
|
194
|
+
isEncrypted: true,
|
|
195
|
+
});
|
|
196
|
+
return {
|
|
197
|
+
sessionId,
|
|
198
|
+
session: offlineSession,
|
|
199
|
+
accessToken: encryptedOfflineAccessToken,
|
|
200
|
+
isEncrypted: true,
|
|
201
|
+
};
|
|
202
|
+
});
|
|
203
|
+
const verifySession = ({ req, res, isOnline: _isOnline } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
204
|
+
try {
|
|
205
|
+
const isOnline = _isOnline !== null && _isOnline !== void 0 ? _isOnline : ((req != undefined) && (res != undefined));
|
|
206
|
+
console.info(`>>> ~ verifySession (isOnline) ${isOnline}`);
|
|
207
|
+
const { session, sessionId, accessToken, isEncrypted } = isOnline
|
|
208
|
+
? yield verifyOnlineSession({ req, res })
|
|
209
|
+
: yield verifyOfflineSession();
|
|
210
|
+
if ((0, shared_1.stringNotEmpty)(session === null || session === void 0 ? void 0 : session.shop) && (session.shop !== shop)) {
|
|
211
|
+
throw new Error('Invalid shop');
|
|
212
|
+
}
|
|
213
|
+
if ((0, shared_1.stringEmpty)(accessToken)) {
|
|
214
|
+
throw new shared_1.ShopifySessionMissingError(`Missing ${isOnline ? 'online' : 'offline'} session`, { sessionId });
|
|
215
|
+
}
|
|
216
|
+
return Object.assign(Object.assign({}, session), { accessToken, isEncrypted });
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
if (error instanceof shared_1.ShopifySessionAuthenticationError) {
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
throw new shared_1.ShopifyAuthenticationError(error === null || error === void 0 ? void 0 : error.message);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
const decryptVerifySession = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
226
|
+
const _h = yield verifySession(params), {
|
|
227
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
228
|
+
data,
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
230
|
+
secure, isEncrypted, accessToken } = _h, session = __rest(_h, ["data", "secure", "isEncrypted", "accessToken"]);
|
|
231
|
+
return Object.assign(Object.assign({}, session), { accessToken: isEncrypted ? cryptoHandler.decrypt(accessToken) : accessToken });
|
|
174
232
|
});
|
|
175
233
|
const _getLatestOfflineSession = (session) => __awaiter(void 0, void 0, void 0, function* () {
|
|
176
234
|
if ((0, shared_1.stringNotEmpty)(session === null || session === void 0 ? void 0 : session.billingStatus)) {
|
|
@@ -185,7 +243,7 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
185
243
|
});
|
|
186
244
|
});
|
|
187
245
|
const handleEnsureBilling = (session, { reAuth, forceBilling: _forceBilling = false } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
188
|
-
var
|
|
246
|
+
var _j;
|
|
189
247
|
if (!isReviewMode && !(0, shared_1.isTrue)(session === null || session === void 0 ? void 0 : session.isOnline)) {
|
|
190
248
|
yield encryptStoreSession(session);
|
|
191
249
|
return (0, billing_1.ensureBilling)(PAYMENT_CONFIG, { session, shopify, forceBilling: _forceBilling });
|
|
@@ -194,7 +252,7 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
194
252
|
if (isReviewMode) {
|
|
195
253
|
const offlineSession = yield _getLatestOfflineSession(session);
|
|
196
254
|
// NOTE: billingStatus is a custom field we add when we're in review mode to handle reauth billing correctly
|
|
197
|
-
const billingStatus = (
|
|
255
|
+
const billingStatus = (_j = offlineSession === null || offlineSession === void 0 ? void 0 : offlineSession.billingStatus) !== null && _j !== void 0 ? _j : 'PENDING';
|
|
198
256
|
if ((0, shared_1.objectNotEmpty)(offlineSession) && (0, shared_1.stringEmpty)(offlineSession.billingStatus)) {
|
|
199
257
|
// NOTE: offlineSession should be latest from FB or Shopify session
|
|
200
258
|
yield encryptStoreSession(Object.assign(Object.assign({}, offlineSession), { billingStatus }));
|
|
@@ -235,17 +293,17 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
235
293
|
}
|
|
236
294
|
});
|
|
237
295
|
const loadAppData = ({ appId: _appId } = {}) => __awaiter(void 0, void 0, void 0, function* () {
|
|
238
|
-
var
|
|
296
|
+
var _k, _l, _m, _o, _p, _q;
|
|
239
297
|
// TODO!!!!!: ensure this is all cached
|
|
240
298
|
let { id: appId } = (0, shared_1.normalizeShopifyId)(_appId);
|
|
241
|
-
const { Graphql } = (
|
|
299
|
+
const { Graphql } = (_k = yield getVerifiedClients()) !== null && _k !== void 0 ? _k : {};
|
|
242
300
|
if ((0, shared_1.stringEmpty)(appId)) {
|
|
243
301
|
const appResponse = yield Graphql.query({
|
|
244
302
|
data: {
|
|
245
303
|
query: shared_1.APP_QUERY.INSTALLATION_BASIC,
|
|
246
304
|
},
|
|
247
305
|
});
|
|
248
|
-
const { id: currentAppId } = (0, shared_1.normalizeShopifyId)((
|
|
306
|
+
const { id: currentAppId } = (0, shared_1.normalizeShopifyId)((_o = (_m = (_l = appResponse === null || appResponse === void 0 ? void 0 : appResponse.body) === null || _l === void 0 ? void 0 : _l.data) === null || _m === void 0 ? void 0 : _m.currentAppInstallation) === null || _o === void 0 ? void 0 : _o.app);
|
|
249
307
|
appId = currentAppId;
|
|
250
308
|
}
|
|
251
309
|
// TODO: throw/return early if still no appId??
|
|
@@ -255,13 +313,14 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
255
313
|
variables: { namespace: `${appId}-metafields` },
|
|
256
314
|
},
|
|
257
315
|
});
|
|
258
|
-
return shared_1.TRANSFORM.APP_QUERY((
|
|
316
|
+
return shared_1.TRANSFORM.APP_QUERY((_q = (_p = appInstallation === null || appInstallation === void 0 ? void 0 : appInstallation.body) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.currentAppInstallation);
|
|
259
317
|
});
|
|
260
318
|
// #endregion internal shopifyHelper implementations
|
|
261
|
-
return Object.assign({ shopify, getAppUrl: () => undefined, getVerifiedClients: () => undefined, loadAppData: () => undefined, loadData: () => ({}), loadSecureData: () => ({}), loadSession: () => ({}), storeSession: () => ({}), updateSession: () => ({}), deleteSessions: () => undefined, findSessionIds: () => ([]), ensureBilling: () => undefined,
|
|
319
|
+
return Object.assign({ shopify, getAppUrl: () => undefined, getVerifiedClients: () => undefined, loadAppData: () => undefined, loadData: () => ({}), loadSecureData: () => ({}), loadSession: () => ({}), storeSession: () => ({}), updateSession: () => ({}), deleteSessions: () => undefined, findSessionIds: () => ([]), ensureBilling: () => undefined, validateSessionToken: () => ({}), exchangeSessionToken: () => ({}) }, shopify && {
|
|
262
320
|
getVerifiedClients,
|
|
263
321
|
getAppUrl: buildEmbeddedAppUrl,
|
|
264
|
-
|
|
322
|
+
validateSessionToken,
|
|
323
|
+
exchangeSessionToken,
|
|
265
324
|
encryptData,
|
|
266
325
|
decryptData,
|
|
267
326
|
loadAppData,
|
|
@@ -272,7 +331,7 @@ const getShopifyHelpers = (serverRuntimeConfig, config) => __awaiter(void 0, voi
|
|
|
272
331
|
ensureBilling: handleEnsureBilling,
|
|
273
332
|
updateSession: (sessionId, data) => __awaiter(void 0, void 0, void 0, function* () { return encryptUpdateSession(Object.assign(Object.assign({}, data), { id: sessionId })); }),
|
|
274
333
|
deleteSessions: (sessionIds) => __awaiter(void 0, void 0, void 0, function* () { return (0, firebase_1.deleteSessionsCallback)(sessionHandler, shopId, sessionIds); }),
|
|
275
|
-
findSessionIds: (_shop) => __awaiter(void 0, void 0, void 0, function* () { var
|
|
334
|
+
findSessionIds: (_shop) => __awaiter(void 0, void 0, void 0, function* () { var _r, _s; return (0, firebase_1.findSessionIdsByShop)(sessionHandler, (_s = (_r = shopify === null || shopify === void 0 ? void 0 : shopify.utils) === null || _r === void 0 ? void 0 : _r.sanitizeShop) === null || _s === void 0 ? void 0 : _s.call(_r, _shop)); }),
|
|
276
335
|
});
|
|
277
336
|
});
|
|
278
337
|
exports.getShopifyHelpers = getShopifyHelpers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/lib/utils/session.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/lib/utils/session.js"],"names":[],"mappings":"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"}
|
package/dist/shared/shopify.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export function sanitizeShop(shop: any, { throwOnInvalid, customDomains }?: {
|
|
|
10
10
|
export function ensureShop(store: any, { throwOnInvalid, ...params }?: {
|
|
11
11
|
throwOnInvalid: any;
|
|
12
12
|
}): string | undefined;
|
|
13
|
+
export function isTokenExpired(session: any): boolean;
|
|
13
14
|
export function decodeSessionToken(token: any): {
|
|
14
15
|
decoded?: undefined;
|
|
15
16
|
token?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopify.d.ts","sourceRoot":"","sources":["../../src/shared/shopify.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shopify.d.ts","sourceRoot":"","sources":["../../src/shared/shopify.js"],"names":[],"mappings":"AAeA,0CAAmC;AAI5B;;;EAcN;AAGM;;;WAQN;AAGM;;uBAYN;AAEM,sDAEN;AAEM;;;;;;;;;;;;;;;;EAiCN"}
|
package/dist/shared/shopify.js
CHANGED
|
@@ -14,10 +14,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.decodeSessionToken = exports.ensureShop = exports.sanitizeShop = exports.getSanitizedShopData = exports.decodeJWT = void 0;
|
|
17
|
+
exports.decodeSessionToken = exports.isTokenExpired = exports.ensureShop = exports.sanitizeShop = exports.getSanitizedShopData = exports.decodeJWT = void 0;
|
|
18
18
|
const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
19
19
|
const js_base64_1 = require("js-base64");
|
|
20
20
|
const display_1 = require("./display");
|
|
21
|
+
const datetime_1 = require("./datetime");
|
|
21
22
|
// NOTE: this gives us a client-side safe decoder
|
|
22
23
|
exports.decodeJWT = jwt_decode_1.default;
|
|
23
24
|
// NOTE: this is duplicated in lib-core/next-shopify
|
|
@@ -61,6 +62,8 @@ const ensureShop = (store, _a = {}) => {
|
|
|
61
62
|
return (0, display_1.stringNotEmpty)(store) ? `${store}.myshopify.com` : undefined;
|
|
62
63
|
};
|
|
63
64
|
exports.ensureShop = ensureShop;
|
|
65
|
+
const isTokenExpired = (session) => ((!(session === null || session === void 0 ? void 0 : session.expires) || ((0, datetime_1.ensureDateTime)(session.expires) < (0, datetime_1.getCurrentDateTime)())));
|
|
66
|
+
exports.isTokenExpired = isTokenExpired;
|
|
64
67
|
const decodeSessionToken = (token) => {
|
|
65
68
|
if ((0, display_1.stringEmpty)(token)) {
|
|
66
69
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopify.js","sourceRoot":"","sources":["../../src/shared/shopify.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4DAAmC;AACnC,yCAAkC;AAElC,uCAKkB;
|
|
1
|
+
{"version":3,"file":"shopify.js","sourceRoot":"","sources":["../../src/shared/shopify.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": "2.1.
|
|
3
|
+
"version": "2.1.1-alpha.10",
|
|
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",
|