@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.
Files changed (92) hide show
  1. package/README.md +73 -18
  2. package/build/cjs/adapters/node/index.js +10 -0
  3. package/build/cjs/auth/admin/authenticate.js +25 -30
  4. package/build/cjs/auth/const.js +0 -8
  5. package/build/cjs/auth/helpers/add-response-headers.js +13 -50
  6. package/build/cjs/auth/helpers/app-bridge-url.js +16 -0
  7. package/build/cjs/auth/helpers/ensure-cors-headers.js +24 -0
  8. package/build/cjs/auth/helpers/redirect-with-app-bridge-headers.js +3 -9
  9. package/build/cjs/auth/helpers/respond-to-options-request.js +19 -0
  10. package/build/cjs/auth/login/login.js +0 -6
  11. package/build/cjs/auth/public/authenticate.js +5 -1
  12. package/build/cjs/billing/request.js +1 -1
  13. package/build/cjs/boundary/error.js +12 -0
  14. package/build/cjs/boundary/headers.js +18 -0
  15. package/build/cjs/index.js +57 -8
  16. package/build/cjs/types.js +1 -0
  17. package/build/cjs/version.js +1 -1
  18. package/build/ts/adapters/node/index.js +6 -0
  19. package/build/ts/adapters/node/index.js.map +1 -1
  20. package/build/ts/auth/admin/authenticate.d.ts +0 -2
  21. package/build/ts/auth/admin/authenticate.d.ts.map +1 -1
  22. package/build/ts/auth/admin/authenticate.js +13 -25
  23. package/build/ts/auth/admin/authenticate.js.map +1 -1
  24. package/build/ts/auth/admin/types.d.ts +32 -13
  25. package/build/ts/auth/admin/types.d.ts.map +1 -1
  26. package/build/ts/auth/const.d.ts +1 -2
  27. package/build/ts/auth/const.d.ts.map +1 -1
  28. package/build/ts/auth/const.js +2 -3
  29. package/build/ts/auth/const.js.map +1 -1
  30. package/build/ts/auth/helpers/add-response-headers.d.ts +2 -3
  31. package/build/ts/auth/helpers/add-response-headers.d.ts.map +1 -1
  32. package/build/ts/auth/helpers/add-response-headers.js +16 -49
  33. package/build/ts/auth/helpers/add-response-headers.js.map +1 -1
  34. package/build/ts/auth/helpers/app-bridge-url.d.ts +3 -0
  35. package/build/ts/auth/helpers/app-bridge-url.d.ts.map +1 -0
  36. package/build/ts/auth/helpers/app-bridge-url.js +14 -0
  37. package/build/ts/auth/helpers/app-bridge-url.js.map +1 -0
  38. package/build/ts/auth/helpers/ensure-cors-headers.d.ts +6 -0
  39. package/build/ts/auth/helpers/ensure-cors-headers.d.ts.map +1 -0
  40. package/build/ts/auth/helpers/ensure-cors-headers.js +19 -0
  41. package/build/ts/auth/helpers/ensure-cors-headers.js.map +1 -0
  42. package/build/ts/auth/helpers/index.d.ts +11 -7
  43. package/build/ts/auth/helpers/index.d.ts.map +1 -1
  44. package/build/ts/auth/helpers/index.js +12 -15
  45. package/build/ts/auth/helpers/index.js.map +1 -1
  46. package/build/ts/auth/helpers/redirect-with-app-bridge-headers.d.ts +1 -1
  47. package/build/ts/auth/helpers/redirect-with-app-bridge-headers.d.ts.map +1 -1
  48. package/build/ts/auth/helpers/redirect-with-app-bridge-headers.js +3 -7
  49. package/build/ts/auth/helpers/redirect-with-app-bridge-headers.js.map +1 -1
  50. package/build/ts/auth/helpers/respond-to-options-request.d.ts +3 -0
  51. package/build/ts/auth/helpers/respond-to-options-request.d.ts.map +1 -0
  52. package/build/ts/auth/helpers/respond-to-options-request.js +17 -0
  53. package/build/ts/auth/helpers/respond-to-options-request.js.map +1 -0
  54. package/build/ts/auth/login/login.d.ts.map +1 -1
  55. package/build/ts/auth/login/login.js +0 -4
  56. package/build/ts/auth/login/login.js.map +1 -1
  57. package/build/ts/auth/public/authenticate.d.ts.map +1 -1
  58. package/build/ts/auth/public/authenticate.js +2 -0
  59. package/build/ts/auth/public/authenticate.js.map +1 -1
  60. package/build/ts/auth/public/types.d.ts +25 -2
  61. package/build/ts/auth/public/types.d.ts.map +1 -1
  62. package/build/ts/billing/request.js +1 -1
  63. package/build/ts/billing/request.js.map +1 -1
  64. package/build/ts/billing/types.d.ts +20 -12
  65. package/build/ts/billing/types.d.ts.map +1 -1
  66. package/build/ts/boundary/error.d.ts +2 -0
  67. package/build/ts/boundary/error.d.ts.map +1 -0
  68. package/build/ts/boundary/error.js +11 -0
  69. package/build/ts/boundary/error.js.map +1 -0
  70. package/build/ts/boundary/headers.d.ts +3 -0
  71. package/build/ts/boundary/headers.d.ts.map +1 -0
  72. package/build/ts/boundary/headers.js +13 -0
  73. package/build/ts/boundary/headers.js.map +1 -0
  74. package/build/ts/boundary/types.d.ts +4 -0
  75. package/build/ts/boundary/types.d.ts.map +1 -0
  76. package/build/ts/boundary/types.js +3 -0
  77. package/build/ts/boundary/types.js.map +1 -0
  78. package/build/ts/config-types.d.ts +28 -18
  79. package/build/ts/config-types.d.ts.map +1 -1
  80. package/build/ts/index.d.ts +39 -1
  81. package/build/ts/index.d.ts.map +1 -1
  82. package/build/ts/index.js +56 -10
  83. package/build/ts/index.js.map +1 -1
  84. package/build/ts/types.d.ts +88 -122
  85. package/build/ts/types.d.ts.map +1 -1
  86. package/build/ts/types.js.map +1 -1
  87. package/build/ts/version.d.ts +1 -1
  88. package/build/ts/version.d.ts.map +1 -1
  89. package/build/ts/version.js +1 -1
  90. package/build/ts/version.js.map +1 -1
  91. package/build/tsconfig.tsbuildinfo +1 -1
  92. 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 { redirectToAuthPage } from './redirect-to-auth-page';
2
- export { redirectWithExitIframe } from './redirect-with-exitiframe';
3
- export { beginAuth } from './begin-auth';
4
- export { validateSessionToken } from './validate-session-token';
5
- export { getSessionTokenHeader } from './get-session-token-header';
6
- export { rejectBotRequest } from './reject-bot-request';
7
- export { handleClientError } from './handle-client-error';
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,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC"}
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
- exports.handleClientError = exports.rejectBotRequest = exports.getSessionTokenHeader = exports.validateSessionToken = exports.beginAuth = exports.redirectWithExitIframe = exports.redirectToAuthPage = void 0;
4
- var redirect_to_auth_page_1 = require("./redirect-to-auth-page");
5
- Object.defineProperty(exports, "redirectToAuthPage", { enumerable: true, get: function () { return redirect_to_auth_page_1.redirectToAuthPage; } });
6
- var redirect_with_exitiframe_1 = require("./redirect-with-exitiframe");
7
- Object.defineProperty(exports, "redirectWithExitIframe", { enumerable: true, get: function () { return redirect_with_exitiframe_1.redirectWithExitIframe; } });
8
- var begin_auth_1 = require("./begin-auth");
9
- Object.defineProperty(exports, "beginAuth", { enumerable: true, get: function () { return begin_auth_1.beginAuth; } });
10
- var validate_session_token_1 = require("./validate-session-token");
11
- Object.defineProperty(exports, "validateSessionToken", { enumerable: true, get: function () { return validate_session_token_1.validateSessionToken; } });
12
- var get_session_token_header_1 = require("./get-session-token-header");
13
- Object.defineProperty(exports, "getSessionTokenHeader", { enumerable: true, get: function () { return get_session_token_header_1.getSessionTokenHeader; } });
14
- var reject_bot_request_1 = require("./reject-bot-request");
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,iEAA2D;AAAnD,2HAAA,kBAAkB,OAAA;AAC1B,uEAAkE;AAA1D,kIAAA,sBAAsB,OAAA;AAC9B,2CAAuC;AAA/B,uGAAA,SAAS,OAAA;AACjB,mEAA8D;AAAtD,8HAAA,oBAAoB,OAAA;AAC5B,uEAAiE;AAAzD,iIAAA,qBAAqB,OAAA;AAC7B,2DAAsD;AAA9C,sHAAA,gBAAgB,OAAA;AACxB,6DAAwD;AAAhD,wHAAA,iBAAiB,OAAA"}
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(params: BasicParams, url: string, shop: string): Headers;
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;AAK7C,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACX,KAAK,CASP;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,WAQb"}
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(params, redirectUri, shop),
11
+ headers: getAppBridgeHeaders(redirectUri),
13
12
  });
14
13
  }
15
14
  exports.redirectWithAppBridgeHeaders = redirectWithAppBridgeHeaders;
16
- function getAppBridgeHeaders(params, url, shop) {
15
+ function getAppBridgeHeaders(url) {
17
16
  var _a;
18
- var config = params.config;
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,+DAA0D;AAE1D,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,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAZD,oEAYC;AAED,SAAgB,mBAAmB,CACjC,MAAmB,EACnB,GAAW,EACX,IAAY;;IAEL,IAAA,MAAM,GAAI,MAAM,OAAV,CAAW;IACxB,IAAM,OAAO,GAAG,IAAI,OAAO,WAAE,GAAC,yBAAiB,IAAG,GAAG,MAAE,CAAC;IAExD,IAAA,yCAAkB,EAAC,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAExD,OAAO,OAAO,CAAC;AACjB,CAAC;AAXD,kDAWC"}
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,3 @@
1
+ import { BasicParams } from '../../types';
2
+ export declare function respondToOptionsRequest(params: BasicParams, request: Request): void;
3
+ //# sourceMappingURL=respond-to-options-request.d.ts.map
@@ -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,CA2C3E"}
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;;;;;;wBAC1C,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;4BAC3B,MAAM,CAAC,KAAK,CACV,4DAA4D,CAC7D,CAAC;4BACF,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC;yBAC9C;wBAEK,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;AA9CD,oCA8CC"}
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;AAO7C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAE3C,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,aAEhD,OAAO,KACf,QAAQ,aAAa,CAAC,CAqB1B"}
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,sCAIoB;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;wBAE5B,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;iCACpE;;;;KACH,CAAC;AACJ,CAAC;AAxBD,8DAwBC"}
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 { shopify } from "../shopify.server";
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 shopify.authenticate.public(
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;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,EAAE,UAAU,CAAC;CAC1B"}
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)(params, url, shop),
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,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;SAChD,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"}
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
- * export const shopify = shopifyApp({
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 { shopify, MONTHLY_PLAN } from "../shopify.server";
67
+ * import { authenticate, MONTHLY_PLAN } from "../shopify.server";
66
68
  *
67
69
  * export const loader = async ({ request }: LoaderArgs) => {
68
- * const { billing } = await shopify.authenticate.admin(request);
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
- * export const shopify = shopifyApp({
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 { shopify, MONTHLY_PLAN, ANNUAL_PLAN } from "../shopify.server";
110
+ * import { authenticate, MONTHLY_PLAN, ANNUAL_PLAN } from "../shopify.server";
107
111
  *
108
112
  * export const loader = async ({ request }: LoaderArgs) => {
109
- * const { billing } = await shopify.authenticate.admin(request);
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
- * export const shopify = shopifyApp({
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 { shopify, MONTHLY_PLAN } from "../shopify.server";
162
+ * import { authenticate, MONTHLY_PLAN } from "../shopify.server";
157
163
  *
158
164
  * export const loader = async ({ request }: LoaderArgs) => {
159
- * const { billing } = await shopify.authenticate.admin(request);
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
- * export const shopify = shopifyApp({
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 { shopify, MONTHLY_PLAN } from "../shopify.server";
214
+ * import { authenticate, MONTHLY_PLAN } from "../shopify.server";
207
215
  *
208
216
  * export const loader = async ({ request }: LoaderArgs) => {
209
- * const { billing } = await shopify.authenticate.admin(request);
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyFG;IACH,OAAO,EAAE,CACP,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KACnC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CACrE"}
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,2 @@
1
+ export declare function errorBoundary(error: any): string | never;
2
+ //# sourceMappingURL=error.d.ts.map
@@ -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,3 @@
1
+ import { HeadersArgs } from '@remix-run/server-runtime';
2
+ export declare function headersBoundary(headers: HeadersArgs): Headers;
3
+ //# sourceMappingURL=headers.d.ts.map
@@ -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,4 @@
1
+ import { HeadersArgs } from '@remix-run/server-runtime';
2
+ export type ErrorBoundary = (error: unknown) => string | never;
3
+ export type HeadersBoundary = (headers: HeadersArgs) => Headers;
4
+ //# sourceMappingURL=types.d.ts.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/boundary/types.ts"],"names":[],"mappings":""}