@agnostack/next-shopify 2.1.1-alpha.3 → 2.1.1-alpha.30
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 +83 -6
- package/dist/lib/handlers/api/auth.d.ts +1 -1
- package/dist/lib/handlers/api/auth.d.ts.map +1 -1
- package/dist/lib/handlers/api/auth.js +10 -3
- package/dist/lib/handlers/api/auth.js.map +1 -1
- package/dist/lib/handlers/api/billing.d.ts +1 -1
- package/dist/lib/handlers/api/billing.d.ts.map +1 -1
- package/dist/lib/handlers/api/billing.js +52 -43
- package/dist/lib/handlers/api/billing.js.map +1 -1
- package/dist/lib/handlers/api/callback.d.ts +1 -1
- package/dist/lib/handlers/api/callback.d.ts.map +1 -1
- package/dist/lib/handlers/api/callback.js +12 -5
- package/dist/lib/handlers/api/callback.js.map +1 -1
- package/dist/lib/handlers/api/uninstall.d.ts +1 -1
- package/dist/lib/handlers/api/uninstall.d.ts.map +1 -1
- package/dist/lib/handlers/api/uninstall.js +42 -32
- package/dist/lib/handlers/api/uninstall.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.d.ts +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/appInstallation.js +10 -3
- package/dist/lib/handlers/api/verifiable/appInstallation.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/graph.d.ts +1 -1
- package/dist/lib/handlers/api/verifiable/graph.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/graph.js +15 -8
- package/dist/lib/handlers/api/verifiable/graph.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.d.ts +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/proxy.js +16 -10
- package/dist/lib/handlers/api/verifiable/proxy.js.map +1 -1
- package/dist/lib/handlers/api/verifiable/token.d.ts +1 -3
- package/dist/lib/handlers/api/verifiable/token.d.ts.map +1 -1
- package/dist/lib/handlers/api/verifiable/token.js +13 -7
- package/dist/lib/handlers/api/verifiable/token.js.map +1 -1
- package/dist/lib/handlers/api/webhook.d.ts +1 -1
- package/dist/lib/handlers/api/webhook.d.ts.map +1 -1
- package/dist/lib/handlers/api/webhook.js +19 -12
- package/dist/lib/handlers/api/webhook.js.map +1 -1
- package/dist/lib/handlers/ssr/protect.d.ts +0 -2
- package/dist/lib/handlers/ssr/protect.d.ts.map +1 -1
- package/dist/lib/handlers/ssr/protect.js +34 -88
- package/dist/lib/handlers/ssr/protect.js.map +1 -1
- package/dist/lib/utils/session.d.ts +3 -3
- package/dist/lib/utils/session.d.ts.map +1 -1
- package/dist/lib/utils/session.js +105 -90
- package/dist/lib/utils/session.js.map +1 -1
- package/dist/lib/utils/shopify-api-js/oauth.js +1 -1
- package/dist/shared/shopify.d.ts +1 -0
- package/dist/shared/shopify.d.ts.map +1 -1
- package/dist/shared/shopify.js +4 -1
- package/dist/shared/shopify.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,23 +1,100 @@
|
|
|
1
|
-
## [2.1.1-alpha.
|
|
1
|
+
## [2.1.1-alpha.30](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.29...v2.1.1-alpha.30) (2024-11-07)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Bug Fixes
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* debug ([e580c5f](https://github.com/agnostack/next-shopify/commit/e580c5feece2ff717e8da37a5a7e5f36562277c0))
|
|
7
7
|
|
|
8
|
-
## [2.1.1-alpha.
|
|
8
|
+
## [2.1.1-alpha.29](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.28...v2.1.1-alpha.29) (2024-11-07)
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
### Bug Fixes
|
|
12
12
|
|
|
13
|
-
*
|
|
13
|
+
* debug ([feeca33](https://github.com/agnostack/next-shopify/commit/feeca33b83ace12584fa3526874c98e0c3ab35b8))
|
|
14
14
|
|
|
15
|
-
## [2.1.1-alpha.
|
|
15
|
+
## [2.1.1-alpha.28](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.27...v2.1.1-alpha.28) (2024-11-07)
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
### Bug Fixes
|
|
19
19
|
|
|
20
|
-
*
|
|
20
|
+
* debug ([63160c1](https://github.com/agnostack/next-shopify/commit/63160c13b9c1fd1985f7a4ebf294b6c5f6d94063))
|
|
21
|
+
|
|
22
|
+
## [2.1.1-alpha.27](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.26...v2.1.1-alpha.27) (2024-11-07)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* debug ([a36ca02](https://github.com/agnostack/next-shopify/commit/a36ca0264096ab8f3f39d23ee2f4f688eecd924b))
|
|
28
|
+
|
|
29
|
+
## [2.1.1-alpha.26](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.25...v2.1.1-alpha.26) (2024-11-07)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* debug ([37ca8cb](https://github.com/agnostack/next-shopify/commit/37ca8cbd297f716a28386b8abcf3e85968f0f3f5))
|
|
35
|
+
|
|
36
|
+
## [2.1.1-alpha.25](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.24...v2.1.1-alpha.25) (2024-11-07)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* debug ([2ecc57d](https://github.com/agnostack/next-shopify/commit/2ecc57de2972abaf1f99fe1823c2873fa8bc3cbc))
|
|
42
|
+
|
|
43
|
+
## [2.1.1-alpha.24](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.23...v2.1.1-alpha.24) (2024-11-07)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* debug ([3930d28](https://github.com/agnostack/next-shopify/commit/3930d281f615688eb6566f6da3b7df468c70eda6))
|
|
49
|
+
|
|
50
|
+
## [2.1.1-alpha.23](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.22...v2.1.1-alpha.23) (2024-11-07)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
### Bug Fixes
|
|
54
|
+
|
|
55
|
+
* debug ([ce11c51](https://github.com/agnostack/next-shopify/commit/ce11c51a307e7acc58a72add1a575e3d8b1edcde))
|
|
56
|
+
|
|
57
|
+
## [2.1.1-alpha.22](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.21...v2.1.1-alpha.22) (2024-11-07)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Bug Fixes
|
|
61
|
+
|
|
62
|
+
* debug ([5c7388e](https://github.com/agnostack/next-shopify/commit/5c7388e05d6a47a6666d51001cbc8256a2bdf3be))
|
|
63
|
+
|
|
64
|
+
## [2.1.1-alpha.21](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.20...v2.1.1-alpha.21) (2024-11-07)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
### Bug Fixes
|
|
68
|
+
|
|
69
|
+
* debug ([17f09d7](https://github.com/agnostack/next-shopify/commit/17f09d731effddedd0c60299de61fba41a0ae3ce))
|
|
70
|
+
|
|
71
|
+
## [2.1.1-alpha.20](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.19...v2.1.1-alpha.20) (2024-11-06)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Bug Fixes
|
|
75
|
+
|
|
76
|
+
* debug ([3ade098](https://github.com/agnostack/next-shopify/commit/3ade098dc2ee051e04ab07fd63de6cbd6444443c))
|
|
77
|
+
|
|
78
|
+
## [2.1.1-alpha.19](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.18...v2.1.1-alpha.19) (2024-11-06)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Bug Fixes
|
|
82
|
+
|
|
83
|
+
* debug ([c9ed2ae](https://github.com/agnostack/next-shopify/commit/c9ed2ae8ffdb9e5ef2f9e2229e0436b213d645aa))
|
|
84
|
+
|
|
85
|
+
## [2.1.1-alpha.18](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.17...v2.1.1-alpha.18) (2024-11-06)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
### Bug Fixes
|
|
89
|
+
|
|
90
|
+
* debug ([c28f662](https://github.com/agnostack/next-shopify/commit/c28f66229f57754c07a80b4bf0fce8ec49f598bf))
|
|
91
|
+
|
|
92
|
+
## [2.1.1-alpha.17](https://github.com/agnostack/next-shopify/compare/v2.1.1-alpha.16...v2.1.1-alpha.17) (2024-11-06)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### Bug Fixes
|
|
96
|
+
|
|
97
|
+
* updated changelog ([6325f61](https://github.com/agnostack/next-shopify/commit/6325f614045cd38af72a1f34a0ebe27425bcb250))
|
|
21
98
|
|
|
22
99
|
# [2.1.0](https://github.com/agnostack/next-shopify/compare/v2.0.14...v2.1.0) (2024-10-28)
|
|
23
100
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleAuth(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleAuth(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":"AAYO,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":"AAYO,mHAyDN"}
|
|
@@ -24,8 +24,9 @@ exports.handleAuth = void 0;
|
|
|
24
24
|
const utils_1 = require("../../utils");
|
|
25
25
|
const shared_1 = require("../../../shared");
|
|
26
26
|
// NOTE: typically handling: "/api/auth/online" and "/api/auth/offline"
|
|
27
|
-
const handleAuth = (serverRuntimeConfig) => {
|
|
27
|
+
const handleAuth = (serverRuntimeConfig, data) => {
|
|
28
28
|
const { PAGE_PATHS, API_PATHS, API_URLS, APP_CONFIG, } = serverRuntimeConfig;
|
|
29
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
29
30
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
31
|
var _a;
|
|
31
32
|
const { isOnline } = params !== null && params !== void 0 ? params : {};
|
|
@@ -34,8 +35,14 @@ const handleAuth = (serverRuntimeConfig) => {
|
|
|
34
35
|
const reAuth = (0, shared_1.isTrue)(_reAuth, 'undefined');
|
|
35
36
|
const shopify = (0, utils_1.getInitializedShopify)(serverRuntimeConfig);
|
|
36
37
|
const shop = shopify.utils.sanitizeShop(_shop);
|
|
38
|
+
const handleResponse = (body, statusCode = 307) => {
|
|
39
|
+
if (returnResponse) {
|
|
40
|
+
return res.redirect(statusCode, body);
|
|
41
|
+
}
|
|
42
|
+
return { statusCode, body };
|
|
43
|
+
};
|
|
37
44
|
if ((0, shared_1.stringEmpty)(shop)) {
|
|
38
|
-
return
|
|
45
|
+
return handleResponse(`${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.ERROR]}?code=no_shop_provided&type=handleAuth`);
|
|
39
46
|
}
|
|
40
47
|
if (embedded === '1') {
|
|
41
48
|
const callbackUrl = (0, utils_1.getCallback)(API_URLS, { reAuth, isOnline });
|
|
@@ -43,7 +50,7 @@ const handleAuth = (serverRuntimeConfig) => {
|
|
|
43
50
|
const redirectUriParams = new URLSearchParams(Object.assign({ shop,
|
|
44
51
|
host }, state && { state })).toString();
|
|
45
52
|
const queryParams = new URLSearchParams(Object.assign(Object.assign({}, query), { shop, redirectUri: `${callbackUrl}?${redirectUriParams}` })).toString();
|
|
46
|
-
return
|
|
53
|
+
return handleResponse(`${PAGE_PATHS[shared_1.PAGE_ROUTE_NAMES.EXIT]}?${queryParams}`);
|
|
47
54
|
}
|
|
48
55
|
return (0, utils_1.beginAuth)({
|
|
49
56
|
shop,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAIoB;AACpB,4CAIwB;AAExB,wEAAwE;AACjE,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/auth.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAIoB;AACpB,4CAIwB;AAExB,wEAAwE;AACjE,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,GACX,GAAG,mBAAmB,CAAA;IACvB,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAE5C,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;;QAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QACjC,MAAM,KAAgC,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,EAA/C,EAAE,MAAM,EAAE,OAAO,OAA8B,EAAzB,KAAK,cAA3B,UAA6B,CAAkB,CAAA;QACrD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QACpD,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAE3C,MAAM,OAAO,GAAG,IAAA,6BAAqB,EAAC,mBAAmB,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE9C,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;YAChD,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;aACtC;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;YACrB,OAAO,cAAc,CAAC,GAAG,UAAU,CAAC,yBAAgB,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;SACrG;QAED,IAAI,QAAQ,KAAK,GAAG,EAAE;YACpB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/D,oCAAoC;YACpC,MAAM,iBAAiB,GAAG,IAAI,eAAe,iBAC3C,IAAI;gBACJ,IAAI,IACD,KAAK,IAAI,EAAE,KAAK,EAAE,EACrB,CAAC,QAAQ,EAAE,CAAA;YACb,MAAM,WAAW,GAAG,IAAI,eAAe,iCAClC,KAAK,KACR,IAAI,EACJ,WAAW,EAAE,GAAG,WAAW,IAAI,iBAAiB,EAAE,IAClD,CAAC,QAAQ,EAAE,CAAA;YAEb,OAAO,cAAc,CAAC,GAAG,UAAU,CAAC,yBAAgB,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;SAC7E;QAED,OAAO,IAAA,iBAAS,EAAC;YACf,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,YAAY,EAAE,IAAA,mBAAW,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC1D,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AAzDY,QAAA,UAAU,cAyDtB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleAppBilling(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
1
|
+
export function handleAppBilling(serverRuntimeConfig: any, data: any): (req: any, res: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"AAgBO,
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"AAgBO,4GAqEN"}
|
|
@@ -30,52 +30,61 @@ const TERMINAL_STATUSES = [
|
|
|
30
30
|
'CANCELLED'
|
|
31
31
|
];
|
|
32
32
|
// NOTE: typically handling: "/api/webhooks/app/billing"
|
|
33
|
-
const handleAppBilling = (serverRuntimeConfig
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
33
|
+
const handleAppBilling = (serverRuntimeConfig, data) => {
|
|
34
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
35
|
+
return (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
38
|
+
if (returnResponse) {
|
|
39
|
+
return res.status(statusCode).json(body);
|
|
40
|
+
}
|
|
41
|
+
return { statusCode, body };
|
|
42
|
+
};
|
|
43
|
+
try {
|
|
44
|
+
const { 'x-shop-domain': shopDomain, 'x-shopify-shop-domain': shopifyShopDomain, 'x-shopify-shop': shop = shopifyShopDomain !== null && shopifyShopDomain !== void 0 ? shopifyShopDomain : shopDomain, } = (_a = req.headers) !== null && _a !== void 0 ? _a : {};
|
|
45
|
+
if ((0, shared_1.stringEmpty)(shop)) {
|
|
46
|
+
return handleResponse({ handler: 'billing', error: 'Missing shop' });
|
|
47
|
+
}
|
|
48
|
+
const { shopify, loadSession, updateSession, getVerifiedClients } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
49
|
+
// TODO: explore getVerificationHelpers?
|
|
50
|
+
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
51
|
+
const _c = yield shopify.webhooks.validate({
|
|
52
|
+
rawBody,
|
|
53
|
+
rawRequest: req,
|
|
54
|
+
rawResponse: res,
|
|
55
|
+
}), { valid } = _c, webhookCheck = __rest(_c, ["valid"]);
|
|
56
|
+
if (valid) {
|
|
57
|
+
try {
|
|
58
|
+
let message = 'ignored';
|
|
59
|
+
const [eventType, { status } = {}] = Object.entries((0, shared_1.safeParse)(rawBody || '{}'))[0];
|
|
60
|
+
if ((eventType === shared_1.BILLING_EVENT_TYPES.SUBSCRIPTION) && TERMINAL_STATUSES.includes(status)) {
|
|
61
|
+
const { Rest } = (_b = yield getVerifiedClients()) !== null && _b !== void 0 ? _b : {};
|
|
62
|
+
// NOTE: this deletes the app in the case of subscription apps in a "terminal" state to cover the info in ShopifyApi docs for billing:
|
|
63
|
+
// "Note: the merchant may refuse payment when prompted or cancel subscriptions later on, but the app will already be installed at that point. We recommend using billing webhooks to revoke access for merchants when they cancel / decline payment."
|
|
64
|
+
yield Rest.delete({
|
|
65
|
+
path: '/admin/api_permissions/current.json',
|
|
66
|
+
});
|
|
67
|
+
message = 'deleted';
|
|
68
|
+
}
|
|
69
|
+
if ((serverRuntimeConfig.SHOPIFY_RUN_MODE === 'review') && !TERMINAL_STATUSES.includes(status)) {
|
|
70
|
+
const { id: sessionId } = yield loadSession();
|
|
71
|
+
// NOTE: billingStatus is a custom field we add when we're in review mode to handle reauth billing correctly
|
|
72
|
+
yield updateSession(sessionId, { billingStatus: status });
|
|
73
|
+
}
|
|
74
|
+
return handleResponse({ handler: 'billing', message });
|
|
60
75
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// NOTE: billingStatus is a custom field we add when we're in review mode to handle reauth billing correctly
|
|
64
|
-
yield updateSession(sessionId, { billingStatus: status });
|
|
76
|
+
catch (error) {
|
|
77
|
+
return handleResponse({ handler: 'billing', error: error === null || error === void 0 ? void 0 : error.message });
|
|
65
78
|
}
|
|
66
|
-
return res.status(200).json({ handler: 'billing', message });
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
return res.status(200).json({ handler: 'billing', error: error === null || error === void 0 ? void 0 : error.message });
|
|
70
79
|
}
|
|
80
|
+
console.warn('Unable to validate billing webhook', webhookCheck);
|
|
81
|
+
return handleResponse({ handler: 'billing', error: 'Unable to validate billing webhook' });
|
|
71
82
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
});
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error('Error handling billing', error);
|
|
85
|
+
return handleResponse({ handler: 'billing', error: 'Error handling billing' });
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
};
|
|
80
89
|
exports.handleAppBilling = handleAppBilling;
|
|
81
90
|
//# sourceMappingURL=billing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAIwB;AAExB,MAAM,iBAAiB,GAAG;IACxB,SAAS;IACT,UAAU;IACV,WAAW;CACZ,CAAA;AAED,wDAAwD;AACjD,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/billing.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleCallback(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleCallback(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=callback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"AAgCO,
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"AAgCO,uHAuKN"}
|
|
@@ -19,8 +19,9 @@ const shared_1 = require("../../../shared");
|
|
|
19
19
|
* "/api/auth/online/callback/reauth"
|
|
20
20
|
* "/api/auth/offline/callback/reauth"
|
|
21
21
|
*/
|
|
22
|
-
const handleCallback = (serverRuntimeConfig) => {
|
|
22
|
+
const handleCallback = (serverRuntimeConfig, data) => {
|
|
23
23
|
const { API_PATHS, PAGE_PATHS, PAYMENT_CONFIG, } = serverRuntimeConfig;
|
|
24
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
24
25
|
const prepareWebhookHandlers = (0, utils_1.getPrepareWebhookHandlers)(serverRuntimeConfig);
|
|
25
26
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
27
|
var _a, _b;
|
|
@@ -28,9 +29,15 @@ const handleCallback = (serverRuntimeConfig) => {
|
|
|
28
29
|
const { isOnline, reAuth } = params !== null && params !== void 0 ? params : {};
|
|
29
30
|
const { shop, host, state } = (_a = req.query) !== null && _a !== void 0 ? _a : {};
|
|
30
31
|
const authPayload = { rawRequest: req, rawResponse: res };
|
|
32
|
+
const handleResponse = (body, statusCode = 307) => {
|
|
33
|
+
if (returnResponse) {
|
|
34
|
+
return res.redirect(statusCode, body);
|
|
35
|
+
}
|
|
36
|
+
return { statusCode, body };
|
|
37
|
+
};
|
|
31
38
|
if ((0, shared_1.stringEmpty)(shop) || (0, shared_1.stringEmpty)(host)) {
|
|
32
|
-
// HMMM: why is this a 303 (rather than a 302 or or anything)??
|
|
33
|
-
return
|
|
39
|
+
// HMMM: why is this a 303 (rather than a 302/307 or or anything)??
|
|
40
|
+
return handleResponse(`${errorPath}?code=${shared_1.ERROR_CODES.INVALID_CALLBACK}`, 303);
|
|
34
41
|
}
|
|
35
42
|
let redirectUrl = `${errorPath}?code=invalid_callback_response`;
|
|
36
43
|
let shopify;
|
|
@@ -50,7 +57,7 @@ const handleCallback = (serverRuntimeConfig) => {
|
|
|
50
57
|
if (shouldProcessOfflineAuth) {
|
|
51
58
|
// TODO: explore objectToQuerystring
|
|
52
59
|
const queryParams = new URLSearchParams({ host, shop, state, reAuth, isOnline: false }).toString();
|
|
53
|
-
return
|
|
60
|
+
return handleResponse(`${API_PATHS[shared_1.API_ROUTE_NAMES.AUTH_OFFLINE]}?${queryParams}`);
|
|
54
61
|
}
|
|
55
62
|
if (shouldRegisterWebhooks) {
|
|
56
63
|
let appId;
|
|
@@ -143,7 +150,7 @@ const handleCallback = (serverRuntimeConfig) => {
|
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
}
|
|
146
|
-
return
|
|
153
|
+
return handleResponse(redirectUrl);
|
|
147
154
|
});
|
|
148
155
|
};
|
|
149
156
|
exports.handleCallback = handleCallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAM6B;AAE7B,uCAGoB;AACpB,4CAYwB;AAExB;;;;;EAKE;AACK,MAAM,cAAc,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/callback.js"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleAppUninstalled(serverRuntimeConfig: any): (req: any, res: any) => Promise<any>;
|
|
1
|
+
export function handleAppUninstalled(serverRuntimeConfig: any, data: any): (req: any, res: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"AASO,
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":"AASO,gHAqDN"}
|
|
@@ -25,40 +25,50 @@ const verifyd_1 = require("@agnostack/verifyd");
|
|
|
25
25
|
const utils_1 = require("../../utils");
|
|
26
26
|
const shared_1 = require("../../../shared");
|
|
27
27
|
// NOTE: typically handling: "/api/webhooks/app/uninstalled"
|
|
28
|
-
const handleAppUninstalled = (serverRuntimeConfig
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const { shopify, findSessionIds, deleteSessions } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
36
|
-
// TODO: explore getVerificationHelpers?
|
|
37
|
-
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
38
|
-
const _b = yield shopify.webhooks.validate({
|
|
39
|
-
rawBody,
|
|
40
|
-
rawRequest: req,
|
|
41
|
-
rawResponse: res,
|
|
42
|
-
}), { valid } = _b, webhookCheck = __rest(_b, ["valid"]);
|
|
43
|
-
if (valid) {
|
|
44
|
-
try {
|
|
45
|
-
const sessionsIds = yield findSessionIds(shop);
|
|
46
|
-
if ((0, shared_1.arrayNotEmpty)(sessionsIds)) {
|
|
47
|
-
yield deleteSessions(sessionsIds);
|
|
48
|
-
}
|
|
49
|
-
return res.status(200).json({ handler: 'uninstall', message: 'success' });
|
|
28
|
+
const handleAppUninstalled = (serverRuntimeConfig, data) => {
|
|
29
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
30
|
+
return (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
var _a;
|
|
32
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
33
|
+
if (returnResponse) {
|
|
34
|
+
return res.status(statusCode).json(body);
|
|
50
35
|
}
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
return { statusCode, body };
|
|
37
|
+
};
|
|
38
|
+
try {
|
|
39
|
+
const { 'x-shop-domain': shopDomain, 'x-shopify-shop-domain': shopifyShopDomain, 'x-shopify-shop': shop = shopifyShopDomain !== null && shopifyShopDomain !== void 0 ? shopifyShopDomain : shopDomain, } = (_a = req.headers) !== null && _a !== void 0 ? _a : {};
|
|
40
|
+
if ((0, shared_1.stringEmpty)(shop)) {
|
|
41
|
+
return handleResponse({ handler: 'uninstall', error: 'Missing shop' });
|
|
42
|
+
}
|
|
43
|
+
const { shopify, findSessionIds, deleteSessions } = yield (0, utils_1.getShopifyHelpers)(serverRuntimeConfig, { shop });
|
|
44
|
+
// TODO: explore getVerificationHelpers?
|
|
45
|
+
const rawBody = yield (0, verifyd_1.ensureRawBody)(req);
|
|
46
|
+
const _b = yield shopify.webhooks.validate({
|
|
47
|
+
rawBody,
|
|
48
|
+
rawRequest: req,
|
|
49
|
+
rawResponse: res,
|
|
50
|
+
}), { valid } = _b, webhookCheck = __rest(_b, ["valid"]);
|
|
51
|
+
if (valid) {
|
|
52
|
+
try {
|
|
53
|
+
const sessionsIds = yield findSessionIds(shop);
|
|
54
|
+
if ((0, shared_1.arrayNotEmpty)(sessionsIds)) {
|
|
55
|
+
yield deleteSessions(sessionsIds);
|
|
56
|
+
}
|
|
57
|
+
return handleResponse({ handler: 'uninstall', message: 'success' });
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('Error handling uninstall', error);
|
|
61
|
+
return handleResponse({ handler: 'uninstall', error: (error === null || error === void 0 ? void 0 : error.message) || 'Error handling uninstall' });
|
|
62
|
+
}
|
|
53
63
|
}
|
|
64
|
+
console.warn('Unable to validate uninstall webhook', webhookCheck);
|
|
65
|
+
return handleResponse({ handler: 'uninstall', error: 'Unable to validate uninstall webhook' });
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error('Error handling uninstall', error);
|
|
69
|
+
return handleResponse({ handler: 'uninstall', error: 'Error handling uninstall' });
|
|
54
70
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
console.error('Error handling uninstall', error);
|
|
60
|
-
return res.status(200).json({ handler: 'uninstall', error: 'Error handling uninstall' });
|
|
61
|
-
}
|
|
62
|
-
});
|
|
71
|
+
});
|
|
72
|
+
};
|
|
63
73
|
exports.handleAppUninstalled = handleAppUninstalled;
|
|
64
74
|
//# sourceMappingURL=uninstall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAGwB;AAExB,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/lib/handlers/api/uninstall.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAElD,uCAA+C;AAC/C,4CAGwB;AAExB,4DAA4D;AACrD,MAAM,oBAAoB,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE;IAChE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAE5C,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;;QACxB,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;YAChD,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACzC;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,IAAI;YACF,MAAM,EACJ,eAAe,EAAE,UAAU,EAC3B,uBAAuB,EAAE,iBAAiB,EAC1C,gBAAgB,EAAE,IAAI,GAAG,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,UAAU,GACzD,GAAG,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAA;YAErB,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;gBACrB,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;aACvE;YAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,yBAAiB,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YAE1G,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAA;YACxC,MAAM,KAA6B,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACjE,OAAO;gBACP,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG;aACjB,CAAC,EAJI,EAAE,KAAK,OAIX,EAJgB,YAAY,cAAxB,SAA0B,CAI9B,CAAA;YAEF,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;oBAC9C,IAAI,IAAA,sBAAa,EAAC,WAAW,CAAC,EAAE;wBAC9B,MAAM,cAAc,CAAC,WAAW,CAAC,CAAA;qBAClC;oBACD,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;iBACpE;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;oBAChD,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,0BAA0B,EAAE,CAAC,CAAA;iBACrG;aACF;YAED,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAA;YAClE,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAA;SAC/F;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;YAChD,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;SACnF;IACH,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AArDY,QAAA,oBAAoB,wBAqDhC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleLoadAppInstallation(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleLoadAppInstallation(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=appInstallation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appInstallation.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":"AAIO,
|
|
1
|
+
{"version":3,"file":"appInstallation.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":"AAIO,kIAyBN"}
|
|
@@ -13,12 +13,19 @@ exports.handleLoadAppInstallation = void 0;
|
|
|
13
13
|
const shared_1 = require("../../../../shared");
|
|
14
14
|
const graph_1 = require("./graph");
|
|
15
15
|
// NOTE: typically handling: "/api/admin/installation/[appId]" (called by getUseAppInstallation)
|
|
16
|
-
const handleLoadAppInstallation = (serverRuntimeConfig) => {
|
|
17
|
-
const _handleGraph = (0, graph_1.handleGraph)(serverRuntimeConfig);
|
|
16
|
+
const handleLoadAppInstallation = (serverRuntimeConfig, data) => {
|
|
17
|
+
const _handleGraph = (0, graph_1.handleGraph)(serverRuntimeConfig, data);
|
|
18
|
+
const { returnResponse = true } = data !== null && data !== void 0 ? data : {};
|
|
18
19
|
return (req, res, params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
20
|
const { appId } = params !== null && params !== void 0 ? params : {};
|
|
21
|
+
const handleResponse = (body, statusCode = 200) => {
|
|
22
|
+
if (returnResponse) {
|
|
23
|
+
return res.status(statusCode).json(body);
|
|
24
|
+
}
|
|
25
|
+
return { statusCode, body };
|
|
26
|
+
};
|
|
20
27
|
if ((0, shared_1.stringEmpty)(appId)) {
|
|
21
|
-
return
|
|
28
|
+
return handleResponse({ message: 'Missing required param' }, 412);
|
|
22
29
|
}
|
|
23
30
|
return _handleGraph(req, res, {
|
|
24
31
|
query: shared_1.APP_QUERY.INSTALLATION,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appInstallation.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAsE;AACtE,mCAAqC;AAErC,gGAAgG;AACzF,MAAM,yBAAyB,GAAG,CAAC,mBAAmB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"appInstallation.js","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/appInstallation.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAsE;AACtE,mCAAqC;AAErC,gGAAgG;AACzF,MAAM,yBAAyB,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE;IACrE,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IAC3D,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAE5C,OAAO,CAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAA;QAE9B,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;YAChD,IAAI,cAAc,EAAE;gBAClB,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACzC;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC7B,CAAC,CAAA;QAED,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,CAAA;SAClE;QAED,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;YAC5B,KAAK,EAAE,kBAAS,CAAC,YAAY;YAC7B,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,aAAa,EAAE;YAC/C,SAAS,EAAE,kBAAS,CAAC,SAAS;SAC/B,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,yBAAyB,6BAyBrC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function handleGraph(serverRuntimeConfig: any): (req: any, res: any, params: any) => Promise<any>;
|
|
1
|
+
export function handleGraph(serverRuntimeConfig: any, data: any): (req: any, res: any, params: any) => Promise<any>;
|
|
2
2
|
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"AAmBO,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../../src/lib/handlers/api/verifiable/graph.js"],"names":[],"mappings":"AAmBO,oHAiJN"}
|