@shopify/shopify-app-remix 2.4.0 → 2.5.1

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 (90) hide show
  1. package/README.md +44 -0
  2. package/build/cjs/server/authenticate/admin/authenticate.js +2 -0
  3. package/build/cjs/server/authenticate/admin/billing/check.js +39 -0
  4. package/build/cjs/server/authenticate/admin/helpers/render-app-bridge.js +2 -1
  5. package/build/cjs/server/authenticate/admin/helpers/validate-redirect-url.js +45 -0
  6. package/build/cjs/server/authenticate/flow/authenticate.js +68 -0
  7. package/build/cjs/server/errors.js +9 -0
  8. package/build/cjs/server/index.js +2 -0
  9. package/build/cjs/server/shopify-app.js +8 -8
  10. package/build/cjs/server/types.js +4 -0
  11. package/build/cjs/server/unauthenticated/admin/factory.js +2 -2
  12. package/build/cjs/server/unauthenticated/storefront/factory.js +2 -2
  13. package/build/cjs/server/version.js +1 -1
  14. package/build/ts/server/__test-helpers/request-mock.js.map +1 -1
  15. package/build/ts/server/authenticate/admin/authenticate.d.ts.map +1 -1
  16. package/build/ts/server/authenticate/admin/authenticate.js +1 -0
  17. package/build/ts/server/authenticate/admin/authenticate.js.map +1 -1
  18. package/build/ts/server/authenticate/admin/billing/check.d.ts +6 -0
  19. package/build/ts/server/authenticate/admin/billing/check.d.ts.map +1 -0
  20. package/build/ts/server/authenticate/admin/billing/check.js +43 -0
  21. package/build/ts/server/authenticate/admin/billing/check.js.map +1 -0
  22. package/build/ts/server/authenticate/admin/billing/index.d.ts +1 -0
  23. package/build/ts/server/authenticate/admin/billing/index.d.ts.map +1 -1
  24. package/build/ts/server/authenticate/admin/billing/index.js +3 -1
  25. package/build/ts/server/authenticate/admin/billing/index.js.map +1 -1
  26. package/build/ts/server/authenticate/admin/billing/types.d.ts +59 -1
  27. package/build/ts/server/authenticate/admin/billing/types.d.ts.map +1 -1
  28. package/build/ts/server/authenticate/admin/helpers/render-app-bridge.d.ts.map +1 -1
  29. package/build/ts/server/authenticate/admin/helpers/render-app-bridge.js +2 -1
  30. package/build/ts/server/authenticate/admin/helpers/render-app-bridge.js.map +1 -1
  31. package/build/ts/server/authenticate/admin/helpers/validate-redirect-url.d.ts +8 -0
  32. package/build/ts/server/authenticate/admin/helpers/validate-redirect-url.d.ts.map +1 -0
  33. package/build/ts/server/authenticate/admin/helpers/validate-redirect-url.js +49 -0
  34. package/build/ts/server/authenticate/admin/helpers/validate-redirect-url.js.map +1 -0
  35. package/build/ts/server/authenticate/admin/strategies/auth-code-flow.js.map +1 -1
  36. package/build/ts/server/authenticate/flow/authenticate.d.ts +5 -0
  37. package/build/ts/server/authenticate/flow/authenticate.d.ts.map +1 -0
  38. package/build/ts/server/authenticate/flow/authenticate.flow.doc.d.ts +4 -0
  39. package/build/ts/server/authenticate/flow/authenticate.flow.doc.d.ts.map +1 -0
  40. package/build/ts/server/authenticate/flow/authenticate.flow.doc.js +33 -0
  41. package/build/ts/server/authenticate/flow/authenticate.flow.doc.js.map +1 -0
  42. package/build/ts/server/authenticate/flow/authenticate.js +67 -0
  43. package/build/ts/server/authenticate/flow/authenticate.js.map +1 -0
  44. package/build/ts/server/authenticate/flow/types.d.ts +82 -0
  45. package/build/ts/server/authenticate/flow/types.d.ts.map +1 -0
  46. package/build/ts/server/authenticate/flow/types.js +3 -0
  47. package/build/ts/server/authenticate/flow/types.js.map +1 -0
  48. package/build/ts/server/authenticate/webhooks/types.d.ts.map +1 -1
  49. package/build/ts/server/clients/admin/types.d.ts +12 -0
  50. package/build/ts/server/clients/admin/types.d.ts.map +1 -1
  51. package/build/ts/server/clients/types.d.ts +1 -3
  52. package/build/ts/server/clients/types.d.ts.map +1 -1
  53. package/build/ts/server/config-types.d.ts +1 -3
  54. package/build/ts/server/config-types.d.ts.map +1 -1
  55. package/build/ts/server/errors.d.ts +4 -0
  56. package/build/ts/server/errors.d.ts.map +1 -0
  57. package/build/ts/server/errors.js +14 -0
  58. package/build/ts/server/errors.js.map +1 -0
  59. package/build/ts/server/future/flags.d.ts +4 -1
  60. package/build/ts/server/future/flags.d.ts.map +1 -1
  61. package/build/ts/server/index.d.ts +1 -0
  62. package/build/ts/server/index.d.ts.map +1 -1
  63. package/build/ts/server/index.js +2 -0
  64. package/build/ts/server/index.js.map +1 -1
  65. package/build/ts/server/shopify-app.d.ts.map +1 -1
  66. package/build/ts/server/shopify-app.doc.d.ts.map +1 -1
  67. package/build/ts/server/shopify-app.doc.js +1 -0
  68. package/build/ts/server/shopify-app.doc.js.map +1 -1
  69. package/build/ts/server/shopify-app.js +4 -4
  70. package/build/ts/server/shopify-app.js.map +1 -1
  71. package/build/ts/server/types.d.ts +48 -11
  72. package/build/ts/server/types.d.ts.map +1 -1
  73. package/build/ts/server/types.js.map +1 -1
  74. package/build/ts/server/unauthenticated/admin/factory.d.ts.map +1 -1
  75. package/build/ts/server/unauthenticated/admin/factory.js +2 -2
  76. package/build/ts/server/unauthenticated/admin/factory.js.map +1 -1
  77. package/build/ts/server/unauthenticated/admin/types.d.ts +76 -0
  78. package/build/ts/server/unauthenticated/admin/types.d.ts.map +1 -1
  79. package/build/ts/server/unauthenticated/admin/unauthenticated.admin.doc.d.ts.map +1 -1
  80. package/build/ts/server/unauthenticated/admin/unauthenticated.admin.doc.js +2 -5
  81. package/build/ts/server/unauthenticated/admin/unauthenticated.admin.doc.js.map +1 -1
  82. package/build/ts/server/unauthenticated/storefront/factory.d.ts.map +1 -1
  83. package/build/ts/server/unauthenticated/storefront/factory.js +2 -2
  84. package/build/ts/server/unauthenticated/storefront/factory.js.map +1 -1
  85. package/build/ts/server/unauthenticated/storefront/unauthenticated.storefront.doc.d.ts.map +1 -1
  86. package/build/ts/server/unauthenticated/storefront/unauthenticated.storefront.doc.js +1 -4
  87. package/build/ts/server/unauthenticated/storefront/unauthenticated.storefront.doc.js.map +1 -1
  88. package/build/ts/server/version.d.ts +1 -1
  89. package/build/ts/server/version.js +1 -1
  90. package/package.json +9 -9
package/README.md CHANGED
@@ -174,6 +174,50 @@ Here are some guides to help you set up your app:
174
174
  You can also authenticate requests from surfaces other than the admin.
175
175
  To see all supported methods, see [the `shopify.authenticate` object documentation](https://shopify.dev/docs/api/shopify-app-remix/latest/authenticate).
176
176
 
177
+ ### New embedded app authorization strategy
178
+
179
+ > [!TIP]
180
+ > If you are building an embedded app, we **strongly** recommend using [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)
181
+ > with [token exchange](https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange) instead of the legacy authorization code grant flow.
182
+
183
+ We've introduced a new installation and authorization strategy for **embedded apps** that
184
+ eliminates the redirects that were previously necessary.
185
+ It replaces the existing [installation and authorization code grant flow](https://shopify.dev/docs/apps/auth/get-access-tokens/authorization-code-grant).
186
+
187
+ This is achieved by using [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)
188
+ to handle automatic app installations and scope updates, while utilizing
189
+ [token exchange](https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange) to retrieve an access token for
190
+ authenticated API access.
191
+
192
+ ##### Enabling this new strategy in your app
193
+
194
+ > [!NOTE]
195
+ > Newly created Remix apps from the template after February 1st 2024 has this feature enabled by default.
196
+
197
+ 1. Enable [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)
198
+ by configuring your scopes [through the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/configuration).
199
+ 2. Enable the future flag `unstable_newEmbeddedAuthStrategy` in your app's server configuration file.
200
+
201
+ ```ts
202
+ // my-app/app/shopify.server.ts
203
+ const shopify = shopifyApp({
204
+ ...
205
+ isEmbeddedApp: true,
206
+ future: {
207
+ unstable_newEmbeddedAuthStrategy: true,
208
+ }
209
+ })
210
+
211
+ ```
212
+
213
+ 3. Enjoy a smoother and faster app installation process.
214
+
215
+ ###### Learn more about:
216
+
217
+ - [How token exchange works](https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange)
218
+ - [Using Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)
219
+ - [Configuring access scopes through the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/configuration)
220
+
177
221
  ## Gotchas / Troubleshooting
178
222
 
179
223
  If you're experiencing unexpected behaviors when using this package, check our [app template's documentation](https://github.com/Shopify/shopify-app-template-remix#gotchas--troubleshooting) for the solution to common issues.
@@ -11,6 +11,7 @@ require('@remix-run/server-runtime');
11
11
  var cancel = require('./billing/cancel.js');
12
12
  var require$1 = require('./billing/require.js');
13
13
  var request = require('./billing/request.js');
14
+ var check = require('./billing/check.js');
14
15
  var createAdminApiContext = require('./helpers/create-admin-api-context.js');
15
16
  var ensureAppIsEmbeddedIfRequired = require('./helpers/ensure-app-is-embedded-if-required.js');
16
17
  var ensureSessionTokenSearchParamIfRequired = require('./helpers/ensure-session-token-search-param-if-required.js');
@@ -60,6 +61,7 @@ function authStrategyFactory({
60
61
  admin: createAdminApiContext.createAdminApiContext(session, params, authStrategy.handleClientError(request$1)),
61
62
  billing: {
62
63
  require: require$1.requireBillingFactory(params, request$1, session),
64
+ check: check.checkBillingFactory(params, request$1, session),
63
65
  request: request.requestBillingFactory(params, request$1, session),
64
66
  cancel: cancel.cancelBillingFactory(params, request$1, session)
65
67
  },
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var shopifyApi = require('@shopify/shopify-api');
6
+ require('@remix-run/server-runtime');
7
+ var redirectToAuthPage = require('../helpers/redirect-to-auth-page.js');
8
+
9
+ function checkBillingFactory(params, request, session) {
10
+ return async function checkBilling(options) {
11
+ const {
12
+ api,
13
+ logger
14
+ } = params;
15
+ logger.debug('Checking billing plans', {
16
+ shop: session.shop,
17
+ ...options
18
+ });
19
+ try {
20
+ return await api.billing.check({
21
+ session,
22
+ plans: options.plans,
23
+ isTest: options.isTest,
24
+ returnObject: true
25
+ });
26
+ } catch (error) {
27
+ if (error instanceof shopifyApi.HttpResponseError && error.response.code === 401) {
28
+ logger.debug('API token was invalid, redirecting to OAuth', {
29
+ shop: session.shop
30
+ });
31
+ throw await redirectToAuthPage.redirectToAuthPage(params, request, session.shop);
32
+ } else {
33
+ throw error;
34
+ }
35
+ }
36
+ };
37
+ }
38
+
39
+ exports.checkBillingFactory = checkBillingFactory;
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var appBridgeUrl = require('../../helpers/app-bridge-url.js');
6
6
  var addResponseHeaders = require('../../helpers/add-response-headers.js');
7
+ var validateRedirectUrl = require('./validate-redirect-url.js');
7
8
 
8
9
  function renderAppBridge({
9
10
  config
@@ -11,7 +12,7 @@ function renderAppBridge({
11
12
  let redirectToScript = '';
12
13
  if (redirectTo) {
13
14
  var _redirectTo$target;
14
- const destination = new URL(redirectTo.url, config.appUrl);
15
+ const destination = validateRedirectUrl.sanitizeRedirectUrl(config.appUrl, redirectTo.url);
15
16
  const target = (_redirectTo$target = redirectTo.target) !== null && _redirectTo$target !== void 0 ? _redirectTo$target : '_top';
16
17
  redirectToScript = `<script>window.open(${JSON.stringify(destination.toString())}, ${JSON.stringify(target)})</script>`;
17
18
  }
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var shopifyApi = require('@shopify/shopify-api');
6
+
7
+ const FILE_URI_MATCH = /\/\/\//;
8
+ const INVALID_RELATIVE_URL = /[/\\][/\\]/;
9
+ const WHITESPACE_CHARACTER = /\s/;
10
+ const VALID_PROTOCOLS = ['https:', 'http:'];
11
+ function isSafe(domain, redirectUrl, requireSSL = true) {
12
+ if (typeof redirectUrl !== 'string') {
13
+ return false;
14
+ }
15
+ if (FILE_URI_MATCH.test(redirectUrl) || WHITESPACE_CHARACTER.test(redirectUrl)) {
16
+ return false;
17
+ }
18
+ let url;
19
+ try {
20
+ url = new URL(redirectUrl, domain);
21
+ } catch (error) {
22
+ return false;
23
+ }
24
+ if (INVALID_RELATIVE_URL.test(url.pathname)) {
25
+ return false;
26
+ }
27
+ if (!VALID_PROTOCOLS.includes(url.protocol)) {
28
+ return false;
29
+ }
30
+ if (requireSSL && url.protocol !== 'https:') {
31
+ return false;
32
+ }
33
+ return true;
34
+ }
35
+ function sanitizeRedirectUrl(domain, redirectUrl, options = {}) {
36
+ if (isSafe(domain, redirectUrl, options.requireSSL)) {
37
+ return new URL(redirectUrl, domain);
38
+ } else if (options.throwOnInvalid === false) {
39
+ return undefined;
40
+ } else {
41
+ throw new shopifyApi.ShopifyError('Invalid URL. Refusing to redirect');
42
+ }
43
+ }
44
+
45
+ exports.sanitizeRedirectUrl = sanitizeRedirectUrl;
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var factory = require('../../clients/admin/factory.js');
6
+
7
+ function authenticateFlowFactory(params) {
8
+ const {
9
+ api,
10
+ config,
11
+ logger
12
+ } = params;
13
+ return async function authenticate(request) {
14
+ logger.info('Authenticating flow request');
15
+ if (request.method !== 'POST') {
16
+ logger.debug('Received a non-POST request for flow. Only POST requests are allowed.', {
17
+ url: request.url,
18
+ method: request.method
19
+ });
20
+ throw new Response(undefined, {
21
+ status: 405,
22
+ statusText: 'Method not allowed'
23
+ });
24
+ }
25
+ const rawBody = await request.text();
26
+ const result = await api.flow.validate({
27
+ rawBody,
28
+ rawRequest: request
29
+ });
30
+ if (!result.valid) {
31
+ logger.error('Received an invalid flow request', {
32
+ reason: result.reason
33
+ });
34
+ throw new Response(undefined, {
35
+ status: 400,
36
+ statusText: 'Bad Request'
37
+ });
38
+ }
39
+ const payload = JSON.parse(rawBody);
40
+ logger.debug('Flow request is valid, looking for an offline session', {
41
+ shop: payload.shopify_domain
42
+ });
43
+ const sessionId = api.session.getOfflineId(payload.shopify_domain);
44
+ const session = await config.sessionStorage.loadSession(sessionId);
45
+ if (!session) {
46
+ logger.info('Flow request could not find session', {
47
+ shop: payload.shopify_domain
48
+ });
49
+ throw new Response(undefined, {
50
+ status: 400,
51
+ statusText: 'Bad Request'
52
+ });
53
+ }
54
+ logger.debug('Found a session for the flow request', {
55
+ shop: session.shop
56
+ });
57
+ return {
58
+ session,
59
+ payload,
60
+ admin: factory.adminClientFactory({
61
+ params,
62
+ session
63
+ })
64
+ };
65
+ };
66
+ }
67
+
68
+ exports.authenticateFlowFactory = authenticateFlowFactory;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var shopifyApi = require('@shopify/shopify-api');
6
+
7
+ class SessionNotFoundError extends shopifyApi.ShopifyError {}
8
+
9
+ exports.SessionNotFoundError = SessionNotFoundError;
@@ -8,6 +8,7 @@ var shopifyApi = require('@shopify/shopify-api');
8
8
  var types = require('./types.js');
9
9
  var index = require('./boundary/index.js');
10
10
  var shopifyApp = require('./shopify-app.js');
11
+ var errors = require('./errors.js');
11
12
 
12
13
  runtime.setAbstractRuntimeString(() => {
13
14
  return `Remix`;
@@ -37,3 +38,4 @@ exports.AppDistribution = types.AppDistribution;
37
38
  exports.LoginErrorType = types.LoginErrorType;
38
39
  exports.boundary = index.boundary;
39
40
  exports.shopifyApp = shopifyApp.shopifyApp;
41
+ exports.SessionNotFoundError = errors.SessionNotFoundError;
@@ -8,7 +8,7 @@ var types = require('./types.js');
8
8
  var version = require('./version.js');
9
9
  var register = require('./authenticate/webhooks/register.js');
10
10
  var authenticate = require('./authenticate/admin/authenticate.js');
11
- var authenticate$1 = require('./authenticate/webhooks/authenticate.js');
11
+ var authenticate$2 = require('./authenticate/webhooks/authenticate.js');
12
12
  var overrideLogger = require('./override-logger.js');
13
13
  var addResponseHeaders = require('./authenticate/helpers/add-response-headers.js');
14
14
  require('isbot');
@@ -20,6 +20,7 @@ var factory$2 = require('./unauthenticated/storefront/factory.js');
20
20
  var authCodeFlow = require('./authenticate/admin/strategies/auth-code-flow.js');
21
21
  var tokenExchange = require('./authenticate/admin/strategies/token-exchange.js');
22
22
  var idempotentPromiseHandler = require('./authenticate/helpers/idempotent-promise-handler.js');
23
+ var authenticate$1 = require('./authenticate/flow/authenticate.js');
23
24
 
24
25
  /**
25
26
  * Creates an object your app will use to interact with Shopify.
@@ -64,8 +65,9 @@ function shopifyApp(appConfig) {
64
65
  registerWebhooks: register.registerWebhooksFactory(params),
65
66
  authenticate: {
66
67
  admin: authStrategy,
68
+ flow: authenticate$1.authenticateFlowFactory(params),
67
69
  public: factory.authenticatePublicFactory(params),
68
- webhook: authenticate$1.authenticateWebhookFactory(params)
70
+ webhook: authenticate$2.authenticateWebhookFactory(params)
69
71
  },
70
72
  unauthenticated: {
71
73
  admin: factory$1.unauthenticatedAdminContextFactory(params),
@@ -84,7 +86,7 @@ function isSingleMerchantApp(_shopify, config) {
84
86
  return config.distribution === types.AppDistribution.SingleMerchant;
85
87
  }
86
88
  function deriveApi(appConfig) {
87
- var _appConfig$isEmbedded, _appConfig$apiVersion, _appConfig$future;
89
+ var _appConfig$isEmbedded, _appConfig$apiVersion;
88
90
  let appUrl;
89
91
  try {
90
92
  appUrl = new URL(appConfig.appUrl);
@@ -110,13 +112,11 @@ function deriveApi(appConfig) {
110
112
  isEmbeddedApp: (_appConfig$isEmbedded = appConfig.isEmbeddedApp) !== null && _appConfig$isEmbedded !== void 0 ? _appConfig$isEmbedded : true,
111
113
  apiVersion: (_appConfig$apiVersion = appConfig.apiVersion) !== null && _appConfig$apiVersion !== void 0 ? _appConfig$apiVersion : shopifyApi.LATEST_API_VERSION,
112
114
  isCustomStoreApp: appConfig.distribution === types.AppDistribution.ShopifyAdmin,
113
- future: {
114
- unstable_tokenExchange: (_appConfig$future = appConfig.future) === null || _appConfig$future === void 0 ? void 0 : _appConfig$future.unstable_newEmbeddedAuthStrategy
115
- }
115
+ future: {}
116
116
  });
117
117
  }
118
118
  function deriveConfig(appConfig, apiConfig) {
119
- var _appConfig$distributi, _appConfig$useOnlineT, _appConfig$hooks, _appConfig$future2;
119
+ var _appConfig$distributi, _appConfig$useOnlineT, _appConfig$hooks, _appConfig$future;
120
120
  if (!appConfig.sessionStorage) {
121
121
  throw new shopifyApi.ShopifyError('Please provide a valid session storage. Refer to https://github.com/Shopify/shopify-app-js/blob/main/README.md#session-storage-options for options.');
122
122
  }
@@ -130,7 +130,7 @@ function deriveConfig(appConfig, apiConfig) {
130
130
  useOnlineTokens: (_appConfig$useOnlineT = appConfig.useOnlineTokens) !== null && _appConfig$useOnlineT !== void 0 ? _appConfig$useOnlineT : false,
131
131
  hooks: (_appConfig$hooks = appConfig.hooks) !== null && _appConfig$hooks !== void 0 ? _appConfig$hooks : {},
132
132
  sessionStorage: appConfig.sessionStorage,
133
- future: (_appConfig$future2 = appConfig.future) !== null && _appConfig$future2 !== void 0 ? _appConfig$future2 : {},
133
+ future: (_appConfig$future = appConfig.future) !== null && _appConfig$future !== void 0 ? _appConfig$future : {},
134
134
  auth: {
135
135
  path: authPathPrefix,
136
136
  callbackPath: `${authPathPrefix}/callback`,
@@ -10,6 +10,10 @@ let AppDistribution = /*#__PURE__*/function (AppDistribution) {
10
10
  AppDistribution["ShopifyAdmin"] = "shopify_admin";
11
11
  return AppDistribution;
12
12
  }({});
13
+
14
+ // This can't be a type because it would reference itself
15
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
16
+
13
17
  let LoginErrorType = /*#__PURE__*/function (LoginErrorType) {
14
18
  LoginErrorType["MissingShop"] = "MISSING_SHOP";
15
19
  LoginErrorType["InvalidShop"] = "INVALID_SHOP";
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shopifyApi = require('@shopify/shopify-api');
5
+ var errors = require('../../errors.js');
6
6
  var factory = require('../../clients/admin/factory.js');
7
7
  var getOfflineSession = require('../helpers/get-offline-session.js');
8
8
 
@@ -10,7 +10,7 @@ function unauthenticatedAdminContextFactory(params) {
10
10
  return async shop => {
11
11
  const session = await getOfflineSession.getOfflineSession(shop, params);
12
12
  if (!session) {
13
- throw new shopifyApi.ShopifyError(`Could not find a session for shop ${shop} when creating unauthenticated admin context`);
13
+ throw new errors.SessionNotFoundError(`Could not find a session for shop ${shop} when creating unauthenticated admin context`);
14
14
  }
15
15
  return {
16
16
  session,
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var shopifyApi = require('@shopify/shopify-api');
5
+ var errors = require('../../errors.js');
6
6
  var factory = require('../../clients/storefront/factory.js');
7
7
  var getOfflineSession = require('../helpers/get-offline-session.js');
8
8
 
@@ -10,7 +10,7 @@ function unauthenticatedStorefrontContextFactory(params) {
10
10
  return async shop => {
11
11
  const session = await getOfflineSession.getOfflineSession(shop, params);
12
12
  if (!session) {
13
- throw new shopifyApi.ShopifyError(`Could not find a session for shop ${shop} when creating unauthenticated storefront context`);
13
+ throw new errors.SessionNotFoundError(`Could not find a session for shop ${shop} when creating unauthenticated storefront context`);
14
14
  }
15
15
  return {
16
16
  session,
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const SHOPIFY_REMIX_LIBRARY_VERSION = '2.4.0';
5
+ const SHOPIFY_REMIX_LIBRARY_VERSION = '2.5.1';
6
6
 
7
7
  exports.SHOPIFY_REMIX_LIBRARY_VERSION = SHOPIFY_REMIX_LIBRARY_VERSION;
@@ -1 +1 @@
1
- {"version":3,"file":"request-mock.js","sourceRoot":"","sources":["../../../../src/server/__test-helpers/request-mock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-mock.js","sourceRoot":"","sources":["../../../../src/server/__test-helpers/request-mock.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/admin/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAW,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAerD,OAAO,KAAK,EAEV,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AASjB,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CACjC,SAAS,SAAS,YAAY,EAC9B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,EAC7D,EACA,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAuG9D"}
1
+ {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/admin/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAW,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAgBrD,OAAO,KAAK,EAEV,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AASjB,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC9C,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CACjC,SAAS,SAAS,YAAY,EAC9B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,EAC7D,EACA,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAwG9D"}
@@ -40,6 +40,7 @@ function authStrategyFactory(_a) {
40
40
  admin: (0, helpers_2.createAdminApiContext)(session, params, authStrategy.handleClientError(request)),
41
41
  billing: {
42
42
  require: (0, billing_1.requireBillingFactory)(params, request, session),
43
+ check: (0, billing_1.checkBillingFactory)(params, request, session),
43
44
  request: (0, billing_1.requestBillingFactory)(params, request, session),
44
45
  cancel: (0, billing_1.cancelBillingFactory)(params, request, session),
45
46
  },
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/admin/authenticate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/admin/authenticate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Session } from '@shopify/shopify-api';
2
+ import type { BasicParams } from '../../../types';
3
+ import type { AppConfigArg } from '../../../config-types';
4
+ import type { CheckBillingOptions } from './types';
5
+ export declare function checkBillingFactory<Config extends AppConfigArg>(params: BasicParams, request: Request, session: Session): (options: CheckBillingOptions<Config>) => Promise<import("@shopify/shopify-api").BillingCheckResponseObject>;
6
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,YAAY,EAC7D,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,aAE4B,oBAAoB,MAAM,CAAC,wEAuBxE"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkBillingFactory = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var shopify_api_1 = require("@shopify/shopify-api");
6
+ var helpers_1 = require("../helpers");
7
+ function checkBillingFactory(params, request, session) {
8
+ return function checkBilling(options) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
10
+ var api, logger, error_1;
11
+ return tslib_1.__generator(this, function (_a) {
12
+ switch (_a.label) {
13
+ case 0:
14
+ api = params.api, logger = params.logger;
15
+ logger.debug('Checking billing plans', tslib_1.__assign({ shop: session.shop }, options));
16
+ _a.label = 1;
17
+ case 1:
18
+ _a.trys.push([1, 3, , 7]);
19
+ return [4 /*yield*/, api.billing.check({
20
+ session: session,
21
+ plans: options.plans,
22
+ isTest: options.isTest,
23
+ returnObject: true,
24
+ })];
25
+ case 2: return [2 /*return*/, _a.sent()];
26
+ case 3:
27
+ error_1 = _a.sent();
28
+ if (!(error_1 instanceof shopify_api_1.HttpResponseError && error_1.response.code === 401)) return [3 /*break*/, 5];
29
+ logger.debug('API token was invalid, redirecting to OAuth', {
30
+ shop: session.shop,
31
+ });
32
+ return [4 /*yield*/, (0, helpers_1.redirectToAuthPage)(params, request, session.shop)];
33
+ case 4: throw _a.sent();
34
+ case 5: throw error_1;
35
+ case 6: return [3 /*break*/, 7];
36
+ case 7: return [2 /*return*/];
37
+ }
38
+ });
39
+ });
40
+ };
41
+ }
42
+ exports.checkBillingFactory = checkBillingFactory;
43
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/check.ts"],"names":[],"mappings":";;;;AAAA,oDAAgE;AAGhE,sCAA8C;AAK9C,SAAgB,mBAAmB,CACjC,MAAmB,EACnB,OAAgB,EAChB,OAAgB;IAEhB,OAAO,SAAe,YAAY,CAAC,OAAoC;;;;;;wBAC9D,GAAG,GAAY,MAAM,IAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;wBAE7B,MAAM,CAAC,KAAK,CAAC,wBAAwB,qBAAG,IAAI,EAAE,OAAO,CAAC,IAAI,IAAK,OAAO,EAAE,CAAC;;;;wBAGhE,qBAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;gCAC7B,OAAO,SAAA;gCACP,KAAK,EAAE,OAAO,CAAC,KAAiB;gCAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,YAAY,EAAE,IAAI;6BACnB,CAAC,EAAA;4BALF,sBAAO,SAKL,EAAC;;;6BAEC,CAAA,OAAK,YAAY,+BAAiB,IAAI,OAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAA,EAAjE,wBAAiE;wBACnE,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE;4BAC1D,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB,CAAC,CAAC;wBACG,qBAAM,IAAA,4BAAkB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAA;4BAA7D,MAAM,SAAuD,CAAC;4BAE9D,MAAM,OAAK,CAAC;;;;;;KAGjB,CAAC;AACJ,CAAC;AA5BD,kDA4BC"}
@@ -1,4 +1,5 @@
1
1
  export { cancelBillingFactory } from './cancel';
2
2
  export { requireBillingFactory } from './require';
3
3
  export { requestBillingFactory } from './request';
4
+ export { checkBillingFactory } from './check';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAC"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requestBillingFactory = exports.requireBillingFactory = exports.cancelBillingFactory = void 0;
3
+ exports.checkBillingFactory = exports.requestBillingFactory = exports.requireBillingFactory = exports.cancelBillingFactory = void 0;
4
4
  var cancel_1 = require("./cancel");
5
5
  Object.defineProperty(exports, "cancelBillingFactory", { enumerable: true, get: function () { return cancel_1.cancelBillingFactory; } });
6
6
  var require_1 = require("./require");
7
7
  Object.defineProperty(exports, "requireBillingFactory", { enumerable: true, get: function () { return require_1.requireBillingFactory; } });
8
8
  var request_1 = require("./request");
9
9
  Object.defineProperty(exports, "requestBillingFactory", { enumerable: true, get: function () { return request_1.requestBillingFactory; } });
10
+ var check_1 = require("./check");
11
+ Object.defineProperty(exports, "checkBillingFactory", { enumerable: true, get: function () { return check_1.checkBillingFactory; } });
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/index.ts"],"names":[],"mappings":";;;AAAA,mCAA8C;AAAtC,8GAAA,oBAAoB,OAAA;AAC5B,qCAAgD;AAAxC,gHAAA,qBAAqB,OAAA;AAC7B,qCAAgD;AAAxC,gHAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/index.ts"],"names":[],"mappings":";;;AAAA,mCAA8C;AAAtC,8GAAA,oBAAoB,OAAA;AAC5B,qCAAgD;AAAxC,gHAAA,qBAAqB,OAAA;AAC7B,qCAAgD;AAAxC,gHAAA,qBAAqB,OAAA;AAC7B,iCAA4C;AAApC,4GAAA,mBAAmB,OAAA"}
@@ -10,6 +10,12 @@ export interface RequireBillingOptions<Config extends AppConfigArg> extends Omit
10
10
  */
11
11
  onFailure: (error: any) => Promise<Response>;
12
12
  }
13
+ export interface CheckBillingOptions<Config extends AppConfigArg> extends Omit<BillingCheckParams, 'session' | 'plans' | 'returnObject'> {
14
+ /**
15
+ * The plans to check for. Must be one of the values defined in the `billing` config option.
16
+ */
17
+ plans: (keyof Config['billing'])[];
18
+ }
13
19
  export interface RequestBillingOptions<Config extends AppConfigArg> extends Omit<BillingRequestParams, 'session' | 'plan' | 'returnObject'> {
14
20
  /**
15
21
  * The plan to request. Must be one of the values defined in the `billing` config option.
@@ -89,7 +95,7 @@ export interface BillingContext<Config extends AppConfigArg> {
89
95
  * ```
90
96
  *
91
97
  * @example
92
- * <caption>Using a plan selection page.</caption>
98
+ * <caption>Redirect to a plan selection page.</caption>
93
99
  * <description> When the app has multiple plans, create a page in your App that allows the merchant to select a plan. If a merchant does not have the required plan you can redirect them to page in your app to select one.</description>
94
100
  * ```ts
95
101
  * // /app/routes/**\/*.ts
@@ -137,6 +143,58 @@ export interface BillingContext<Config extends AppConfigArg> {
137
143
  * ```
138
144
  */
139
145
  require: (options: RequireBillingOptions<Config>) => Promise<BillingCheckResponseObject>;
146
+ /**
147
+ * Checks if the shop has an active payment for any plan defined in the `billing` config option.
148
+ *
149
+ * @returns A promise that resolves to an object containing the active purchases for the shop.
150
+ *
151
+ * @example
152
+ * <caption>Check what billing plans a merchant is subscribed to.</caption>
153
+ * <description>Use billing.check if you want to determine which plans are in use. Unlike `require`, `check` does not
154
+ * throw an error if no active billing plans are present. </description>
155
+ * ```ts
156
+ * // /app/routes/**\/*.ts
157
+ * import { LoaderFunctionArgs } from "@remix-run/node";
158
+ * import { authenticate, MONTHLY_PLAN } from "../shopify.server";
159
+ *
160
+ * export const loader = async ({ request }: LoaderFunctionArgs) => {
161
+ * const { billing } = await authenticate.admin(request);
162
+ * const { hasActivePayment, appSubscriptions } = await billing.check({
163
+ * plans: [MONTHLY_PLAN],
164
+ * isTest: false,
165
+ * });
166
+ * console.log(hasActivePayment)
167
+ * console.log(appSubscriptions)
168
+ * };
169
+ * ```
170
+ * ```ts
171
+ * // shopify.server.ts
172
+ * import { shopifyApp, BillingInterval } from "@shopify/shopify-app-remix/server";
173
+ *
174
+ * export const MONTHLY_PLAN = 'Monthly subscription';
175
+ * export const ANNUAL_PLAN = 'Annual subscription';
176
+ *
177
+ * const shopify = shopifyApp({
178
+ * // ...etc
179
+ * billing: {
180
+ * [MONTHLY_PLAN]: {
181
+ * amount: 5,
182
+ * currencyCode: 'USD',
183
+ * interval: BillingInterval.Every30Days,
184
+ * },
185
+ * [ANNUAL_PLAN]: {
186
+ * amount: 50,
187
+ * currencyCode: 'USD',
188
+ * interval: BillingInterval.Annual,
189
+ * },
190
+ * }
191
+ * });
192
+ * export default shopify;
193
+ * export const authenticate = shopify.authenticate;
194
+ * ```
195
+ *
196
+ */
197
+ check: (options: CheckBillingOptions<Config>) => Promise<BillingCheckResponseObject>;
140
198
  /**
141
199
  * Requests payment for the plan.
142
200
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,YAAY,CAChE,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;IACtE;;OAEG;IACH,KAAK,EAAE,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IACnC;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,YAAY,CAChE,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC;IACvE;;OAEG;IACH,IAAI,EAAE,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAIlB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,YAAY;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiGG;IACH,OAAO,EAAE,CACP,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KACnC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CACrE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/admin/billing/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,YAAY,CAChE,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;IACtE;;OAEG;IACH,KAAK,EAAE,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IACnC;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,YAAY,CAC9D,SAAQ,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;IACtE;;OAEG;IACH,KAAK,EAAE,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,YAAY,CAChE,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC;IACvE;;OAEG;IACH,IAAI,EAAE,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAIlB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,YAAY;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiGG;IACH,OAAO,EAAE,CACP,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KACnC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,KAAK,EAAE,CACL,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,KACjC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CACrE"}