@shopify/shopify-app-remix 1.1.0 → 1.2.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.
- package/build/cjs/server/authenticate/admin/authenticate.js +4 -8
- package/build/cjs/server/authenticate/login/login.js +1 -1
- package/build/cjs/server/authenticate/public/appProxy/authenticate.js +82 -0
- package/build/cjs/server/authenticate/public/{authenticate.js → checkout/authenticate.js} +9 -9
- package/build/cjs/server/authenticate/public/factory.js +22 -0
- package/build/cjs/server/shopify-app.js +8 -8
- package/build/cjs/server/version.js +1 -1
- package/build/ts/server/__test-helpers/const.d.ts +9 -0
- package/build/ts/server/__test-helpers/const.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/const.js +13 -0
- package/build/ts/server/__test-helpers/const.js.map +1 -0
- package/build/ts/server/__test-helpers/expect-admin-api-client.d.ts +8 -0
- package/build/ts/server/__test-helpers/expect-admin-api-client.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/expect-admin-api-client.js +165 -0
- package/build/ts/server/__test-helpers/expect-admin-api-client.js.map +1 -0
- package/build/ts/server/__test-helpers/expect-begin-auth-redirect.d.ts +3 -0
- package/build/ts/server/__test-helpers/expect-begin-auth-redirect.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/expect-begin-auth-redirect.js +16 -0
- package/build/ts/server/__test-helpers/expect-begin-auth-redirect.js.map +1 -0
- package/build/ts/server/__test-helpers/expect-document-request-headers.d.ts +2 -0
- package/build/ts/server/__test-helpers/expect-document-request-headers.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/expect-document-request-headers.js +18 -0
- package/build/ts/server/__test-helpers/expect-document-request-headers.js.map +1 -0
- package/build/ts/server/__test-helpers/expect-exit-iframe.d.ts +8 -0
- package/build/ts/server/__test-helpers/expect-exit-iframe.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/expect-exit-iframe.js +17 -0
- package/build/ts/server/__test-helpers/expect-exit-iframe.js.map +1 -0
- package/build/ts/server/__test-helpers/expect-login-redirect.d.ts +2 -0
- package/build/ts/server/__test-helpers/expect-login-redirect.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/expect-login-redirect.js +11 -0
- package/build/ts/server/__test-helpers/expect-login-redirect.js.map +1 -0
- package/build/ts/server/__test-helpers/get-hmac.d.ts +2 -0
- package/build/ts/server/__test-helpers/get-hmac.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/get-hmac.js +14 -0
- package/build/ts/server/__test-helpers/get-hmac.js.map +1 -0
- package/build/ts/server/__test-helpers/get-jwt.d.ts +8 -0
- package/build/ts/server/__test-helpers/get-jwt.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/get-jwt.js +17 -0
- package/build/ts/server/__test-helpers/get-jwt.js.map +1 -0
- package/build/ts/server/__test-helpers/get-thrown-response.d.ts +2 -0
- package/build/ts/server/__test-helpers/get-thrown-response.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/get-thrown-response.js +28 -0
- package/build/ts/server/__test-helpers/get-thrown-response.js.map +1 -0
- package/build/ts/server/__test-helpers/index.d.ts +16 -0
- package/build/ts/server/__test-helpers/index.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/index.js +19 -0
- package/build/ts/server/__test-helpers/index.js.map +1 -0
- package/build/ts/server/__test-helpers/request-mock.d.ts +10 -0
- package/build/ts/server/__test-helpers/request-mock.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/request-mock.js +192 -0
- package/build/ts/server/__test-helpers/request-mock.js.map +1 -0
- package/build/ts/server/__test-helpers/setup-valid-session.d.ts +4 -0
- package/build/ts/server/__test-helpers/setup-valid-session.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/setup-valid-session.js +45 -0
- package/build/ts/server/__test-helpers/setup-valid-session.js.map +1 -0
- package/build/ts/server/__test-helpers/sign-request-cookie.d.ts +6 -0
- package/build/ts/server/__test-helpers/sign-request-cookie.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/sign-request-cookie.js +14 -0
- package/build/ts/server/__test-helpers/sign-request-cookie.js.map +1 -0
- package/build/ts/server/__test-helpers/test-config.d.ts +6 -0
- package/build/ts/server/__test-helpers/test-config.d.ts.map +1 -0
- package/build/ts/server/__test-helpers/test-config.js +16 -0
- package/build/ts/server/__test-helpers/test-config.js.map +1 -0
- package/build/ts/server/authenticate/admin/authenticate.d.ts.map +1 -1
- package/build/ts/server/authenticate/admin/authenticate.js +5 -8
- package/build/ts/server/authenticate/admin/authenticate.js.map +1 -1
- package/build/ts/server/authenticate/login/login.d.ts.map +1 -1
- package/build/ts/server/authenticate/login/login.js +3 -1
- package/build/ts/server/authenticate/login/login.js.map +1 -1
- package/build/ts/server/authenticate/public/appProxy/authenticate.d.ts +5 -0
- package/build/ts/server/authenticate/public/appProxy/authenticate.d.ts.map +1 -0
- package/build/ts/server/authenticate/public/appProxy/authenticate.js +79 -0
- package/build/ts/server/authenticate/public/appProxy/authenticate.js.map +1 -0
- package/build/ts/server/authenticate/public/appProxy/types.d.ts +70 -0
- package/build/ts/server/authenticate/public/appProxy/types.d.ts.map +1 -0
- package/build/ts/server/authenticate/public/appProxy/types.js +3 -0
- package/build/ts/server/authenticate/public/appProxy/types.js.map +1 -0
- package/build/ts/server/authenticate/public/checkout/authenticate.d.ts +4 -0
- package/build/ts/server/authenticate/public/checkout/authenticate.d.ts.map +1 -0
- package/build/ts/server/authenticate/public/{authenticate.js → checkout/authenticate.js} +6 -6
- package/build/ts/server/authenticate/public/checkout/authenticate.js.map +1 -0
- package/build/ts/server/authenticate/public/checkout/types.d.ts +56 -0
- package/build/ts/server/authenticate/public/checkout/types.d.ts.map +1 -0
- package/build/ts/server/authenticate/public/checkout/types.js +3 -0
- package/build/ts/server/authenticate/public/checkout/types.js.map +1 -0
- package/build/ts/server/authenticate/public/factory.d.ts +5 -0
- package/build/ts/server/authenticate/public/factory.d.ts.map +1 -0
- package/build/ts/server/authenticate/public/factory.js +18 -0
- package/build/ts/server/authenticate/public/factory.js.map +1 -0
- package/build/ts/server/authenticate/public/index.d.ts +2 -0
- package/build/ts/server/authenticate/public/index.d.ts.map +1 -0
- package/build/ts/server/authenticate/public/index.js +5 -0
- package/build/ts/server/authenticate/public/index.js.map +1 -0
- package/build/ts/server/authenticate/public/types.d.ts +31 -25
- package/build/ts/server/authenticate/public/types.d.ts.map +1 -1
- package/build/ts/server/shopify-app.js +2 -2
- package/build/ts/server/shopify-app.js.map +1 -1
- package/build/ts/server/types.d.ts +1 -2
- package/build/ts/server/types.d.ts.map +1 -1
- package/build/ts/server/types.js.map +1 -1
- package/build/ts/server/version.d.ts +1 -1
- package/build/ts/server/version.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/build/ts/server/authenticate/public/authenticate.d.ts +0 -4
- package/build/ts/server/authenticate/public/authenticate.d.ts.map +0 -1
- package/build/ts/server/authenticate/public/authenticate.js.map +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authenticateAppProxyFactory = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var admin_1 = require("../../../clients/admin");
|
|
6
|
+
function authenticateAppProxyFactory(params) {
|
|
7
|
+
var api = params.api, config = params.config, logger = params.logger;
|
|
8
|
+
return function authenticate(request) {
|
|
9
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
10
|
+
var searchParams, query, isValid, error_1, shop, sessionId, session, context_1, context;
|
|
11
|
+
return tslib_1.__generator(this, function (_a) {
|
|
12
|
+
switch (_a.label) {
|
|
13
|
+
case 0:
|
|
14
|
+
logger.info('Authenticating app proxy request');
|
|
15
|
+
searchParams = new URL(request.url).searchParams;
|
|
16
|
+
query = Object.fromEntries(searchParams.entries());
|
|
17
|
+
isValid = false;
|
|
18
|
+
_a.label = 1;
|
|
19
|
+
case 1:
|
|
20
|
+
_a.trys.push([1, 3, , 4]);
|
|
21
|
+
return [4 /*yield*/, api.utils.validateHmac(query, {
|
|
22
|
+
signator: 'appProxy',
|
|
23
|
+
})];
|
|
24
|
+
case 2:
|
|
25
|
+
isValid = _a.sent();
|
|
26
|
+
return [3 /*break*/, 4];
|
|
27
|
+
case 3:
|
|
28
|
+
error_1 = _a.sent();
|
|
29
|
+
logger.info(error_1.message);
|
|
30
|
+
throw new Response(undefined, { status: 400, statusText: 'Bad Request' });
|
|
31
|
+
case 4:
|
|
32
|
+
if (!isValid) {
|
|
33
|
+
logger.info('App proxy request has invalid signature');
|
|
34
|
+
throw new Response(undefined, {
|
|
35
|
+
status: 400,
|
|
36
|
+
statusText: 'Bad Request',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
shop = searchParams.get('shop');
|
|
40
|
+
sessionId = api.session.getOfflineId(shop);
|
|
41
|
+
return [4 /*yield*/, config.sessionStorage.loadSession(sessionId)];
|
|
42
|
+
case 5:
|
|
43
|
+
session = _a.sent();
|
|
44
|
+
if (!session) {
|
|
45
|
+
context_1 = {
|
|
46
|
+
liquid: liquid,
|
|
47
|
+
session: undefined,
|
|
48
|
+
admin: undefined,
|
|
49
|
+
};
|
|
50
|
+
return [2 /*return*/, context_1];
|
|
51
|
+
}
|
|
52
|
+
context = {
|
|
53
|
+
liquid: liquid,
|
|
54
|
+
session: session,
|
|
55
|
+
admin: (0, admin_1.adminClientFactory)({ params: params, session: session }),
|
|
56
|
+
};
|
|
57
|
+
return [2 /*return*/, context];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
exports.authenticateAppProxyFactory = authenticateAppProxyFactory;
|
|
64
|
+
var liquid = function (body, initAndOptions) {
|
|
65
|
+
if (typeof initAndOptions !== 'object') {
|
|
66
|
+
return new Response(body, {
|
|
67
|
+
status: initAndOptions || 200,
|
|
68
|
+
headers: {
|
|
69
|
+
'Content-Type': 'application/liquid',
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
var _a = initAndOptions || {}, layout = _a.layout, responseInit = tslib_1.__rest(_a, ["layout"]);
|
|
74
|
+
var responseBody = layout === false ? "{% layout none %} ".concat(body) : body;
|
|
75
|
+
var headers = new Headers(responseInit.headers);
|
|
76
|
+
headers.set('Content-Type', 'application/liquid');
|
|
77
|
+
return new Response(responseBody, tslib_1.__assign(tslib_1.__assign({}, responseInit), { headers: headers }));
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=authenticate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/authenticate.ts"],"names":[],"mappings":";;;;AAEA,gDAA0D;AAU1D,SAAgB,2BAA2B,CAEzC,MAAmB;IACZ,IAAA,GAAG,GAAoB,MAAM,IAA1B,EAAE,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAErC,OAAO,SAAe,YAAY,CAChC,OAAO;;;;;;wBAEP,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;wBAEzC,YAAY,GAAI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAxB,CAAyB;wBACtC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;wBACrD,OAAO,GAAG,KAAK,CAAC;;;;wBAGR,qBAAM,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;gCAC5C,QAAQ,EAAE,UAAU;6BACrB,CAAC,EAAA;;wBAFF,OAAO,GAAG,SAER,CAAC;;;;wBAEH,MAAM,CAAC,IAAI,CAAC,OAAK,CAAC,OAAO,CAAC,CAAC;wBAC3B,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAC,CAAC,CAAC;;wBAG1E,IAAI,CAAC,OAAO,EAAE;4BACZ,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;4BACvD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;gCAC5B,MAAM,EAAE,GAAG;gCACX,UAAU,EAAE,aAAa;6BAC1B,CAAC,CAAC;yBACJ;wBAEK,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;wBACjC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACjC,qBAAM,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,EAAA;;wBAA5D,OAAO,GAAG,SAAkD;wBAElE,IAAI,CAAC,OAAO,EAAE;4BACN,YAA2B;gCAC/B,MAAM,QAAA;gCACN,OAAO,EAAE,SAAS;gCAClB,KAAK,EAAE,SAAS;6BACjB,CAAC;4BAEF,sBAAO,SAAO,EAAC;yBAChB;wBAEK,OAAO,GAA0C;4BACrD,MAAM,QAAA;4BACN,OAAO,SAAA;4BACP,KAAK,EAAE,IAAA,0BAAkB,EAAC,EAAC,MAAM,QAAA,EAAE,OAAO,SAAA,EAAC,CAAC;yBAC7C,CAAC;wBAEF,sBAAO,OAAO,EAAC;;;;KAChB,CAAC;AACJ,CAAC;AArDD,kEAqDC;AAED,IAAM,MAAM,GAA2B,UAAC,IAAI,EAAE,cAAc;IAC1D,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,cAAc,IAAI,GAAG;YAC7B,OAAO,EAAE;gBACP,cAAc,EAAE,oBAAoB;aACrC;SACF,CAAC,CAAC;KACJ;IAED,IAAM,KAA4B,cAAc,IAAI,EAAE,EAA/C,MAAM,YAAA,EAAK,YAAY,sBAAxB,UAAyB,CAAuB,CAAC;IACvD,IAAM,YAAY,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,4BAAqB,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;IAElD,OAAO,IAAI,QAAQ,CAAC,YAAY,wCAC3B,YAAY,KACf,OAAO,SAAA,IACP,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Session, ShopifyRestResources } from '@shopify/shopify-api';
|
|
2
|
+
import { AdminApiContext } from '../../../config-types';
|
|
3
|
+
export type AuthenticateAppProxy = (request: Request) => Promise<AppProxyContext | AppProxyContextWithSession>;
|
|
4
|
+
interface Options {
|
|
5
|
+
layout?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export type LiquidResponseFunction = (body: string, initAndOptions?: number | (ResponseInit & Options)) => Response;
|
|
8
|
+
interface Context {
|
|
9
|
+
/**
|
|
10
|
+
* A utility for creating a Liquid Response.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* <caption>Returning a Liquid Response from an app proxy route</caption>
|
|
14
|
+
* ```ts
|
|
15
|
+
* // app/routes/**\/.ts
|
|
16
|
+
* import {authenticate} from "~/shopify.server"
|
|
17
|
+
*
|
|
18
|
+
* export async function loader({ request }) {
|
|
19
|
+
* const {liquid} = authenticate.public.appProxy(request);
|
|
20
|
+
*
|
|
21
|
+
* return liquid("Hello {{shop.name}}")
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
liquid: LiquidResponseFunction;
|
|
27
|
+
}
|
|
28
|
+
export interface AppProxyContext extends Context {
|
|
29
|
+
/**
|
|
30
|
+
* No session is available for the shop that made this request.
|
|
31
|
+
*
|
|
32
|
+
* This comes from the session storage which `shopifyApp` uses to store sessions in your database of choice.
|
|
33
|
+
*/
|
|
34
|
+
session: undefined;
|
|
35
|
+
/**
|
|
36
|
+
* No session is available for the shop that made this request.
|
|
37
|
+
* Therefore no methods for interacting with the Shopify GraphQL / REST Admin APIs are available.
|
|
38
|
+
*/
|
|
39
|
+
admin: undefined;
|
|
40
|
+
}
|
|
41
|
+
export interface AppProxyContextWithSession<Resources extends ShopifyRestResources = ShopifyRestResources> extends Context {
|
|
42
|
+
/**
|
|
43
|
+
* The session for the shop that made the request.
|
|
44
|
+
*
|
|
45
|
+
* This comes from the session storage which `shopifyApp` uses to store sessions in your database of choice.
|
|
46
|
+
*
|
|
47
|
+
* Use this to get shop or user specific data.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* <caption>Getting your app's shop specific widget data using an offline session</caption>
|
|
51
|
+
* ```ts
|
|
52
|
+
* // app/routes/**\/.ts
|
|
53
|
+
* import { json } from "@remix-run/node";
|
|
54
|
+
* import { authenticate } from "../shopify.server";
|
|
55
|
+
* import { getWidgets } from "~/db/widgets.server";
|
|
56
|
+
*
|
|
57
|
+
* export const loader = async ({ request }) => {
|
|
58
|
+
* const { session } = await authenticate.public.appProxy(request);
|
|
59
|
+
* return json(await getWidgets({shop: session.shop));
|
|
60
|
+
* };
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
session: Session;
|
|
64
|
+
/**
|
|
65
|
+
* Methods for interacting with the Shopify GraphQL / REST Admin APIs for the store that made the request
|
|
66
|
+
*/
|
|
67
|
+
admin: AdminApiContext<Resources>;
|
|
68
|
+
}
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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,EAAC,MAAM,uBAAuB,CAAC;AAEtD,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;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C;;;;OAIG;IACH,OAAO,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B,CACzC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,CAC7D,SAAQ,OAAO;IACf;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/appProxy/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/checkout/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAShD,OAAO,KAAK,EAAC,oBAAoB,EAAkB,MAAM,SAAS,CAAC;AAEnE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,WAAW,GAClB,oBAAoB,CA+BtB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.authenticateCheckoutFactory = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var helpers_1 = require("
|
|
6
|
-
function
|
|
7
|
-
return function
|
|
5
|
+
var helpers_1 = require("../../helpers");
|
|
6
|
+
function authenticateCheckoutFactory(params) {
|
|
7
|
+
return function authenticateCheckout(request, options) {
|
|
8
8
|
var _a;
|
|
9
9
|
if (options === void 0) { options = {}; }
|
|
10
10
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
@@ -18,7 +18,7 @@ function authenticatePublicFactory(params) {
|
|
|
18
18
|
(0, helpers_1.rejectBotRequest)(params, request);
|
|
19
19
|
(0, helpers_1.respondToOptionsRequest)(params, request, corsHeaders);
|
|
20
20
|
sessionTokenHeader = (0, helpers_1.getSessionTokenHeader)(request);
|
|
21
|
-
logger.info('Authenticating
|
|
21
|
+
logger.info('Authenticating checkout request');
|
|
22
22
|
if (!sessionTokenHeader) {
|
|
23
23
|
logger.debug('Request did not contain a session token');
|
|
24
24
|
throw new Response(undefined, {
|
|
@@ -38,5 +38,5 @@ function authenticatePublicFactory(params) {
|
|
|
38
38
|
});
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
exports.
|
|
41
|
+
exports.authenticateCheckoutFactory = authenticateCheckoutFactory;
|
|
42
42
|
//# sourceMappingURL=authenticate.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { JwtPayload } from '@shopify/shopify-api';
|
|
2
|
+
import { EnsureCORSFunction } from '../../helpers/ensure-cors-headers';
|
|
3
|
+
export type AuthenticateCheckout = (request: Request, options?: AuthenticateCheckoutOptions) => Promise<CheckoutContext>;
|
|
4
|
+
export interface AuthenticateCheckoutOptions {
|
|
5
|
+
corsHeaders?: string[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Authenticated Context for a checkout request
|
|
9
|
+
*/
|
|
10
|
+
export interface CheckoutContext {
|
|
11
|
+
/**
|
|
12
|
+
* The decoded and validated session token for the request
|
|
13
|
+
*
|
|
14
|
+
* The payload of the Session Token is described here: {@link https://shopify.dev/docs/apps/auth/oauth/session-tokens#payload}
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* <caption>Get store specific widget data using the session token</caption>
|
|
18
|
+
* ```ts
|
|
19
|
+
* // app/routes/public/widgets.ts
|
|
20
|
+
* import { LoaderArgs, json } from "@remix-run/node";
|
|
21
|
+
* import { authenticate } from "../shopify.server";
|
|
22
|
+
* import { getWidgets } from "~/db/widgets.server";
|
|
23
|
+
*
|
|
24
|
+
* export const loader = async ({ request }: LoaderArgs) => {
|
|
25
|
+
* const { sessionToken } = await authenticate.public(
|
|
26
|
+
* request
|
|
27
|
+
* );
|
|
28
|
+
* return json(await getWidgets({shop: sessionToken.dest}));
|
|
29
|
+
* };
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
sessionToken: JwtPayload;
|
|
33
|
+
/**
|
|
34
|
+
* A function that ensures the CORS headers are set correctly for the response
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* <caption>Setting CORS headers for a public request</caption>
|
|
38
|
+
* ```ts
|
|
39
|
+
* // app/routes/public/widgets.ts
|
|
40
|
+
* import { LoaderArgs, json } from "@remix-run/node";
|
|
41
|
+
* import { authenticate } from "../shopify.server";
|
|
42
|
+
* import { getWidgets } from "~/db/widgets.server";
|
|
43
|
+
*
|
|
44
|
+
* export const loader = async ({ request }: LoaderArgs) => {
|
|
45
|
+
* const { sessionToken, cors } = await authenticate.public(
|
|
46
|
+
* request,
|
|
47
|
+
* { corsHeaders: ["X-My-Custom-Header"] }
|
|
48
|
+
* );
|
|
49
|
+
* const widgets = await getWidgets({shop: sessionToken.dest});
|
|
50
|
+
* return cors(json(widgets));
|
|
51
|
+
* };
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
cors: EnsureCORSFunction;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/checkout/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,2BAA2B,KAClC,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,EAAE,UAAU,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,EAAE,kBAAkB,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/server/authenticate/public/checkout/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ShopifyRestResources } from '@shopify/shopify-api';
|
|
2
|
+
import { BasicParams } from '../../types';
|
|
3
|
+
import { AuthenticatePublic } from './types';
|
|
4
|
+
export declare function authenticatePublicFactory<Resources extends ShopifyRestResources>(params: BasicParams): AuthenticatePublic;
|
|
5
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authenticatePublicFactory = void 0;
|
|
4
|
+
var authenticate_1 = require("./checkout/authenticate");
|
|
5
|
+
var authenticate_2 = require("./appProxy/authenticate");
|
|
6
|
+
function authenticatePublicFactory(params) {
|
|
7
|
+
var logger = params.logger;
|
|
8
|
+
var authenticateCheckout = (0, authenticate_1.authenticateCheckoutFactory)(params);
|
|
9
|
+
var authenticatePublic = function (request, options) {
|
|
10
|
+
logger.deprecated('2.0.0', 'authenticate.public() will be deprecated in v2. Use authenticate.public.checkout() instead.');
|
|
11
|
+
return authenticateCheckout(request, options);
|
|
12
|
+
};
|
|
13
|
+
authenticatePublic.checkout = authenticateCheckout;
|
|
14
|
+
authenticatePublic.appProxy = (0, authenticate_2.authenticateAppProxyFactory)(params);
|
|
15
|
+
return authenticatePublic;
|
|
16
|
+
}
|
|
17
|
+
exports.authenticatePublicFactory = authenticatePublicFactory;
|
|
18
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B"}
|
|
@@ -1,55 +1,61 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export interface AuthenticatePublicOptions {
|
|
4
|
-
corsHeaders?: string[];
|
|
5
|
-
}
|
|
1
|
+
import type { AuthenticateCheckout } from './checkout/types';
|
|
2
|
+
import type { AuthenticateAppProxy } from './appProxy/types';
|
|
6
3
|
/**
|
|
7
|
-
*
|
|
4
|
+
* Methods for authenticating Requests from Shopify's public surfaces
|
|
5
|
+
*
|
|
6
|
+
* To maintain backwards compatability this is a function and an object.
|
|
7
|
+
*
|
|
8
|
+
* Do not use `authenticate.public()`. Use `authenticate.public.checkout()` instead.
|
|
9
|
+
* `authenticate.public()` will be removed in v2.
|
|
10
|
+
*
|
|
11
|
+
* Methods are:
|
|
12
|
+
*
|
|
13
|
+
* - `authenticate.public.checkout()` for authenticating requests from checkout extensions
|
|
14
|
+
* - `authenticate.public.appProxy()` for authenticating requests from app proxies
|
|
8
15
|
*/
|
|
9
|
-
export
|
|
16
|
+
export type AuthenticatePublic = AuthenticateCheckout & {
|
|
10
17
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* The payload of the Session Token is described here: {@link https://shopify.dev/docs/apps/auth/oauth/session-tokens#payload}
|
|
18
|
+
* Authenticate a request from a checkout extension
|
|
14
19
|
*
|
|
15
20
|
* @example
|
|
16
|
-
*
|
|
21
|
+
* <caption>Authenticating a checkout extension request</caption>
|
|
17
22
|
* ```ts
|
|
18
23
|
* // app/routes/public/widgets.ts
|
|
19
24
|
* import { LoaderArgs, json } from "@remix-run/node";
|
|
20
25
|
* import { authenticate } from "../shopify.server";
|
|
21
|
-
* import { getWidgets } from "~/db/widgets.server";
|
|
22
26
|
*
|
|
23
27
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
24
|
-
* const { sessionToken } = await authenticate.public(
|
|
25
|
-
* request
|
|
28
|
+
* const { sessionToken, cors } = await authenticate.public.checkout(
|
|
29
|
+
* request,
|
|
26
30
|
* );
|
|
27
|
-
* return json(
|
|
31
|
+
* return cors(json({my: "data", shop: sessionToken.dest}));
|
|
28
32
|
* };
|
|
29
33
|
* ```
|
|
30
34
|
*/
|
|
31
|
-
|
|
35
|
+
checkout: AuthenticateCheckout;
|
|
32
36
|
/**
|
|
33
|
-
*
|
|
37
|
+
* Authenticate a request from an app proxy
|
|
34
38
|
*
|
|
35
39
|
* @example
|
|
36
|
-
*
|
|
40
|
+
* <caption>Authenticating an app proxy request</caption>
|
|
37
41
|
* ```ts
|
|
38
42
|
* // app/routes/public/widgets.ts
|
|
39
43
|
* import { LoaderArgs, json } from "@remix-run/node";
|
|
40
44
|
* import { authenticate } from "../shopify.server";
|
|
41
|
-
* import { getWidgets } from "~/db/widgets.server";
|
|
42
45
|
*
|
|
43
46
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
44
|
-
*
|
|
47
|
+
* await authenticate.public.appProxy(
|
|
45
48
|
* request,
|
|
46
|
-
* { corsHeaders: ["X-My-Custom-Header"] }
|
|
47
49
|
* );
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
+
*
|
|
51
|
+
* const {searchParams} = new URL(request.url);
|
|
52
|
+
* const shop = searchParams.get("shop");
|
|
53
|
+
* const customerId = searchParams.get("logged_in_customer_id")
|
|
54
|
+
*
|
|
55
|
+
* return json({my: "data", shop, customerId});
|
|
50
56
|
* };
|
|
51
57
|
* ```
|
|
52
58
|
*/
|
|
53
|
-
|
|
54
|
-
}
|
|
59
|
+
appProxy: AuthenticateAppProxy;
|
|
60
|
+
};
|
|
55
61
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/authenticate/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAO3D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG;IACtD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,EAAE,oBAAoB,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC"}
|
|
@@ -9,11 +9,11 @@ var version_1 = require("./version");
|
|
|
9
9
|
var webhooks_1 = require("./authenticate/webhooks");
|
|
10
10
|
var authenticate_1 = require("./authenticate/admin/authenticate");
|
|
11
11
|
var authenticate_2 = require("./authenticate/webhooks/authenticate");
|
|
12
|
-
var authenticate_3 = require("./authenticate/public/authenticate");
|
|
13
12
|
var override_logger_1 = require("./override-logger");
|
|
14
13
|
var helpers_1 = require("./authenticate/helpers");
|
|
15
14
|
var login_1 = require("./authenticate/login/login");
|
|
16
15
|
var admin_1 = require("./unauthenticated/admin");
|
|
16
|
+
var public_1 = require("./authenticate/public");
|
|
17
17
|
/**
|
|
18
18
|
* Creates an object your app will use to interact with Shopify.
|
|
19
19
|
*
|
|
@@ -49,7 +49,7 @@ function shopifyApp(appConfig) {
|
|
|
49
49
|
registerWebhooks: (0, webhooks_1.registerWebhooksFactory)(params),
|
|
50
50
|
authenticate: {
|
|
51
51
|
admin: oauth.authenticateAdmin.bind(oauth),
|
|
52
|
-
public: (0,
|
|
52
|
+
public: (0, public_1.authenticatePublicFactory)(params),
|
|
53
53
|
webhook: (0, authenticate_2.authenticateWebhookFactory)(params),
|
|
54
54
|
},
|
|
55
55
|
unauthenticated: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopify-app.js","sourceRoot":"","sources":["../../../src/server/shopify-app.ts"],"names":[],"mappings":";;;;AAAA,iDAA+C;AAC/C,oDAQ8B;AAI9B,iCASiB;AACjB,qCAAwD;AACxD,oDAAgE;AAChE,kEAA+D;AAC/D,qEAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"shopify-app.js","sourceRoot":"","sources":["../../../src/server/shopify-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ import { RegisterReturn, Shopify, ShopifyRestResources } from '@shopify/shopify-
|
|
|
2
2
|
import { SessionStorage } from '@shopify/shopify-app-session-storage';
|
|
3
3
|
import type { AppConfig, AppConfigArg } from './config-types';
|
|
4
4
|
import type { AdminContext } from './authenticate/admin/types';
|
|
5
|
-
import type { AuthenticatePublicOptions, PublicContext } from './authenticate/public/types';
|
|
6
5
|
import type { RegisterWebhooksOptions, WebhookContext, WebhookContextWithSession } from './authenticate/webhooks/types';
|
|
7
6
|
import type { UnauthenticatedAdminContext } from './unauthenticated/admin/types';
|
|
7
|
+
import type { AuthenticatePublic } from './authenticate/public/types';
|
|
8
8
|
export interface BasicParams {
|
|
9
9
|
api: Shopify;
|
|
10
10
|
config: AppConfig;
|
|
@@ -33,7 +33,6 @@ export interface LoginError {
|
|
|
33
33
|
type Login = (request: Request) => Promise<LoginError | never>;
|
|
34
34
|
type AddDocumentResponseHeaders = (request: Request, headers: Headers) => void;
|
|
35
35
|
type AuthenticateAdmin<Config extends AppConfigArg, Resources extends ShopifyRestResources = ShopifyRestResources> = (request: Request) => Promise<AdminContext<Config, Resources>>;
|
|
36
|
-
type AuthenticatePublic = (request: Request, options?: AuthenticatePublicOptions) => Promise<PublicContext>;
|
|
37
36
|
type AuthenticateWebhook<Resources extends ShopifyRestResources = ShopifyRestResources, Topics = string | number | symbol> = (request: Request) => Promise<WebhookContext<Topics> | WebhookContextWithSession<Topics, Resources>>;
|
|
38
37
|
type UnauthenticatedAdmin<Resources extends ShopifyRestResources> = (shop: string) => Promise<UnauthenticatedAdminContext<Resources>>;
|
|
39
38
|
type RestResourcesType<Config extends AppConfigArg> = Config['restResources'] extends ShopifyRestResources ? Config['restResources'] : ShopifyRestResources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,OAAO,EACP,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AAEpE,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EACV,
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":";;;AA+BA,+CAA+C;AAC/C,sFAAsF;AACtF,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,qDAAkC,CAAA;IAClC,iDAA8B,CAAA;AAChC,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAiBD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,8CAA4B,CAAA;IAC5B,8CAA4B,CAAA;AAC9B,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SHOPIFY_REMIX_LIBRARY_VERSION = "1.1
|
|
1
|
+
export declare const SHOPIFY_REMIX_LIBRARY_VERSION = "1.2.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|