@shopify/shopify-app-remix 1.0.0-rc.1 → 1.0.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.
- package/README.md +73 -18
- package/build/cjs/adapters/node/index.js +10 -0
- package/build/cjs/auth/admin/authenticate.js +25 -30
- package/build/cjs/auth/const.js +0 -8
- package/build/cjs/auth/helpers/add-response-headers.js +13 -50
- package/build/cjs/auth/helpers/app-bridge-url.js +16 -0
- package/build/cjs/auth/helpers/ensure-cors-headers.js +24 -0
- package/build/cjs/auth/helpers/redirect-with-app-bridge-headers.js +3 -9
- package/build/cjs/auth/helpers/respond-to-options-request.js +19 -0
- package/build/cjs/auth/login/login.js +0 -6
- package/build/cjs/auth/public/authenticate.js +5 -1
- package/build/cjs/billing/request.js +1 -1
- package/build/cjs/boundary/error.js +12 -0
- package/build/cjs/boundary/headers.js +18 -0
- package/build/cjs/index.js +57 -8
- package/build/cjs/types.js +1 -0
- package/build/cjs/version.js +1 -1
- package/build/ts/adapters/node/index.js +6 -0
- package/build/ts/adapters/node/index.js.map +1 -1
- package/build/ts/auth/admin/authenticate.d.ts +0 -2
- package/build/ts/auth/admin/authenticate.d.ts.map +1 -1
- package/build/ts/auth/admin/authenticate.js +13 -25
- package/build/ts/auth/admin/authenticate.js.map +1 -1
- package/build/ts/auth/admin/types.d.ts +32 -13
- package/build/ts/auth/admin/types.d.ts.map +1 -1
- package/build/ts/auth/const.d.ts +1 -2
- package/build/ts/auth/const.d.ts.map +1 -1
- package/build/ts/auth/const.js +2 -3
- package/build/ts/auth/const.js.map +1 -1
- package/build/ts/auth/helpers/add-response-headers.d.ts +2 -3
- package/build/ts/auth/helpers/add-response-headers.d.ts.map +1 -1
- package/build/ts/auth/helpers/add-response-headers.js +16 -49
- package/build/ts/auth/helpers/add-response-headers.js.map +1 -1
- package/build/ts/auth/helpers/app-bridge-url.d.ts +3 -0
- package/build/ts/auth/helpers/app-bridge-url.d.ts.map +1 -0
- package/build/ts/auth/helpers/app-bridge-url.js +14 -0
- package/build/ts/auth/helpers/app-bridge-url.js.map +1 -0
- package/build/ts/auth/helpers/ensure-cors-headers.d.ts +6 -0
- package/build/ts/auth/helpers/ensure-cors-headers.d.ts.map +1 -0
- package/build/ts/auth/helpers/ensure-cors-headers.js +19 -0
- package/build/ts/auth/helpers/ensure-cors-headers.js.map +1 -0
- package/build/ts/auth/helpers/index.d.ts +11 -7
- package/build/ts/auth/helpers/index.d.ts.map +1 -1
- package/build/ts/auth/helpers/index.js +12 -15
- package/build/ts/auth/helpers/index.js.map +1 -1
- package/build/ts/auth/helpers/redirect-with-app-bridge-headers.d.ts +1 -1
- package/build/ts/auth/helpers/redirect-with-app-bridge-headers.d.ts.map +1 -1
- package/build/ts/auth/helpers/redirect-with-app-bridge-headers.js +3 -7
- package/build/ts/auth/helpers/redirect-with-app-bridge-headers.js.map +1 -1
- package/build/ts/auth/helpers/respond-to-options-request.d.ts +3 -0
- package/build/ts/auth/helpers/respond-to-options-request.d.ts.map +1 -0
- package/build/ts/auth/helpers/respond-to-options-request.js +17 -0
- package/build/ts/auth/helpers/respond-to-options-request.js.map +1 -0
- package/build/ts/auth/login/login.d.ts.map +1 -1
- package/build/ts/auth/login/login.js +0 -4
- package/build/ts/auth/login/login.js.map +1 -1
- package/build/ts/auth/public/authenticate.d.ts.map +1 -1
- package/build/ts/auth/public/authenticate.js +2 -0
- package/build/ts/auth/public/authenticate.js.map +1 -1
- package/build/ts/auth/public/types.d.ts +25 -2
- package/build/ts/auth/public/types.d.ts.map +1 -1
- package/build/ts/billing/request.js +1 -1
- package/build/ts/billing/request.js.map +1 -1
- package/build/ts/billing/types.d.ts +20 -12
- package/build/ts/billing/types.d.ts.map +1 -1
- package/build/ts/boundary/error.d.ts +2 -0
- package/build/ts/boundary/error.d.ts.map +1 -0
- package/build/ts/boundary/error.js +11 -0
- package/build/ts/boundary/error.js.map +1 -0
- package/build/ts/boundary/headers.d.ts +3 -0
- package/build/ts/boundary/headers.d.ts.map +1 -0
- package/build/ts/boundary/headers.js +13 -0
- package/build/ts/boundary/headers.js.map +1 -0
- package/build/ts/boundary/types.d.ts +4 -0
- package/build/ts/boundary/types.d.ts.map +1 -0
- package/build/ts/boundary/types.js +3 -0
- package/build/ts/boundary/types.js.map +1 -0
- package/build/ts/config-types.d.ts +28 -18
- package/build/ts/config-types.d.ts.map +1 -1
- package/build/ts/index.d.ts +39 -1
- package/build/ts/index.d.ts.map +1 -1
- package/build/ts/index.js +56 -10
- package/build/ts/index.js.map +1 -1
- package/build/ts/types.d.ts +88 -122
- package/build/ts/types.d.ts.map +1 -1
- package/build/ts/types.js.map +1 -1
- package/build/ts/version.d.ts +1 -1
- package/build/ts/version.d.ts.map +1 -1
- package/build/ts/version.js +1 -1
- package/build/ts/version.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appBridgeUrl = exports.setAppBridgeUrlOverride = void 0;
|
|
4
|
+
var const_1 = require("../const");
|
|
5
|
+
var appBridgeUrlOverride;
|
|
6
|
+
function setAppBridgeUrlOverride(url) {
|
|
7
|
+
appBridgeUrlOverride = url;
|
|
8
|
+
}
|
|
9
|
+
exports.setAppBridgeUrlOverride = setAppBridgeUrlOverride;
|
|
10
|
+
function appBridgeUrl() {
|
|
11
|
+
return appBridgeUrlOverride || const_1.APP_BRIDGE_URL;
|
|
12
|
+
}
|
|
13
|
+
exports.appBridgeUrl = appBridgeUrl;
|
|
14
|
+
//# sourceMappingURL=app-bridge-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-bridge-url.js","sourceRoot":"","sources":["../../../../src/auth/helpers/app-bridge-url.ts"],"names":[],"mappings":";;;AAAA,kCAAwC;AAExC,IAAI,oBAAwC,CAAC;AAC7C,SAAgB,uBAAuB,CAAC,GAAW;IACjD,oBAAoB,GAAG,GAAG,CAAC;AAC7B,CAAC;AAFD,0DAEC;AAED,SAAgB,YAAY;IAC1B,OAAO,oBAAoB,IAAI,sBAAc,CAAC;AAChD,CAAC;AAFD,oCAEC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BasicParams } from '../../types';
|
|
2
|
+
export interface EnsureCORSFunction {
|
|
3
|
+
(response: Response): Response;
|
|
4
|
+
}
|
|
5
|
+
export declare function ensureCORSHeadersFactory(params: BasicParams, request: Request): EnsureCORSFunction;
|
|
6
|
+
//# sourceMappingURL=ensure-cors-headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-cors-headers.d.ts","sourceRoot":"","sources":["../../../../src/auth/helpers/ensure-cors-headers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAGxC,MAAM,WAAW,kBAAkB;IACjC,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAChC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,GACf,kBAAkB,CAiBpB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureCORSHeadersFactory = void 0;
|
|
4
|
+
var const_1 = require("../const");
|
|
5
|
+
function ensureCORSHeadersFactory(params, request) {
|
|
6
|
+
var logger = params.logger, config = params.config;
|
|
7
|
+
return function ensureCORSHeaders(response) {
|
|
8
|
+
var origin = request.headers.get('Origin');
|
|
9
|
+
if (origin && origin !== config.appUrl) {
|
|
10
|
+
logger.debug('Request comes from a different origin, adding CORS headers');
|
|
11
|
+
response.headers.set('Access-Control-Allow-Origin', '*');
|
|
12
|
+
response.headers.set('Access-Control-Allow-Headers', 'Authorization');
|
|
13
|
+
response.headers.set('Access-Control-Expose-Headers', const_1.REAUTH_URL_HEADER);
|
|
14
|
+
}
|
|
15
|
+
return response;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.ensureCORSHeadersFactory = ensureCORSHeadersFactory;
|
|
19
|
+
//# sourceMappingURL=ensure-cors-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-cors-headers.js","sourceRoot":"","sources":["../../../../src/auth/helpers/ensure-cors-headers.ts"],"names":[],"mappings":";;;AACA,kCAA2C;AAM3C,SAAgB,wBAAwB,CACtC,MAAmB,EACnB,OAAgB;IAET,IAAA,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAEhC,OAAO,SAAS,iBAAiB,CAAC,QAAQ;QACxC,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;YACtC,MAAM,CAAC,KAAK,CACV,4DAA4D,CAC7D,CAAC;YAEF,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YACzD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;YACtE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,yBAAiB,CAAC,CAAC;SAC1E;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AApBD,4DAoBC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
1
|
+
export * from './app-bridge-url';
|
|
2
|
+
export * from './add-response-headers';
|
|
3
|
+
export * from './redirect-to-auth-page';
|
|
4
|
+
export * from './redirect-with-exitiframe';
|
|
5
|
+
export * from './begin-auth';
|
|
6
|
+
export * from './ensure-cors-headers';
|
|
7
|
+
export * from './validate-session-token';
|
|
8
|
+
export * from './get-session-token-header';
|
|
9
|
+
export * from './reject-bot-request';
|
|
10
|
+
export * from './respond-to-options-request';
|
|
11
|
+
export * from './handle-client-error';
|
|
8
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/auth/helpers/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/auth/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Object.defineProperty(exports, "rejectBotRequest", { enumerable: true, get: function () { return reject_bot_request_1.rejectBotRequest; } });
|
|
16
|
-
var handle_client_error_1 = require("./handle-client-error");
|
|
17
|
-
Object.defineProperty(exports, "handleClientError", { enumerable: true, get: function () { return handle_client_error_1.handleClientError; } });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./app-bridge-url"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./add-response-headers"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./redirect-to-auth-page"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./redirect-with-exitiframe"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./begin-auth"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./ensure-cors-headers"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./validate-session-token"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./get-session-token-header"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./reject-bot-request"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./respond-to-options-request"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./handle-client-error"), exports);
|
|
18
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/auth/helpers/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/auth/helpers/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,qEAA2C;AAC3C,uDAA6B;AAC7B,gEAAsC;AACtC,mEAAyC;AACzC,qEAA2C;AAC3C,+DAAqC;AACrC,uEAA6C;AAC7C,gEAAsC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { BasicParams } from '../../types';
|
|
2
2
|
export declare function redirectWithAppBridgeHeaders(params: BasicParams, shop: string): never;
|
|
3
|
-
export declare function getAppBridgeHeaders(
|
|
3
|
+
export declare function getAppBridgeHeaders(url: string): Headers;
|
|
4
4
|
//# sourceMappingURL=redirect-with-app-bridge-headers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redirect-with-app-bridge-headers.d.ts","sourceRoot":"","sources":["../../../../src/auth/helpers/redirect-with-app-bridge-headers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"redirect-with-app-bridge-headers.d.ts","sourceRoot":"","sources":["../../../../src/auth/helpers/redirect-with-app-bridge-headers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAG7C,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACX,KAAK,CASP;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,WAE9C"}
|
|
@@ -2,23 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAppBridgeHeaders = exports.redirectWithAppBridgeHeaders = void 0;
|
|
4
4
|
var const_1 = require("../const");
|
|
5
|
-
var add_response_headers_1 = require("./add-response-headers");
|
|
6
5
|
function redirectWithAppBridgeHeaders(params, shop) {
|
|
7
6
|
var config = params.config;
|
|
8
7
|
var redirectUri = "".concat(config.appUrl).concat(config.auth.path, "?shop=").concat(shop);
|
|
9
8
|
throw new Response(undefined, {
|
|
10
9
|
status: 401,
|
|
11
10
|
statusText: 'Unauthorized',
|
|
12
|
-
headers: getAppBridgeHeaders(
|
|
11
|
+
headers: getAppBridgeHeaders(redirectUri),
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
14
|
exports.redirectWithAppBridgeHeaders = redirectWithAppBridgeHeaders;
|
|
16
|
-
function getAppBridgeHeaders(
|
|
15
|
+
function getAppBridgeHeaders(url) {
|
|
17
16
|
var _a;
|
|
18
|
-
|
|
19
|
-
var headers = new Headers((_a = {}, _a[const_1.REAUTH_URL_HEADER] = url, _a));
|
|
20
|
-
(0, add_response_headers_1.addResponseHeaders)(headers, config.isEmbeddedApp, shop);
|
|
21
|
-
return headers;
|
|
17
|
+
return new Headers((_a = {}, _a[const_1.REAUTH_URL_HEADER] = url, _a));
|
|
22
18
|
}
|
|
23
19
|
exports.getAppBridgeHeaders = getAppBridgeHeaders;
|
|
24
20
|
//# sourceMappingURL=redirect-with-app-bridge-headers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redirect-with-app-bridge-headers.js","sourceRoot":"","sources":["../../../../src/auth/helpers/redirect-with-app-bridge-headers.ts"],"names":[],"mappings":";;;AACA,kCAA2C;AAE3C
|
|
1
|
+
{"version":3,"file":"redirect-with-app-bridge-headers.js","sourceRoot":"","sources":["../../../../src/auth/helpers/redirect-with-app-bridge-headers.ts"],"names":[],"mappings":";;;AACA,kCAA2C;AAE3C,SAAgB,4BAA4B,CAC1C,MAAmB,EACnB,IAAY;IAEL,IAAA,MAAM,GAAI,MAAM,OAAV,CAAW;IACxB,IAAM,WAAW,GAAG,UAAG,MAAM,CAAC,MAAM,SAAG,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAS,IAAI,CAAE,CAAC;IAEvE,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;QAC5B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAZD,oEAYC;AAED,SAAgB,mBAAmB,CAAC,GAAW;;IAC7C,OAAO,IAAI,OAAO,WAAE,GAAC,yBAAiB,IAAG,GAAG,MAAE,CAAC;AACjD,CAAC;AAFD,kDAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond-to-options-request.d.ts","sourceRoot":"","sources":["../../../../src/auth/helpers/respond-to-options-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAIxC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,QAa5E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.respondToOptionsRequest = void 0;
|
|
4
|
+
var ensure_cors_headers_1 = require("./ensure-cors-headers");
|
|
5
|
+
function respondToOptionsRequest(params, request) {
|
|
6
|
+
if (request.method === 'OPTIONS') {
|
|
7
|
+
var ensureCORSHeaders = (0, ensure_cors_headers_1.ensureCORSHeadersFactory)(params, request);
|
|
8
|
+
throw ensureCORSHeaders(new Response(null, {
|
|
9
|
+
status: 204,
|
|
10
|
+
headers: {
|
|
11
|
+
'Access-Control-Max-Age': '7200',
|
|
12
|
+
},
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.respondToOptionsRequest = respondToOptionsRequest;
|
|
17
|
+
//# sourceMappingURL=respond-to-options-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond-to-options-request.js","sourceRoot":"","sources":["../../../../src/auth/helpers/respond-to-options-request.ts"],"names":[],"mappings":";;;AAEA,6DAA+D;AAE/D,SAAgB,uBAAuB,CAAC,MAAmB,EAAE,OAAgB;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;QAChC,IAAM,iBAAiB,GAAG,IAAA,8CAAwB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEpE,MAAM,iBAAiB,CACrB,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,wBAAwB,EAAE,MAAM;aACjC;SACF,CAAC,CACH,CAAC;KACH;AACH,CAAC;AAbD,0DAaC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/auth/login/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAEpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,aAGT,OAAO,KAAG,QAAQ,UAAU,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/auth/login/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAEpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,aAGT,OAAO,KAAG,QAAQ,UAAU,GAAG,KAAK,CAAC,CAoC3E"}
|
|
@@ -12,10 +12,6 @@ function loginFactory(params) {
|
|
|
12
12
|
return tslib_1.__generator(this, function (_b) {
|
|
13
13
|
switch (_b.label) {
|
|
14
14
|
case 0:
|
|
15
|
-
if (!config.canUseLoginForm) {
|
|
16
|
-
logger.debug('Login endpoint not available for Shopify Admin custom apps');
|
|
17
|
-
throw new Response(undefined, { status: 404 });
|
|
18
|
-
}
|
|
19
15
|
url = new URL(request.url);
|
|
20
16
|
shopParam = url.searchParams.get('shop');
|
|
21
17
|
if (request.method === 'GET' && !shopParam) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/auth/login/login.ts"],"names":[],"mappings":";;;;AAAA,4DAAmD;AAEnD,qCAAoE;AAEpE,SAAgB,YAAY,CAAC,MAAmB;IACvC,IAAA,GAAG,GAAoB,MAAM,IAA1B,EAAE,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAErC,OAAO,SAAe,KAAK,CAAC,OAAgB;;;;;;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/auth/login/login.ts"],"names":[],"mappings":";;;;AAAA,4DAAmD;AAEnD,qCAAoE;AAEpE,SAAgB,YAAY,CAAC,MAAmB;IACvC,IAAA,GAAG,GAAoB,MAAM,IAA1B,EAAE,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAErC,OAAO,SAAe,KAAK,CAAC,OAAgB;;;;;;wBACpC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC3B,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAE/C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;4BAC1C,sBAAO,EAAE,EAAC;yBACX;wBAGC,KAAA,SAAS,CAAA;gCAAT,wBAAS;wBAAM,qBAAM,OAAO,CAAC,QAAQ,EAAE,EAAA;;wBAA1B,KAAC,CAAC,SAAwB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAY,CAAA;;;wBAD3D,IAAI,KACuD;wBAEjE,IAAI,CAAC,IAAI,EAAE;4BACT,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;4BAC/C,sBAAO,EAAC,IAAI,EAAE,sBAAc,CAAC,WAAW,EAAC,EAAC;yBAC3C;wBAEK,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;wBACvD,cAAc,GAClB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,GAAG,CAAC,MAAK,CAAC,CAAC;4BACvB,CAAC,CAAC,UAAG,mBAAmB,mBAAgB;4BACxC,CAAC,CAAC,mBAAmB,CAAC;wBACpB,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;wBAE7D,IAAI,CAAC,aAAa,EAAE;4BAClB,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,IAAI,MAAA,EAAC,CAAC,CAAC;4BAC/C,sBAAO,EAAC,IAAI,EAAE,sBAAc,CAAC,WAAW,EAAC,EAAC;yBAC3C;wBAEK,WAAW,GAAG,UAAG,MAAM,CAAC,MAAM,SAAG,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAS,aAAa,CAAE,CAAC;wBAEhF,MAAM,CAAC,IAAI,CAAC,uCAAgC,WAAW,CAAE,EAAE;4BACzD,IAAI,EAAE,aAAa;yBACpB,CAAC,CAAC;wBAEH,MAAM,IAAA,yBAAQ,EAAC,WAAW,CAAC,CAAC;;;;KAC7B,CAAC;AACJ,CAAC;AAvCD,oCAuCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../src/auth/public/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../../../../src/auth/public/authenticate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAE3C,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,aAEhD,OAAO,KACf,QAAQ,aAAa,CAAC,CAuB1B"}
|
|
@@ -13,6 +13,7 @@ function authenticatePublicFactory(params) {
|
|
|
13
13
|
case 0:
|
|
14
14
|
logger = params.logger;
|
|
15
15
|
(0, helpers_1.rejectBotRequest)(params, request);
|
|
16
|
+
(0, helpers_1.respondToOptionsRequest)(params, request);
|
|
16
17
|
sessionTokenHeader = (0, helpers_1.getSessionTokenHeader)(request);
|
|
17
18
|
logger.info('Authenticating public request');
|
|
18
19
|
if (!sessionTokenHeader) {
|
|
@@ -25,6 +26,7 @@ function authenticatePublicFactory(params) {
|
|
|
25
26
|
_a = {};
|
|
26
27
|
return [4 /*yield*/, (0, helpers_1.validateSessionToken)(params, sessionTokenHeader)];
|
|
27
28
|
case 1: return [2 /*return*/, (_a.sessionToken = _b.sent(),
|
|
29
|
+
_a.cors = (0, helpers_1.ensureCORSHeadersFactory)(params, request),
|
|
28
30
|
_a)];
|
|
29
31
|
}
|
|
30
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../src/auth/public/authenticate.ts"],"names":[],"mappings":";;;;AACA,
|
|
1
|
+
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../../src/auth/public/authenticate.ts"],"names":[],"mappings":";;;;AACA,sCAMoB;AAIpB,SAAgB,yBAAyB,CAAC,MAAmB;IAC3D,OAAO,SAAe,kBAAkB,CACtC,OAAgB;;;;;;;wBAET,MAAM,GAAI,MAAM,OAAV,CAAW;wBAExB,IAAA,0BAAgB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;wBAClC,IAAA,iCAAuB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;wBAEnC,kBAAkB,GAAG,IAAA,+BAAqB,EAAC,OAAO,CAAC,CAAC;wBAE1D,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;wBAE7C,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,CAAC,EAAA;4BADtE,uBACE,eAAY,GAAE,SAAsD;4BACpE,OAAI,GAAE,IAAA,kCAAwB,EAAC,MAAM,EAAE,OAAO,CAAC;iCAC/C;;;;KACH,CAAC;AACJ,CAAC;AA1BD,8DA0BC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JwtPayload } from '@shopify/shopify-api';
|
|
2
|
+
import { EnsureCORSFunction } from '../helpers/ensure-cors-headers';
|
|
2
3
|
/**
|
|
3
4
|
* Authenticated Context for a public request
|
|
4
5
|
*/
|
|
@@ -10,18 +11,40 @@ export interface PublicContext {
|
|
|
10
11
|
*
|
|
11
12
|
* @example
|
|
12
13
|
* Getting your app's store specific widget data using the session token
|
|
14
|
+
* ```ts
|
|
13
15
|
* // app/routes/public/widgets.ts
|
|
14
16
|
* import { LoaderArgs, json } from "@remix-run/node";
|
|
15
|
-
* import {
|
|
17
|
+
* import { authenticate } from "../shopify.server";
|
|
16
18
|
* import { getWidgets } from "~/db/widgets.server";
|
|
17
19
|
*
|
|
18
20
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
19
|
-
* const { sessionToken } = await
|
|
21
|
+
* const { sessionToken } = await authenticate.public(
|
|
20
22
|
* request
|
|
21
23
|
* );
|
|
22
24
|
* return json(await getWidgets({shop: sessionToken.dest}));
|
|
23
25
|
* };
|
|
26
|
+
* ```
|
|
24
27
|
*/
|
|
25
28
|
sessionToken: JwtPayload;
|
|
29
|
+
/**
|
|
30
|
+
* A function that ensures the CORS headers are set correctly for the response
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* Setting CORS headers for a public request
|
|
34
|
+
* ```ts
|
|
35
|
+
* // app/routes/public/widgets.ts
|
|
36
|
+
* import { LoaderArgs, json } from "@remix-run/node";
|
|
37
|
+
* import { authenticate } from "../shopify.server";
|
|
38
|
+
* import { getWidgets } from "~/db/widgets.server";
|
|
39
|
+
*
|
|
40
|
+
* export const loader = async ({ request }: LoaderArgs) => {
|
|
41
|
+
* const { sessionToken, cors } = await authenticate.public(
|
|
42
|
+
* request
|
|
43
|
+
* );
|
|
44
|
+
* return cors(json(await getWidgets({shop: sessionToken.dest})));
|
|
45
|
+
* };
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
cors: EnsureCORSFunction;
|
|
26
49
|
}
|
|
27
50
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/auth/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/auth/public/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,EAAE,UAAU,CAAC;IAEzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,EAAE,kBAAkB,CAAC;CAC1B"}
|
|
@@ -65,7 +65,7 @@ function redirectOutOfApp(params, request, url, shop) {
|
|
|
65
65
|
throw new Response(undefined, {
|
|
66
66
|
status: 401,
|
|
67
67
|
statusText: 'Unauthorized',
|
|
68
|
-
headers: (0, redirect_with_app_bridge_headers_1.getAppBridgeHeaders)(
|
|
68
|
+
headers: (0, redirect_with_app_bridge_headers_1.getAppBridgeHeaders)(url),
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
else if (isEmbeddedRequest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/billing/request.ts"],"names":[],"mappings":";;;;AAAA,oDAI8B;AAC9B,4DAAmD;AAGnD,2CAAmD;AAEnD,qGAAqF;AAIrF,SAAgB,qBAAqB,CACnC,MAAmB,EACnB,OAAgB,EAChB,OAAgB;IAEhB,OAAO,SAAe,cAAc,CAAC,EAIL;YAH9B,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,SAAS,eAAA;;;;;;wBAEF,GAAG,GAAY,MAAM,IAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;wBAE7B,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;4BAChC,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,IAAI,MAAA;4BACJ,MAAM,QAAA;4BACN,SAAS,WAAA;yBACV,CAAC,CAAC;;;;wBAIQ,qBAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;gCACjC,IAAI,EAAE,IAAc;gCACpB,OAAO,SAAA;gCACP,MAAM,QAAA;gCACN,SAAS,WAAA;gCACT,YAAY,EAAE,IAAI;6BACnB,CAAC,EAAA;;wBANF,MAAM,GAAG,SAMP,CAAC;;;;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;;4BAIhB,MAAM,gBAAgB,CACpB,MAAM,EACN,OAAO,EACP,MAAM,CAAC,eAAe,EACtB,OAAO,CAAC,IAAI,CACb,CAAC;;;;KACH,CAAC;AACJ,CAAC;AA9CD,sDA8CC;AAED,SAAS,gBAAgB,CACvB,MAAmB,EACnB,OAAgB,EAChB,GAAW,EACX,IAAY;IAEL,IAAA,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAEhC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,GAAG,KAAA,EAAC,CAAC,CAAC;IAE9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;IAC1E,IAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE1D,IAAI,YAAY,EAAE;QAChB,+CAA+C;QAC/C,qEAAqE;QACrE,oGAAoG;QACpG,iDAAiD;QACjD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;YAC5B,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,IAAA,sDAAmB,EAAC,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/billing/request.ts"],"names":[],"mappings":";;;;AAAA,oDAI8B;AAC9B,4DAAmD;AAGnD,2CAAmD;AAEnD,qGAAqF;AAIrF,SAAgB,qBAAqB,CACnC,MAAmB,EACnB,OAAgB,EAChB,OAAgB;IAEhB,OAAO,SAAe,cAAc,CAAC,EAIL;YAH9B,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,SAAS,eAAA;;;;;;wBAEF,GAAG,GAAY,MAAM,IAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;wBAE7B,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;4BAChC,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,IAAI,MAAA;4BACJ,MAAM,QAAA;4BACN,SAAS,WAAA;yBACV,CAAC,CAAC;;;;wBAIQ,qBAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;gCACjC,IAAI,EAAE,IAAc;gCACpB,OAAO,SAAA;gCACP,MAAM,QAAA;gCACN,SAAS,WAAA;gCACT,YAAY,EAAE,IAAI;6BACnB,CAAC,EAAA;;wBANF,MAAM,GAAG,SAMP,CAAC;;;;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;;4BAIhB,MAAM,gBAAgB,CACpB,MAAM,EACN,OAAO,EACP,MAAM,CAAC,eAAe,EACtB,OAAO,CAAC,IAAI,CACb,CAAC;;;;KACH,CAAC;AACJ,CAAC;AA9CD,sDA8CC;AAED,SAAS,gBAAgB,CACvB,MAAmB,EACnB,OAAgB,EAChB,GAAW,EACX,IAAY;IAEL,IAAA,MAAM,GAAY,MAAM,OAAlB,EAAE,MAAM,GAAI,MAAM,OAAV,CAAW;IAEhC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAC,GAAG,KAAA,EAAC,CAAC,CAAC;IAE9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;IAC1E,IAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE1D,IAAI,YAAY,EAAE;QAChB,+CAA+C;QAC/C,qEAAqE;QACrE,oGAAoG;QACpG,iDAAiD;QACjD,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE;YAC5B,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,IAAA,sDAAmB,EAAC,GAAG,CAAC;SAClC,CAAC,CAAC;KACJ;SAAM,IAAI,iBAAiB,EAAE;QAC5B,IAAM,QAAM,GAAG,IAAI,eAAe,CAAC;YACjC,IAAI,MAAA;YACJ,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE;YAC1C,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,MAAM,IAAA,yBAAQ,EAAC,UAAG,MAAM,CAAC,IAAI,CAAC,cAAc,cAAI,QAAM,CAAC,QAAQ,EAAE,CAAE,CAAC,CAAC;KACtE;SAAM;QACL,mHAAmH;QACnH,MAAM,IAAA,yBAAQ,EAAC,GAAG,CAAC,CAAC;KACrB;AACH,CAAC"}
|
|
@@ -44,7 +44,7 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
44
44
|
* export const MONTHLY_PLAN = 'Monthly subscription';
|
|
45
45
|
* export const ANNUAL_PLAN = 'Annual subscription';
|
|
46
46
|
*
|
|
47
|
-
*
|
|
47
|
+
* const shopify = shopifyApp({
|
|
48
48
|
* // ...etc
|
|
49
49
|
* billing: {
|
|
50
50
|
* [MONTHLY_PLAN]: {
|
|
@@ -59,13 +59,15 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
59
59
|
* },
|
|
60
60
|
* }
|
|
61
61
|
* });
|
|
62
|
+
* export default shopify;
|
|
63
|
+
* export const authenticate = shopify.authenticate;
|
|
62
64
|
*
|
|
63
65
|
* // app/routes/**\/.ts
|
|
64
66
|
* import { LoaderArgs } from "@remix-run/node";
|
|
65
|
-
* import {
|
|
67
|
+
* import { authenticate, MONTHLY_PLAN } from "../shopify.server";
|
|
66
68
|
*
|
|
67
69
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
68
|
-
* const { billing } = await
|
|
70
|
+
* const { billing } = await authenticate.admin(request);
|
|
69
71
|
* await billing.require({
|
|
70
72
|
* plans: [MONTHLY_PLAN],
|
|
71
73
|
* isTest: true,
|
|
@@ -85,7 +87,7 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
85
87
|
* export const MONTHLY_PLAN = 'Monthly subscription';
|
|
86
88
|
* export const ANNUAL_PLAN = 'Annual subscription';
|
|
87
89
|
*
|
|
88
|
-
*
|
|
90
|
+
* const shopify = shopifyApp({
|
|
89
91
|
* // ...etc
|
|
90
92
|
* billing: {
|
|
91
93
|
* [MONTHLY_PLAN]: {
|
|
@@ -100,13 +102,15 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
100
102
|
* },
|
|
101
103
|
* }
|
|
102
104
|
* });
|
|
105
|
+
* export default shopify;
|
|
106
|
+
* export const authenticate = shopify.authenticate;
|
|
103
107
|
*
|
|
104
108
|
* // app/routes/**\/.ts
|
|
105
109
|
* import { LoaderArgs, redirect } from "@remix-run/node";
|
|
106
|
-
* import {
|
|
110
|
+
* import { authenticate, MONTHLY_PLAN, ANNUAL_PLAN } from "../shopify.server";
|
|
107
111
|
*
|
|
108
112
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
109
|
-
* const { billing } = await
|
|
113
|
+
* const { billing } = await authenticate.admin(request);
|
|
110
114
|
* const billingCheck = await billing.require({
|
|
111
115
|
* plans: [MONTHLY_PLAN, ANNUAL_PLAN],
|
|
112
116
|
* isTest: true,
|
|
@@ -135,7 +139,7 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
135
139
|
* export const MONTHLY_PLAN = 'Monthly subscription';
|
|
136
140
|
* export const ANNUAL_PLAN = 'Annual subscription';
|
|
137
141
|
*
|
|
138
|
-
*
|
|
142
|
+
* const shopify = shopifyApp({
|
|
139
143
|
* // ...etc
|
|
140
144
|
* billing: {
|
|
141
145
|
* [MONTHLY_PLAN]: {
|
|
@@ -150,13 +154,15 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
150
154
|
* },
|
|
151
155
|
* }
|
|
152
156
|
* });
|
|
157
|
+
* export default shopify;
|
|
158
|
+
* export const authenticate = shopify.authenticate;
|
|
153
159
|
*
|
|
154
160
|
* // app/routes/**\/.ts
|
|
155
161
|
* import { LoaderArgs } from "@remix-run/node";
|
|
156
|
-
* import {
|
|
162
|
+
* import { authenticate, MONTHLY_PLAN } from "../shopify.server";
|
|
157
163
|
*
|
|
158
164
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
159
|
-
* const { billing } = await
|
|
165
|
+
* const { billing } = await authenticate.admin(request);
|
|
160
166
|
* await billing.require({
|
|
161
167
|
* plans: [MONTHLY_PLAN],
|
|
162
168
|
* onFailure: async () => billing.request({
|
|
@@ -185,7 +191,7 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
185
191
|
* export const MONTHLY_PLAN = 'Monthly subscription';
|
|
186
192
|
* export const ANNUAL_PLAN = 'Annual subscription';
|
|
187
193
|
*
|
|
188
|
-
*
|
|
194
|
+
* const shopify = shopifyApp({
|
|
189
195
|
* // ...etc
|
|
190
196
|
* billing: {
|
|
191
197
|
* [MONTHLY_PLAN]: {
|
|
@@ -200,13 +206,15 @@ export interface BillingContext<Config extends AppConfigArg> {
|
|
|
200
206
|
* },
|
|
201
207
|
* }
|
|
202
208
|
* });
|
|
209
|
+
* export default shopify;
|
|
210
|
+
* export const authenticate = shopify.authenticate;
|
|
203
211
|
*
|
|
204
212
|
* // app/routes/cancel-subscription.ts
|
|
205
213
|
* import { LoaderArgs } from "@remix-run/node";
|
|
206
|
-
* import {
|
|
214
|
+
* import { authenticate, MONTHLY_PLAN } from "../shopify.server";
|
|
207
215
|
*
|
|
208
216
|
* export const loader = async ({ request }: LoaderArgs) => {
|
|
209
|
-
* const { billing } = await
|
|
217
|
+
* const { billing } = await authenticate.admin(request);
|
|
210
218
|
* const billingCheck = await billing.require({
|
|
211
219
|
* plans: [MONTHLY_PLAN],
|
|
212
220
|
* onFailure: async () => billing.request({ plan: MONTHLY_PLAN }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/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,iBAAiB,CAAC;AAElD,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;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,YAAY;IACzD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/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,iBAAiB,CAAC;AAElD,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;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,YAAY;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6FG;IACH,OAAO,EAAE,CACP,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KACnC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CACrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/boundary/error.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAMxD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.errorBoundary = void 0;
|
|
4
|
+
function errorBoundary(error) {
|
|
5
|
+
if (error.constructor.name === 'ErrorResponse') {
|
|
6
|
+
return 'Handling response';
|
|
7
|
+
}
|
|
8
|
+
throw error;
|
|
9
|
+
}
|
|
10
|
+
exports.errorBoundary = errorBoundary;
|
|
11
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/boundary/error.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAC,KAAU;IACtC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,EAAE;QAC9C,OAAO,mBAAmB,CAAC;KAC5B;IAED,MAAM,KAAK,CAAC;AACd,CAAC;AAND,sCAMC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/boundary/headers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAY7D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.headersBoundary = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
function headersBoundary(headers) {
|
|
6
|
+
var parentHeaders = headers.parentHeaders, loaderHeaders = headers.loaderHeaders, actionHeaders = headers.actionHeaders, errorHeaders = headers.errorHeaders;
|
|
7
|
+
if (errorHeaders && Array.from(errorHeaders.entries()).length > 0) {
|
|
8
|
+
return errorHeaders;
|
|
9
|
+
}
|
|
10
|
+
return new Headers(tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read((parentHeaders ? Array.from(parentHeaders.entries()) : [])), false), tslib_1.__read((loaderHeaders ? Array.from(loaderHeaders.entries()) : [])), false), tslib_1.__read((actionHeaders ? Array.from(actionHeaders.entries()) : [])), false));
|
|
11
|
+
}
|
|
12
|
+
exports.headersBoundary = headersBoundary;
|
|
13
|
+
//# sourceMappingURL=headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/boundary/headers.ts"],"names":[],"mappings":";;;;AAEA,SAAgB,eAAe,CAAC,OAAoB;IAC3C,IAAA,aAAa,GAAgD,OAAO,cAAvD,EAAE,aAAa,GAAiC,OAAO,cAAxC,EAAE,aAAa,GAAkB,OAAO,cAAzB,EAAE,YAAY,GAAI,OAAO,aAAX,CAAY;IAE5E,IAAI,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACjE,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,IAAI,OAAO,sFACb,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,0BAC1D,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,0BAC1D,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAC7D,CAAC;AACL,CAAC;AAZD,0CAYC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/boundary/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,KAAK,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/boundary/types.ts"],"names":[],"mappings":""}
|