@agnostack/next-shopify 1.0.1-alpha.1 → 1.1.0-alpha.10

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/CHANGELOG.md CHANGED
@@ -1,3 +1,74 @@
1
+ # [1.1.0-alpha.10](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.9...v1.1.0-alpha.10) (2022-11-08)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * reverted interactive prompt ([ab2a841](https://github.com/agnostack/next-shopify/commit/ab2a841ccd3bdb9cf659b2be02aa8ebadee627cd))
7
+
8
+ # [1.1.0-alpha.9](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.8...v1.1.0-alpha.9) (2022-11-08)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * temp set to test prompts ([0a97fd2](https://github.com/agnostack/next-shopify/commit/0a97fd2186b46b6362fd54c1dfdb7810211aee10))
14
+
15
+ # [1.1.0-alpha.8](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.7...v1.1.0-alpha.8) (2022-11-08)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * updated uninstall route ([6f8462a](https://github.com/agnostack/next-shopify/commit/6f8462a7012d18c5205f1f9f22a7940b6b335329))
21
+
22
+ # [1.1.0-alpha.7](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.6...v1.1.0-alpha.7) (2022-11-08)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * updated console logs ([e3450f2](https://github.com/agnostack/next-shopify/commit/e3450f28ccd29d7de3d78d1cb1857ff9e892ccf4))
28
+
29
+ # [1.1.0-alpha.6](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.5...v1.1.0-alpha.6) (2022-11-08)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * updated to grab from APP_CONFIG ([e5f4c13](https://github.com/agnostack/next-shopify/commit/e5f4c13d5592000ffbf9791fba12b3c236178997))
35
+
36
+ # [1.1.0-alpha.5](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.4...v1.1.0-alpha.5) (2022-11-08)
37
+
38
+
39
+ ### Bug Fixes
40
+
41
+ * added debug logs ([e6b9703](https://github.com/agnostack/next-shopify/commit/e6b97038580e5802319eb93fd272eb0c27ec4ad3))
42
+
43
+ # [1.1.0-alpha.4](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.3...v1.1.0-alpha.4) (2022-11-07)
44
+
45
+
46
+ ### Bug Fixes
47
+
48
+ * added default destructure ([2f14c5c](https://github.com/agnostack/next-shopify/commit/2f14c5c972463df7130387e64b420bf4a56b45fa))
49
+
50
+ # [1.1.0-alpha.3](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.2...v1.1.0-alpha.3) (2022-11-07)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * split out helper methods ([8148682](https://github.com/agnostack/next-shopify/commit/8148682f3ee940948cf01521b1428a994880c515))
56
+
57
+ # [1.1.0-alpha.2](https://github.com/agnostack/next-shopify/compare/v1.1.0-alpha.1...v1.1.0-alpha.2) (2022-11-07)
58
+
59
+
60
+ ### Bug Fixes
61
+
62
+ * small refactor on apiHandlers ([fc9315d](https://github.com/agnostack/next-shopify/commit/fc9315d4de6c69096399ae1573f8bc2d4982dffe))
63
+
64
+ # [1.1.0-alpha.1](https://github.com/agnostack/next-shopify/compare/v1.0.1-alpha.1...v1.1.0-alpha.1) (2022-11-07)
65
+
66
+
67
+ ### Features
68
+
69
+ * initial implementation of withShopify > serverRuntimeConfig ([8a4771d](https://github.com/agnostack/next-shopify/commit/8a4771db503fa9fcbec15c5690f31f85b154c40e))
70
+ * initial test implementation ([b212bff](https://github.com/agnostack/next-shopify/commit/b212bffc7aa76e12686444a09d3b6af71294a1dc))
71
+
1
72
  ## [1.0.1-alpha.1](https://github.com/agnostack/next-shopify/compare/v1.0.0...v1.0.1-alpha.1) (2022-11-07)
2
73
 
3
74
 
@@ -0,0 +1,3 @@
1
+ export function handleAuth(props: any): (req: any, res: any) => Promise<any>;
2
+ export function handleCallback(props: any): (req: any, res: any) => Promise<any>;
3
+ export function handleAppUninstalled(props: any): (req: any, res: any) => Promise<any>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleAppUninstalled = exports.handleCallback = exports.handleAuth = void 0;
4
+ // NOTE: api routes do NOT work in `next export`
5
+ const utils_1 = require("./utils");
6
+ // NOTE: typically handling: "/api/auth"
7
+ const handleAuth = (props) => async (req, res) => {
8
+ const { PAGE_PATHS } = props;
9
+ const { message, statusCode = 302, redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?invalid_auth_response`, } = await utils_1.authHelper(Object.assign({ req, res }, props));
10
+ if (statusCode >= 300 && statusCode < 400) {
11
+ return res.redirect(statusCode, redirectUrl);
12
+ }
13
+ return res.send(statusCode).send(message);
14
+ };
15
+ exports.handleAuth = handleAuth;
16
+ // NOTE: typically handling: "/api/auth/callback"
17
+ const handleCallback = (props) => async (req, res) => {
18
+ const { PAGE_PATHS } = props;
19
+ const { message, statusCode = 302, redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?invalid_callback_response`, } = await utils_1.callbackHelper(Object.assign({ req, res }, props));
20
+ if (statusCode >= 300 && statusCode < 400) {
21
+ return res.redirect(statusCode, redirectUrl);
22
+ }
23
+ return res.send(statusCode).send(message);
24
+ };
25
+ exports.handleCallback = handleCallback;
26
+ // NOTE: typically handling: "/api/webhooks/app/uninstalled"
27
+ const handleAppUninstalled = (props) => async (req, res) => {
28
+ const { PAGE_PATHS } = props;
29
+ const { message, statusCode = 302, redirectUrl = `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?invalid_uninstall_response`, } = await utils_1.uninstallHelper(Object.assign({ req, res }, props));
30
+ if (statusCode >= 300 && statusCode < 400) {
31
+ return res.redirect(statusCode, redirectUrl);
32
+ }
33
+ return res.send(statusCode).send(message);
34
+ };
35
+ exports.handleAppUninstalled = handleAppUninstalled;
36
+ //# sourceMappingURL=apiHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiHandlers.js","sourceRoot":"","sources":["../src/apiHandlers.js"],"names":[],"mappings":";;;AAAA,gDAAgD;AAChD,mCAKgB;AAEhB,wCAAwC;AACjC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACtD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAC5B,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,wBAAwB,GAC5E,GAAG,MAAM,kBAAU,iBAAG,GAAG,EAAE,GAAG,IAAK,KAAK,EAAG,CAAA;IAE5C,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE;QACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;KAC7C;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3C,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB;AAED,iDAAiD;AAC1C,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAC5B,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,4BAA4B,GAChF,GAAG,MAAM,sBAAc,iBAAG,GAAG,EAAE,GAAG,IAAK,KAAK,EAAG,CAAA;IAEhD,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE;QACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;KAC7C;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3C,CAAC,CAAA;AAbY,QAAA,cAAc,kBAa1B;AAED,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAC5B,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,6BAA6B,GACjF,GAAG,MAAM,uBAAe,iBAAG,GAAG,EAAE,GAAG,IAAK,KAAK,EAAG,CAAA;IAEjD,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE;QACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;KAC7C;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3C,CAAC,CAAA;AAbY,QAAA,oBAAoB,wBAahC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { generateReplacements, arrowsReplace, getAppData, cleanURL } from './utils';
2
- export * from './withZendeskCLI';
3
- export * from './zendeskCLIHandler';
1
+ export * from './apiHandlers';
2
+ export * from './protectRoute';
3
+ export * from './withShopify';
package/dist/index.js CHANGED
@@ -10,12 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.cleanURL = exports.getAppData = exports.arrowsReplace = exports.generateReplacements = void 0;
14
- var utils_1 = require("./utils");
15
- Object.defineProperty(exports, "generateReplacements", { enumerable: true, get: function () { return utils_1.generateReplacements; } });
16
- Object.defineProperty(exports, "arrowsReplace", { enumerable: true, get: function () { return utils_1.arrowsReplace; } });
17
- Object.defineProperty(exports, "getAppData", { enumerable: true, get: function () { return utils_1.getAppData; } });
18
- Object.defineProperty(exports, "cleanURL", { enumerable: true, get: function () { return utils_1.cleanURL; } });
19
- __exportStar(require("./withZendeskCLI"), exports);
20
- __exportStar(require("./zendeskCLIHandler"), exports);
13
+ __exportStar(require("./apiHandlers"), exports);
14
+ __exportStar(require("./protectRoute"), exports);
15
+ __exportStar(require("./withShopify"), exports);
21
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iCAKgB;AAJd,6GAAA,oBAAoB,OAAA;AACpB,sGAAA,aAAa,OAAA;AACb,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AAEV,mDAAgC;AAChC,sDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA6B;AAC7B,iDAA8B;AAC9B,gDAA6B"}
@@ -0,0 +1,15 @@
1
+ export function protectRoute(props: any): ({ req, res, query, locale }: {
2
+ req: any;
3
+ res: any;
4
+ query: any;
5
+ locale: any;
6
+ }, data: any) => Promise<{
7
+ redirect: {
8
+ destination: string;
9
+ permanent: boolean;
10
+ };
11
+ props?: undefined;
12
+ } | {
13
+ props: any;
14
+ redirect?: undefined;
15
+ }>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.protectRoute = void 0;
4
+ const utils_1 = require("./utils");
5
+ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) => {
6
+ var _a, _b;
7
+ const { PAGE_PATHS } = props;
8
+ const { shop, embedded } = query !== null && query !== void 0 ? query : {};
9
+ if (!shop) {
10
+ return {
11
+ redirect: {
12
+ destination: `${PAGE_PATHS[utils_1.PAGE_ROUTE_NAMES.ERROR]}?code=no_shop_provided`,
13
+ permanent: false,
14
+ },
15
+ };
16
+ }
17
+ const shopify = utils_1.getInitializedShopify(props, shop);
18
+ const shopSessions = await ((_b = (_a = shopify.Context.SESSION_STORAGE) === null || _a === void 0 ? void 0 : _a.findSessionsByShop) === null || _b === void 0 ? void 0 : _b.call(_a, shop));
19
+ if (utils_1.arrayEmpty(shopSessions)) {
20
+ return {
21
+ redirect: {
22
+ destination: utils_1.getRedirectUrl(props, {
23
+ req,
24
+ res,
25
+ query,
26
+ shop,
27
+ }),
28
+ permanent: false,
29
+ },
30
+ };
31
+ }
32
+ if (embedded !== '1') {
33
+ return {
34
+ redirect: {
35
+ destination: shopify.Utils.getEmbeddedAppUrl(req),
36
+ permanent: false,
37
+ },
38
+ };
39
+ }
40
+ return {
41
+ props: Object.assign({ locale }, data),
42
+ };
43
+ };
44
+ exports.protectRoute = protectRoute;
45
+ //# sourceMappingURL=protectRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protectRoute.js","sourceRoot":"","sources":["../src/protectRoute.js"],"names":[],"mappings":";;;AAAA,mCAKgB;AAET,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;;IACtF,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAE5B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAA;IACtC,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,wBAAwB;gBAC1E,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,MAAM,OAAO,GAAG,6BAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAClD,MAAM,YAAY,GAAG,MAAM,CAAA,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,eAAe,0CAAE,kBAAkB,mDAAG,IAAI,CAAC,CAAA,CAAA;IAEtF,IAAI,kBAAU,CAAC,YAAY,CAAC,EAAE;QAC5B,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,sBAAc,CAAC,KAAK,EAAE;oBACjC,GAAG;oBACH,GAAG;oBACH,KAAK;oBACL,IAAI;iBACL,CAAC;gBACF,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,IAAI,QAAQ,KAAK,GAAG,EAAE;QACpB,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBACjD,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,OAAO;QACL,KAAK,kBACH,MAAM,IACH,IAAI,CACR;KACF,CAAA;AACH,CAAC,CAAA;AA7CY,QAAA,YAAY,gBA6CxB"}
@@ -1,15 +1,9 @@
1
1
  export function getGUID(): any;
2
2
  export function getInteger(): any;
3
- export function isType(value: any, type: any): boolean;
4
3
  export function ensureString(string: any): string;
5
4
  export function ensureArray(array?: any[]): any[];
6
- export function ensureObject(object: any): any;
7
- export function objectEmpty(object: any): boolean;
8
- export function objectNotEmpty(object: any): boolean;
9
- export function cleanObject(object: any): any;
10
- export function cleanURL(string: any): string;
11
- export function removeLeadingSlash(string: any): string;
12
- export function removeTrailingSlash(string: any): string;
13
5
  export function stringNotEmpty(stringable: any): boolean;
14
6
  export function stringEmpty(stringable: any): boolean;
7
+ export function arrayEmpty(array: any, disableEmptyString?: boolean): boolean;
8
+ export function arrayNotEmpty(array: any, disableEmptyString?: boolean): boolean;
15
9
  export function isTrue(value: any, falsy: any): boolean;
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTrue = exports.stringEmpty = exports.stringNotEmpty = exports.removeTrailingSlash = exports.removeLeadingSlash = exports.cleanURL = exports.cleanObject = exports.objectNotEmpty = exports.objectEmpty = exports.ensureObject = exports.ensureArray = exports.ensureString = exports.isType = exports.getInteger = exports.getGUID = void 0;
3
+ exports.isTrue = exports.arrayNotEmpty = exports.arrayEmpty = exports.stringEmpty = exports.stringNotEmpty = exports.ensureArray = exports.ensureString = exports.getInteger = exports.getGUID = void 0;
4
4
  /* eslint-disable no-use-before-define */
5
5
  const uuid_1 = require("uuid");
6
6
  const getGUID = () => (uuid_1.v4());
7
7
  exports.getGUID = getGUID;
8
8
  const getInteger = () => (exports.getGUID().replace(/\D/g, ''));
9
9
  exports.getInteger = getInteger;
10
- const isType = (value, type) => (
11
- // eslint-disable-next-line eqeqeq, valid-typeof
12
- value != undefined && typeof value === type);
13
- exports.isType = isType;
14
10
  // TODO: keep in sync w/ lib-core
15
11
  const ensureString = (string) => (string ? `${string}` : '');
16
12
  exports.ensureString = ensureString;
@@ -18,33 +14,6 @@ const ensureArray = (array = []) => (
18
14
  // eslint-disable-next-line no-nested-ternary
19
15
  !array ? [] : Array.isArray(array) ? array : [array]);
20
16
  exports.ensureArray = ensureArray;
21
- const ensureObject = (object) => (object !== null && object !== void 0 ? object : {});
22
- exports.ensureObject = ensureObject;
23
- const objectEmpty = (object) => (!object || !Object.keys(object).length);
24
- exports.objectEmpty = objectEmpty;
25
- const objectNotEmpty = (object) => (!exports.objectEmpty(object));
26
- exports.objectNotEmpty = objectNotEmpty;
27
- const cleanObject = (object) => (Object.entries(exports.ensureObject(object)).reduce((_cleanedObject, [key, _value]) => {
28
- // eslint-disable-next-line eqeqeq
29
- if (_value == undefined) {
30
- return _cleanedObject; // skip key if null or undefined
31
- }
32
- const value = Array.isArray(_value)
33
- ? _value.reduce((_data, __value) => ([
34
- ..._data,
35
- cleanObjectValue(__value)
36
- ]), [])
37
- : cleanObjectValue(_value);
38
- return Object.assign(Object.assign({}, _cleanedObject), { [key]: value });
39
- }, {}));
40
- exports.cleanObject = cleanObject;
41
- const cleanObjectValue = (value) => (exports.isType(value, 'object') ? exports.cleanObject(value) : value);
42
- const cleanURL = (string) => (exports.ensureString(string).replace(/(?<!:)\/+/gm, '/'));
43
- exports.cleanURL = cleanURL;
44
- const removeLeadingSlash = (string) => (exports.ensureString(string).replace(/^\//, ''));
45
- exports.removeLeadingSlash = removeLeadingSlash;
46
- const removeTrailingSlash = (string) => (exports.ensureString(string).replace(/\/+$/, ''));
47
- exports.removeTrailingSlash = removeTrailingSlash;
48
17
  const stringNotEmpty = (stringable) => {
49
18
  const string = exports.ensureString(stringable);
50
19
  return ((string.length > 0) && !['null', 'undefined'].includes(string));
@@ -52,6 +21,14 @@ const stringNotEmpty = (stringable) => {
52
21
  exports.stringNotEmpty = stringNotEmpty;
53
22
  const stringEmpty = (stringable) => (!exports.stringNotEmpty(stringable));
54
23
  exports.stringEmpty = stringEmpty;
24
+ const arrayEmpty = (array, disableEmptyString = false) => (
25
+ // eslint-disable-next-line eqeqeq
26
+ !array || !array.length || (array.length === 1 && (array[0] == undefined || (disableEmptyString && exports.stringEmpty(array[0])))));
27
+ exports.arrayEmpty = arrayEmpty;
28
+ const arrayNotEmpty = (array, disableEmptyString = false) => (
29
+ // eslint-disable-next-line eqeqeq
30
+ !exports.arrayEmpty(array) && array[0] != undefined && (!disableEmptyString || exports.stringNotEmpty(array[0])));
31
+ exports.arrayNotEmpty = arrayNotEmpty;
55
32
  const isTrue = (value, falsy) => {
56
33
  const string = exports.ensureString(value);
57
34
  return ![...exports.ensureArray(falsy), '', 'false'].includes(string);
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/utils/display.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/utils/display.js"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,+BAAmC;AAE5B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAC3B,SAAM,EAAE,CACT,CAAA;AAFY,QAAA,OAAO,WAEnB;AAEM,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAC9B,eAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAC5B,CAAA;AAFY,QAAA,UAAU,cAEtB;AAED,iCAAiC;AAC1B,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CACtC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1B,CAAA;AAFY,QAAA,YAAY,gBAExB;AAEM,MAAM,WAAW,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC;AACzC,6CAA6C;AAC7C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACrD,CAAA;AAHY,QAAA,WAAW,eAGvB;AAGM,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,oBAAY,CAAC,UAAU,CAAC,CAAA;IACvC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACzE,CAAC,CAAA;AAHY,QAAA,cAAc,kBAG1B;AAEM,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CACzC,CAAC,sBAAc,CAAC,UAAU,CAAC,CAC5B,CAAA;AAFY,QAAA,WAAW,eAEvB;AAEM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE,CAAC;AAC/D,kCAAkC;AAClC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,IAAI,CAAC,kBAAkB,IAAI,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5H,CAAA;AAHY,QAAA,UAAU,cAGtB;AAEM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE,CAAC;AAClE,kCAAkC;AAClC,CAAC,kBAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,kBAAkB,IAAI,sBAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACjG,CAAA;AAHY,QAAA,aAAa,iBAGzB;AAEM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IACrC,MAAM,MAAM,GAAG,oBAAY,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,CAAC,CAAC,GAAG,mBAAW,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC/D,CAAC,CAAA;AAHY,QAAA,MAAM,UAGlB"}
@@ -0,0 +1,15 @@
1
+ export class FirebaseSessionHandler {
2
+ constructor(config: any, { app, shop, collection }?: {
3
+ app: any;
4
+ shop: any;
5
+ collection?: string;
6
+ });
7
+ app: any;
8
+ shop: any;
9
+ collection: string;
10
+ firestore: import("firebase/firestore/lite").Firestore;
11
+ }
12
+ export function storeCallback(session: any, handler: any): Promise<boolean>;
13
+ export function loadCallback(sessionId: any, handler: any): Promise<import("firebase/firestore/lite").DocumentData>;
14
+ export function deleteSessionsCallback(sessionIds: any, handler: any): Promise<void>;
15
+ export function findSessionsByShop(shop: any, handler: any): Promise<any[]>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.findSessionsByShop = exports.deleteSessionsCallback = exports.loadCallback = exports.storeCallback = exports.FirebaseSessionHandler = void 0;
15
+ const app_1 = require("firebase/app");
16
+ // import { initializeApp } from 'firebase-admin/app' // TODO!!!: move to firebase-admin
17
+ const lite_1 = require("firebase/firestore/lite");
18
+ const display_1 = require("./display");
19
+ const COLLECTION_ROOT = 'oauth-data';
20
+ class FirebaseSessionHandler {
21
+ constructor(config, { app, shop, collection = COLLECTION_ROOT } = {}) {
22
+ this.app = app;
23
+ this.shop = shop;
24
+ this.collection = collection;
25
+ this.firestore = lite_1.getFirestore(app_1.initializeApp(config));
26
+ }
27
+ }
28
+ exports.FirebaseSessionHandler = FirebaseSessionHandler;
29
+ const storeCallback = async (session, handler) => {
30
+ try {
31
+ const docRef = lite_1.doc(handler.firestore, handler.collection, handler.shop, handler.app, session.id);
32
+ const _a = JSON.parse(JSON.stringify(session)), { onlineAccessInfo: _onlineAccessInfo } = _a, docData = __rest(_a, ["onlineAccessInfo"]);
33
+ // NOTE: destructuring out associated_user for DPA compliance
34
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
+ const _b = _onlineAccessInfo !== null && _onlineAccessInfo !== void 0 ? _onlineAccessInfo : {}, { associated_user } = _b, onlineAccessInfo = __rest(_b, ["associated_user"]);
36
+ await lite_1.setDoc(docRef, Object.assign({ onlineAccessInfo }, docData));
37
+ return true;
38
+ }
39
+ catch (err) {
40
+ console.error(`storeCallback error`, err);
41
+ throw err;
42
+ }
43
+ };
44
+ exports.storeCallback = storeCallback;
45
+ const loadCallback = async (sessionId, handler) => {
46
+ try {
47
+ const docRef = lite_1.doc(handler.firestore, handler.collection, handler.shop, handler.app, sessionId);
48
+ const document = await lite_1.getDoc(docRef);
49
+ if (document.exists()) {
50
+ return document.data();
51
+ }
52
+ return undefined;
53
+ }
54
+ catch (err) {
55
+ console.error(`loadCallback error`, err);
56
+ throw err;
57
+ }
58
+ };
59
+ exports.loadCallback = loadCallback;
60
+ const deleteSessionsCallback = async (sessionIds, handler) => {
61
+ const _deleteSessionCallback = async (_sessionId) => {
62
+ try {
63
+ const docRef = lite_1.doc(handler.firestore, handler.collection, handler.shop, handler.app, _sessionId);
64
+ await lite_1.deleteDoc(docRef);
65
+ return true;
66
+ }
67
+ catch (err) {
68
+ console.error(`deleteSessionsCallback error`, err);
69
+ throw err;
70
+ }
71
+ };
72
+ await Promise.all(display_1.ensureArray(sessionIds).map((sessionId) => _deleteSessionCallback(sessionId)));
73
+ };
74
+ exports.deleteSessionsCallback = deleteSessionsCallback;
75
+ const findSessionsByShop = async (shop, handler) => {
76
+ if (!shop) {
77
+ return [];
78
+ }
79
+ try {
80
+ const colRef = lite_1.collection(handler.firestore, handler.collection, shop, handler.app);
81
+ const querySnapshot = await lite_1.getDocs(colRef);
82
+ const data = [];
83
+ querySnapshot.forEach((_doc) => {
84
+ data.push(_doc.data());
85
+ });
86
+ return data;
87
+ }
88
+ catch (err) {
89
+ console.error(`findSessionsByShop error`, err);
90
+ throw err;
91
+ }
92
+ };
93
+ exports.findSessionsByShop = findSessionsByShop;
94
+ //# sourceMappingURL=firebase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/utils/firebase.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export function authHelper({ req, res, ...props }: {
2
+ [x: string]: any;
3
+ req: any;
4
+ res: any;
5
+ }): Promise<{
6
+ statusCode: number;
7
+ redirectUrl: string;
8
+ message?: undefined;
9
+ } | {
10
+ statusCode: number;
11
+ message: string;
12
+ redirectUrl?: undefined;
13
+ }>;
14
+ export function callbackHelper({ req, res, ...props }: {
15
+ [x: string]: any;
16
+ req: any;
17
+ res: any;
18
+ }): Promise<{
19
+ statusCode: number;
20
+ redirectUrl: string;
21
+ message?: undefined;
22
+ } | {
23
+ statusCode: number;
24
+ message: string;
25
+ redirectUrl?: undefined;
26
+ }>;
27
+ export function uninstallHelper({ req, res, ...props }: {
28
+ [x: string]: any;
29
+ req: any;
30
+ res: any;
31
+ }): Promise<{
32
+ statusCode: number;
33
+ message: string;
34
+ }>;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.uninstallHelper = exports.callbackHelper = exports.authHelper = void 0;
15
+ const display_1 = require("./display");
16
+ const shopify_1 = require("./shopify");
17
+ const authHelper = async (_a) => {
18
+ var { req, res } = _a, props = __rest(_a, ["req", "res"]);
19
+ const { query } = req;
20
+ const { shop } = query !== null && query !== void 0 ? query : {};
21
+ try {
22
+ return {
23
+ statusCode: 302,
24
+ redirectUrl: shopify_1.getRedirectUrl(props, {
25
+ req,
26
+ res,
27
+ query,
28
+ shop,
29
+ }),
30
+ };
31
+ }
32
+ catch (error) {
33
+ const errorMessage = 'Error handling auth route';
34
+ console.error(errorMessage, error);
35
+ return {
36
+ statusCode: 500,
37
+ message: errorMessage,
38
+ };
39
+ }
40
+ };
41
+ exports.authHelper = authHelper;
42
+ const callbackHelper = async (_a) => {
43
+ var { req, res } = _a, props = __rest(_a, ["req", "res"]);
44
+ const { PAGE_PATHS, APP_WEBHOOKS } = props;
45
+ const { shop, host } = req.query;
46
+ if (!shop || !host) {
47
+ return {
48
+ statusCode: 303,
49
+ redirectUrl: `${PAGE_PATHS[shopify_1.PAGE_ROUTE_NAMES.ERROR]}?code=invalid_callback`,
50
+ };
51
+ }
52
+ const shopify = shopify_1.getInitializedShopify(props, shop);
53
+ try {
54
+ const session = await shopify.Auth.validateAuthCallback(req, res, req.query);
55
+ await shopify_1.registerWebhooks(props, APP_WEBHOOKS, session);
56
+ // TODO check for billing redirect
57
+ const redirectUrl = shopify.Utils.getEmbeddedAppUrl(req);
58
+ return {
59
+ statusCode: 302,
60
+ redirectUrl: `${redirectUrl}?${new URLSearchParams(req.query).toString()}`,
61
+ };
62
+ }
63
+ catch (error) {
64
+ const errorMessage = 'Error handling callback route';
65
+ console.error(errorMessage, error);
66
+ switch (true) {
67
+ case error instanceof shopify.Errors.InvalidOAuthError: {
68
+ return {
69
+ statusCode: 400,
70
+ message: errorMessage,
71
+ };
72
+ }
73
+ case error instanceof shopify.Errors.CookieNotFound:
74
+ case error instanceof shopify.Errors.SessionNotFound: {
75
+ return {
76
+ statusCode: 302,
77
+ redirectUrl: shopify_1.getRedirectUrl(props, {
78
+ req,
79
+ res,
80
+ shop,
81
+ query: req.query,
82
+ }),
83
+ };
84
+ }
85
+ default: {
86
+ return {
87
+ statusCode: 500,
88
+ message: errorMessage,
89
+ };
90
+ }
91
+ }
92
+ }
93
+ };
94
+ exports.callbackHelper = callbackHelper;
95
+ const uninstallHelper = async (_a) => {
96
+ var _b, _c, _d, _e;
97
+ var { req, res } = _a, props = __rest(_a, ["req", "res"]);
98
+ try {
99
+ const { domain } = req.body;
100
+ console.warn(`>>> > handleAppUninstalled > props`, props);
101
+ console.warn(`>>> > handleAppUninstalled > domain`, domain);
102
+ const shopify = shopify_1.getInitializedShopify(props, domain);
103
+ const existingSessions = await ((_c = (_b = shopify.Context.SESSION_STORAGE) === null || _b === void 0 ? void 0 : _b.findSessionsByShop) === null || _c === void 0 ? void 0 : _c.call(_b, domain));
104
+ console.warn(`>>> > handleAppUninstalled > existingSessions`, existingSessions);
105
+ if (display_1.arrayNotEmpty(existingSessions)) {
106
+ await ((_e = (_d = shopify.Context.SESSION_STORAGE) === null || _d === void 0 ? void 0 : _d.deleteSessions) === null || _e === void 0 ? void 0 : _e.call(_d, existingSessions.map((session) => session.id)));
107
+ }
108
+ return {
109
+ statusCode: 200,
110
+ message: 'true',
111
+ };
112
+ }
113
+ catch (error) {
114
+ const errorMessage = 'Error handling uninstall route';
115
+ console.error(errorMessage, error);
116
+ return {
117
+ statusCode: 500,
118
+ message: errorMessage,
119
+ };
120
+ }
121
+ };
122
+ exports.uninstallHelper = uninstallHelper;
123
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.js"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export * from "./data";
1
+ export * from "./helpers";
2
2
  export * from "./display";
3
+ export * from "./firebase";
4
+ export * from "./shopify";
@@ -10,6 +10,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./data"), exports);
13
+ __exportStar(require("./helpers"), exports);
14
14
  __exportStar(require("./display"), exports);
15
+ __exportStar(require("./firebase"), exports);
16
+ __exportStar(require("./shopify"), exports);
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyB;AACzB,4CAAyB;AACzB,6CAA0B;AAC1B,4CAAyB"}