@agnostack/next-shopify 1.6.0 → 1.7.0-alpha.2
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 +85 -4
- package/dist/handlers/api.d.ts +5 -0
- package/dist/handlers/api.js +19 -7
- package/dist/handlers/api.js.map +1 -1
- package/dist/handlers/ssr.js +7 -6
- package/dist/handlers/ssr.js.map +1 -1
- package/dist/helpers/auth.js +2 -5
- package/dist/helpers/auth.js.map +1 -1
- package/dist/helpers/callback.d.ts +1 -1
- package/dist/helpers/callback.js +25 -19
- package/dist/helpers/callback.js.map +1 -1
- package/dist/helpers/graph.js +5 -4
- package/dist/helpers/graph.js.map +1 -1
- package/dist/helpers/rest.js +6 -4
- package/dist/helpers/rest.js.map +1 -1
- package/dist/helpers/uninstall.d.ts +4 -5
- package/dist/helpers/uninstall.js +31 -17
- package/dist/helpers/uninstall.js.map +1 -1
- package/dist/utils/billing.d.ts +9 -5
- package/dist/utils/billing.js +70 -23
- package/dist/utils/billing.js.map +1 -1
- package/dist/utils/constants.js +39 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/errors.d.ts +12 -0
- package/dist/utils/errors.js +16 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/firebase.js +6 -0
- package/dist/utils/firebase.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/session.d.ts +14 -0
- package/dist/utils/session.js +86 -0
- package/dist/utils/session.js.map +1 -0
- package/dist/utils/shopify-api-node/beginAuth.d.ts +2 -5
- package/dist/utils/shopify-api-node/beginAuth.js +17 -10
- package/dist/utils/shopify-api-node/beginAuth.js.map +1 -1
- package/dist/utils/shopify.d.ts +2 -83
- package/dist/utils/shopify.js +13 -99
- package/dist/utils/shopify.js.map +1 -1
- package/dist/utils/webhooks.d.ts +1 -0
- package/dist/utils/webhooks.js +22 -0
- package/dist/utils/webhooks.js.map +1 -0
- package/dist/withShopify.js +12 -8
- package/dist/withShopify.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,96 @@
|
|
|
1
|
-
# [1.
|
|
1
|
+
# [1.7.0-alpha.2](https://github.com/agnostack/next-shopify/compare/v1.7.0-alpha.1...v1.7.0-alpha.2) (2023-05-22)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Bug Fixes
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* updates for rawBodyConfig ([69a177b](https://github.com/agnostack/next-shopify/commit/69a177b014a1c28091047d5644f9ecee769893e8))
|
|
7
|
+
|
|
8
|
+
# [1.7.0-alpha.1](https://github.com/agnostack/next-shopify/compare/v1.6.0...v1.7.0-alpha.1) (2023-05-22)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* add logging ([265411d](https://github.com/agnostack/next-shopify/commit/265411d490c58ea6bb7eef4e99af2f660f535903))
|
|
14
|
+
* add logging ([705576c](https://github.com/agnostack/next-shopify/commit/705576cfd57e55e42e052a6c514c985d4807e751))
|
|
15
|
+
* add logging ([de1a42a](https://github.com/agnostack/next-shopify/commit/de1a42a8d9419e368f1f03c7959b2182008484f8))
|
|
16
|
+
* add logging ([de906bc](https://github.com/agnostack/next-shopify/commit/de906bc1c53bb925665e9b8e3fa6b0fe96d11015))
|
|
17
|
+
* add logging ([f83f67c](https://github.com/agnostack/next-shopify/commit/f83f67c841008e89155c7daf524590c85f4434db))
|
|
18
|
+
* add logging ([937c9b9](https://github.com/agnostack/next-shopify/commit/937c9b91c10438c770885cada2751acd41004686))
|
|
19
|
+
* add logging ([129c949](https://github.com/agnostack/next-shopify/commit/129c9495989a3b4f0baa11a1b4fc413752af3998))
|
|
20
|
+
* add logging ([d6ed80a](https://github.com/agnostack/next-shopify/commit/d6ed80a18daef00d78f4811d64ac166bef066261))
|
|
21
|
+
* add logging ([d8b9c87](https://github.com/agnostack/next-shopify/commit/d8b9c878f6d547c57a601961ef74dd1d4fa99c56))
|
|
22
|
+
* add logging ([7678d08](https://github.com/agnostack/next-shopify/commit/7678d08b51cfb5d744d61e7946f228adbc19db6f))
|
|
23
|
+
* add logging ([6d615ed](https://github.com/agnostack/next-shopify/commit/6d615edc85b58b84e0055d04d1af6326ed4a34f0))
|
|
24
|
+
* add logging ([cffd724](https://github.com/agnostack/next-shopify/commit/cffd7248ddf0430b7b98dffdaa9c10919dc5d641))
|
|
25
|
+
* add logging ([c6aed0d](https://github.com/agnostack/next-shopify/commit/c6aed0d600b871bed88bcd19183e2431b675235d))
|
|
26
|
+
* add logging ([5ddffee](https://github.com/agnostack/next-shopify/commit/5ddffeef58bc9fa7c7670bcfdd003abfe060e8f7))
|
|
27
|
+
* add logging ([645ebcd](https://github.com/agnostack/next-shopify/commit/645ebcda460f68ac7e74f2478b08a0b2f513487b))
|
|
28
|
+
* add logging ([323b262](https://github.com/agnostack/next-shopify/commit/323b26274ac308b42f12b4d0edc4beb64ae736d3))
|
|
29
|
+
* add logging ([ef561cc](https://github.com/agnostack/next-shopify/commit/ef561cc4b1006aed5d8b2f58bd2feebf500a42c5))
|
|
30
|
+
* add logging ([d1464f9](https://github.com/agnostack/next-shopify/commit/d1464f93838a404cdff02ed3d4667970d219bf88))
|
|
31
|
+
* add logging ([327f694](https://github.com/agnostack/next-shopify/commit/327f6943b13813232d4a4c690b8b5a06a6357b77))
|
|
32
|
+
* add logging ([96d6ee0](https://github.com/agnostack/next-shopify/commit/96d6ee097b0fa5628c8f0e1eecef07741f1a30e1))
|
|
33
|
+
* add logging ([f64a3a0](https://github.com/agnostack/next-shopify/commit/f64a3a0914f121306c0dfb83a234635489a0950b))
|
|
34
|
+
* add logging ([cd5bade](https://github.com/agnostack/next-shopify/commit/cd5badec1bf62e8b717862e3360d36b0822645dd))
|
|
35
|
+
* add logging ([165e10d](https://github.com/agnostack/next-shopify/commit/165e10dc6bdb49a8d5d7e886e1fd2118a9348600))
|
|
36
|
+
* add logging ([90f2f93](https://github.com/agnostack/next-shopify/commit/90f2f9319a2d7e59e756ea556fa6dc9526fa8ac1))
|
|
37
|
+
* add logging ([7b3db91](https://github.com/agnostack/next-shopify/commit/7b3db91448e5c5de207cf6f4f501755b50d612ca))
|
|
38
|
+
* add logging ([e9fc407](https://github.com/agnostack/next-shopify/commit/e9fc40732b06eae38491475c2919b445bab74c7b))
|
|
39
|
+
* add logging ([6607c9b](https://github.com/agnostack/next-shopify/commit/6607c9b6a424a2cc66c0a906ff437da376f8ee09))
|
|
40
|
+
* add logging ([1423104](https://github.com/agnostack/next-shopify/commit/142310458b0c10a35ceed3f93d38180b8e3a1724))
|
|
41
|
+
* add logging ([f6660cc](https://github.com/agnostack/next-shopify/commit/f6660cc569a08fc9dc8fdabeb3b71c70d4d388d5))
|
|
42
|
+
* add logging ([78de0db](https://github.com/agnostack/next-shopify/commit/78de0db8e187438813eda6c08a70cf24ac4f8ed3))
|
|
43
|
+
* add logging ([6b0372a](https://github.com/agnostack/next-shopify/commit/6b0372a0280408c9db5280d57781a7c237759aeb))
|
|
44
|
+
* add logging ([308917a](https://github.com/agnostack/next-shopify/commit/308917a5f8dcd4518a379d0e008c6668b09555d9))
|
|
45
|
+
* add logging ([a29588d](https://github.com/agnostack/next-shopify/commit/a29588df55baed13aa76cfea155558bf7eb8f5d7))
|
|
46
|
+
* add logging ([030fb20](https://github.com/agnostack/next-shopify/commit/030fb20dd456d08235b504c5fd818a1ab55a1670))
|
|
47
|
+
* add logging ([68480c4](https://github.com/agnostack/next-shopify/commit/68480c41582219449918f2a8456e5d9fbdac6a82))
|
|
48
|
+
* add logging ([c52baf1](https://github.com/agnostack/next-shopify/commit/c52baf1fa3eab2e3a05bc5ed1e1272c3053e3fdb))
|
|
49
|
+
* add logging ([52be76a](https://github.com/agnostack/next-shopify/commit/52be76ad59f4f2f8e32cb18c1a9463f5908dc027))
|
|
50
|
+
* add logging ([bfe8015](https://github.com/agnostack/next-shopify/commit/bfe8015cecf5be46e2d226f54bf973c3ff08c9a7))
|
|
51
|
+
* add logging ([963f987](https://github.com/agnostack/next-shopify/commit/963f987c0ea2c3bb3c527b51b365be779fd8aa5e))
|
|
52
|
+
* add logging ([f5f8808](https://github.com/agnostack/next-shopify/commit/f5f8808069be00a2e6406f72ef34606ded0685be))
|
|
53
|
+
* add logging ([7b60454](https://github.com/agnostack/next-shopify/commit/7b604542595f2a3dd97b74d0b2a1f2d8721da04b))
|
|
54
|
+
* add logging ([f7f684d](https://github.com/agnostack/next-shopify/commit/f7f684d3a0f42cedb00cbadd3a2a2ac4a712b45b))
|
|
55
|
+
* add logging ([f0aff34](https://github.com/agnostack/next-shopify/commit/f0aff340e365d09caed8001ea912d93c91bba4cd))
|
|
56
|
+
* add logging ([430d57e](https://github.com/agnostack/next-shopify/commit/430d57e35fabcf37676e3271e02ef48821b9ee8a))
|
|
57
|
+
* add logging ([d73470f](https://github.com/agnostack/next-shopify/commit/d73470f995f12fb947bdfed550b64cac43f5ba93))
|
|
58
|
+
* add logging ([481a9cb](https://github.com/agnostack/next-shopify/commit/481a9cb814410290c62c74c01acfbe76564c05f2))
|
|
59
|
+
* add logging ([9ebb589](https://github.com/agnostack/next-shopify/commit/9ebb5893134bd5709cd229a1f1706c0268cbe4c2))
|
|
60
|
+
* add logging ([3cf8d24](https://github.com/agnostack/next-shopify/commit/3cf8d2493bbbd7d73ca668e0852699fb9f14d50e))
|
|
61
|
+
* add logging ([a33718e](https://github.com/agnostack/next-shopify/commit/a33718e6eca757ff340262c12242725941d3ad6b))
|
|
62
|
+
* add logging ([36d473a](https://github.com/agnostack/next-shopify/commit/36d473ae77e8ef255f4b610ebc01a354a107157e))
|
|
63
|
+
* add logging ([0a6848f](https://github.com/agnostack/next-shopify/commit/0a6848f1dd51cda45ba75e950bcdcb40387905dc))
|
|
64
|
+
* add logging ([831f4d9](https://github.com/agnostack/next-shopify/commit/831f4d9cc72b4b16bf829344bdfc7a60b5c0c1d9))
|
|
65
|
+
* add logging ([9d725f6](https://github.com/agnostack/next-shopify/commit/9d725f604de8e270ebc4aa539da0232936f3d40e))
|
|
66
|
+
* add logging ([95718c1](https://github.com/agnostack/next-shopify/commit/95718c17c2dfec8c548004b28e652bbd31085c9c))
|
|
67
|
+
* add logging ([37d6d95](https://github.com/agnostack/next-shopify/commit/37d6d95da5ff54eeef48a16de3d7664d7f57695f))
|
|
68
|
+
* add logging ([c44158b](https://github.com/agnostack/next-shopify/commit/c44158be1c9afd151e7b77fbf5eee3061eac8276))
|
|
69
|
+
* add logging ([1114232](https://github.com/agnostack/next-shopify/commit/1114232b163c674c38c1ff590a06a26692579dcc))
|
|
70
|
+
* add logging ([118103c](https://github.com/agnostack/next-shopify/commit/118103c5e2925729758286b0756b81e68c23de2e))
|
|
71
|
+
* add logging ([51a1359](https://github.com/agnostack/next-shopify/commit/51a1359da93329a1eac494d928780a9d44820a05))
|
|
72
|
+
* add logging 2 ([9d5135a](https://github.com/agnostack/next-shopify/commit/9d5135a4ed8ca167c2d47f43512bc3104955c877))
|
|
73
|
+
* add logging 2 ([6a90e72](https://github.com/agnostack/next-shopify/commit/6a90e72ab4df36f1bfdd4c541ee7b17c1a2ff2d1))
|
|
74
|
+
* add logging 3 ([f226a38](https://github.com/agnostack/next-shopify/commit/f226a38fbf8a3b1203ec126e78e16d080463cb04))
|
|
75
|
+
* add logging 3 ([7985cae](https://github.com/agnostack/next-shopify/commit/7985caebed56e2d81db67240e27b4207906588c0))
|
|
76
|
+
* add logging 3 ([0f298a8](https://github.com/agnostack/next-shopify/commit/0f298a893320566b05068f03021cbea468314bf8))
|
|
77
|
+
* add logging 3 ([e837d01](https://github.com/agnostack/next-shopify/commit/e837d0187a25cacd0096d7e0df2244909567dd7f))
|
|
78
|
+
* add logging 3 ([e01329b](https://github.com/agnostack/next-shopify/commit/e01329b6377afb9878b81c1d69aea95e3dcd945c))
|
|
79
|
+
* add logging 3 ([a256e9f](https://github.com/agnostack/next-shopify/commit/a256e9f3b97c3474055344f00bb97f45a64231d2))
|
|
80
|
+
* added new query ([576a4d3](https://github.com/agnostack/next-shopify/commit/576a4d30d769902eaaa75b611e2312926f4a8858))
|
|
81
|
+
* cleanup ([383ee16](https://github.com/agnostack/next-shopify/commit/383ee1610b555c006bb99a2f5110af6b8e28cd30))
|
|
82
|
+
* linting ([8edb6f5](https://github.com/agnostack/next-shopify/commit/8edb6f56b5554b28874563c75a3f0a367acfe462))
|
|
83
|
+
* updated to add APP_ID as param ([93f355f](https://github.com/agnostack/next-shopify/commit/93f355f7190516e640a538adaaf9b76377bb9a34))
|
|
7
84
|
|
|
8
85
|
|
|
9
86
|
### Features
|
|
10
87
|
|
|
11
|
-
*
|
|
12
|
-
*
|
|
88
|
+
* add logging ([dcaf35a](https://github.com/agnostack/next-shopify/commit/dcaf35a49546e2d80484439a7acdaa645e911b77))
|
|
89
|
+
* add logging ([5330b23](https://github.com/agnostack/next-shopify/commit/5330b233fec7d33c2fdb8d785e910c70084a4b1b))
|
|
90
|
+
* add logs ([aa77546](https://github.com/agnostack/next-shopify/commit/aa7754605f893028efb4a94fab9fd3f9076a8dca))
|
|
91
|
+
|
|
92
|
+
# [1.6.0](https://github.com/agnostack/next-shopify/compare/v1.5.4...v1.6.0) (2023-05-19)
|
|
93
|
+
|
|
13
94
|
|
|
14
95
|
## [1.5.4](https://github.com/agnostack/next-shopify/compare/v1.5.3...v1.5.4) (2022-12-13)
|
|
15
96
|
|
package/dist/handlers/api.d.ts
CHANGED
|
@@ -3,3 +3,8 @@ export function handleGraph(serverRuntimeConfig: any): (req: any, res: any, para
|
|
|
3
3
|
export function handleAuth(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
4
4
|
export function handleCallback(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
5
5
|
export function handleAppUninstalled(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
6
|
+
export namespace rawBodyConfig {
|
|
7
|
+
namespace api {
|
|
8
|
+
const bodyParser: boolean;
|
|
9
|
+
}
|
|
10
|
+
}
|
package/dist/handlers/api.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handleAppUninstalled = exports.handleCallback = exports.handleAuth = exports.handleGraph = exports.handleRest = void 0;
|
|
6
|
+
exports.rawBodyConfig = exports.handleAppUninstalled = exports.handleCallback = exports.handleAuth = exports.handleGraph = exports.handleRest = void 0;
|
|
7
|
+
const raw_body_1 = __importDefault(require("raw-body"));
|
|
4
8
|
// NOTE: api routes do NOT work in `next export`
|
|
5
9
|
const shopify_api_1 = require("@shopify/shopify-api");
|
|
6
10
|
const helpers_1 = require("../helpers");
|
|
@@ -75,12 +79,20 @@ const handleCallback = (serverRuntimeConfig) => async (req, res) => {
|
|
|
75
79
|
exports.handleCallback = handleCallback;
|
|
76
80
|
// NOTE: typically handling: "/api/webhooks/app/uninstalled"
|
|
77
81
|
const handleAppUninstalled = (serverRuntimeConfig) => async (req, res) => {
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
return
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
// NOTE raw request body is required for Shopify webhook validation
|
|
83
|
+
const rawBody = await raw_body_1.default(req).catch((error) => {
|
|
84
|
+
console.error('Error extracting raw body', error);
|
|
85
|
+
// HMMMM: dont think we can return a 500 here (vs a 200 w/ an error object)
|
|
86
|
+
return res.status(500).send('Unable to get request body');
|
|
87
|
+
});
|
|
88
|
+
// NOTE Shopify webhook processers will automatically return the response
|
|
89
|
+
return helpers_1.uninstallHelper({ rawBody, req, res, serverRuntimeConfig });
|
|
84
90
|
};
|
|
85
91
|
exports.handleAppUninstalled = handleAppUninstalled;
|
|
92
|
+
// NOTE raw request body is required for Shopify webhook validation
|
|
93
|
+
exports.rawBodyConfig = {
|
|
94
|
+
api: {
|
|
95
|
+
bodyParser: false,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
86
98
|
//# sourceMappingURL=api.js.map
|
package/dist/handlers/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/handlers/api.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/handlers/api.js"],"names":[],"mappings":"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"}
|
package/dist/handlers/ssr.js
CHANGED
|
@@ -13,7 +13,7 @@ const wrapRoute = () => ({ res, query, locale } = {}, data) => {
|
|
|
13
13
|
};
|
|
14
14
|
exports.wrapRoute = wrapRoute;
|
|
15
15
|
const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) => {
|
|
16
|
-
var _a, _b, _c, _d
|
|
16
|
+
var _a, _b, _c, _d;
|
|
17
17
|
const { PAGE_PATHS } = props;
|
|
18
18
|
const shop = (_a = query === null || query === void 0 ? void 0 : query.shop) !== null && _a !== void 0 ? _a : (_b = req.query) === null || _b === void 0 ? void 0 : _b.shop;
|
|
19
19
|
const embedded = (_c = query === null || query === void 0 ? void 0 : query.embedded) !== null && _c !== void 0 ? _c : (_d = req.query) === null || _d === void 0 ? void 0 : _d.embedded;
|
|
@@ -27,10 +27,11 @@ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) =
|
|
|
27
27
|
},
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
const shopify = utils_1.getInitializedShopify(props, shop);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
const shopify = await utils_1.getInitializedShopify(props, shop);
|
|
31
|
+
const sessionStorage = utils_1.getSessionStorage(shopify, props, shop);
|
|
32
|
+
const existingSessions = await sessionStorage.find(shop);
|
|
33
|
+
if (utils_1.arrayEmpty(existingSessions)) {
|
|
34
|
+
const emptySessionUrl = await utils_1.getRedirectUrl(props, {
|
|
34
35
|
req,
|
|
35
36
|
res,
|
|
36
37
|
query,
|
|
@@ -43,7 +44,7 @@ const protectRoute = (props) => async ({ req, res, query, locale } = {}, data) =
|
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
if (embedded !== '1') {
|
|
46
|
-
const embeddedappUrl = shopify.
|
|
47
|
+
const embeddedappUrl = await shopify.auth.getEmbeddedAppUrl({ rawRequest: req, rawResponse: res });
|
|
47
48
|
return {
|
|
48
49
|
redirect: {
|
|
49
50
|
destination: embeddedappUrl,
|
package/dist/handlers/ssr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.js","sourceRoot":"","sources":["../../src/handlers/ssr.js"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ssr.js","sourceRoot":"","sources":["../../src/handlers/ssr.js"],"names":[],"mappings":";;;AAAA,oCASiB;AAEjB,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAClC,sBAAc,CAAC,IAAI,CAAC;IAClB,CAAC,CAAC,0DAA0D,IAAI,GAAG;IACnE,CAAC,CAAC,yBAAyB,CAC9B,CAAA;AAEM,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;IACnE,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAC,CAAA;IAExE,OAAO;QACL,KAAK,EAAE,mBAAW,iBAChB,MAAM,IACH,IAAI,EACP;KACH,CAAA;AACH,CAAC,CAAA;AATY,QAAA,SAAS,aASrB;AAEM,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;IAC5B,MAAM,IAAI,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,IAAI,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,MAAA,GAAG,CAAC,KAAK,0CAAE,QAAQ,CAAA;IAEvD,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;IAEjE,IAAI,mBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,wBAAgB,CAAC,KAAK,CAAC,0CAA0C,CAAA;QACjG,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,SAAS;gBACtB,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,MAAM,OAAO,GAAG,MAAM,6BAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACxD,MAAM,cAAc,GAAG,yBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC9D,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAExD,IAAI,kBAAU,CAAC,gBAAgB,CAAC,EAAE;QAChC,MAAM,eAAe,GAAG,MAAM,sBAAc,CAAC,KAAK,EAAE;YAClD,GAAG;YACH,GAAG;YACH,KAAK;SACN,CAAC,CAAA;QAEF,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,IAAI,QAAQ,KAAK,GAAG,EAAE;QACpB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QAElG,OAAO;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,cAAc;gBAC3B,SAAS,EAAE,KAAK;aACjB;SACF,CAAA;KACF;IAED,OAAO;QACL,KAAK,EAAE,mBAAW,iBAChB,MAAM,IACH,IAAI,EACP;KACH,CAAA;AACH,CAAC,CAAA;AArDY,QAAA,YAAY,gBAqDxB"}
|
package/dist/helpers/auth.js
CHANGED
|
@@ -3,13 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const utils_1 = require("../utils");
|
|
4
4
|
const authHelper = async ({ req, res, serverRuntimeConfig }) => {
|
|
5
5
|
try {
|
|
6
|
-
const
|
|
7
|
-
req,
|
|
8
|
-
res,
|
|
9
|
-
});
|
|
6
|
+
const redirectUrl = await utils_1.getRedirectUrl(serverRuntimeConfig, { req, res, registerHandlers: true });
|
|
10
7
|
return {
|
|
11
8
|
statusCode: 302,
|
|
12
|
-
redirectUrl
|
|
9
|
+
redirectUrl,
|
|
13
10
|
};
|
|
14
11
|
}
|
|
15
12
|
catch (error) {
|
package/dist/helpers/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/helpers/auth.js"],"names":[],"mappings":";;AAAA,oCAAyC;AAEzC,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;IAC7D,IAAI;QACF,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/helpers/auth.js"],"names":[],"mappings":";;AAAA,oCAAyC;AAEzC,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;IAC7D,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,sBAAc,CAAC,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;QAEnG,OAAO;YACL,UAAU,EAAE,GAAG;YACf,WAAW;SACZ,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,YAAY,GAAG,2BAA2B,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAElC,OAAO;YACL,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,YAAY;SACtB,CAAA;KACF;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAA"}
|
package/dist/helpers/callback.js
CHANGED
|
@@ -4,7 +4,9 @@ const shopify_api_1 = require("@shopify/shopify-api");
|
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
const callbackHelper = async ({ req, res, serverRuntimeConfig }) => {
|
|
6
6
|
var _a;
|
|
7
|
-
|
|
7
|
+
// TODO enable billing management
|
|
8
|
+
// const { PAGE_PATHS, PAYMENT_CONFIG } = serverRuntimeConfig
|
|
9
|
+
const { PAGE_PATHS } = serverRuntimeConfig;
|
|
8
10
|
const { shop, host } = req.query;
|
|
9
11
|
if (utils_1.stringEmpty(shop) || utils_1.stringEmpty(host)) {
|
|
10
12
|
return {
|
|
@@ -14,44 +16,48 @@ const callbackHelper = async ({ req, res, serverRuntimeConfig }) => {
|
|
|
14
16
|
}
|
|
15
17
|
let redirectUrl;
|
|
16
18
|
try {
|
|
17
|
-
const shopify = utils_1.getInitializedShopify(serverRuntimeConfig, shop);
|
|
18
|
-
const
|
|
19
|
-
|
|
19
|
+
const shopify = await utils_1.getInitializedShopify(serverRuntimeConfig, shop);
|
|
20
|
+
const sessionStorage = utils_1.getSessionStorage(shopify, serverRuntimeConfig, shop);
|
|
21
|
+
const authPayload = { rawRequest: req, rawResponse: res };
|
|
22
|
+
const { session } = await shopify.auth.callback(authPayload);
|
|
23
|
+
await sessionStorage.store(session.toObject());
|
|
24
|
+
await shopify.webhooks.register({ session });
|
|
20
25
|
// TODO: explore objectToQuerystring
|
|
21
|
-
const embeddedURL =
|
|
26
|
+
const embeddedURL = await shopify.auth.getEmbeddedAppUrl(authPayload);
|
|
22
27
|
redirectUrl = `${embeddedURL}?${new URLSearchParams(req.query).toString()}`;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
28
|
+
// TODO enable billing management
|
|
29
|
+
// if (PAYMENT_CONFIG?.required) {
|
|
30
|
+
// const billingManager = new BillingManager(shopify, session, serverRuntimeConfig)
|
|
31
|
+
// const confirmationUrl = await billingManager.ensureBilling()
|
|
32
|
+
// if (stringNotEmpty(confirmationUrl)) {
|
|
33
|
+
// redirectUrl = confirmationUrl
|
|
34
|
+
// }
|
|
35
|
+
// }
|
|
30
36
|
}
|
|
31
37
|
catch (error) {
|
|
32
38
|
const errorMessage = 'Error handling callback route';
|
|
33
39
|
switch (true) {
|
|
34
|
-
|
|
35
|
-
case error instanceof shopify_api_1.
|
|
36
|
-
console.error(`${errorMessage}. Cookie
|
|
37
|
-
redirectUrl = utils_1.getRedirectUrl(serverRuntimeConfig, {
|
|
40
|
+
// TODO implement a custom SessionNotFound error
|
|
41
|
+
case error instanceof shopify_api_1.CookieNotFound: {
|
|
42
|
+
console.error(`${errorMessage}. Cookie Error`, error);
|
|
43
|
+
redirectUrl = await utils_1.getRedirectUrl(serverRuntimeConfig, {
|
|
38
44
|
req,
|
|
39
45
|
res,
|
|
40
46
|
});
|
|
41
47
|
break;
|
|
42
48
|
}
|
|
43
|
-
case error instanceof shopify_api_1.
|
|
49
|
+
case error instanceof shopify_api_1.BillingError: {
|
|
44
50
|
console.error(`${errorMessage}. Billing Error ${error.message}`, error.errorData);
|
|
45
51
|
redirectUrl = `/error?code=${utils_1.ERROR_CODES.BILLING}`;
|
|
46
52
|
break;
|
|
47
53
|
}
|
|
48
|
-
case error instanceof shopify_api_1.
|
|
54
|
+
case error instanceof shopify_api_1.GraphqlQueryError: {
|
|
49
55
|
const errorMessages = utils_1.ensureArray((_a = error.response) === null || _a === void 0 ? void 0 : _a.errors).map(({ message }) => utils_1.ensureString(message));
|
|
50
56
|
console.error(`${errorMessage}. GraphqlQuery Error ${errorMessages.join('. ')}`);
|
|
51
57
|
redirectUrl = `/error?code=${utils_1.ERROR_CODES.QUERY}`;
|
|
52
58
|
break;
|
|
53
59
|
}
|
|
54
|
-
case error instanceof shopify_api_1.
|
|
60
|
+
case error instanceof shopify_api_1.InvalidOAuthError: {
|
|
55
61
|
console.error(`${errorMessage}. InvalidOAuth Error`, error);
|
|
56
62
|
redirectUrl = `/error?code=${utils_1.ERROR_CODES.OAUTH}`;
|
|
57
63
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/helpers/callback.js"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/helpers/callback.js"],"names":[],"mappings":"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"}
|
package/dist/helpers/graph.js
CHANGED
|
@@ -28,8 +28,9 @@ const graphHelper = async ({ req, res, params, serverRuntimeConfig }) => {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
try {
|
|
31
|
-
const
|
|
32
|
-
const
|
|
31
|
+
const shopify = await utils_1.getInitializedShopify(serverRuntimeConfig, shop);
|
|
32
|
+
const session = await utils_1.getVerifiedSession({ req, res, shop, shopify, serverRuntimeConfig });
|
|
33
|
+
const client = new shopify.clients.Graphql({ session });
|
|
33
34
|
const response = await client.query(Object.assign(Object.assign({ data: graphVariables ? {
|
|
34
35
|
query: graphQuery,
|
|
35
36
|
variables: graphVariables,
|
|
@@ -46,14 +47,14 @@ const graphHelper = async ({ req, res, params, serverRuntimeConfig }) => {
|
|
|
46
47
|
console.error(`${errorMessage}. Authentication Error`, error);
|
|
47
48
|
return utils_1.getAuthErrorResponse({ error, shop, serverRuntimeConfig });
|
|
48
49
|
}
|
|
49
|
-
case error instanceof shopify_api_1.
|
|
50
|
+
case error instanceof shopify_api_1.BillingError: {
|
|
50
51
|
console.error(`${errorMessage}. Billing Error - ${error.message}`, error.errorData);
|
|
51
52
|
return {
|
|
52
53
|
statusCode: 500,
|
|
53
54
|
message: errorMessage,
|
|
54
55
|
};
|
|
55
56
|
}
|
|
56
|
-
case error instanceof shopify_api_1.
|
|
57
|
+
case error instanceof shopify_api_1.GraphqlQueryError: {
|
|
57
58
|
const errorMessages = utils_1.ensureArray((_a = error.response) === null || _a === void 0 ? void 0 : _a.errors).map(({ message }) => utils_1.ensureString(message));
|
|
58
59
|
console.error(`${errorMessage}. ${errorMessages.join('. ')}`);
|
|
59
60
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/helpers/graph.js"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/helpers/graph.js"],"names":[],"mappings":"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"}
|
package/dist/helpers/rest.js
CHANGED
|
@@ -30,9 +30,11 @@ const restHelper = async ({ req, res, params: _params, serverRuntimeConfig }) =>
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
try {
|
|
33
|
-
|
|
34
|
-
const shopify =
|
|
35
|
-
const
|
|
33
|
+
// TODO do we still need this override?
|
|
34
|
+
// const shopify = await getInitializedShopify(serverRuntimeConfig, shop, '2021-04')
|
|
35
|
+
const shopify = await utils_1.getInitializedShopify(serverRuntimeConfig, shop);
|
|
36
|
+
const session = await utils_1.getVerifiedSession({ req, res, shop, shopify, serverRuntimeConfig });
|
|
37
|
+
const client = new shopify.clients.Rest({ session });
|
|
36
38
|
const response = await client[method](Object.assign({ path,
|
|
37
39
|
query,
|
|
38
40
|
body, type: shopify_api_1.DataType.JSON }, params));
|
|
@@ -48,7 +50,7 @@ const restHelper = async ({ req, res, params: _params, serverRuntimeConfig }) =>
|
|
|
48
50
|
console.error(`${errorMessage}. Authentication Error`, error);
|
|
49
51
|
return utils_1.getAuthErrorResponse({ error, shop, serverRuntimeConfig });
|
|
50
52
|
}
|
|
51
|
-
case error instanceof shopify_api_1.
|
|
53
|
+
case error instanceof shopify_api_1.BillingError: {
|
|
52
54
|
console.error(`${errorMessage}. Billing Error - ${error.message}`, error.errorData);
|
|
53
55
|
return {
|
|
54
56
|
statusCode: 500,
|
package/dist/helpers/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/helpers/rest.js"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/helpers/rest.js"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sDAA6D;AAE7D,oCASiB;AAEjB,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE;IAC9E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;IAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;IAC7B,MAAM,KAMF,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EANX,EACJ,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,EACf,IAAI,OAEW,EADZ,MAAM,cALL,mCAML,CAAgB,CAAA;IACjB,IAAI,KAAK,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,MAAM,CAAA;IAChC,MAAM,IAAI,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,CAAA;IAC/B,MAAM,MAAM,GAAG,oBAAY,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;IAEjE,IAAI,cAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;QAC3B,KAAK,GAAG,2BAAmB,CAAC,KAAK,CAAC,CAAA;KACnC;IAED,IAAI,mBAAW,CAAC,IAAI,CAAC,IAAI,mBAAW,CAAC,IAAI,CAAC,EAAE;QAC1C,OAAO;YACL,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,mBAAmB;SAC7B,CAAA;KACF;IAED,IAAI;QACF,uCAAuC;QACvC,oFAAoF;QACpF,MAAM,OAAO,GAAG,MAAM,6BAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;QACtE,MAAM,OAAO,GAAG,MAAM,0BAAkB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAE1F,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAEpD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,iBACnC,IAAI;YACJ,KAAK;YACL,IAAI,EACJ,IAAI,EAAE,sBAAQ,CAAC,IAAI,IAChB,MAAM,EACT,CAAA;QAEF,OAAO;YACL,UAAU,EAAE,GAAG;YACf,QAAQ;SACT,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,YAAY,GAAG,0BAA0B,CAAA;QAE/C,QAAQ,IAAI,EAAE;YACZ,KAAK,KAAK,YAAY,kCAA0B,CAAC,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,wBAAwB,EAAE,KAAK,CAAC,CAAA;gBAC7D,OAAO,4BAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;aAClE;YAED,KAAK,KAAK,YAAY,0BAAY,CAAC,CAAC;gBAClC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,qBAAqB,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;gBACnF,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,YAAY;iBACtB,CAAA;aACF;YAED,OAAO,CAAC,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;gBAClC,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,YAAY;iBACtB,CAAA;aACF;SACF;KACF;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAA"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export default uninstallHelper;
|
|
2
|
-
declare function uninstallHelper({ req, serverRuntimeConfig }: {
|
|
2
|
+
declare function uninstallHelper({ rawBody, req, res, serverRuntimeConfig }: {
|
|
3
|
+
rawBody: any;
|
|
3
4
|
req: any;
|
|
5
|
+
res: any;
|
|
4
6
|
serverRuntimeConfig: any;
|
|
5
|
-
}): Promise<
|
|
6
|
-
statusCode: number;
|
|
7
|
-
message: string;
|
|
8
|
-
}>;
|
|
7
|
+
}): Promise<any>;
|
|
@@ -1,27 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_1 = require("../utils");
|
|
4
|
-
const uninstallHelper = async ({ req, serverRuntimeConfig }) => {
|
|
5
|
-
var _a, _b, _c, _d;
|
|
4
|
+
const uninstallHelper = async ({ rawBody, req, res, serverRuntimeConfig }) => {
|
|
6
5
|
try {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
await ((_d = (_c = shopify.Context.SESSION_STORAGE) === null || _c === void 0 ? void 0 : _c.deleteSessions) === null || _d === void 0 ? void 0 : _d.call(_c, existingSessions.map((session) => session.id)));
|
|
6
|
+
const shop = req.headers['x-shopify-shop-domain'];
|
|
7
|
+
console.log('uninstallHelper', shop);
|
|
8
|
+
if (!shop) {
|
|
9
|
+
return res.status(400).send('Invalid shop');
|
|
12
10
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const shopify = await utils_1.getInitializedShopify(serverRuntimeConfig, shop);
|
|
12
|
+
const sessionStorage = utils_1.getSessionStorage(shopify, serverRuntimeConfig, shop);
|
|
13
|
+
console.log('sessionStorage:', sessionStorage);
|
|
14
|
+
let response;
|
|
15
|
+
console.log('processing');
|
|
16
|
+
try {
|
|
17
|
+
response = await shopify.webhooks.process({
|
|
18
|
+
rawBody: rawBody.toString(),
|
|
19
|
+
rawRequest: req,
|
|
20
|
+
rawResponse: res,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.log(error.message);
|
|
25
|
+
response = error.response;
|
|
26
|
+
}
|
|
27
|
+
console.log('processed');
|
|
28
|
+
const sessionsIds = await sessionStorage.find(shop);
|
|
29
|
+
console.log('sessionsIds:', sessionsIds);
|
|
30
|
+
if (sessionsIds.length) {
|
|
31
|
+
await sessionStorage.deleteMany(sessionsIds.map(({ id }) => id));
|
|
32
|
+
}
|
|
33
|
+
console.log('success:');
|
|
34
|
+
return response;
|
|
17
35
|
}
|
|
18
36
|
catch (error) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return {
|
|
22
|
-
statusCode: 500,
|
|
23
|
-
message: errorMessage,
|
|
24
|
-
};
|
|
37
|
+
console.log('error:', error);
|
|
38
|
+
return res.status(500).send('Error handling uninstall route');
|
|
25
39
|
}
|
|
26
40
|
};
|
|
27
41
|
exports.default = uninstallHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/helpers/uninstall.js"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/helpers/uninstall.js"],"names":[],"mappings":";;AAAA,oCAAmE;AAEnE,MAAM,eAAe,GAAG,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;IAC3E,IAAI;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;SAC5C;QAED,MAAM,OAAO,GAAG,MAAM,6BAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;QACtE,MAAM,cAAc,GAAG,yBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;QAC5E,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;QAE9C,IAAI,QAAQ,CAAA;QACZ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,IAAI;YACF,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACxC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;gBAC3B,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG;aACjB,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC1B,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;SAC1B;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAExB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;QACxC,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;SACjE;QAED,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,QAAQ,CAAA;KAEhB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;KAC9D;AACH,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
|
package/dist/utils/billing.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
export class BillingManager {
|
|
2
|
-
constructor(session: any, serverRuntimeConfig: any);
|
|
2
|
+
constructor(shopify: any, session: any, serverRuntimeConfig: any);
|
|
3
|
+
shopify: any;
|
|
3
4
|
shop: any;
|
|
5
|
+
graphClient: any;
|
|
6
|
+
session: any;
|
|
4
7
|
accessToken: any;
|
|
5
8
|
appId: any;
|
|
6
9
|
appBaseUrl: any;
|
|
7
10
|
paymentConfig: any;
|
|
8
11
|
isRecurring: boolean;
|
|
9
12
|
ensureBilling(): Promise<any>;
|
|
10
|
-
hasActiveRecurringPayment(
|
|
11
|
-
hasActiveOneTimePayment(
|
|
13
|
+
hasActiveRecurringPayment(): Promise<boolean>;
|
|
14
|
+
hasActiveOneTimePayment(endCursor?: any): any;
|
|
12
15
|
hasActivePayment(): Promise<any>;
|
|
13
16
|
requestPayment(): Promise<any>;
|
|
14
|
-
requestSinglePayment(
|
|
15
|
-
requestRecurringPayment(
|
|
17
|
+
requestSinglePayment(returnUrl: any): Promise<any>;
|
|
18
|
+
requestRecurringPayment(returnUrl: any): Promise<any>;
|
|
16
19
|
}
|
|
20
|
+
export function generatePaymentConfig(): {};
|