@shopify/shopify-app-remix 2.0.2 → 2.2.0

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.
Files changed (113) hide show
  1. package/build/cjs/server/authenticate/admin/authenticate.js +119 -501
  2. package/build/cjs/server/authenticate/admin/billing/cancel.js +1 -0
  3. package/build/cjs/server/authenticate/admin/billing/request.js +1 -0
  4. package/build/cjs/server/authenticate/admin/billing/require.js +1 -0
  5. package/build/cjs/server/authenticate/admin/helpers/create-admin-api-context.js +18 -0
  6. package/build/cjs/server/authenticate/admin/helpers/ensure-app-is-embedded-if-required.js +27 -0
  7. package/build/cjs/server/authenticate/admin/helpers/ensure-session-token-search-param-if-required.js +25 -0
  8. package/build/cjs/server/authenticate/admin/helpers/redirect-to-bounce-page.js +22 -0
  9. package/build/cjs/server/authenticate/admin/helpers/redirect-to-shopify-or-app-root.js +22 -0
  10. package/build/cjs/server/authenticate/admin/helpers/trigger-after-auth-hook.js +21 -0
  11. package/build/cjs/server/authenticate/admin/helpers/validate-shop-and-host-params.js +32 -0
  12. package/build/cjs/server/authenticate/admin/strategies/auth-code-flow.js +310 -0
  13. package/build/cjs/server/authenticate/helpers/get-session-token-header.js +6 -0
  14. package/build/cjs/server/authenticate/helpers/reject-bot-request.js +2 -2
  15. package/build/cjs/server/authenticate/public/checkout/authenticate.js +1 -1
  16. package/build/cjs/server/authenticate/public/factory.js +14 -5
  17. package/build/cjs/server/authenticate/webhooks/authenticate.js +14 -5
  18. package/build/cjs/server/clients/admin/graphql.js +6 -8
  19. package/build/cjs/server/shopify-app.js +12 -6
  20. package/build/cjs/server/version.js +1 -1
  21. package/build/ts/server/__test-helpers/test-config.d.ts +36 -6
  22. package/build/ts/server/__test-helpers/test-config.d.ts.map +1 -1
  23. package/build/ts/server/__test-helpers/test-config.js +34 -6
  24. package/build/ts/server/__test-helpers/test-config.js.map +1 -1
  25. package/build/ts/server/authenticate/admin/authenticate.d.ts +8 -25
  26. package/build/ts/server/authenticate/admin/authenticate.d.ts.map +1 -1
  27. package/build/ts/server/authenticate/admin/authenticate.js +124 -488
  28. package/build/ts/server/authenticate/admin/authenticate.js.map +1 -1
  29. package/build/ts/server/authenticate/admin/billing/types.d.ts +11 -3
  30. package/build/ts/server/authenticate/admin/billing/types.d.ts.map +1 -1
  31. package/build/ts/server/authenticate/admin/helpers/create-admin-api-context.d.ts +5 -0
  32. package/build/ts/server/authenticate/admin/helpers/create-admin-api-context.d.ts.map +1 -0
  33. package/build/ts/server/authenticate/admin/helpers/create-admin-api-context.js +16 -0
  34. package/build/ts/server/authenticate/admin/helpers/create-admin-api-context.js.map +1 -0
  35. package/build/ts/server/authenticate/admin/helpers/ensure-app-is-embedded-if-required.d.ts +3 -0
  36. package/build/ts/server/authenticate/admin/helpers/ensure-app-is-embedded-if-required.d.ts.map +1 -0
  37. package/build/ts/server/authenticate/admin/helpers/ensure-app-is-embedded-if-required.js +25 -0
  38. package/build/ts/server/authenticate/admin/helpers/ensure-app-is-embedded-if-required.js.map +1 -0
  39. package/build/ts/server/authenticate/admin/helpers/ensure-session-token-search-param-if-required.d.ts +3 -0
  40. package/build/ts/server/authenticate/admin/helpers/ensure-session-token-search-param-if-required.d.ts.map +1 -0
  41. package/build/ts/server/authenticate/admin/helpers/ensure-session-token-search-param-if-required.js +23 -0
  42. package/build/ts/server/authenticate/admin/helpers/ensure-session-token-search-param-if-required.js.map +1 -0
  43. package/build/ts/server/authenticate/admin/helpers/index.d.ts +7 -0
  44. package/build/ts/server/authenticate/admin/helpers/index.d.ts.map +1 -1
  45. package/build/ts/server/authenticate/admin/helpers/index.js +7 -0
  46. package/build/ts/server/authenticate/admin/helpers/index.js.map +1 -1
  47. package/build/ts/server/authenticate/admin/helpers/redirect-to-bounce-page.d.ts +3 -0
  48. package/build/ts/server/authenticate/admin/helpers/redirect-to-bounce-page.d.ts.map +1 -0
  49. package/build/ts/server/authenticate/admin/helpers/redirect-to-bounce-page.js +16 -0
  50. package/build/ts/server/authenticate/admin/helpers/redirect-to-bounce-page.js.map +1 -0
  51. package/build/ts/server/authenticate/admin/helpers/redirect-to-shopify-or-app-root.d.ts +3 -0
  52. package/build/ts/server/authenticate/admin/helpers/redirect-to-shopify-or-app-root.d.ts.map +1 -0
  53. package/build/ts/server/authenticate/admin/helpers/redirect-to-shopify-or-app-root.js +32 -0
  54. package/build/ts/server/authenticate/admin/helpers/redirect-to-shopify-or-app-root.js.map +1 -0
  55. package/build/ts/server/authenticate/admin/helpers/trigger-after-auth-hook.d.ts +4 -0
  56. package/build/ts/server/authenticate/admin/helpers/trigger-after-auth-hook.d.ts.map +1 -0
  57. package/build/ts/server/authenticate/admin/helpers/trigger-after-auth-hook.js +28 -0
  58. package/build/ts/server/authenticate/admin/helpers/trigger-after-auth-hook.js.map +1 -0
  59. package/build/ts/server/authenticate/admin/helpers/validate-shop-and-host-params.d.ts +3 -0
  60. package/build/ts/server/authenticate/admin/helpers/validate-shop-and-host-params.d.ts.map +1 -0
  61. package/build/ts/server/authenticate/admin/helpers/validate-shop-and-host-params.js +26 -0
  62. package/build/ts/server/authenticate/admin/helpers/validate-shop-and-host-params.js.map +1 -0
  63. package/build/ts/server/authenticate/admin/strategies/auth-code-flow.d.ts +22 -0
  64. package/build/ts/server/authenticate/admin/strategies/auth-code-flow.d.ts.map +1 -0
  65. package/build/ts/server/authenticate/admin/strategies/auth-code-flow.js +323 -0
  66. package/build/ts/server/authenticate/admin/strategies/auth-code-flow.js.map +1 -0
  67. package/build/ts/server/authenticate/admin/strategies/types.d.ts +11 -0
  68. package/build/ts/server/authenticate/admin/strategies/types.d.ts.map +1 -0
  69. package/build/ts/server/authenticate/admin/strategies/types.js +3 -0
  70. package/build/ts/server/authenticate/admin/strategies/types.js.map +1 -0
  71. package/build/ts/server/authenticate/admin/types.d.ts +4 -0
  72. package/build/ts/server/authenticate/admin/types.d.ts.map +1 -1
  73. package/build/ts/server/authenticate/helpers/get-session-token-header.d.ts +1 -0
  74. package/build/ts/server/authenticate/helpers/get-session-token-header.d.ts.map +1 -1
  75. package/build/ts/server/authenticate/helpers/get-session-token-header.js +7 -1
  76. package/build/ts/server/authenticate/helpers/get-session-token-header.js.map +1 -1
  77. package/build/ts/server/authenticate/helpers/reject-bot-request.d.ts +1 -1
  78. package/build/ts/server/authenticate/helpers/reject-bot-request.d.ts.map +1 -1
  79. package/build/ts/server/authenticate/helpers/reject-bot-request.js +3 -3
  80. package/build/ts/server/authenticate/helpers/reject-bot-request.js.map +1 -1
  81. package/build/ts/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.d.ts.map +1 -1
  82. package/build/ts/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.js +2 -2
  83. package/build/ts/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.js.map +1 -1
  84. package/build/ts/server/authenticate/public/appProxy/types.d.ts +6 -3
  85. package/build/ts/server/authenticate/public/appProxy/types.d.ts.map +1 -1
  86. package/build/ts/server/authenticate/public/checkout/authenticate.js +1 -1
  87. package/build/ts/server/authenticate/public/checkout/authenticate.js.map +1 -1
  88. package/build/ts/server/authenticate/public/factory.d.ts +2 -1
  89. package/build/ts/server/authenticate/public/factory.d.ts.map +1 -1
  90. package/build/ts/server/authenticate/public/factory.js +10 -2
  91. package/build/ts/server/authenticate/public/factory.js.map +1 -1
  92. package/build/ts/server/authenticate/public/types.d.ts +4 -3
  93. package/build/ts/server/authenticate/public/types.d.ts.map +1 -1
  94. package/build/ts/server/authenticate/webhooks/authenticate.d.ts.map +1 -1
  95. package/build/ts/server/authenticate/webhooks/authenticate.js +12 -2
  96. package/build/ts/server/authenticate/webhooks/authenticate.js.map +1 -1
  97. package/build/ts/server/clients/admin/graphql.js +2 -2
  98. package/build/ts/server/clients/admin/graphql.js.map +1 -1
  99. package/build/ts/server/clients/admin/types.d.ts +51 -10
  100. package/build/ts/server/clients/admin/types.d.ts.map +1 -1
  101. package/build/ts/server/clients/storefront/types.d.ts +4 -4
  102. package/build/ts/server/config-types.d.ts +5 -5
  103. package/build/ts/server/config-types.d.ts.map +1 -1
  104. package/build/ts/server/future/flags.d.ts +6 -0
  105. package/build/ts/server/future/flags.d.ts.map +1 -1
  106. package/build/ts/server/shopify-app.d.ts.map +1 -1
  107. package/build/ts/server/shopify-app.js +5 -3
  108. package/build/ts/server/shopify-app.js.map +1 -1
  109. package/build/ts/server/types.d.ts +3 -3
  110. package/build/ts/server/types.d.ts.map +1 -1
  111. package/build/ts/server/version.d.ts +1 -1
  112. package/build/ts/server/version.js +1 -1
  113. package/package.json +4 -4
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthCodeFlowStrategy = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var shopify_api_1 = require("@shopify/shopify-api");
6
+ var helpers_1 = require("../helpers");
7
+ var helpers_2 = require("../../helpers");
8
+ var AuthCodeFlowStrategy = /** @class */ (function () {
9
+ function AuthCodeFlowStrategy(_a) {
10
+ var api = _a.api, config = _a.config, logger = _a.logger;
11
+ this.api = api;
12
+ this.config = config;
13
+ this.logger = logger;
14
+ }
15
+ AuthCodeFlowStrategy.prototype.respondToOAuthRequests = function (request) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
17
+ var _a, api, config, url, isAuthRequest, isAuthCallbackRequest, shop;
18
+ return tslib_1.__generator(this, function (_b) {
19
+ switch (_b.label) {
20
+ case 0:
21
+ _a = this, api = _a.api, config = _a.config;
22
+ url = new URL(request.url);
23
+ isAuthRequest = url.pathname === config.auth.path;
24
+ isAuthCallbackRequest = url.pathname === config.auth.callbackPath;
25
+ if (!(isAuthRequest || isAuthCallbackRequest)) return [3 /*break*/, 4];
26
+ shop = api.utils.sanitizeShop(url.searchParams.get('shop'));
27
+ if (!shop)
28
+ throw new Response('Shop param is invalid', { status: 400 });
29
+ if (!isAuthRequest) return [3 /*break*/, 2];
30
+ return [4 /*yield*/, this.handleAuthBeginRequest(request, shop)];
31
+ case 1: throw _b.sent();
32
+ case 2: return [4 /*yield*/, this.handleAuthCallbackRequest(request, shop)];
33
+ case 3: throw _b.sent();
34
+ case 4:
35
+ if (!!(0, helpers_2.getSessionTokenHeader)(request)) return [3 /*break*/, 6];
36
+ // This is a document request that doesn't contain a session token. We check if the app is installed.
37
+ // If the app isn't installed, we initiate the OAuth auth code flow.
38
+ // Requests with a header can only happen after the app is installed.
39
+ return [4 /*yield*/, this.ensureInstalledOnShop(request)];
40
+ case 5:
41
+ // This is a document request that doesn't contain a session token. We check if the app is installed.
42
+ // If the app isn't installed, we initiate the OAuth auth code flow.
43
+ // Requests with a header can only happen after the app is installed.
44
+ _b.sent();
45
+ _b.label = 6;
46
+ case 6: return [2 /*return*/];
47
+ }
48
+ });
49
+ });
50
+ };
51
+ AuthCodeFlowStrategy.prototype.authenticate = function (request, session, shop) {
52
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
53
+ var _a, api, config, logger;
54
+ return tslib_1.__generator(this, function (_b) {
55
+ switch (_b.label) {
56
+ case 0:
57
+ _a = this, api = _a.api, config = _a.config, logger = _a.logger;
58
+ if (!!session) return [3 /*break*/, 2];
59
+ logger.debug('No session found, redirecting to OAuth', { shop: shop });
60
+ return [4 /*yield*/, (0, helpers_1.redirectToAuthPage)({ config: config, logger: logger, api: api }, request, shop)];
61
+ case 1:
62
+ _b.sent();
63
+ return [3 /*break*/, 4];
64
+ case 2:
65
+ if (!!session.isActive(config.scopes)) return [3 /*break*/, 4];
66
+ logger.debug('Found a session, but it has expired, redirecting to OAuth', { shop: shop });
67
+ return [4 /*yield*/, (0, helpers_1.redirectToAuthPage)({ config: config, logger: logger, api: api }, request, shop)];
68
+ case 3:
69
+ _b.sent();
70
+ _b.label = 4;
71
+ case 4:
72
+ logger.debug('Found a valid session', { shop: shop });
73
+ return [2 /*return*/, session];
74
+ }
75
+ });
76
+ });
77
+ };
78
+ AuthCodeFlowStrategy.prototype.ensureInstalledOnShop = function (request) {
79
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
80
+ var _a, api, config, logger, url, shop, offlineSession, isEmbedded, error_1;
81
+ return tslib_1.__generator(this, function (_b) {
82
+ switch (_b.label) {
83
+ case 0:
84
+ _a = this, api = _a.api, config = _a.config, logger = _a.logger;
85
+ (0, helpers_1.validateShopAndHostParams)({ api: api, config: config, logger: logger }, request);
86
+ url = new URL(request.url);
87
+ shop = url.searchParams.get('shop');
88
+ // Ensure app is installed
89
+ logger.debug('Ensuring app is installed on shop', { shop: shop });
90
+ return [4 /*yield*/, this.hasValidOfflineId(request)];
91
+ case 1:
92
+ if (!(_b.sent())) {
93
+ logger.info("Could not find a shop, can't authenticate request");
94
+ throw new Response(undefined, {
95
+ status: 400,
96
+ statusText: 'Bad Request',
97
+ });
98
+ }
99
+ return [4 /*yield*/, this.getOfflineSession(request)];
100
+ case 2:
101
+ offlineSession = _b.sent();
102
+ isEmbedded = url.searchParams.get('embedded') === '1';
103
+ if (!!offlineSession) return [3 /*break*/, 5];
104
+ logger.info("Shop hasn't installed app yet, redirecting to OAuth", {
105
+ shop: shop,
106
+ });
107
+ if (!isEmbedded) return [3 /*break*/, 3];
108
+ (0, helpers_1.redirectWithExitIframe)({ api: api, config: config, logger: logger }, request, shop);
109
+ return [3 /*break*/, 5];
110
+ case 3: return [4 /*yield*/, (0, helpers_1.beginAuth)({ api: api, config: config, logger: logger }, request, false, shop)];
111
+ case 4: throw _b.sent();
112
+ case 5:
113
+ shop = shop || offlineSession.shop;
114
+ if (!(config.isEmbeddedApp && !isEmbedded)) return [3 /*break*/, 10];
115
+ _b.label = 6;
116
+ case 6:
117
+ _b.trys.push([6, 8, , 10]);
118
+ logger.debug('Ensuring offline session is valid before embedding', {
119
+ shop: shop,
120
+ });
121
+ return [4 /*yield*/, this.testSession(offlineSession)];
122
+ case 7:
123
+ _b.sent();
124
+ logger.debug('Offline session is still valid, embedding app', { shop: shop });
125
+ return [3 /*break*/, 10];
126
+ case 8:
127
+ error_1 = _b.sent();
128
+ return [4 /*yield*/, this.handleInvalidOfflineSession(error_1, request, shop)];
129
+ case 9:
130
+ _b.sent();
131
+ return [3 /*break*/, 10];
132
+ case 10: return [2 /*return*/];
133
+ }
134
+ });
135
+ });
136
+ };
137
+ AuthCodeFlowStrategy.prototype.handleAuthBeginRequest = function (request, shop) {
138
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
139
+ var _a, api, config, logger;
140
+ return tslib_1.__generator(this, function (_b) {
141
+ switch (_b.label) {
142
+ case 0:
143
+ _a = this, api = _a.api, config = _a.config, logger = _a.logger;
144
+ logger.info('Handling OAuth begin request', { shop: shop });
145
+ if (!(config.isEmbeddedApp &&
146
+ request.headers.get('Sec-Fetch-Dest') === 'iframe')) return [3 /*break*/, 1];
147
+ logger.debug('Auth request in iframe detected, exiting iframe', { shop: shop });
148
+ throw (0, helpers_1.redirectWithExitIframe)({ api: api, config: config, logger: logger }, request, shop);
149
+ case 1: return [4 /*yield*/, (0, helpers_1.beginAuth)({ api: api, config: config, logger: logger }, request, false, shop)];
150
+ case 2: throw _b.sent();
151
+ }
152
+ });
153
+ });
154
+ };
155
+ AuthCodeFlowStrategy.prototype.handleAuthCallbackRequest = function (request, shop) {
156
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
157
+ var _a, api, config, logger, _b, session, responseHeaders, error_2;
158
+ return tslib_1.__generator(this, function (_c) {
159
+ switch (_c.label) {
160
+ case 0:
161
+ _a = this, api = _a.api, config = _a.config, logger = _a.logger;
162
+ logger.info('Handling OAuth callback request');
163
+ _c.label = 1;
164
+ case 1:
165
+ _c.trys.push([1, 8, , 10]);
166
+ return [4 /*yield*/, api.auth.callback({
167
+ rawRequest: request,
168
+ })];
169
+ case 2:
170
+ _b = _c.sent(), session = _b.session, responseHeaders = _b.headers;
171
+ return [4 /*yield*/, config.sessionStorage.storeSession(session)];
172
+ case 3:
173
+ _c.sent();
174
+ if (!(config.useOnlineTokens && !session.isOnline)) return [3 /*break*/, 5];
175
+ logger.info('Requesting online access token for offline session');
176
+ return [4 /*yield*/, (0, helpers_1.beginAuth)({ api: api, config: config, logger: logger }, request, true, shop)];
177
+ case 4:
178
+ _c.sent();
179
+ _c.label = 5;
180
+ case 5: return [4 /*yield*/, (0, helpers_1.triggerAfterAuthHook)({ api: api, config: config, logger: logger }, session, request)];
181
+ case 6:
182
+ _c.sent();
183
+ return [4 /*yield*/, (0, helpers_1.redirectToShopifyOrAppRoot)(request, { api: api, config: config, logger: logger }, responseHeaders)];
184
+ case 7: throw _c.sent();
185
+ case 8:
186
+ error_2 = _c.sent();
187
+ if (error_2 instanceof Response)
188
+ throw error_2;
189
+ return [4 /*yield*/, this.oauthCallbackError(error_2, request, shop)];
190
+ case 9: throw _c.sent();
191
+ case 10: return [2 /*return*/];
192
+ }
193
+ });
194
+ });
195
+ };
196
+ AuthCodeFlowStrategy.prototype.getOfflineSession = function (request) {
197
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
198
+ var offlineId;
199
+ return tslib_1.__generator(this, function (_a) {
200
+ switch (_a.label) {
201
+ case 0: return [4 /*yield*/, this.getOfflineSessionId(request)];
202
+ case 1:
203
+ offlineId = _a.sent();
204
+ return [2 /*return*/, this.config.sessionStorage.loadSession(offlineId)];
205
+ }
206
+ });
207
+ });
208
+ };
209
+ AuthCodeFlowStrategy.prototype.hasValidOfflineId = function (request) {
210
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
211
+ var _a;
212
+ return tslib_1.__generator(this, function (_b) {
213
+ switch (_b.label) {
214
+ case 0:
215
+ _a = Boolean;
216
+ return [4 /*yield*/, this.getOfflineSessionId(request)];
217
+ case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
218
+ }
219
+ });
220
+ });
221
+ };
222
+ AuthCodeFlowStrategy.prototype.getOfflineSessionId = function (request) {
223
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
224
+ var api, url, shop;
225
+ return tslib_1.__generator(this, function (_a) {
226
+ api = this.api;
227
+ url = new URL(request.url);
228
+ shop = url.searchParams.get('shop');
229
+ return [2 /*return*/, shop
230
+ ? api.session.getOfflineId(shop)
231
+ : api.session.getCurrentId({ isOnline: false, rawRequest: request })];
232
+ });
233
+ });
234
+ };
235
+ AuthCodeFlowStrategy.prototype.testSession = function (session) {
236
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
237
+ var api, client;
238
+ return tslib_1.__generator(this, function (_a) {
239
+ switch (_a.label) {
240
+ case 0:
241
+ api = this.api;
242
+ client = new api.clients.Graphql({
243
+ session: session,
244
+ });
245
+ return [4 /*yield*/, client.query({
246
+ data: "#graphql\n query shopifyAppShopName {\n shop {\n name\n }\n }\n ",
247
+ })];
248
+ case 1:
249
+ _a.sent();
250
+ return [2 /*return*/];
251
+ }
252
+ });
253
+ });
254
+ };
255
+ AuthCodeFlowStrategy.prototype.oauthCallbackError = function (error, request, shop) {
256
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
257
+ var logger;
258
+ return tslib_1.__generator(this, function (_a) {
259
+ logger = this.logger;
260
+ logger.error('Error during OAuth callback', { error: error.message });
261
+ if (error instanceof shopify_api_1.CookieNotFound) {
262
+ return [2 /*return*/, this.handleAuthBeginRequest(request, shop)];
263
+ }
264
+ if (error instanceof shopify_api_1.InvalidHmacError ||
265
+ error instanceof shopify_api_1.InvalidOAuthError) {
266
+ return [2 /*return*/, new Response(undefined, {
267
+ status: 400,
268
+ statusText: 'Invalid OAuth Request',
269
+ })];
270
+ }
271
+ return [2 /*return*/, new Response(undefined, {
272
+ status: 500,
273
+ statusText: 'Internal Server Error',
274
+ })];
275
+ });
276
+ });
277
+ };
278
+ AuthCodeFlowStrategy.prototype.handleInvalidOfflineSession = function (error, request, shop) {
279
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
280
+ var _a, api, logger, config, message, context;
281
+ return tslib_1.__generator(this, function (_b) {
282
+ switch (_b.label) {
283
+ case 0:
284
+ _a = this, api = _a.api, logger = _a.logger, config = _a.config;
285
+ if (!(error instanceof shopify_api_1.HttpResponseError)) return [3 /*break*/, 4];
286
+ if (!(error.response.code === 401)) return [3 /*break*/, 2];
287
+ logger.info('Shop session is no longer valid, redirecting to OAuth', {
288
+ shop: shop,
289
+ });
290
+ return [4 /*yield*/, (0, helpers_1.beginAuth)({ api: api, config: config, logger: logger }, request, false, shop)];
291
+ case 1: throw _b.sent();
292
+ case 2:
293
+ message = JSON.stringify(error.response.body, null, 2);
294
+ logger.error("Unexpected error during session validation: ".concat(message), {
295
+ shop: shop,
296
+ });
297
+ throw new Response(undefined, {
298
+ status: error.response.code,
299
+ statusText: error.response.statusText,
300
+ });
301
+ case 3: return [3 /*break*/, 5];
302
+ case 4:
303
+ if (error instanceof shopify_api_1.GraphqlQueryError) {
304
+ context = { shop: shop };
305
+ if (error.response) {
306
+ context.response = JSON.stringify(error.response);
307
+ }
308
+ logger.error("Unexpected error during session validation: ".concat(error.message), context);
309
+ throw new Response(undefined, {
310
+ status: 500,
311
+ statusText: 'Internal Server Error',
312
+ });
313
+ }
314
+ _b.label = 5;
315
+ case 5: return [2 /*return*/];
316
+ }
317
+ });
318
+ });
319
+ };
320
+ return AuthCodeFlowStrategy;
321
+ }());
322
+ exports.AuthCodeFlowStrategy = AuthCodeFlowStrategy;
323
+ //# sourceMappingURL=auth-code-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-code-flow.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/strategies/auth-code-flow.ts"],"names":[],"mappings":";;;;AAAA,oDAS8B;AAG9B,sCAOoB;AAEpB,yCAAoD;AAIpD;IAQE,8BAAmB,EAAkC;YAAjC,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEY,qDAAsB,GAAnC,UAAoC,OAAgB;;;;;;wBAC5C,KAAgB,IAAI,EAAnB,GAAG,SAAA,EAAE,MAAM,YAAA,CAAS;wBAErB,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC3B,aAAa,GAAG,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;wBAClD,qBAAqB,GAAG,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;6BAEpE,CAAA,aAAa,IAAI,qBAAqB,CAAA,EAAtC,wBAAsC;wBAClC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC;wBACnE,IAAI,CAAC,IAAI;4BAAE,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;6BAElE,aAAa,EAAb,wBAAa;wBACT,qBAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAA;4BAAtD,MAAM,SAAgD,CAAC;4BAEjD,qBAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAA;4BAAzD,MAAM,SAAmD,CAAC;;6BAI1D,CAAC,IAAA,+BAAqB,EAAC,OAAO,CAAC,EAA/B,wBAA+B;wBACjC,qGAAqG;wBACrG,oEAAoE;wBACpE,qEAAqE;wBACrE,qBAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAA;;wBAHzC,qGAAqG;wBACrG,oEAAoE;wBACpE,qEAAqE;wBACrE,SAAyC,CAAC;;;;;;KAE7C;IAEY,2CAAY,GAAzB,UACE,OAAgB,EAChB,OAA4B,EAC5B,IAAY;;;;;;wBAEN,KAAwB,IAAI,EAA3B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,CAAS;6BAE/B,CAAC,OAAO,EAAR,wBAAQ;wBACV,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;wBAC/D,qBAAM,IAAA,4BAAkB,EAAC,EAAC,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,GAAG,KAAA,EAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAA;;wBAA9D,SAA8D,CAAC;;;6BACtD,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAhC,wBAAgC;wBACzC,MAAM,CAAC,KAAK,CACV,2DAA2D,EAC3D,EAAC,IAAI,MAAA,EAAC,CACP,CAAC;wBACF,qBAAM,IAAA,4BAAkB,EAAC,EAAC,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,GAAG,KAAA,EAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAA;;wBAA9D,SAA8D,CAAC;;;wBAGjE,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;wBAE9C,sBAAO,OAAQ,EAAC;;;;KACjB;IAEa,oDAAqB,GAAnC,UAAoC,OAAgB;;;;;;wBAC5C,KAAwB,IAAI,EAA3B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,CAAS;wBAEnC,IAAA,mCAAyB,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,CAAC,CAAC;wBAEpD,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC7B,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAExC,0BAA0B;wBAC1B,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;wBAEpD,qBAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;wBAA3C,IAAI,CAAC,CAAC,SAAqC,CAAC,EAAE;4BAC5C,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;4BACjE,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;gCAC5B,MAAM,EAAE,GAAG;gCACX,UAAU,EAAE,aAAa;6BAC1B,CAAC,CAAC;yBACJ;wBAEsB,qBAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAA;;wBAAtD,cAAc,GAAG,SAAqC;wBACtD,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;6BAExD,CAAC,cAAc,EAAf,wBAAe;wBACjB,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;4BACjE,IAAI,MAAA;yBACL,CAAC,CAAC;6BACC,UAAU,EAAV,wBAAU;wBACZ,IAAA,gCAAsB,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,EAAE,IAAK,CAAC,CAAC;;4BAExD,qBAAM,IAAA,mBAAS,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAK,CAAC,EAAA;4BAAnE,MAAM,SAA6D,CAAC;;wBAIxE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC;6BAE/B,CAAA,MAAM,CAAC,aAAa,IAAI,CAAC,UAAU,CAAA,EAAnC,yBAAmC;;;;wBAEnC,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;4BACjE,IAAI,MAAA;yBACL,CAAC,CAAC;wBACH,qBAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBAEvC,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;;;;wBAEtE,qBAAM,IAAI,CAAC,2BAA2B,CAAC,OAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAA;;wBAA5D,SAA4D,CAAC;;;;;;KAGlE;IAEa,qDAAsB,GAApC,UACE,OAAgB,EAChB,IAAY;;;;;;wBAEN,KAAwB,IAAI,EAA3B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,CAAS;wBAEnC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;6BAIlD,CAAA,MAAM,CAAC,aAAa;4BACpB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAA,EADlD,wBACkD;wBAElD,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;wBACxE,MAAM,IAAA,gCAAsB,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;4BAE7D,qBAAM,IAAA,mBAAS,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAA;4BAAlE,MAAM,SAA4D,CAAC;;;;KAEtE;IAEa,wDAAyB,GAAvC,UACE,OAAgB,EAChB,IAAY;;;;;;wBAEN,KAAwB,IAAI,EAA3B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,CAAS;wBAEnC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;;;;wBAGD,qBAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gCAClE,UAAU,EAAE,OAAO;6BACpB,CAAC,EAAA;;wBAFI,KAAsC,SAE1C,EAFK,OAAO,aAAA,EAAW,eAAe,aAAA;wBAIxC,qBAAM,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;6BAE9C,CAAA,MAAM,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA,EAA3C,wBAA2C;wBAC7C,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;wBAClE,qBAAM,IAAA,mBAAS,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAA;;wBAA3D,SAA2D,CAAC;;4BAG9D,qBAAM,IAAA,8BAAoB,EACxB,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EACrB,OAAO,EACP,OAAO,CACR,EAAA;;wBAJD,SAIC,CAAC;wBAEI,qBAAM,IAAA,oCAA0B,EACpC,OAAO,EACP,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EACrB,eAAe,CAChB,EAAA;4BAJD,MAAM,SAIL,CAAC;;;wBAEF,IAAI,OAAK,YAAY,QAAQ;4BAAE,MAAM,OAAK,CAAC;wBAErC,qBAAM,IAAI,CAAC,kBAAkB,CAAC,OAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAA;4BAAzD,MAAM,SAAmD,CAAC;;;;;KAE7D;IAEa,gDAAiB,GAA/B,UACE,OAAgB;;;;;4BAEE,qBAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAA;;wBAAnD,SAAS,GAAG,SAAuC;wBACzD,sBAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAU,CAAC,EAAC;;;;KAC3D;IAEa,gDAAiB,GAA/B,UAAgC,OAAgB;;;;;;wBACvC,KAAA,OAAO,CAAA;wBAAC,qBAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAA;4BAAtD,sBAAO,kBAAQ,SAAuC,EAAC,EAAC;;;;KACzD;IAEa,kDAAmB,GAAjC,UACE,OAAgB;;;;gBAET,GAAG,GAAI,IAAI,IAAR,CAAS;gBACb,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAE1C,sBAAO,IAAI;wBACT,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;wBAChC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,EAAC;;;KACtE;IAEa,0CAAW,GAAzB,UAA0B,OAAgB;;;;;;wBACjC,GAAG,GAAI,IAAI,IAAR,CAAS;wBAEb,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;4BACrC,OAAO,SAAA;yBACR,CAAC,CAAC;wBAEH,qBAAM,MAAM,CAAC,KAAK,CAAC;gCACjB,IAAI,EAAE,kHAML;6BACF,CAAC,EAAA;;wBARF,SAQE,CAAC;;;;;KACJ;IAEa,iDAAkB,GAAhC,UACE,KAAY,EACZ,OAAgB,EAChB,IAAY;;;;gBAEL,MAAM,GAAI,IAAI,OAAR,CAAS;gBACtB,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAAC;gBAEpE,IAAI,KAAK,YAAY,4BAAc,EAAE;oBACnC,sBAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAC;iBACnD;gBAED,IACE,KAAK,YAAY,8BAAgB;oBACjC,KAAK,YAAY,+BAAiB,EAClC;oBACA,sBAAO,IAAI,QAAQ,CAAC,SAAS,EAAE;4BAC7B,MAAM,EAAE,GAAG;4BACX,UAAU,EAAE,uBAAuB;yBACpC,CAAC,EAAC;iBACJ;gBAED,sBAAO,IAAI,QAAQ,CAAC,SAAS,EAAE;wBAC7B,MAAM,EAAE,GAAG;wBACX,UAAU,EAAE,uBAAuB;qBACpC,CAAC,EAAC;;;KACJ;IAEa,0DAA2B,GAAzC,UACE,KAAY,EACZ,OAAgB,EAChB,IAAY;;;;;;wBAEN,KAAwB,IAAI,EAA3B,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,CAAS;6BAC/B,CAAA,KAAK,YAAY,+BAAiB,CAAA,EAAlC,wBAAkC;6BAChC,CAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAA,EAA3B,wBAA2B;wBAC7B,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE;4BACnE,IAAI,MAAA;yBACL,CAAC,CAAC;wBACG,qBAAM,IAAA,mBAAS,EAAC,EAAC,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAA;4BAAlE,MAAM,SAA4D,CAAC;;wBAE7D,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC7D,MAAM,CAAC,KAAK,CAAC,sDAA+C,OAAO,CAAE,EAAE;4BACrE,IAAI,MAAA;yBACL,CAAC,CAAC;wBAEH,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;4BAC5B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;4BAC3B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;yBACtC,CAAC,CAAC;;;wBAEA,IAAI,KAAK,YAAY,+BAAiB,EAAE;4BACvC,OAAO,GAA4B,EAAC,IAAI,MAAA,EAAC,CAAC;4BAChD,IAAI,KAAK,CAAC,QAAQ,EAAE;gCAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;6BACnD;4BAED,MAAM,CAAC,KAAK,CACV,sDAA+C,KAAK,CAAC,OAAO,CAAE,EAC9D,OAAO,CACR,CAAC;4BAEF,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;gCAC5B,MAAM,EAAE,GAAG;gCACX,UAAU,EAAE,uBAAuB;6BACpC,CAAC,CAAC;yBACJ;;;;;;KACF;IACH,2BAAC;AAAD,CAAC,AAvRD,IAuRC;AAvRY,oDAAoB"}
@@ -0,0 +1,11 @@
1
+ import { JwtPayload, Session } from '@shopify/shopify-api';
2
+ export interface SessionTokenContext {
3
+ shop: string;
4
+ sessionId?: string;
5
+ payload?: JwtPayload;
6
+ }
7
+ export interface AuthorizationStrategy {
8
+ respondToOAuthRequests: (request: Request) => Promise<void | never>;
9
+ authenticate: (request: Request, session: Session | undefined, shop: string) => Promise<Session | never>;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/strategies/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IACpE,YAAY,EAAE,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/strategies/types.ts"],"names":[],"mappings":""}
@@ -171,5 +171,9 @@ export interface NonEmbeddedAdminContext<Config extends AppConfigArg, Resources
171
171
  }
172
172
  export type AdminContext<Config extends AppConfigArg, Resources extends ShopifyRestResources = ShopifyRestResources> = Config['isEmbeddedApp'] extends false ? NonEmbeddedAdminContext<Config, Resources> : EmbeddedAdminContext<Config, Resources>;
173
173
  export type AuthenticateAdmin<Config extends AppConfigArg, Resources extends ShopifyRestResources = ShopifyRestResources> = (request: Request) => Promise<AdminContext<Config, Resources>>;
174
+ export interface SessionContext {
175
+ session: Session;
176
+ token?: JwtPayload;
177
+ }
174
178
  export {};
175
179
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/admin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEpD,UAAU,oBAAoB,CAC5B,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAElC;;;;OAIG;IACH,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB,CACnC,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,YAAY,EAAE,UAAU,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AACD,MAAM,WAAW,uBAAuB,CACtC,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC;CAAG;AAEpD,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC3D,MAAM,CAAC,eAAe,CAAC,SAAS,KAAK,GACrC,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,GAC1C,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE5C,MAAM,MAAM,iBAAiB,CAC3B,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC3D,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/admin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEpD,UAAU,oBAAoB,CAC5B,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAElC;;;;OAIG;IACH,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB,CACnC,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,YAAY,EAAE,UAAU,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AACD,MAAM,WAAW,uBAAuB,CACtC,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC;CAAG;AAEpD,MAAM,MAAM,YAAY,CACtB,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC3D,MAAM,CAAC,eAAe,CAAC,SAAS,KAAK,GACrC,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,GAC1C,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE5C,MAAM,MAAM,iBAAiB,CAC3B,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC3D,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB"}
@@ -1,2 +1,3 @@
1
1
  export declare function getSessionTokenHeader(request: Request): string | undefined;
2
+ export declare function getSessionTokenFromUrlParam(request: Request): string | null;
2
3
  //# sourceMappingURL=get-session-token-header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-session-token-header.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/get-session-token-header.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE1E"}
1
+ {"version":3,"file":"get-session-token-header.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/get-session-token-header.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI3E"}
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSessionTokenHeader = void 0;
3
+ exports.getSessionTokenFromUrlParam = exports.getSessionTokenHeader = void 0;
4
+ var SESSION_TOKEN_PARAM = 'id_token';
4
5
  function getSessionTokenHeader(request) {
5
6
  var _a;
6
7
  return (_a = request.headers.get('authorization')) === null || _a === void 0 ? void 0 : _a.replace('Bearer ', '');
7
8
  }
8
9
  exports.getSessionTokenHeader = getSessionTokenHeader;
10
+ function getSessionTokenFromUrlParam(request) {
11
+ var url = new URL(request.url);
12
+ return url.searchParams.get(SESSION_TOKEN_PARAM);
13
+ }
14
+ exports.getSessionTokenFromUrlParam = getSessionTokenFromUrlParam;
9
15
  //# sourceMappingURL=get-session-token-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-session-token-header.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/get-session-token-header.ts"],"names":[],"mappings":";;;AAAA,SAAgB,qBAAqB,CAAC,OAAgB;;IACpD,OAAO,MAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,0CAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAFD,sDAEC"}
1
+ {"version":3,"file":"get-session-token-header.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/get-session-token-header.ts"],"names":[],"mappings":";;;AAAA,IAAM,mBAAmB,GAAG,UAAU,CAAC;AAEvC,SAAgB,qBAAqB,CAAC,OAAgB;;IACpD,OAAO,MAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,0CAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAFD,sDAEC;AAED,SAAgB,2BAA2B,CAAC,OAAgB;IAC1D,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjC,OAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAJD,kEAIC"}
@@ -1,3 +1,3 @@
1
1
  import type { BasicParams } from '../../types';
2
- export declare function rejectBotRequest({ logger }: BasicParams, request: Request): void | never;
2
+ export declare function respondToBotRequest({ logger }: BasicParams, request: Request): void | never;
3
3
  //# sourceMappingURL=reject-bot-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reject-bot-request.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/reject-bot-request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAE7C,wBAAgB,gBAAgB,CAC9B,EAAC,MAAM,EAAC,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,GACf,IAAI,GAAG,KAAK,CAKd"}
1
+ {"version":3,"file":"reject-bot-request.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/reject-bot-request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAE7C,wBAAgB,mBAAmB,CACjC,EAAC,MAAM,EAAC,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,GACf,IAAI,GAAG,KAAK,CAKd"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rejectBotRequest = void 0;
3
+ exports.respondToBotRequest = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var isbot_1 = tslib_1.__importDefault(require("isbot"));
6
- function rejectBotRequest(_a, request) {
6
+ function respondToBotRequest(_a, request) {
7
7
  var logger = _a.logger;
8
8
  if ((0, isbot_1.default)(request.headers.get('User-Agent'))) {
9
9
  logger.debug('Request is from a bot, skipping auth');
10
10
  throw new Response(undefined, { status: 410, statusText: 'Gone' });
11
11
  }
12
12
  }
13
- exports.rejectBotRequest = rejectBotRequest;
13
+ exports.respondToBotRequest = respondToBotRequest;
14
14
  //# sourceMappingURL=reject-bot-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reject-bot-request.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/reject-bot-request.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAI1B,SAAgB,gBAAgB,CAC9B,EAAqB,EACrB,OAAgB;QADf,MAAM,YAAA;IAGP,IAAI,IAAA,eAAK,EAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE;QAC5C,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC,CAAC;KAClE;AACH,CAAC;AARD,4CAQC"}
1
+ {"version":3,"file":"reject-bot-request.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/helpers/reject-bot-request.ts"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAI1B,SAAgB,mBAAmB,CACjC,EAAqB,EACrB,OAAgB;QADf,MAAM,YAAA;IAGP,IAAI,IAAA,eAAK,EAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE;QAC5C,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC,CAAC;KAClE;AACH,CAAC;AARD,kDAQC"}
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.public.app-proxy.doc.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,wBAAwB,CAAC;AAErE,QAAA,MAAM,IAAI,EAAE,6BA4BX,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"authenticate.public.app-proxy.doc.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,wBAAwB,CAAC;AAErE,QAAA,MAAM,IAAI,EAAE,6BA6BX,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var data = {
4
4
  name: 'App proxy',
5
- description: 'The `authenticate.public.appProxy` function validates app proxy requests made by Shopify, and returns a context to enable querying Shopify APIs.',
5
+ description: '[App proxies](/docs/apps/online-store/app-proxies) take requests to Shopify links, and redirect them to external links. The `authenticate.public.appProxy` function validates requests made to app proxies, and returns a context to enable querying Shopify APIs.',
6
6
  category: 'Authenticate',
7
7
  subCategory: 'Public',
8
8
  type: 'object',
@@ -10,7 +10,7 @@ var data = {
10
10
  definitions: [
11
11
  {
12
12
  title: 'authenticate.public.appProxy',
13
- description: 'Authenticates requests coming from Shopify app proxies.',
13
+ description: 'Authenticates requests coming to the app from Shopify app proxies.',
14
14
  type: 'AuthenticateAppProxy',
15
15
  },
16
16
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.public.app-proxy.doc.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.ts"],"names":[],"mappings":";;AAEA,IAAM,IAAI,GAAkC;IAC1C,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,kJAAkJ;IACpJ,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,QAAQ;IACd,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE;QACX;YACE,KAAK,EAAE,8BAA8B;YACrC,WAAW,EAAE,yDAAyD;YACtE,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,iBAAiB,EAAE,CAAC,4BAA4B,CAAC;IACjD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,8BAA8B;YACxC,GAAG,EAAE,4CAA4C;SAClD;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,mCAAmC;YAC7C,GAAG,EAAE,iDAAiD;SACvD;KACF;CACF,CAAC;AAEF,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"authenticate.public.app-proxy.doc.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.ts"],"names":[],"mappings":";;AAEA,IAAM,IAAI,GAAkC;IAC1C,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,oQAAoQ;IACtQ,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,QAAQ;IACd,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE;QACX;YACE,KAAK,EAAE,8BAA8B;YACrC,WAAW,EACT,oEAAoE;YACtE,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,iBAAiB,EAAE,CAAC,4BAA4B,CAAC;IACjD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,8BAA8B;YACxC,GAAG,EAAE,4CAA4C;SAClD;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,mCAAmC;YAC7C,GAAG,EAAE,iDAAiD;SACvD;KACF;CACF,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -17,7 +17,7 @@ interface Context {
17
17
  * import {authenticate} from "~/shopify.server"
18
18
  *
19
19
  * export async function loader({ request }) {
20
- * const {liquid} = authenticate.public.appProxy(request);
20
+ * const {liquid} = await authenticate.public.appProxy(request);
21
21
  *
22
22
  * return liquid("Hello {{shop.name}}")
23
23
  * }
@@ -54,7 +54,7 @@ export interface AppProxyContextWithSession<Resources extends ShopifyRestResourc
54
54
  *
55
55
  * @example
56
56
  * <caption>Using the session object.</caption>
57
- * <description>Get your app's data using an offline session for the shop that made the request.</description>
57
+ * <description>Get the session for the shop that initiated the request to the app proxy.</description>
58
58
  * ```ts
59
59
  * // app/routes/**\/.ts
60
60
  * import { json } from "@remix-run/node";
@@ -62,7 +62,10 @@ export interface AppProxyContextWithSession<Resources extends ShopifyRestResourc
62
62
  * import { getMyAppModelData } from "~/db/model.server";
63
63
  *
64
64
  * export const loader = async ({ request }) => {
65
+ * // Get the session for the shop that initiated the request to the app proxy.
65
66
  * const { session } = await authenticate.public.appProxy(request);
67
+ *
68
+ * // Use the session data to make to queries to your database or additional requests.
66
69
  * return json(await getMyAppModelData({shop: session.shop));
67
70
  * };
68
71
  * ```
@@ -112,7 +115,7 @@ export interface AppProxyContextWithSession<Resources extends ShopifyRestResourc
112
115
  * import { authenticate } from "../shopify.server";
113
116
  *
114
117
  * export async function action({ request }: ActionFunctionArgs) {
115
- * const { admin } = await authenticate.public.appProxy(request);
118
+ * const { storefront } = await authenticate.public.appProxy(request);
116
119
  *
117
120
  * const response = await storefront.graphql(`{blogs(first: 10) { edges { node { id } } } }`);
118
121
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,eAAe,GAAG,0BAA0B,CAAC,CAAC;AAE3D,UAAU,OAAO;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,KAC/C,QAAQ,CAAC;AAEd,UAAU,OAAO;IACf;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C;;;;OAIG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,UAAU,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B,CACzC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,OAAO;IACf;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAElC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,EAAE,iBAAiB,CAAC;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,eAAe,GAAG,0BAA0B,CAAC,CAAC;AAE3D,UAAU,OAAO;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,KAC/C,QAAQ,CAAC;AAEd,UAAU,OAAO;IACf;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C;;;;OAIG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,UAAU,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B,CACzC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,OAAO;IACf;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAElC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,EAAE,iBAAiB,CAAC;CAC/B"}
@@ -15,7 +15,7 @@ function authenticateCheckoutFactory(params) {
15
15
  case 0:
16
16
  logger = params.logger;
17
17
  corsHeaders = (_a = options.corsHeaders) !== null && _a !== void 0 ? _a : [];
18
- (0, helpers_1.rejectBotRequest)(params, request);
18
+ (0, helpers_1.respondToBotRequest)(params, request);
19
19
  (0, helpers_1.respondToOptionsRequest)(params, request, corsHeaders);
20
20
  sessionTokenHeader = (0, helpers_1.getSessionTokenHeader)(request);
21
21
  logger.info('Authenticating checkout request');
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/checkout/authenticate.ts"],"names":[],"mappings":";;;;AACA,yCAMuB;AAIvB,SAAgB,2BAA2B,CACzC,MAAmB;IAEnB,OAAO,SAAe,oBAAoB,CACxC,OAAO,EACP,OAAY;;QAAZ,wBAAA,EAAA,YAAY;;;;;;;wBAEL,MAAM,GAAI,MAAM,OAAV,CAAW;wBAElB,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,EAAE,CAAC;wBAE9C,IAAA,0BAAgB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;wBAClC,IAAA,iCAAuB,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAEhD,kBAAkB,GAAG,IAAA,+BAAqB,EAAC,OAAO,CAAC,CAAC;wBAE1D,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;wBAE/C,IAAI,CAAC,kBAAkB,EAAE;4BACvB,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;4BACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;gCAC5B,MAAM,EAAE,GAAG;gCACX,UAAU,EAAE,cAAc;6BAC3B,CAAC,CAAC;yBACJ;;wBAGe,qBAAM,IAAA,8BAAoB,EAAC,MAAM,EAAE,kBAAkB,EAAE;gCACnE,aAAa,EAAE,KAAK;6BACrB,CAAC,EAAA;4BAHJ,uBACE,eAAY,GAAE,SAEZ;4BACF,OAAI,GAAE,IAAA,kCAAwB,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;iCAC5D;;;;KACH,CAAC;AACJ,CAAC;AAjCD,kEAiCC"}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/checkout/authenticate.ts"],"names":[],"mappings":";;;;AACA,yCAMuB;AAIvB,SAAgB,2BAA2B,CACzC,MAAmB;IAEnB,OAAO,SAAe,oBAAoB,CACxC,OAAO,EACP,OAAY;;QAAZ,wBAAA,EAAA,YAAY;;;;;;;wBAEL,MAAM,GAAI,MAAM,OAAV,CAAW;wBAElB,WAAW,GAAG,MAAA,OAAO,CAAC,WAAW,mCAAI,EAAE,CAAC;wBAE9C,IAAA,6BAAmB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;wBACrC,IAAA,iCAAuB,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAEhD,kBAAkB,GAAG,IAAA,+BAAqB,EAAC,OAAO,CAAC,CAAC;wBAE1D,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;wBAE/C,IAAI,CAAC,kBAAkB,EAAE;4BACvB,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;4BACxD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;gCAC5B,MAAM,EAAE,GAAG;gCACX,UAAU,EAAE,cAAc;6BAC3B,CAAC,CAAC;yBACJ;;wBAGe,qBAAM,IAAA,8BAAoB,EAAC,MAAM,EAAE,kBAAkB,EAAE;gCACnE,aAAa,EAAE,KAAK;6BACrB,CAAC,EAAA;4BAHJ,uBACE,eAAY,GAAE,SAEZ;4BACF,OAAI,GAAE,IAAA,kCAAwB,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;iCAC5D;;;;KACH,CAAC;AACJ,CAAC;AAjCD,kEAiCC"}
@@ -1,5 +1,6 @@
1
1
  import { ShopifyRestResources } from '@shopify/shopify-api';
2
2
  import { BasicParams } from '../../types';
3
+ import { FutureFlagOptions } from '../../future/flags';
3
4
  import { AuthenticatePublic } from './types';
4
- export declare function authenticatePublicFactory<Resources extends ShopifyRestResources>(params: BasicParams): AuthenticatePublic;
5
+ export declare function authenticatePublicFactory<Future extends FutureFlagOptions, Resources extends ShopifyRestResources>(params: BasicParams): AuthenticatePublic<Future>;
5
6
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAKxC,OAAO,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAE3C,wBAAgB,yBAAyB,CACvC,SAAS,SAAS,oBAAoB,EACtC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAoBzC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAKrD,OAAO,EACL,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,yBAAyB,CACvC,MAAM,SAAS,iBAAiB,EAChC,SAAS,SAAS,oBAAoB,EACtC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CA+BjD"}
@@ -4,14 +4,22 @@ exports.authenticatePublicFactory = void 0;
4
4
  var authenticate_1 = require("./checkout/authenticate");
5
5
  var authenticate_2 = require("./appProxy/authenticate");
6
6
  function authenticatePublicFactory(params) {
7
- var logger = params.logger;
7
+ var logger = params.logger, config = params.config;
8
8
  var authenticateCheckout = (0, authenticate_1.authenticateCheckoutFactory)(params);
9
+ var authenticateAppProxy = (0, authenticate_2.authenticateAppProxyFactory)(params);
10
+ if (config.future.v3_authenticatePublic) {
11
+ var context = {
12
+ checkout: authenticateCheckout,
13
+ appProxy: authenticateAppProxy,
14
+ };
15
+ return context;
16
+ }
9
17
  var authenticatePublic = function (request, options) {
10
18
  logger.deprecated('3.0.0', 'authenticate.public() will be deprecated in v3. Use authenticate.public.checkout() instead.');
11
19
  return authenticateCheckout(request, options);
12
20
  };
13
21
  authenticatePublic.checkout = authenticateCheckout;
14
- authenticatePublic.appProxy = (0, authenticate_2.authenticateAppProxyFactory)(params);
22
+ authenticatePublic.appProxy = authenticateAppProxy;
15
23
  return authenticatePublic;
16
24
  }
17
25
  exports.authenticatePublicFactory = authenticatePublicFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/factory.ts"],"names":[],"mappings":";;;AAIA,wDAAoE;AAEpE,wDAAoE;AAGpE,SAAgB,yBAAyB,CAEvC,MAAmB;IACZ,IAAA,MAAM,GAAI,MAAM,OAAV,CAAW;IAExB,IAAM,oBAAoB,GAAG,IAAA,0CAA2B,EAAC,MAAM,CAAC,CAAC;IACjE,IAAM,kBAAkB,GAAG,UACzB,OAAgB,EAChB,OAAoC;QAEpC,MAAM,CAAC,UAAU,CACf,OAAO,EACP,6FAA6F,CAC9F,CAAC;QAEF,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,kBAAkB,CAAC,QAAQ,GAAG,oBAAoB,CAAC;IACnD,kBAAkB,CAAC,QAAQ,GAAG,IAAA,0CAA2B,EAAY,MAAM,CAAC,CAAC;IAE7E,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAtBD,8DAsBC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/factory.ts"],"names":[],"mappings":";;;AAKA,wDAAoE;AAEpE,wDAAoE;AAOpE,SAAgB,yBAAyB,CAGvC,MAAmB;IACZ,IAAA,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAEhC,IAAM,oBAAoB,GAAG,IAAA,0CAA2B,EAAC,MAAM,CAAC,CAAC;IACjE,IAAM,oBAAoB,GAAG,IAAA,0CAA2B,EAAY,MAAM,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE;QACvC,IAAM,OAAO,GAA6B;YACxC,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;QAEF,OAAO,OAAqC,CAAC;KAC9C;IAED,IAAM,kBAAkB,GAA6B,UACnD,OAAgB,EAChB,OAAoC;QAEpC,MAAM,CAAC,UAAU,CACf,OAAO,EACP,6FAA6F,CAC9F,CAAC;QAEF,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,kBAAkB,CAAC,QAAQ,GAAG,oBAAoB,CAAC;IACnD,kBAAkB,CAAC,QAAQ,GAAG,oBAAoB,CAAC;IAEnD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAlCD,8DAkCC"}