@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 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,4 +1,4 @@
1
- export function protectRoute(serverRuntimeConfig: any, props: any): ({ req, res, query, locale, resolvedUrl, }: {
1
+ export function protectRoute(serverRuntimeConfig: any, _props: any): ({ req, res, query, locale, resolvedUrl, }: {
2
2
  req: any;
3
3
  res: any;
4
4
  query: any;
@@ -1 +1 @@
1
- {"version":3,"file":"protect.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/ssr/protect.js"],"names":[],"mappings":"AA0BO;;;;;;;;;;;;;;;GA8LN"}
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, props) => {
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, validateAccessToken, ensureBilling: handleEnsureBilling, } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
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
- const { isValid, accessToken: { session: _offlineSession, } = {}, } = yield validateAccessToken({ idToken });
60
- if (!isValid) {
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
- destination: `${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.EXIT]}?${new URLSearchParams(Object.assign(Object.assign({}, query), { shop,
69
- redirectUri })).toString()}`,
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
- if (!_offlineSession) {
75
- // HMMMMMMM: this doesnt look right to throw here!!??!
76
- throw new Error('Error validating offline session');
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
- // NOTE only perform new installation tasks if we don't yet have an offline session
80
- if ((0, shared_1.arrayEmpty)(existingSessionIds)) {
81
- const offlineSession = _offlineSession.toObject();
82
- yield storeSession(offlineSession);
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
- redirect: {
104
- destination: `${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.EXIT]}?${new URLSearchParams(Object.assign(Object.assign({}, query), { shop, redirectUri: callbackUrl })).toString()}`,
105
- permanent: false,
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
- else {
113
- const existingSessionIds = yield findSessionIds(shop);
114
- if ((0, shared_1.arrayEmpty)(existingSessionIds)) {
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
- if (!isEmbedded) {
125
- try {
126
- // NOTE: this does not work if called INSIDE of embedded
127
- yield loadSession({ req, res });
128
- const destination = yield shopify.auth.getEmbeddedAppUrl({
129
- rawRequest: req,
130
- rawResponse: res,
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
- return {
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":"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"}
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,MAAM,EAAE,EAAE;IAC1D,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAA;IACjF,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAA;IAE3C,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;QACnD,MAAM,WAAW,GAAG,IAAI,eAAe,iCAClC,KAAK,KACR,IAAI,EACJ,WAAW,EAAE,GAAG,IAChB,CAAC,QAAQ,EAAE,CAAA;QAEb,oFAAoF;QACpF,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,GAAG,UAAU,CAAC,yBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;gBAClE,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CAAO,EACZ,GAAG,EACH,GAAG,EACH,KAAK,EACL,MAAM,EACN,WAAW,EAAE,kCAAkC;MAChD,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;;QACd,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,oBAAW,EAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAA;QAE1D,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;YACrB,OAAO;gBACL,QAAQ,EAAE;oBACR,WAAW,EAAE,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,0CAA0C;oBAC5F,SAAS,EAAE,KAAK;iBACjB;aACF,CAAA;SACF;QAED,MAAM,KAAK,GAAG,IAAA,oBAAW,gCAAG,MAAM,IAAK,MAAM,GAAK,IAAI,GAAI,KAAK,EAAE,wBAAe,CAAC,CAAA;QAEjF,6EAA6E;QAC7E,MAAM,mBAAmB,GAAG,IAAA,wBAAgB,EAAC,mBAAmB,CAAC,CAAA;QACjE,IAAI,mBAAmB,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MACjF,sGACF,EAAE,CAAC,CAAA;YAEH,OAAO,EAAE,KAAK,EAAE,CAAA;SACjB;QAED,MAAM,EACJ,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EAAE,mBAAmB,GACnC,GAAG,MAAM,IAAA,yBAAiB,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;YACnB,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAA,yBAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;SAClF;QAED,4BAA4B;QAC5B,IAAI,UAAU,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,4BAAmB,CAAC,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAG,4BAAmB,CAAC,CAAA;YAEhF,IAAI,IAAA,oBAAW,EAAC,OAAO,CAAC,EAAE;gBACxB,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;gBACpD,OAAO;oBACL,QAAQ,EAAE;wBACR,yCAAyC;wBACzC,WAAW,EAAE,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,oBAAoB;wBACtE,SAAS,EAAE,KAAK;qBACjB;iBACF,CAAA;aACF;YAED,IAAI,OAAO,CAAA;YACX,IAAI,cAAc,CAAA;YAElB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YACzE,OAAO,GAAG,YAAY,CAAA;YAEtB,OAAO,CAAC,IAAI,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAA;YAEpE,IAAI,OAAO,EAAE;gBACX,MAAM,EACJ,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,EACX,OAAO,GACR,GAAG,EAAE,GACP,GAAG,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC3C,OAAO,GAAG,eAAe,CAAA;gBACzB,cAAc,GAAG,OAAO,CAAA;gBACxB,OAAO,CAAC,IAAI,CAAC,wCAAwC,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;aACrF;YAED,8CAA8C;YAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE;gBAC/B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,qBAAY,EAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC5E,6DAA6D;gBAC7D,MAAgE,KAAA,IAAA,4BAAmB,EAAC,eAAe,CAAC,EAA5F,KAAC,4BAAoB,EAAE,SAAS,SAAA,EAAK,cAAc,cAArD,uCAAuD,CAAuC,CAAA;gBACpG,OAAO,mBAAmB,CAAC;oBACzB,IAAI;oBACJ,KAAK;oBACL,GAAG,EAAE,IAAA,oBAAW,EAAC,YAAY,EAAE,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAC/E,CAAC,CAAA;aACH;YAED,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;YAErD,OAAO,CAAC,IAAI,CAAC,kCAAkC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAE3F,yCAAyC;YACzC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;gBACnD,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;gBAC7C,IAAI;oBACF,MAAM,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAC7C,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;iBAC7D;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;oBAC7C,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;oBAClE,OAAO;wBACL,QAAQ,EAAE;4BACR,yCAAyC;4BACzC,WAAW,EAAE,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,oBAAoB;4BACtE,SAAS,EAAE,KAAK;yBACjB;qBACF,CAAA;iBACF;gBAED,IAAI,KAAK,CAAA;gBACT,IAAI;oBACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,EAAE,CAAA;oBACvC,KAAK,GAAG,IAAA,2BAAkB,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC,CAAC,EAAE,CAAA;oBAC5C,oCAAoC;iBACnC;gBAAC,OAAO,OAAO,EAAE;oBAChB,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAA;iBACxD;gBAED,oBAAoB;gBACpB,MAAM,sBAAsB,GAAG,IAAA,iCAAyB,EAAC,mBAAmB,CAAC,CAAA;gBAC7E,MAAM,eAAe,GAAG,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;gBACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;gBAC7C,gIAAgI;gBAChI,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;gBAE5D,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,EAAE;oBAC5B,4GAA4G;oBAC5G,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAA;oBAE7D,IAAI,IAAA,uBAAc,EAAC,WAAW,CAAC,EAAE;wBAC/B,OAAO,mBAAmB,CAAC;4BACzB,IAAI;4BACJ,KAAK;4BACL,GAAG,EAAE,WAAW;yBACjB,CAAC,CAAA;qBACH;iBACF;aACF;YAED,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;YAExC,OAAO,EAAE,KAAK,EAAE,CAAA;SACjB;QACD,+BAA+B;QAE/B,0DAA0D;QAC1D,gCAAgC;QAChC,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,IAAA,mBAAU,EAAC,kBAAkB,CAAC,EAAE;YAClC,oCAAoC;YACpC,MAAM,WAAW,GAAG,IAAI,eAAe,iCAAM,KAAK,KAAE,IAAI,IAAG,CAAC,QAAQ,EAAE,CAAA;YAEtE,OAAO;gBACL,QAAQ,EAAE;oBACR,WAAW,EAAE,GAAG,SAAS,CAAC,wBAAe,CAAC,WAAW,CAAC,IAAI,WAAW,EAAE;oBACvE,SAAS,EAAE,KAAK;iBACjB;aACF,CAAA;SACF;QAED,IAAI;YACF,wDAAwD;YACxD,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YAE/B,OAAO;gBACL,QAAQ,EAAE;oBACR,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;wBAChD,UAAU,EAAE,GAAG;wBACf,WAAW,EAAE,GAAG;qBACjB,CAAC;oBACF,SAAS,EAAE,KAAK;iBACjB;aACF,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,mCAA0B,EAAE;gBAC/C,oCAAoC;gBACpC,MAAM,WAAW,GAAG,IAAI,eAAe,iCAClC,KAAK,KACR,IAAI,EACJ,MAAM,EAAE,CAAC,KAAK,YAAY,0CAAiC,CAAC,IAC5D,CAAC,QAAQ,EAAE,CAAA;gBAEb,OAAO;oBACL,QAAQ,EAAE;wBACR,WAAW,EAAE,GAAG,SAAS,CAAC,wBAAe,CAAC,WAAW,CAAC,IAAI,WAAW,EAAE;wBACvE,SAAS,EAAE,KAAK;qBACjB;iBACF,CAAA;aACF;YAED,OAAO;gBACL,QAAQ,EAAE;oBACR,yCAAyC;oBACzC,WAAW,EAAE,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,oBAAoB;oBACtE,SAAS,EAAE,KAAK;iBACjB;aACF,CAAA;SACF;QACD,mCAAmC;IACrC,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AAlOY,QAAA,YAAY,gBAkOxB"}
@@ -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
- validateAccessToken: (() => undefined) | (({ idToken: idTokens, isOnline }?: {
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":"AAqCO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwWN;AAoCM;;;;;;mBAoBN"}
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 validateAccessToken = ({ idToken: idTokens, isOnline } = {}) => __awaiter(void 0, void 0, void 0, function* () {
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 buildEmbeddedAppUrl = (_appPath) => __awaiter(void 0, void 0, void 0, function* () {
168
- if ((0, shared_1.stringEmpty)(shop)) {
169
- return undefined;
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 embeddedAppBaseUrl = yield shopify.auth.buildEmbeddedAppUrl((0, js_base64_1.encode)(`${shop}/admin`));
172
- const appPath = (0, shared_1.removeLeadingSlash)(_appPath);
173
- return `${embeddedAppBaseUrl}${(0, shared_1.stringNotEmpty)(appPath) ? `/${appPath}` : ''}`;
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 _h;
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 = (_h = offlineSession === null || offlineSession === void 0 ? void 0 : offlineSession.billingStatus) !== null && _h !== void 0 ? _h : 'PENDING';
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 _j, _k, _l, _m, _o, _p;
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 } = (_j = yield getVerifiedClients()) !== null && _j !== void 0 ? _j : {};
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)((_m = (_l = (_k = appResponse === null || appResponse === void 0 ? void 0 : appResponse.body) === null || _k === void 0 ? void 0 : _k.data) === null || _l === void 0 ? void 0 : _l.currentAppInstallation) === null || _m === void 0 ? void 0 : _m.app);
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((_p = (_o = appInstallation === null || appInstallation === void 0 ? void 0 : appInstallation.body) === null || _o === void 0 ? void 0 : _o.data) === null || _p === void 0 ? void 0 : _p.currentAppInstallation);
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, validateAccessToken: () => undefined }, shopify && {
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
- validateAccessToken,
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 _q, _r; return (0, firebase_1.findSessionIdsByShop)(sessionHandler, (_r = (_q = shopify === null || shopify === void 0 ? void 0 : shopify.utils) === null || _q === void 0 ? void 0 : _q.sanitizeShop) === null || _r === void 0 ? void 0 : _r.call(_q, _shop)); }),
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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"}
@@ -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":"AAWA,0CAAmC;AAI5B;;;EAcN;AAGM;;;WAQN;AAGM;;uBAYN;AAEM;;;;;;;;;;;;;;;;EAiCN"}
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"}
@@ -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":"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"}
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.0",
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",