@shopify/shopify-app-remix 2.6.1 → 2.8.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 (129) hide show
  1. package/build/cjs/react/components/AppProvider/AppProvider.js +2 -0
  2. package/build/cjs/react/components/AppProxyForm/AppProxyForm.js +80 -0
  3. package/build/cjs/react/components/AppProxyLink/AppProxyLink.js +56 -0
  4. package/build/cjs/react/components/AppProxyProvider/AppProxyProvider.js +79 -0
  5. package/build/cjs/react/index.js +7 -0
  6. package/build/cjs/server/adapters/node/index.js +1 -1
  7. package/build/cjs/server/authenticate/admin/authenticate.js +1 -5
  8. package/build/cjs/server/authenticate/admin/strategies/token-exchange.js +1 -1
  9. package/build/cjs/server/authenticate/fulfillment-service/authenticate.js +70 -0
  10. package/build/cjs/server/authenticate/helpers/validate-session-token.js +11 -7
  11. package/build/cjs/server/authenticate/public/appProxy/authenticate.js +49 -20
  12. package/build/cjs/server/authenticate/public/checkout/authenticate.js +1 -1
  13. package/build/cjs/server/boundary/index.js +1 -1
  14. package/build/cjs/server/future/flags.js +28 -0
  15. package/build/cjs/server/shopify-app.js +9 -4
  16. package/build/cjs/server/types.js +0 -4
  17. package/build/cjs/server/version.js +1 -1
  18. package/build/ts/react/components/AppProvider/AppProvider.d.ts +2 -0
  19. package/build/ts/react/components/AppProvider/AppProvider.d.ts.map +1 -1
  20. package/build/ts/react/components/AppProvider/AppProvider.js +2 -0
  21. package/build/ts/react/components/AppProvider/AppProvider.js.map +1 -1
  22. package/build/ts/react/components/AppProxyForm/AppProxyForm.d.ts +59 -0
  23. package/build/ts/react/components/AppProxyForm/AppProxyForm.d.ts.map +1 -0
  24. package/build/ts/react/components/AppProxyForm/AppProxyForm.doc.d.ts +4 -0
  25. package/build/ts/react/components/AppProxyForm/AppProxyForm.doc.d.ts.map +1 -0
  26. package/build/ts/react/components/AppProxyForm/AppProxyForm.doc.js +28 -0
  27. package/build/ts/react/components/AppProxyForm/AppProxyForm.doc.js.map +1 -0
  28. package/build/ts/react/components/AppProxyForm/AppProxyForm.js +71 -0
  29. package/build/ts/react/components/AppProxyForm/AppProxyForm.js.map +1 -0
  30. package/build/ts/react/components/AppProxyForm/index.d.ts +2 -0
  31. package/build/ts/react/components/AppProxyForm/index.d.ts.map +1 -0
  32. package/build/ts/react/components/AppProxyForm/index.js +6 -0
  33. package/build/ts/react/components/AppProxyForm/index.js.map +1 -0
  34. package/build/ts/react/components/AppProxyLink/AppProxyLink.d.ts +36 -0
  35. package/build/ts/react/components/AppProxyLink/AppProxyLink.d.ts.map +1 -0
  36. package/build/ts/react/components/AppProxyLink/AppProxyLink.doc.d.ts +4 -0
  37. package/build/ts/react/components/AppProxyLink/AppProxyLink.doc.d.ts.map +1 -0
  38. package/build/ts/react/components/AppProxyLink/AppProxyLink.doc.js +28 -0
  39. package/build/ts/react/components/AppProxyLink/AppProxyLink.doc.js.map +1 -0
  40. package/build/ts/react/components/AppProxyLink/AppProxyLink.js +47 -0
  41. package/build/ts/react/components/AppProxyLink/AppProxyLink.js.map +1 -0
  42. package/build/ts/react/components/AppProxyLink/index.d.ts +2 -0
  43. package/build/ts/react/components/AppProxyLink/index.d.ts.map +1 -0
  44. package/build/ts/react/components/AppProxyLink/index.js +6 -0
  45. package/build/ts/react/components/AppProxyLink/index.js.map +1 -0
  46. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.d.ts +55 -0
  47. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.d.ts.map +1 -0
  48. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.doc.d.ts +4 -0
  49. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.doc.d.ts.map +1 -0
  50. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.doc.js +40 -0
  51. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.doc.js.map +1 -0
  52. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.js +65 -0
  53. package/build/ts/react/components/AppProxyProvider/AppProxyProvider.js.map +1 -0
  54. package/build/ts/react/components/AppProxyProvider/index.d.ts +2 -0
  55. package/build/ts/react/components/AppProxyProvider/index.d.ts.map +1 -0
  56. package/build/ts/react/components/AppProxyProvider/index.js +7 -0
  57. package/build/ts/react/components/AppProxyProvider/index.js.map +1 -0
  58. package/build/ts/react/components/index.d.ts +3 -0
  59. package/build/ts/react/components/index.d.ts.map +1 -1
  60. package/build/ts/react/components/index.js +3 -0
  61. package/build/ts/react/components/index.js.map +1 -1
  62. package/build/ts/server/__test-helpers/const.d.ts +1 -1
  63. package/build/ts/server/__test-helpers/test-config.d.ts +1 -1
  64. package/build/ts/server/authenticate/admin/authenticate.admin.doc.d.ts.map +1 -1
  65. package/build/ts/server/authenticate/admin/authenticate.admin.doc.js +13 -0
  66. package/build/ts/server/authenticate/admin/authenticate.admin.doc.js.map +1 -1
  67. package/build/ts/server/authenticate/admin/authenticate.js +1 -1
  68. package/build/ts/server/authenticate/admin/authenticate.js.map +1 -1
  69. package/build/ts/server/authenticate/admin/types.d.ts +27 -27
  70. package/build/ts/server/authenticate/flow/authenticate.flow.doc.d.ts.map +1 -1
  71. package/build/ts/server/authenticate/flow/authenticate.flow.doc.js +13 -0
  72. package/build/ts/server/authenticate/flow/authenticate.flow.doc.js.map +1 -1
  73. package/build/ts/server/authenticate/flow/types.d.ts +4 -4
  74. package/build/ts/server/authenticate/fulfillment-service/authenticate.d.ts +5 -0
  75. package/build/ts/server/authenticate/fulfillment-service/authenticate.d.ts.map +1 -0
  76. package/build/ts/server/authenticate/fulfillment-service/authenticate.fulfillment-service.doc.d.ts +4 -0
  77. package/build/ts/server/authenticate/fulfillment-service/authenticate.fulfillment-service.doc.d.ts.map +1 -0
  78. package/build/ts/server/authenticate/fulfillment-service/authenticate.fulfillment-service.doc.js +46 -0
  79. package/build/ts/server/authenticate/fulfillment-service/authenticate.fulfillment-service.doc.js.map +1 -0
  80. package/build/ts/server/authenticate/fulfillment-service/authenticate.js +73 -0
  81. package/build/ts/server/authenticate/fulfillment-service/authenticate.js.map +1 -0
  82. package/build/ts/server/authenticate/fulfillment-service/types.d.ts +109 -0
  83. package/build/ts/server/authenticate/fulfillment-service/types.d.ts.map +1 -0
  84. package/build/ts/server/authenticate/fulfillment-service/types.js +3 -0
  85. package/build/ts/server/authenticate/fulfillment-service/types.js.map +1 -0
  86. package/build/ts/server/authenticate/helpers/validate-session-token.d.ts +1 -1
  87. package/build/ts/server/authenticate/helpers/validate-session-token.d.ts.map +1 -1
  88. package/build/ts/server/authenticate/helpers/validate-session-token.js +12 -14
  89. package/build/ts/server/authenticate/helpers/validate-session-token.js.map +1 -1
  90. package/build/ts/server/authenticate/public/appProxy/authenticate.d.ts.map +1 -1
  91. package/build/ts/server/authenticate/public/appProxy/authenticate.js +59 -22
  92. package/build/ts/server/authenticate/public/appProxy/authenticate.js.map +1 -1
  93. package/build/ts/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.d.ts.map +1 -1
  94. package/build/ts/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.js +19 -0
  95. package/build/ts/server/authenticate/public/appProxy/authenticate.public.app-proxy.doc.js.map +1 -1
  96. package/build/ts/server/authenticate/public/appProxy/types.d.ts +60 -7
  97. package/build/ts/server/authenticate/public/appProxy/types.d.ts.map +1 -1
  98. package/build/ts/server/authenticate/public/checkout/authenticate.d.ts.map +1 -1
  99. package/build/ts/server/authenticate/public/checkout/authenticate.js +1 -3
  100. package/build/ts/server/authenticate/public/checkout/authenticate.js.map +1 -1
  101. package/build/ts/server/authenticate/public/checkout/authenticate.public.checkout.doc.d.ts.map +1 -1
  102. package/build/ts/server/authenticate/public/checkout/authenticate.public.checkout.doc.js +18 -0
  103. package/build/ts/server/authenticate/public/checkout/authenticate.public.checkout.doc.js.map +1 -1
  104. package/build/ts/server/authenticate/webhooks/authenticate.webhooks.doc.d.ts.map +1 -1
  105. package/build/ts/server/authenticate/webhooks/authenticate.webhooks.doc.js +13 -0
  106. package/build/ts/server/authenticate/webhooks/authenticate.webhooks.doc.js.map +1 -1
  107. package/build/ts/server/authenticate/webhooks/types.d.ts +13 -14
  108. package/build/ts/server/authenticate/webhooks/types.d.ts.map +1 -1
  109. package/build/ts/server/boundary/index.d.ts +1 -1
  110. package/build/ts/server/boundary/index.js +1 -1
  111. package/build/ts/server/clients/admin/types.d.ts +85 -14
  112. package/build/ts/server/clients/admin/types.d.ts.map +1 -1
  113. package/build/ts/server/clients/storefront/types.d.ts +47 -0
  114. package/build/ts/server/clients/storefront/types.d.ts.map +1 -1
  115. package/build/ts/server/clients/types.d.ts +14 -1
  116. package/build/ts/server/clients/types.d.ts.map +1 -1
  117. package/build/ts/server/future/flags.d.ts +3 -1
  118. package/build/ts/server/future/flags.d.ts.map +1 -1
  119. package/build/ts/server/future/flags.js +20 -0
  120. package/build/ts/server/future/flags.js.map +1 -1
  121. package/build/ts/server/shopify-app.d.ts.map +1 -1
  122. package/build/ts/server/shopify-app.js +5 -1
  123. package/build/ts/server/shopify-app.js.map +1 -1
  124. package/build/ts/server/types.d.ts +35 -6
  125. package/build/ts/server/types.d.ts.map +1 -1
  126. package/build/ts/server/types.js.map +1 -1
  127. package/build/ts/server/version.d.ts +1 -1
  128. package/build/ts/server/version.js +1 -1
  129. package/package.json +9 -8
@@ -31,12 +31,17 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
31
31
  * import { authenticate } from "../shopify.server";
32
32
  *
33
33
  * export const loader = async ({ request }: LoaderFunctionArgs) => {
34
- * const { admin, session } = await authenticate.admin(request);
35
- * return json(admin.rest.resources.Order.count({ session }));
34
+ * const {
35
+ * admin,
36
+ * session,
37
+ * } = await authenticate.admin(request);
38
+ *
39
+ * return json(
40
+ * admin.rest.resources.Order.count({ session }),
41
+ * );
36
42
  * };
37
43
  * ```
38
44
  *
39
- *
40
45
  * ```ts
41
46
  * // /app/shopify.server.ts
42
47
  * import { shopifyApp } from "@shopify/shopify-app-remix/server";
@@ -50,7 +55,6 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
50
55
  * export const authenticate = shopify.authenticate;
51
56
  * ```
52
57
  *
53
- *
54
58
  * @example
55
59
  * <caption>Performing a GET request to the REST API.</caption>
56
60
  * <description>Use `admin.rest.get` to make custom requests to make a request to to the `customer/count` endpoint</description>
@@ -61,9 +65,16 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
61
65
  * import { authenticate } from "../shopify.server";
62
66
  *
63
67
  * export const loader = async ({ request }: LoaderFunctionArgs) => {
64
- * const { admin, session } = await authenticate.admin(request);
65
- * const response = await admin.rest.get({ path: "/customers/count.json" });
68
+ * const {
69
+ * admin,
70
+ * session,
71
+ * } = await authenticate.admin(request);
72
+ *
73
+ * const response = await admin.rest.get({
74
+ * path: "/customers/count.json",
75
+ * });
66
76
  * const customers = await response.json();
77
+ *
67
78
  * return json({ customers });
68
79
  * };
69
80
  * ```
@@ -80,6 +91,7 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
80
91
  * export default shopify;
81
92
  * export const authenticate = shopify.authenticate;
82
93
  * ```
94
+ *
83
95
  * @example
84
96
  * <caption>Performing a POST request to the REST API.</caption>
85
97
  * <description>Use `admin.rest.post` to make custom requests to make a request to to the `customers.json` endpoint to send a welcome email</description>
@@ -89,7 +101,11 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
89
101
  * import { authenticate } from "../shopify.server";
90
102
  *
91
103
  * export const loader = async ({ request }: LoaderFunctionArgs) => {
92
- * const { admin, session } = await authenticate.admin(request);
104
+ * const {
105
+ * admin,
106
+ * session,
107
+ * } = await authenticate.admin(request);
108
+ *
93
109
  * const response = admin.rest.post({
94
110
  * path: "customers/7392136888625/send_invite.json",
95
111
  * body: {
@@ -101,7 +117,8 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
101
117
  * custom_message: "My awesome new store",
102
118
  * },
103
119
  * },
104
- * });
120
+ * });
121
+ *
105
122
  * const customerInvite = await response.json();
106
123
  * return json({ customerInvite });
107
124
  * };
@@ -131,10 +148,11 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
131
148
  * <caption>Querying the GraphQL API.</caption>
132
149
  * <description>Use `admin.graphql` to make query / mutation requests.</description>
133
150
  * ```ts
151
+ * // /app/routes/**\/*.ts
134
152
  * import { ActionFunctionArgs } from "@remix-run/node";
135
153
  * import { authenticate } from "../shopify.server";
136
154
  *
137
- * export async function action({ request }: ActionFunctionArgs) {
155
+ * export const action = async ({ request }: ActionFunctionArgs) => {
138
156
  * const { admin } = await authenticate.admin(request);
139
157
  *
140
158
  * const response = await admin.graphql(
@@ -146,11 +164,17 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
146
164
  * }
147
165
  * }
148
166
  * }`,
149
- * { variables: { input: { title: "Product Name" } } }
167
+ * {
168
+ * variables: {
169
+ * input: { title: "Product Name" },
170
+ * },
171
+ * },
150
172
  * );
151
173
  *
152
174
  * const productData = await response.json();
153
- * return json({ data: productData.data });
175
+ * return json({
176
+ * productId: productData.data?.productCreate?.product?.id,
177
+ * });
154
178
  * }
155
179
  * ```
156
180
  *
@@ -159,11 +183,58 @@ export interface AdminApiContext<Resources extends ShopifyRestResources = Shopif
159
183
  * import { shopifyApp } from "@shopify/shopify-app-remix/server";
160
184
  *
161
185
  * const shopify = shopifyApp({
162
- * restResources,
163
- * // ...etc
186
+ * // ...
164
187
  * });
165
188
  * export default shopify;
166
- * export const unauthenticated = shopify.unauthenticated;
189
+ * export const authenticate = shopify.authenticate;
190
+ * ```
191
+ *
192
+ * @example
193
+ * <caption>Handling GraphQL errors.</caption>
194
+ * <description>Catch `GraphqlQueryError` errors to see error messages from the API.</description>
195
+ * ```ts
196
+ * // /app/routes/**\/*.ts
197
+ * import { ActionFunctionArgs } from "@remix-run/node";
198
+ * import { authenticate } from "../shopify.server";
199
+ *
200
+ * export const action = async ({ request }: ActionFunctionArgs) => {
201
+ * const { admin } = await authenticate.admin(request);
202
+ *
203
+ * try {
204
+ * const response = await admin.graphql(
205
+ * `#graphql
206
+ * query incorrectQuery {
207
+ * products(first: 10) {
208
+ * nodes {
209
+ * not_a_field
210
+ * }
211
+ * }
212
+ * }`,
213
+ * );
214
+ *
215
+ * return json({ data: await response.json() });
216
+ * } catch (error) {
217
+ * if (error instanceof GraphqlQueryError) {
218
+ * // error.body.errors:
219
+ * // { graphQLErrors: [
220
+ * // { message: "Field 'not_a_field' doesn't exist on type 'Product'" }
221
+ * // ] }
222
+ * return json({ errors: error.body?.errors }, { status: 500 });
223
+ * }
224
+ * return json({ message: "An error occurred" }, { status: 500 });
225
+ * }
226
+ * }
227
+ * ```
228
+ *
229
+ * ```ts
230
+ * // /app/shopify.server.ts
231
+ * import { shopifyApp } from "@shopify/shopify-app-remix/server";
232
+ *
233
+ * const shopify = shopifyApp({
234
+ * // ...
235
+ * });
236
+ * export default shopify;
237
+ * export const authenticate = shopify.authenticate;
167
238
  * ```
168
239
  */
169
240
  graphql: GraphQLClient<AdminOperations>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/clients/admin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,QAAQ,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE;IACzC,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,WAAW,eAAe,CAC9B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyGG;IACH,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/clients/admin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,QAAQ,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE;IACzC,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,WAAW,eAAe,CAC9B,SAAS,SAAS,oBAAoB,GAAG,oBAAoB;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0HG;IACH,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkGG;IACH,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CACzC"}
@@ -24,6 +24,53 @@ export interface StorefrontContext {
24
24
  * return json(await response.json());
25
25
  * }
26
26
  * ```
27
+ *
28
+ * @example
29
+ * <caption>Handling GraphQL errors.</caption>
30
+ * <description>Catch `GraphqlQueryError` errors to see error messages from the API.</description>
31
+ * ```ts
32
+ * // /app/routes/**\/*.ts
33
+ * import { ActionFunctionArgs } from "@remix-run/node";
34
+ * import { authenticate } from "../shopify.server";
35
+ *
36
+ * export const action = async ({ request }: ActionFunctionArgs) => {
37
+ * const { storefront } = await authenticate.public.appProxy(request);
38
+ *
39
+ * try {
40
+ * const response = await storefront.graphql(
41
+ * `#graphql
42
+ * query incorrectQuery {
43
+ * products(first: 10) {
44
+ * nodes {
45
+ * not_a_field
46
+ * }
47
+ * }
48
+ * }`,
49
+ * );
50
+ *
51
+ * return json({ data: await response.json() });
52
+ * } catch (error) {
53
+ * if (error instanceof GraphqlQueryError) {
54
+ * // { errors: { graphQLErrors: [
55
+ * // { message: "Field 'not_a_field' doesn't exist on type 'Product'" }
56
+ * // ] } }
57
+ * return json({ errors: error.body?.errors }, { status: 500 });
58
+ * }
59
+ * return json({ message: "An error occurred" }, { status: 500 });
60
+ * }
61
+ * }
62
+ * ```
63
+ *
64
+ * ```ts
65
+ * // /app/shopify.server.ts
66
+ * import { shopifyApp } from "@shopify/shopify-app-remix/server";
67
+ *
68
+ * const shopify = shopifyApp({
69
+ * // ...
70
+ * });
71
+ * export default shopify;
72
+ * export const authenticate = shopify.authenticate;
73
+ * ```
27
74
  */
28
75
  graphql: GraphQLClient<StorefrontOperations>;
29
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/clients/storefront/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/clients/storefront/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEG;IACH,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CAC9C"}
@@ -1,10 +1,23 @@
1
1
  import type { AllOperations, ReturnData, FetchResponseBody, ApiClientRequestOptions, ResponseWithType } from '@shopify/admin-api-client';
2
2
  import { ApiVersion } from '@shopify/shopify-api';
3
3
  export interface GraphQLQueryOptions<Operation extends keyof Operations, Operations extends AllOperations> {
4
+ /**
5
+ * The variables to pass to the operation.
6
+ */
4
7
  variables?: ApiClientRequestOptions<Operation, Operations>['variables'];
8
+ /**
9
+ * The version of the API to use for the request.
10
+ */
5
11
  apiVersion?: ApiVersion;
12
+ /**
13
+ * Additional headers to include in the request.
14
+ */
6
15
  headers?: Record<string, any>;
16
+ /**
17
+ * The total number of times to try the request if it fails.
18
+ */
7
19
  tries?: number;
8
20
  }
9
- export type GraphQLClient<Operations extends AllOperations> = <Operation extends keyof Operations>(query: Operation, options?: GraphQLQueryOptions<Operation, Operations>) => Promise<ResponseWithType<FetchResponseBody<ReturnData<Operation, Operations>>>>;
21
+ export type GraphQLResponse<Operation extends keyof Operations, Operations extends AllOperations> = ResponseWithType<FetchResponseBody<ReturnData<Operation, Operations>>>;
22
+ export type GraphQLClient<Operations extends AllOperations> = <Operation extends keyof Operations>(query: Operation, options?: GraphQLQueryOptions<Operation, Operations>) => Promise<GraphQLResponse<Operation, Operations>>;
10
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/clients/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD,MAAM,WAAW,mBAAmB,CAClC,SAAS,SAAS,MAAM,UAAU,EAClC,UAAU,SAAS,aAAa;IAEhC,SAAS,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,CAAC,UAAU,SAAS,aAAa,IAAI,CAC5D,SAAS,SAAS,MAAM,UAAU,EAElC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,KACjD,OAAO,CACV,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CACvE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/clients/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD,MAAM,WAAW,mBAAmB,CAClC,SAAS,SAAS,MAAM,UAAU,EAClC,UAAU,SAAS,aAAa;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACxE;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,MAAM,UAAU,EAClC,UAAU,SAAS,aAAa,IAC9B,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,aAAa,CAAC,UAAU,SAAS,aAAa,IAAI,CAC5D,SAAS,SAAS,MAAM,UAAU,EAElC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,KACjD,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { ConfigParams, ShopifyRestResources } from '@shopify/shopify-api';
1
+ import type { ConfigParams, Shopify, ShopifyRestResources } from '@shopify/shopify-api';
2
+ import { AppConfig } from '../config-types';
2
3
  export interface FutureFlags {
3
4
  /**
4
5
  * When enabled, returns the same `admin` context (`AdminApiContext`) from `authenticate.webhook` that is returned from `authenticate.admin`.
@@ -32,4 +33,5 @@ export interface ApiFutureFlags<Future extends FutureFlagOptions> {
32
33
  export type ApiConfigWithFutureFlags<Future extends FutureFlagOptions> = ConfigParams<ShopifyRestResources, ApiFutureFlags<Future>>;
33
34
  export type FutureFlagOptions = FutureFlags | undefined;
34
35
  export type FeatureEnabled<Future extends FutureFlagOptions, Flag extends keyof FutureFlags> = Future extends FutureFlags ? Future[Flag] extends true ? true : false : false;
36
+ export declare function logDisabledFutureFlags(config: AppConfig, logger: Shopify['logger']): void;
35
37
  //# sourceMappingURL=flags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../../src/server/future/flags.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAG7E,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;;OAOG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC5C;AAID,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,iBAAiB;IAC9D,mBAAmB,EAAE,MAAM,SAAS,WAAW,GAC3C,MAAM,CAAC,oBAAoB,CAAC,GAC5B,KAAK,CAAC;CACX;AAED,MAAM,MAAM,wBAAwB,CAAC,MAAM,SAAS,iBAAiB,IACnE,YAAY,CAAC,oBAAoB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAAC;AAExD,MAAM,MAAM,cAAc,CACxB,MAAM,SAAS,iBAAiB,EAChC,IAAI,SAAS,MAAM,WAAW,IAC5B,MAAM,SAAS,WAAW,GAC1B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,GACvB,IAAI,GACJ,KAAK,GACP,KAAK,CAAC"}
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../../src/server/future/flags.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;;OAOG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC5C;AAID,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,iBAAiB;IAC9D,mBAAmB,EAAE,MAAM,SAAS,WAAW,GAC3C,MAAM,CAAC,oBAAoB,CAAC,GAC5B,KAAK,CAAC;CACX;AAED,MAAM,MAAM,wBAAwB,CAAC,MAAM,SAAS,iBAAiB,IACnE,YAAY,CAAC,oBAAoB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAAC;AAExD,MAAM,MAAM,cAAc,CACxB,MAAM,SAAS,iBAAiB,EAChC,IAAI,SAAS,MAAM,WAAW,IAC5B,MAAM,SAAS,WAAW,GAC1B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,GACvB,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAEV,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,QAiC1B"}
@@ -1,4 +1,24 @@
1
1
  "use strict";
2
2
  // When adding new flags, you should also add them to the `TEST_FUTURE_FLAGS` object in `test-config.ts` to ensure that
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.logDisabledFutureFlags = void 0;
5
+ function logDisabledFutureFlags(config, logger) {
6
+ var logFlag = function (flag, message) {
7
+ return logger.info("Future flag ".concat(flag, " is disabled.\n\n ").concat(message, "\n"));
8
+ };
9
+ if (!config.future.v3_authenticatePublic) {
10
+ logFlag('v3_authenticatePublic', 'Enable this flag to allow appProxy and checkout in `shopify.authenticate.public`.');
11
+ }
12
+ if (!config.future.v3_lineItemBilling) {
13
+ logFlag('v3_lineItemBilling', 'Enable this flag to allow billing plans with multiple line items.');
14
+ }
15
+ if (!config.future.v3_webhookAdminContext) {
16
+ logFlag('v3_webhookAdminContext', 'Enable this flag to use the standard Admin context when calling `shopify.authenticate.webhook`.');
17
+ }
18
+ if (!config.future.unstable_newEmbeddedAuthStrategy) {
19
+ logFlag('unstable_newEmbeddedAuthStrategy', 'Enable this to use OAuth token exchange instead of auth code to generate API access tokens.' +
20
+ '\n Your app must be using Shopify managed install: https://shopify.dev/docs/apps/auth/installation');
21
+ }
22
+ }
23
+ exports.logDisabledFutureFlags = logDisabledFutureFlags;
4
24
  //# sourceMappingURL=flags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../../src/server/future/flags.ts"],"names":[],"mappings":";AAAA,uHAAuH"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../../src/server/future/flags.ts"],"names":[],"mappings":";AAAA,uHAAuH;;;AAgEvH,SAAgB,sBAAsB,CACpC,MAAiB,EACjB,MAAyB;IAEzB,IAAM,OAAO,GAAG,UAAC,IAAY,EAAE,OAAe;QAC5C,OAAA,MAAM,CAAC,IAAI,CAAC,sBAAe,IAAI,gCAAsB,OAAO,OAAI,CAAC;IAAjE,CAAiE,CAAC;IAEpE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACzC,OAAO,CACL,uBAAuB,EACvB,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACtC,OAAO,CACL,oBAAoB,EACpB,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAC1C,OAAO,CACL,wBAAwB,EACxB,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gCAAgC,EAAE,CAAC;QACpD,OAAO,CACL,kCAAkC,EAClC,6FAA6F;YAC3F,qGAAqG,CACxG,CAAC;IACJ,CAAC;AACH,CAAC;AAnCD,wDAmCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-app.d.ts","sourceRoot":"","sources":["../../../src/server/shopify-app.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAIL,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAiB,KAAK,YAAY,EAAC,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAIL,KAAK,UAAU,EAKhB,MAAM,SAAS,CAAC;AAejB,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CACxB,MAAM,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EACvD,SAAS,SAAS,oBAAoB,EACtC,OAAO,SAAS,cAAc,EAC9B,MAAM,SAAS,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,EACnD,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAiDjD"}
1
+ {"version":3,"file":"shopify-app.d.ts","sourceRoot":"","sources":["../../../src/server/shopify-app.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAIL,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAiB,KAAK,YAAY,EAAC,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAIL,KAAK,UAAU,EAKhB,MAAM,SAAS,CAAC;AAgBjB,OAAO,EAAC,iBAAiB,EAAyB,MAAM,gBAAgB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CACxB,MAAM,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EACvD,SAAS,SAAS,oBAAoB,EACtC,OAAO,SAAS,cAAc,EAC9B,MAAM,SAAS,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,EACnD,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAqDjD"}
@@ -19,6 +19,8 @@ var auth_code_flow_1 = require("./authenticate/admin/strategies/auth-code-flow")
19
19
  var token_exchange_1 = require("./authenticate/admin/strategies/token-exchange");
20
20
  var idempotent_promise_handler_1 = require("./authenticate/helpers/idempotent-promise-handler");
21
21
  var authenticate_3 = require("./authenticate/flow/authenticate");
22
+ var authenticate_4 = require("./authenticate/fulfillment-service/authenticate");
23
+ var flags_1 = require("./future/flags");
22
24
  /**
23
25
  * Creates an object your app will use to interact with Shopify.
24
26
  *
@@ -59,6 +61,7 @@ function shopifyApp(appConfig) {
59
61
  admin: authStrategy,
60
62
  flow: (0, authenticate_3.authenticateFlowFactory)(params),
61
63
  public: (0, public_1.authenticatePublicFactory)(params),
64
+ fulfillmentService: (0, authenticate_4.authenticateFulfillmentServiceFactory)(params),
62
65
  webhook: (0, authenticate_2.authenticateWebhookFactory)(params),
63
66
  },
64
67
  unauthenticated: {
@@ -70,6 +73,7 @@ function shopifyApp(appConfig) {
70
73
  isSingleMerchantApp(shopify, appConfig)) {
71
74
  shopify.login = (0, login_1.loginFactory)(params);
72
75
  }
76
+ (0, flags_1.logDisabledFutureFlags)(config, logger);
73
77
  return shopify;
74
78
  }
75
79
  exports.shopifyApp = shopifyApp;
@@ -100,7 +104,7 @@ function deriveApi(appConfig) {
100
104
  }
101
105
  return (0, shopify_api_1.shopifyApi)(tslib_1.__assign(tslib_1.__assign({}, appConfig), { hostName: appUrl.host, hostScheme: appUrl.protocol.replace(':', ''), userAgentPrefix: userAgentPrefix, isEmbeddedApp: (_a = appConfig.isEmbeddedApp) !== null && _a !== void 0 ? _a : true, apiVersion: (_b = appConfig.apiVersion) !== null && _b !== void 0 ? _b : shopify_api_1.LATEST_API_VERSION, isCustomStoreApp: appConfig.distribution === types_1.AppDistribution.ShopifyAdmin, future: {
102
106
  v10_lineItemBilling: (_c = appConfig.future) === null || _c === void 0 ? void 0 : _c.v3_lineItemBilling,
103
- } }));
107
+ }, _logDisabledFutureFlags: false }));
104
108
  }
105
109
  function deriveConfig(appConfig, apiConfig) {
106
110
  var _a, _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-app.js","sourceRoot":"","sources":["../../../src/server/shopify-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shopify-app.js","sourceRoot":"","sources":["../../../src/server/shopify-app.ts"],"names":[],"mappings":"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"}
@@ -7,23 +7,18 @@ import type { AuthenticateAdmin } from './authenticate/admin/types';
7
7
  import type { Unauthenticated } from './unauthenticated/types';
8
8
  import type { AuthenticateFlow } from './authenticate/flow/types';
9
9
  import type { ApiConfigWithFutureFlags, ApiFutureFlags, FutureFlagOptions } from './future/flags';
10
+ import { AuthenticateFulfillmentService } from './authenticate/fulfillment-service/types';
10
11
  export interface BasicParams<Future extends FutureFlagOptions = FutureFlagOptions> {
11
12
  api: Shopify<ApiConfigWithFutureFlags<Future>, ShopifyRestResources, ApiFutureFlags<Future>>;
12
13
  config: AppConfig;
13
14
  logger: Shopify['logger'];
14
15
  }
15
- export type JSONValue = string | number | boolean | null | JSONObject | JSONArray;
16
16
  export declare enum AppDistribution {
17
17
  AppStore = "app_store",
18
18
  SingleMerchant = "single_merchant",
19
19
  ShopifyAdmin = "shopify_admin"
20
20
  }
21
21
  export type MandatoryTopics = 'CUSTOMERS_DATA_REQUEST' | 'CUSTOMERS_REDACT' | 'SHOP_REDACT';
22
- interface JSONObject {
23
- [x: string]: JSONValue;
24
- }
25
- interface JSONArray extends Array<JSONValue> {
26
- }
27
22
  type RegisterWebhooks = (options: RegisterWebhooksOptions) => Promise<RegisterReturn | void>;
28
23
  export declare enum LoginErrorType {
29
24
  MissingShop = "MISSING_SHOP",
@@ -109,6 +104,40 @@ interface Authenticate<Config extends AppConfigArg> {
109
104
  * ```
110
105
  */
111
106
  flow: AuthenticateFlow<RestResourcesType<Config>>;
107
+ /**
108
+ * Authenticate a request from a fulfillment service and get back an authenticated context.
109
+ *
110
+ * @example
111
+ * <caption>Shopify session for the fulfillment service request.</caption>
112
+ * <description>Use the session associated with this request to use the Admin GraphQL API </description>
113
+ * ```ts
114
+ * // /app/routes/fulfillment_order_notification.ts
115
+ * import { ActionFunctionArgs } from "@remix-run/node";
116
+ * import { authenticate } from "../shopify.server";
117
+ *
118
+ * export async function action({ request }: ActionFunctionArgs) {
119
+ * const { admin } = await authenticate.fulfillmentService(request);
120
+ *
121
+ * const response = await admin.graphql(
122
+ * `#graphql
123
+ * mutation acceptFulfillmentRequest {
124
+ * fulfillmentOrderAcceptFulfillmentRequest(
125
+ * id: "gid://shopify/FulfillmentOrder/5014440902678",
126
+ * message: "Reminder that tomorrow is a holiday. We won't be able to ship this until Monday."){
127
+ * fulfillmentOrder {
128
+ * status
129
+ * requestStatus
130
+ * }
131
+ * }
132
+ * }
133
+ * );
134
+ *
135
+ * const productData = await response.json();
136
+ * return json({ data: productData.data });
137
+ * }
138
+ * ```
139
+ * */
140
+ fulfillmentService: AuthenticateFulfillmentService<RestResourcesType<Config>>;
112
141
  /**
113
142
  * Authenticate a public request and get back a session token.
114
143
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":";;;AA0CA,+CAA+C;AAC/C,sFAAsF;AACtF,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,qDAAkC,CAAA;IAClC,iDAA8B,CAAA;AAChC,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAmBD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,8CAA4B,CAAA;IAC5B,8CAA4B,CAAA;AAC9B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":";;;AAmCA,+CAA+C;AAC/C,sFAAsF;AACtF,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,qDAAkC,CAAA;IAClC,iDAA8B,CAAA;AAChC,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAWD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,8CAA4B,CAAA;IAC5B,8CAA4B,CAAA;AAC9B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
@@ -1,2 +1,2 @@
1
- export declare const SHOPIFY_REMIX_LIBRARY_VERSION = "2.6.1";
1
+ export declare const SHOPIFY_REMIX_LIBRARY_VERSION = "2.8.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SHOPIFY_REMIX_LIBRARY_VERSION = void 0;
4
- exports.SHOPIFY_REMIX_LIBRARY_VERSION = '2.6.1';
4
+ exports.SHOPIFY_REMIX_LIBRARY_VERSION = '2.8.0';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopify/shopify-app-remix",
3
- "version": "2.6.1",
3
+ "version": "2.8.0",
4
4
  "description": "Shopify Remix - to simplify the building of Shopify Apps with Remix",
5
5
  "repository": {
6
6
  "type": "git",
@@ -50,25 +50,26 @@
50
50
  "Storefront API"
51
51
  ],
52
52
  "devDependencies": {
53
- "@remix-run/react": "^2.6.0",
54
- "@shopify/generate-docs": "^0.13.1",
53
+ "@remix-run/react": "^2.8.1",
54
+ "@shopify/generate-docs": "^0.13.2",
55
55
  "@shopify/polaris": "^12.18.0",
56
56
  "@shopify/react-testing": "^5.1.3",
57
- "@shopify/shopify-app-session-storage-memory": "^3.0.1",
57
+ "@shopify/shopify-app-session-storage-memory": "^3.0.3",
58
58
  "@types/jsonwebtoken": "^9.0.5",
59
59
  "@types/react": "^18.2.18",
60
- "@types/semver": "^7.5.7",
60
+ "@types/semver": "^7.5.8",
61
61
  "jest-fetch-mock": "^3.0.3",
62
62
  "jsonwebtoken": "^9.0.2",
63
63
  "react": "^18.2.0",
64
- "react-dom": "^18.2.0"
64
+ "react-dom": "^18.2.0",
65
+ "react-router-dom": "^6.22.3"
65
66
  },
66
67
  "dependencies": {
67
68
  "@remix-run/node": "^2.6.0",
68
69
  "@remix-run/server-runtime": "^2.5.1",
69
70
  "@shopify/admin-api-client": "^0.2.3",
70
- "@shopify/shopify-api": "^9.3.2",
71
- "@shopify/shopify-app-session-storage": "^2.1.1",
71
+ "@shopify/shopify-api": "^9.7.1",
72
+ "@shopify/shopify-app-session-storage": "^2.1.3",
72
73
  "@shopify/storefront-api-client": "^0.2.3",
73
74
  "isbot": "^3.7.1",
74
75
  "semver": "^7.6.0"