@shopify/shopify-api 11.8.1 → 11.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/adapters/mock/mock_test_requests.js +1 -18
- package/dist/cjs/adapters/mock/mock_test_requests.js.map +1 -1
- package/dist/cjs/lib/auth/index.js +2 -0
- package/dist/cjs/lib/auth/index.js.map +1 -1
- package/dist/cjs/lib/auth/oauth/client-credentials.js +43 -0
- package/dist/cjs/lib/auth/oauth/client-credentials.js.map +1 -0
- package/dist/cjs/lib/auth/oauth/create-session.js +25 -28
- package/dist/cjs/lib/auth/oauth/create-session.js.map +1 -1
- package/dist/cjs/lib/billing/check.js +4 -0
- package/dist/cjs/lib/billing/check.js.map +1 -1
- package/dist/cjs/lib/billing/create-usage-record.js +5 -1
- package/dist/cjs/lib/billing/create-usage-record.js.map +1 -1
- package/dist/cjs/lib/billing/subscriptions.js +13 -1
- package/dist/cjs/lib/billing/subscriptions.js.map +1 -1
- package/dist/cjs/lib/billing/update-usage-subscription-capped-amount.js +6 -1
- package/dist/cjs/lib/billing/update-usage-subscription-capped-amount.js.map +1 -1
- package/dist/cjs/lib/billing/utils.js +61 -0
- package/dist/cjs/lib/billing/utils.js.map +1 -0
- package/dist/cjs/lib/clients/index.js +4 -4
- package/dist/cjs/lib/clients/index.js.map +1 -1
- package/dist/cjs/lib/index.js +16 -16
- package/dist/cjs/lib/session/session.js +2 -2
- package/dist/cjs/lib/session/session.js.map +1 -1
- package/dist/cjs/lib/utils/fetch-request.js +4 -4
- package/dist/cjs/lib/utils/fetch-request.js.map +1 -1
- package/dist/cjs/lib/utils/hmac-validator.js +9 -9
- package/dist/cjs/lib/utils/hmac-validator.js.map +1 -1
- package/dist/cjs/lib/utils/shop-admin-url-helper.js +30 -0
- package/dist/cjs/lib/utils/shop-admin-url-helper.js.map +1 -1
- package/dist/cjs/lib/utils/shop-validator.js +7 -1
- package/dist/cjs/lib/utils/shop-validator.js.map +1 -1
- package/dist/cjs/lib/version.js +1 -1
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/adapters/mock/mock_test_requests.mjs +1 -18
- package/dist/esm/adapters/mock/mock_test_requests.mjs.map +1 -1
- package/dist/esm/lib/auth/index.mjs +4 -2
- package/dist/esm/lib/auth/index.mjs.map +1 -1
- package/dist/esm/lib/auth/oauth/client-credentials.mjs +41 -0
- package/dist/esm/lib/auth/oauth/client-credentials.mjs.map +1 -0
- package/dist/esm/lib/auth/oauth/create-session.mjs +25 -28
- package/dist/esm/lib/auth/oauth/create-session.mjs.map +1 -1
- package/dist/esm/lib/auth/oauth/oauth.mjs +1 -1
- package/dist/esm/lib/billing/check.mjs +4 -0
- package/dist/esm/lib/billing/check.mjs.map +1 -1
- package/dist/esm/lib/billing/create-usage-record.mjs +5 -1
- package/dist/esm/lib/billing/create-usage-record.mjs.map +1 -1
- package/dist/esm/lib/billing/subscriptions.mjs +13 -1
- package/dist/esm/lib/billing/subscriptions.mjs.map +1 -1
- package/dist/esm/lib/billing/update-usage-subscription-capped-amount.mjs +6 -1
- package/dist/esm/lib/billing/update-usage-subscription-capped-amount.mjs.map +1 -1
- package/dist/esm/lib/billing/utils.mjs +55 -0
- package/dist/esm/lib/billing/utils.mjs.map +1 -0
- package/dist/esm/lib/clients/admin/graphql/client.mjs +1 -1
- package/dist/esm/lib/clients/admin/rest/client.mjs +1 -1
- package/dist/esm/lib/clients/storefront/client.mjs +1 -1
- package/dist/esm/lib/config.mjs +1 -1
- package/dist/esm/lib/session/index.mjs +1 -1
- package/dist/esm/lib/session/session.mjs +2 -2
- package/dist/esm/lib/session/session.mjs.map +1 -1
- package/dist/esm/lib/utils/index.mjs +3 -3
- package/dist/esm/lib/utils/shop-admin-url-helper.mjs +30 -0
- package/dist/esm/lib/utils/shop-admin-url-helper.mjs.map +1 -1
- package/dist/esm/lib/utils/shop-validator.mjs +8 -2
- package/dist/esm/lib/utils/shop-validator.mjs.map +1 -1
- package/dist/esm/lib/version.mjs +1 -1
- package/dist/esm/lib/webhooks/index.mjs +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ts/lib/auth/index.d.ts +2 -0
- package/dist/ts/lib/auth/index.d.ts.map +1 -1
- package/dist/ts/lib/auth/oauth/client-credentials.d.ts +10 -0
- package/dist/ts/lib/auth/oauth/client-credentials.d.ts.map +1 -0
- package/dist/ts/lib/auth/oauth/create-session.d.ts.map +1 -1
- package/dist/ts/lib/auth/oauth/types.d.ts +8 -0
- package/dist/ts/lib/auth/oauth/types.d.ts.map +1 -1
- package/dist/ts/lib/billing/check.d.ts.map +1 -1
- package/dist/ts/lib/billing/create-usage-record.d.ts.map +1 -1
- package/dist/ts/lib/billing/subscriptions.d.ts.map +1 -1
- package/dist/ts/lib/billing/types.d.ts +14 -0
- package/dist/ts/lib/billing/types.d.ts.map +1 -1
- package/dist/ts/lib/billing/update-usage-subscription-capped-amount.d.ts.map +1 -1
- package/dist/ts/lib/billing/utils.d.ts +13 -0
- package/dist/ts/lib/billing/utils.d.ts.map +1 -0
- package/dist/ts/lib/session/session.d.ts +1 -1
- package/dist/ts/lib/session/session.d.ts.map +1 -1
- package/dist/ts/lib/utils/shop-admin-url-helper.d.ts.map +1 -1
- package/dist/ts/lib/utils/shop-validator.d.ts.map +1 -1
- package/dist/ts/lib/version.d.ts +1 -1
- package/dist/ts/lib/version.d.ts.map +1 -1
- package/dist/ts/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -10
|
@@ -1,23 +1,6 @@
|
|
|
1
1
|
const mockTestRequests = {
|
|
2
2
|
requestList: [],
|
|
3
|
-
responseList: []
|
|
4
|
-
queueResponse(response) {
|
|
5
|
-
this.responseList.push(response);
|
|
6
|
-
},
|
|
7
|
-
queueError(error) {
|
|
8
|
-
this.responseList.push(error);
|
|
9
|
-
},
|
|
10
|
-
getRequest() {
|
|
11
|
-
return this.requestList.shift();
|
|
12
|
-
},
|
|
13
|
-
getResponses() {
|
|
14
|
-
return this.responseList;
|
|
15
|
-
},
|
|
16
|
-
reset() {
|
|
17
|
-
this.requestList = [];
|
|
18
|
-
this.responseList = [];
|
|
19
|
-
},
|
|
20
|
-
};
|
|
3
|
+
responseList: []};
|
|
21
4
|
|
|
22
5
|
export { mockTestRequests };
|
|
23
6
|
//# sourceMappingURL=mock_test_requests.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_test_requests.mjs","sources":["../../../../../../adapters/mock/mock_test_requests.ts"],"sourcesContent":[null],"names":[],"mappings":"AAea,MAAA,gBAAgB,GAAkB;AAC7C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,YAAY,EAAE
|
|
1
|
+
{"version":3,"file":"mock_test_requests.mjs","sources":["../../../../../../adapters/mock/mock_test_requests.ts"],"sourcesContent":[null],"names":[],"mappings":"AAea,MAAA,gBAAgB,GAAkB;AAC7C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,YAAY,EAAE;;;;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { callback, begin } from './oauth/oauth.mjs';
|
|
2
2
|
import { nonce } from './oauth/nonce.mjs';
|
|
3
3
|
import { safeCompare } from './oauth/safe-compare.mjs';
|
|
4
|
-
import {
|
|
4
|
+
import { buildEmbeddedAppUrl, getEmbeddedAppUrl } from './get-embedded-app-url.mjs';
|
|
5
5
|
import { tokenExchange } from './oauth/token-exchange.mjs';
|
|
6
|
+
import { clientCredentials } from './oauth/client-credentials.mjs';
|
|
6
7
|
|
|
7
8
|
function shopifyAuth(config) {
|
|
8
9
|
const shopify = {
|
|
@@ -13,6 +14,7 @@ function shopifyAuth(config) {
|
|
|
13
14
|
getEmbeddedAppUrl: getEmbeddedAppUrl(config),
|
|
14
15
|
buildEmbeddedAppUrl: buildEmbeddedAppUrl(config),
|
|
15
16
|
tokenExchange: tokenExchange(config),
|
|
17
|
+
clientCredentials: clientCredentials(config),
|
|
16
18
|
};
|
|
17
19
|
return shopify;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../../lib/auth/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../lib/auth/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAgBM,SAAU,WAAW,CACzB,MAAc,EAAA;AAEd,IAAA,MAAM,OAAO,GAAG;AACd,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;AACpB,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC1B,KAAK;QACL,WAAW;AACX,QAAA,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC;AAC5C,QAAA,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,CAAC;AAChD,QAAA,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC;AACpC,QAAA,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC;KAC9B;AAEhB,IAAA,OAAO,OAAO;AAChB;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { throwFailedRequest } from '../../clients/common.mjs';
|
|
2
|
+
import { DataType } from '../../clients/types.mjs';
|
|
3
|
+
import { fetchRequestFactory } from '../../utils/fetch-request.mjs';
|
|
4
|
+
import { sanitizeShop } from '../../utils/shop-validator.mjs';
|
|
5
|
+
import { createSession } from './create-session.mjs';
|
|
6
|
+
|
|
7
|
+
const ClientCredentialsGrantType = 'client_credentials';
|
|
8
|
+
function clientCredentials(config) {
|
|
9
|
+
return async ({ shop }) => {
|
|
10
|
+
const cleanShop = sanitizeShop(config)(shop, true);
|
|
11
|
+
const requestConfig = {
|
|
12
|
+
method: 'POST',
|
|
13
|
+
body: JSON.stringify({
|
|
14
|
+
client_id: config.apiKey,
|
|
15
|
+
client_secret: config.apiSecretKey,
|
|
16
|
+
grant_type: ClientCredentialsGrantType,
|
|
17
|
+
}),
|
|
18
|
+
headers: {
|
|
19
|
+
'Content-Type': DataType.JSON,
|
|
20
|
+
Accept: DataType.JSON,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
const postResponse = await fetchRequestFactory(config)(`https://${cleanShop}/admin/oauth/access_token`, requestConfig);
|
|
24
|
+
const responseData = (await postResponse.json());
|
|
25
|
+
if (!postResponse.ok) {
|
|
26
|
+
throwFailedRequest(responseData, false, postResponse);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
session: createSession({
|
|
30
|
+
accessTokenResponse: responseData,
|
|
31
|
+
shop: cleanShop,
|
|
32
|
+
// We need to keep this as an empty string as our template DB schemas have this required
|
|
33
|
+
state: '',
|
|
34
|
+
config,
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { clientCredentials };
|
|
41
|
+
//# sourceMappingURL=client-credentials.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-credentials.mjs","sources":["../../../../../../../lib/auth/oauth/client-credentials.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAcA,MAAM,0BAA0B,GAAG,oBAAoB;AAMjD,SAAU,iBAAiB,CAAC,MAAuB,EAAA;AACvD,IAAA,OAAO,OAAO,EAAC,IAAI,EAA0B,KAAI;QAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAE;AAEnD,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,MAAM,CAAC,MAAM;gBACxB,aAAa,EAAE,MAAM,CAAC,YAAY;AAClC,gBAAA,UAAU,EAAE,0BAA0B;aACvC,CAAC;AACF,YAAA,OAAO,EAAE;gBACP,cAAc,EAAE,QAAQ,CAAC,IAAI;gBAC7B,MAAM,EAAE,QAAQ,CAAC,IAAI;AACtB,aAAA;SACF;AAED,QAAA,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CACpD,CAAA,QAAA,EAAW,SAAS,CAAA,yBAAA,CAA2B,EAC/C,aAAa,CACd;QAED,MAAM,YAAY,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,CAAwB;AAEvE,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;AACpB,YAAA,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC;;QAGvD,OAAO;YACL,OAAO,EAAE,aAAa,CAAC;AACrB,gBAAA,mBAAmB,EAAE,YAAY;AACjC,gBAAA,IAAI,EAAE,SAAS;;AAEf,gBAAA,KAAK,EAAE,EAAE;gBACT,MAAM;aACP,CAAC;SACH;AACH,KAAC;AACH;;;;"}
|
|
@@ -8,38 +8,35 @@ function createSession({ config, accessTokenResponse, shop, state, }) {
|
|
|
8
8
|
.associated_user;
|
|
9
9
|
const isOnline = Boolean(associatedUser);
|
|
10
10
|
logger(config).info('Creating new session', { shop, isOnline });
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const responseBody = accessTokenResponse;
|
|
11
|
+
const getSessionExpiration = (expires_in) => new Date(Date.now() + expires_in * 1000);
|
|
12
|
+
const getOnlineSessionProperties = (responseBody) => {
|
|
14
13
|
const { access_token, scope, ...rest } = responseBody;
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
else {
|
|
20
|
-
sessionId = v4();
|
|
21
|
-
}
|
|
22
|
-
return new Session({
|
|
14
|
+
const sessionId = config.isEmbeddedApp
|
|
15
|
+
? getJwtSessionId(config)(shop, `${rest.associated_user.id}`)
|
|
16
|
+
: v4();
|
|
17
|
+
return {
|
|
23
18
|
id: sessionId,
|
|
24
|
-
shop,
|
|
25
|
-
state,
|
|
26
|
-
isOnline,
|
|
27
|
-
accessToken: access_token,
|
|
28
|
-
scope,
|
|
29
|
-
expires: sessionExpiration,
|
|
30
19
|
onlineAccessInfo: rest,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
expires: getSessionExpiration(rest.expires_in),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const getOfflineSessionProperties = (responseBody) => {
|
|
24
|
+
const { expires_in } = responseBody;
|
|
25
|
+
return {
|
|
35
26
|
id: getOfflineId(config)(shop),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
...(expires_in && { expires: getSessionExpiration(expires_in) }),
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
return new Session({
|
|
31
|
+
shop,
|
|
32
|
+
state,
|
|
33
|
+
isOnline,
|
|
34
|
+
accessToken: accessTokenResponse.access_token,
|
|
35
|
+
scope: accessTokenResponse.scope,
|
|
36
|
+
...(isOnline
|
|
37
|
+
? getOnlineSessionProperties(accessTokenResponse)
|
|
38
|
+
: getOfflineSessionProperties(accessTokenResponse)),
|
|
39
|
+
});
|
|
43
40
|
}
|
|
44
41
|
|
|
45
42
|
export { createSession };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-session.mjs","sources":["../../../../../../../lib/auth/oauth/create-session.ts"],"sourcesContent":[null],"names":["uuidv4"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"create-session.mjs","sources":["../../../../../../../lib/auth/oauth/create-session.ts"],"sourcesContent":[null],"names":["uuidv4"],"mappings":";;;;;AAcM,SAAU,aAAa,CAAC,EAC5B,MAAM,EACN,mBAAmB,EACnB,IAAI,EACJ,KAAK,GAMN,EAAA;IACC,MAAM,cAAc,GAAI;AACrB,SAAA,eAAe;AAClB,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;AAExC,IAAA,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;AAE7D,IAAA,MAAM,oBAAoB,GAAG,CAAC,UAAkB,KAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;AAE1C,IAAA,MAAM,0BAA0B,GAAG,CAAC,YAAkC,KAAI;QACxE,MAAM,EAAC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,EAAC,GAAG,YAAY;AACnD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC;AACvB,cAAE,eAAe,CAAC,MAAM,CAAC,CACrB,IAAI,EACJ,CAAA,EAAI,IAAyB,CAAC,eAAe,CAAC,EAAE,EAAE;cAEpDA,EAAM,EAAE;QAEZ,OAAO;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;SAC/C;AACH,KAAC;AAED,IAAA,MAAM,2BAA2B,GAAG,CAAC,YAAmC,KAAI;AAC1E,QAAA,MAAM,EAAC,UAAU,EAAC,GAAG,YAAY;QACjC,OAAO;AACL,YAAA,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC9B,IAAI,UAAU,IAAI,EAAC,OAAO,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAAC,CAAC;SAC/D;AACH,KAAC;IAED,OAAO,IAAI,OAAO,CAAC;QACjB,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,WAAW,EAAE,mBAAmB,CAAC,YAAY;QAC7C,KAAK,EAAE,mBAAmB,CAAC,KAAK;AAChC,QAAA,IAAI;AACF,cAAE,0BAA0B,CAAC,mBAA2C;AACxE,cAAE,2BAA2B,CACzB,mBAA4C,CAC7C,CAAC;AACP,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -4,7 +4,7 @@ import ProcessedQuery from '../../utils/processed-query.mjs';
|
|
|
4
4
|
import { BotActivityDetected, CookieNotFound, InvalidOAuthError, PrivateAppError } from '../../error.mjs';
|
|
5
5
|
import { validateHmac } from '../../utils/hmac-validator.mjs';
|
|
6
6
|
import { sanitizeShop } from '../../utils/shop-validator.mjs';
|
|
7
|
-
import { abstractConvertRequest, abstractConvertIncomingResponse, abstractConvertResponse
|
|
7
|
+
import { abstractConvertRequest, abstractConvertHeaders, abstractConvertIncomingResponse, abstractConvertResponse } from '../../../runtime/http/index.mjs';
|
|
8
8
|
import { logger } from '../../logger/index.mjs';
|
|
9
9
|
import { DataType } from '../../clients/types.mjs';
|
|
10
10
|
import { fetchRequestFactory } from '../../utils/fetch-request.mjs';
|
|
@@ -6,6 +6,7 @@ import '../types.mjs';
|
|
|
6
6
|
import '../../runtime/crypto/crypto.mjs';
|
|
7
7
|
import '../../runtime/crypto/types.mjs';
|
|
8
8
|
import 'compare-versions';
|
|
9
|
+
import { convertLineItems } from './utils.mjs';
|
|
9
10
|
|
|
10
11
|
function check(config) {
|
|
11
12
|
return async function check(params) {
|
|
@@ -43,6 +44,9 @@ async function assessPayments({ client, isTest, plans, }) {
|
|
|
43
44
|
installation.activeSubscriptions.forEach((subscription) => {
|
|
44
45
|
if (subscriptionMeetsCriteria({ subscription, isTest, plans })) {
|
|
45
46
|
returnValue.hasActivePayment = true;
|
|
47
|
+
if (subscription.lineItems) {
|
|
48
|
+
subscription.lineItems = convertLineItems(subscription.lineItems);
|
|
49
|
+
}
|
|
46
50
|
returnValue.appSubscriptions.push(subscription);
|
|
47
51
|
}
|
|
48
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.mjs","sources":["../../../../../../lib/billing/check.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check.mjs","sources":["../../../../../../lib/billing/check.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import '../../runtime/crypto/crypto.mjs';
|
|
|
7
7
|
import '../../runtime/crypto/types.mjs';
|
|
8
8
|
import 'compare-versions';
|
|
9
9
|
import { assessPayments } from './check.mjs';
|
|
10
|
+
import { convertAppRecurringPricingMoney, convertAppUsagePricingMoney } from './utils.mjs';
|
|
10
11
|
|
|
11
12
|
const CREATE_USAGE_RECORD_MUTATION = `
|
|
12
13
|
mutation appUsageRecordCreate($description: String!, $price: MoneyInput!, $subscriptionLineItemId: ID!) {
|
|
@@ -73,7 +74,10 @@ function createUsageRecord(config) {
|
|
|
73
74
|
errorData: response.data?.appUsageRecordCreate?.userErrors,
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
|
-
|
|
77
|
+
const appUsageRecord = response.data?.appUsageRecordCreate?.appUsageRecord;
|
|
78
|
+
convertAppRecurringPricingMoney(appUsageRecord.price);
|
|
79
|
+
convertAppUsagePricingMoney(appUsageRecord.subscriptionLineItem.plan.pricingDetails);
|
|
80
|
+
return appUsageRecord;
|
|
77
81
|
}
|
|
78
82
|
catch (error) {
|
|
79
83
|
if (error instanceof GraphqlQueryError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-usage-record.mjs","sources":["../../../../../../lib/billing/create-usage-record.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-usage-record.mjs","sources":["../../../../../../lib/billing/create-usage-record.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import '../types.mjs';
|
|
|
6
6
|
import '../../runtime/crypto/crypto.mjs';
|
|
7
7
|
import '../../runtime/crypto/types.mjs';
|
|
8
8
|
import 'compare-versions';
|
|
9
|
+
import { convertLineItems } from './utils.mjs';
|
|
9
10
|
|
|
10
11
|
const SUBSCRIPTION_QUERY = `
|
|
11
12
|
query appSubscription {
|
|
@@ -72,7 +73,18 @@ function subscriptions(config) {
|
|
|
72
73
|
const GraphqlClient = graphqlClientClass({ config });
|
|
73
74
|
const client = new GraphqlClient({ session });
|
|
74
75
|
const response = await client.request(SUBSCRIPTION_QUERY);
|
|
75
|
-
|
|
76
|
+
if (!response.data?.currentAppInstallation?.activeSubscriptions) {
|
|
77
|
+
return { activeSubscriptions: [] };
|
|
78
|
+
}
|
|
79
|
+
const activeSubscriptions = response.data.currentAppInstallation.activeSubscriptions;
|
|
80
|
+
activeSubscriptions.forEach((subscription) => {
|
|
81
|
+
if (subscription.lineItems) {
|
|
82
|
+
subscription.lineItems = convertLineItems(subscription.lineItems);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return {
|
|
86
|
+
activeSubscriptions,
|
|
87
|
+
};
|
|
76
88
|
};
|
|
77
89
|
}
|
|
78
90
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.mjs","sources":["../../../../../../lib/billing/subscriptions.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.mjs","sources":["../../../../../../lib/billing/subscriptions.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAYA,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD1B;AAEK,SAAU,aAAa,CAAC,MAAuB,EAAA;AACnD,IAAA,OAAO,gBAAgB,EACrB,OAAO,GACmB,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,8BAA8B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACrE,MAAM,IAAI,YAAY,CAAC;AACrB,gBAAA,OAAO,EAAE,yDAAyD;AAClE,gBAAA,SAAS,EAAE,EAAE;AACd,aAAA,CAAC;;QAGJ,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAC,MAAM,EAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAC,OAAO,EAAC,CAAC;QAE3C,MAAM,QAAQ,GACZ,MAAM,MAAM,CAAC,OAAO,CAAuB,kBAAkB,CAAC;QAEhE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,EAAE,mBAAmB,EAAE;AAC/D,YAAA,OAAO,EAAC,mBAAmB,EAAE,EAAE,EAAC;;QAGlC,MAAM,mBAAmB,GACvB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB;AAC1D,QAAA,mBAAmB,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;AAC3C,YAAA,IAAI,YAAY,CAAC,SAAS,EAAE;gBAC1B,YAAY,CAAC,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC;;AAErE,SAAC,CAAC;QAEF,OAAO;YACL,mBAAmB;SACpB;AACH,KAAC;AACH;;;;"}
|
|
@@ -6,6 +6,7 @@ import '../types.mjs';
|
|
|
6
6
|
import '../../runtime/crypto/crypto.mjs';
|
|
7
7
|
import '../../runtime/crypto/types.mjs';
|
|
8
8
|
import 'compare-versions';
|
|
9
|
+
import { convertLineItems } from './utils.mjs';
|
|
9
10
|
|
|
10
11
|
const UPDATE_USAGE_CAPPED_AMOUNT_MUTATION = `
|
|
11
12
|
mutation appSubscriptionLineItemUpdate($cappedAmount: MoneyInput!, $id: ID!) {
|
|
@@ -68,9 +69,13 @@ function updateUsageCappedAmount(config) {
|
|
|
68
69
|
errorData: response.data?.appSubscriptionLineItemUpdate?.userErrors,
|
|
69
70
|
});
|
|
70
71
|
}
|
|
72
|
+
const appSubscription = response.data?.appSubscriptionLineItemUpdate?.appSubscription;
|
|
73
|
+
if (appSubscription && appSubscription.lineItems) {
|
|
74
|
+
appSubscription.lineItems = convertLineItems(appSubscription.lineItems);
|
|
75
|
+
}
|
|
71
76
|
return {
|
|
72
77
|
confirmationUrl: response.data?.appSubscriptionLineItemUpdate?.confirmationUrl,
|
|
73
|
-
appSubscription
|
|
78
|
+
appSubscription,
|
|
74
79
|
};
|
|
75
80
|
}
|
|
76
81
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-usage-subscription-capped-amount.mjs","sources":["../../../../../../lib/billing/update-usage-subscription-capped-amount.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-usage-subscription-capped-amount.mjs","sources":["../../../../../../lib/billing/update-usage-subscription-capped-amount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAYA,MAAM,mCAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC3C;AAEK,SAAU,uBAAuB,CACrC,MAAuB,EAAA;AAEvB,IAAA,OAAO,eAAe,uBAAuB,CAC3C,MAA4C,EAAA;AAE5C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,YAAY,CAAC;AACrB,gBAAA,OAAO,EAAE,uDAAuD;AAChE,gBAAA,SAAS,EAAE,EAAE;AACd,aAAA,CAAC;;AAGJ,QAAA,MAAM,EACJ,OAAO,EACP,sBAAsB,EACtB,YAAY,EAAE,EAAC,MAAM,EAAE,YAAY,EAAC,GACrC,GAAG,MAAM;QAEV,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAC,MAAM,EAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAC,OAAO,EAAC,CAAC;AAE3C,QAAA,IAAI;YACF,MAAM,QAAQ,GACZ,MAAM,MAAM,CAAC,OAAO,CAClB,mCAAmC,EACnC;AACE,gBAAA,SAAS,EAAE;AACT,oBAAA,EAAE,EAAE,sBAAsB;AAC1B,oBAAA,YAAY,EAAE;wBACZ,MAAM;wBACN,YAAY;AACb,qBAAA;AACF,iBAAA;AACF,aAAA,CACF;YAEH,IAAI,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,UAAU,CAAC,MAAM,EAAE;gBACnE,MAAM,IAAI,YAAY,CAAC;AACrB,oBAAA,OAAO,EAAE,uDAAuD;AAChE,oBAAA,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,UAAU;AACpE,iBAAA,CAAC;;YAGJ,MAAM,eAAe,GACnB,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,eAAgB;AAChE,YAAA,IAAI,eAAe,IAAI,eAAe,CAAC,SAAS,EAAE;gBAChD,eAAe,CAAC,SAAS,GAAG,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC;;YAGzE,OAAO;AACL,gBAAA,eAAe,EACb,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,eAAgB;gBAChE,eAAe;aAChB;;QACD,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;gBACtC,MAAM,IAAI,YAAY,CAAC;oBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,oBAAA,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM;AAClC,iBAAA,CAAC;;AAGJ,YAAA,MAAM,KAAK;;AAEf,KAAC;AACH;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts string amounts to numbers in Money type objects
|
|
3
|
+
*/
|
|
4
|
+
function convertMoneyAmount(data) {
|
|
5
|
+
if (!data)
|
|
6
|
+
return data;
|
|
7
|
+
convertAppUsagePricingMoney(data);
|
|
8
|
+
convertAppRecurringPricingMoney(data);
|
|
9
|
+
convertAppDiscountMoney(data);
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
function convertAppRecurringPricingMoney(data) {
|
|
13
|
+
if (!data)
|
|
14
|
+
return;
|
|
15
|
+
if (data.price?.amount && typeof data.price.amount === 'string') {
|
|
16
|
+
data.price.amount = parseFloat(data.price.amount);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function convertAppDiscountMoney(data) {
|
|
20
|
+
if (!data)
|
|
21
|
+
return;
|
|
22
|
+
if (data.discount?.priceAfterDiscount?.amount &&
|
|
23
|
+
typeof data.discount.priceAfterDiscount.amount === 'string') {
|
|
24
|
+
data.discount.priceAfterDiscount.amount = parseFloat(data.discount.priceAfterDiscount.amount);
|
|
25
|
+
}
|
|
26
|
+
if (data.discount?.value?.amount?.amount &&
|
|
27
|
+
typeof data.discount.value.amount.amount === 'string') {
|
|
28
|
+
data.discount.value.amount.amount = parseFloat(data.discount.value.amount.amount);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function convertAppUsagePricingMoney(data) {
|
|
32
|
+
if (!data)
|
|
33
|
+
return;
|
|
34
|
+
if (data.balanceUsed?.amount && typeof data.balanceUsed.amount === 'string') {
|
|
35
|
+
data.balanceUsed.amount = parseFloat(data.balanceUsed.amount);
|
|
36
|
+
}
|
|
37
|
+
if (data.cappedAmount?.amount &&
|
|
38
|
+
typeof data.cappedAmount.amount === 'string') {
|
|
39
|
+
data.cappedAmount.amount = parseFloat(data.cappedAmount.amount);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Converts Money amounts in line items
|
|
44
|
+
*/
|
|
45
|
+
function convertLineItems(lineItems) {
|
|
46
|
+
return lineItems.map((item) => {
|
|
47
|
+
if (item.plan?.pricingDetails) {
|
|
48
|
+
item.plan.pricingDetails = convertMoneyAmount(item.plan.pricingDetails);
|
|
49
|
+
}
|
|
50
|
+
return item;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { convertAppDiscountMoney, convertAppRecurringPricingMoney, convertAppUsagePricingMoney, convertLineItems, convertMoneyAmount };
|
|
55
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../../../lib/billing/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;AAEG;AACG,SAAU,kBAAkB,CAAC,IAAS,EAAA;AAC1C,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;IAEtB,2BAA2B,CAAC,IAAI,CAAC;IACjC,+BAA+B,CAAC,IAAI,CAAC;IACrC,uBAAuB,CAAC,IAAI,CAAC;AAE7B,IAAA,OAAO,IAAI;AACb;AAEM,SAAU,+BAA+B,CAAC,IAAS,EAAA;AACvD,IAAA,IAAI,CAAC,IAAI;QAAE;AAEX,IAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC/D,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;;AAErD;AAEM,SAAU,uBAAuB,CAAC,IAAS,EAAA;AAC/C,IAAA,IAAI,CAAC,IAAI;QAAE;AAEX,IAAA,IACE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,KAAK,QAAQ,EAC3D;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,GAAG,UAAU,CAClD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CACxC;;IAGH,IACE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;AACpC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EACrD;QACA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAClC;;AAEL;AAEM,SAAU,2BAA2B,CAAC,IAAS,EAAA;AACnD,IAAA,IAAI,CAAC,IAAI;QAAE;AAEX,IAAA,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC3E,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;;AAG/D,IAAA,IACE,IAAI,CAAC,YAAY,EAAE,MAAM;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,EAC5C;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;;AAEnE;AAEA;;AAEG;AACG,SAAU,gBAAgB,CAAC,SAAuC,EAAA;AACtE,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC5B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;;AAEzE,QAAA,OAAO,IAAI;AACb,KAAC,CAAC;AACJ;;;;"}
|
|
@@ -4,7 +4,7 @@ import { MissingRequiredArgument } from '../../../error.mjs';
|
|
|
4
4
|
import { abstractFetch } from '../../../../runtime/http/index.mjs';
|
|
5
5
|
import '../../../../runtime/crypto/types.mjs';
|
|
6
6
|
import '../../../../runtime/crypto/crypto.mjs';
|
|
7
|
-
import {
|
|
7
|
+
import { getUserAgent, clientLoggerFactory, throwFailedRequest } from '../../common.mjs';
|
|
8
8
|
import { canonicalizeHeaders } from '../../../../runtime/http/headers.mjs';
|
|
9
9
|
|
|
10
10
|
class GraphqlClient {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createAdminRestApiClient } from '@shopify/admin-api-client';
|
|
2
2
|
import { Method } from '@shopify/network';
|
|
3
|
-
import {
|
|
3
|
+
import { getUserAgent, clientLoggerFactory, throwFailedRequest } from '../../common.mjs';
|
|
4
4
|
import { abstractFetch } from '../../../../runtime/http/index.mjs';
|
|
5
5
|
import { HashFormat } from '../../../../runtime/crypto/types.mjs';
|
|
6
6
|
import '../../../../runtime/crypto/crypto.mjs';
|
|
@@ -4,7 +4,7 @@ import { MissingRequiredArgument } from '../../error.mjs';
|
|
|
4
4
|
import { abstractFetch } from '../../../runtime/http/index.mjs';
|
|
5
5
|
import '../../../runtime/crypto/types.mjs';
|
|
6
6
|
import '../../../runtime/crypto/crypto.mjs';
|
|
7
|
-
import {
|
|
7
|
+
import { getUserAgent, clientLoggerFactory, throwFailedRequest } from '../common.mjs';
|
|
8
8
|
|
|
9
9
|
class StorefrontClient {
|
|
10
10
|
static config;
|
package/dist/esm/lib/config.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ShopifyError } from './error.mjs';
|
|
2
|
-
import {
|
|
2
|
+
import { LogSeverity, LATEST_API_VERSION } from './types.mjs';
|
|
3
3
|
import { AuthScopes } from './auth/scopes/index.mjs';
|
|
4
4
|
import { logger } from './logger/index.mjs';
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { decodeSessionToken } from './decode-session-token.mjs';
|
|
2
|
-
import {
|
|
2
|
+
import { getJwtSessionId, getOfflineId, getCurrentSessionId, customAppSession } from './session-utils.mjs';
|
|
3
3
|
|
|
4
4
|
function shopifySession(config) {
|
|
5
5
|
return {
|
|
@@ -161,9 +161,9 @@ class Session {
|
|
|
161
161
|
* Whether the session is active. Active sessions have an access token that is not expired, and has has the given
|
|
162
162
|
* scopes if scopes is equal to a truthy value.
|
|
163
163
|
*/
|
|
164
|
-
isActive(scopes) {
|
|
164
|
+
isActive(scopes, withinMillisecondsOfExpiry = 500) {
|
|
165
165
|
const hasAccessToken = Boolean(this.accessToken);
|
|
166
|
-
const isTokenNotExpired = !this.isExpired();
|
|
166
|
+
const isTokenNotExpired = !this.isExpired(withinMillisecondsOfExpiry);
|
|
167
167
|
const isScopeChanged = this.isScopeChanged(scopes);
|
|
168
168
|
return !isScopeChanged && hasAccessToken && isTokenNotExpired;
|
|
169
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.mjs","sources":["../../../../../../lib/session/session.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.mjs","sources":["../../../../../../lib/session/session.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sanitizeHost, sanitizeShop } from './shop-validator.mjs';
|
|
2
2
|
import { validateHmac } from './hmac-validator.mjs';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { versionPriorTo, versionCompatible } from './version-compatible.mjs';
|
|
4
|
+
import { legacyUrlToShopAdminUrl, shopAdminUrlToLegacyUrl } from './shop-admin-url-helper.mjs';
|
|
5
5
|
|
|
6
6
|
function shopifyUtils(config) {
|
|
7
7
|
return {
|
|
@@ -10,9 +10,13 @@ function shopAdminUrlToLegacyUrl(shopAdminUrl) {
|
|
|
10
10
|
if (matches && matches.length === 2) {
|
|
11
11
|
const shopName = matches[1];
|
|
12
12
|
const isSpinUrl = shopUrl.includes('spin.dev/store/');
|
|
13
|
+
const isLocalUrl = shopUrl.includes('shop.dev/store/');
|
|
13
14
|
if (isSpinUrl) {
|
|
14
15
|
return spinAdminUrlToLegacyUrl(shopUrl);
|
|
15
16
|
}
|
|
17
|
+
else if (isLocalUrl) {
|
|
18
|
+
return localAdminUrlToLegacyUrl(shopUrl);
|
|
19
|
+
}
|
|
16
20
|
else {
|
|
17
21
|
return `${shopName}.myshopify.com`;
|
|
18
22
|
}
|
|
@@ -32,9 +36,13 @@ function legacyUrlToShopAdminUrl(legacyAdminUrl) {
|
|
|
32
36
|
}
|
|
33
37
|
else {
|
|
34
38
|
const isSpinUrl = shopUrl.endsWith('spin.dev');
|
|
39
|
+
const isLocalUrl = shopUrl.endsWith('shop.dev');
|
|
35
40
|
if (isSpinUrl) {
|
|
36
41
|
return spinLegacyUrlToAdminUrl(shopUrl);
|
|
37
42
|
}
|
|
43
|
+
else if (isLocalUrl) {
|
|
44
|
+
return localLegacyUrlToAdminUrl(shopUrl);
|
|
45
|
+
}
|
|
38
46
|
else {
|
|
39
47
|
return null;
|
|
40
48
|
}
|
|
@@ -52,6 +60,17 @@ function spinAdminUrlToLegacyUrl(shopAdminUrl) {
|
|
|
52
60
|
return null;
|
|
53
61
|
}
|
|
54
62
|
}
|
|
63
|
+
function localAdminUrlToLegacyUrl(shopAdminUrl) {
|
|
64
|
+
const localRegex = new RegExp(`admin\\.shop\\.dev/store/(.+)`);
|
|
65
|
+
const localMatches = shopAdminUrl.match(localRegex);
|
|
66
|
+
if (localMatches && localMatches.length === 2) {
|
|
67
|
+
const shopName = localMatches[1];
|
|
68
|
+
return `${shopName}.shop.dev`;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
55
74
|
function spinLegacyUrlToAdminUrl(legacyAdminUrl) {
|
|
56
75
|
const spinRegex = new RegExp(`(.+)\\.shopify\\.(.+\\.spin\\.dev)`);
|
|
57
76
|
const spinMatches = legacyAdminUrl.match(spinRegex);
|
|
@@ -64,6 +83,17 @@ function spinLegacyUrlToAdminUrl(legacyAdminUrl) {
|
|
|
64
83
|
return null;
|
|
65
84
|
}
|
|
66
85
|
}
|
|
86
|
+
function localLegacyUrlToAdminUrl(legacyAdminUrl) {
|
|
87
|
+
const localRegex = new RegExp(`(.+)\\.shop\\.dev$`);
|
|
88
|
+
const localMatches = legacyAdminUrl.match(localRegex);
|
|
89
|
+
if (localMatches && localMatches.length === 2) {
|
|
90
|
+
const shopName = localMatches[1];
|
|
91
|
+
return `admin.shop.dev/store/${shopName}`;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
67
97
|
function removeProtocol(url) {
|
|
68
98
|
return url.replace(/^https?:\/\//, '').replace(/\/$/, '');
|
|
69
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shop-admin-url-helper.mjs","sources":["../../../../../../lib/utils/shop-admin-url-helper.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACM,SAAU,uBAAuB,CAAC,YAAoB,EAAA;AAC1D,IAAA,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC;AAE5C,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO;IAExD,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,IAAI;;AAGb,IAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,wBAAA,CAA0B,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IAEpC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"shop-admin-url-helper.mjs","sources":["../../../../../../lib/utils/shop-admin-url-helper.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InvalidHostError, InvalidShopError } from '../error.mjs';
|
|
2
2
|
import { decodeHost } from '../auth/decode-host.mjs';
|
|
3
3
|
import { shopAdminUrlToLegacyUrl } from './shop-admin-url-helper.mjs';
|
|
4
4
|
|
|
5
5
|
function sanitizeShop(config) {
|
|
6
6
|
return (shop, throwOnInvalid = false) => {
|
|
7
7
|
let shopUrl = shop;
|
|
8
|
-
const domainsRegex = [
|
|
8
|
+
const domainsRegex = [
|
|
9
|
+
'myshopify\\.com',
|
|
10
|
+
'shopify\\.com',
|
|
11
|
+
'myshopify\\.io',
|
|
12
|
+
'shop\\.dev',
|
|
13
|
+
];
|
|
9
14
|
if (config.customShopDomains) {
|
|
10
15
|
domainsRegex.push(...config.customShopDomains.map((regex) => typeof regex === 'string' ? regex : regex.source));
|
|
11
16
|
}
|
|
@@ -33,6 +38,7 @@ function sanitizeHost() {
|
|
|
33
38
|
'shopify\\.com',
|
|
34
39
|
'myshopify\\.io',
|
|
35
40
|
'spin\\.dev',
|
|
41
|
+
'shop\\.dev',
|
|
36
42
|
];
|
|
37
43
|
const hostRegex = new RegExp(`\\.(${originsRegex.join('|')})$`);
|
|
38
44
|
if (!hostRegex.test(hostname)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shop-validator.mjs","sources":["../../../../../../lib/utils/shop-validator.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMM,SAAU,YAAY,CAAC,MAAuB,EAAA;AAClD,IAAA,OAAO,CAAC,IAAY,EAAE,cAAc,GAAG,KAAK,KAAmB;QAC7D,IAAI,OAAO,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"shop-validator.mjs","sources":["../../../../../../lib/utils/shop-validator.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMM,SAAU,YAAY,CAAC,MAAuB,EAAA;AAClD,IAAA,OAAO,CAAC,IAAY,EAAE,cAAc,GAAG,KAAK,KAAmB;QAC7D,IAAI,OAAO,GAAG,IAAI;AAClB,QAAA,MAAM,YAAY,GAAG;YACnB,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,YAAY;SACb;AACD,QAAA,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC5B,YAAA,YAAY,CAAC,IAAI,CACf,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,KACpC,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CACjD,CACF;;AAGH,QAAA,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,CAAiC,8BAAA,EAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,MAAA,CAAQ,CAChE;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,MAAM,CAC/B,CAAa,UAAA,EAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,oCAAA,CAAsC,CAC1E;QAED,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QACnD,IAAI,cAAc,EAAE;AAClB,YAAA,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,EAAE;;AAGlD,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI;AACjE,QAAA,IAAI,CAAC,aAAa,IAAI,cAAc,EAAE;AACpC,YAAA,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,CAAC;;AAG9D,QAAA,OAAO,aAAa;AACtB,KAAC;AACH;SAEgB,YAAY,GAAA;AAC1B,IAAA,OAAO,CAAC,IAAY,EAAE,cAAc,GAAG,KAAK,KAAmB;QAC7D,MAAM,WAAW,GAAG,wBAAwB;AAE5C,QAAA,IAAI,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;QACxD,IAAI,aAAa,EAAE;AACjB,YAAA,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,CAAW,QAAA,EAAA,UAAU,CAAC,aAAa,CAAC,CAAA,CAAE,CAAC;AAElE,YAAA,MAAM,YAAY,GAAG;gBACnB,iBAAiB;gBACjB,eAAe;gBACf,gBAAgB;gBAChB,YAAY;gBACZ,YAAY;aACb;AAED,YAAA,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,CAAO,IAAA,EAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAA,CAAI,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC7B,aAAa,GAAG,IAAI;;;AAGxB,QAAA,IAAI,CAAC,aAAa,IAAI,cAAc,EAAE;AACpC,YAAA,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,CAAC;;AAG9D,QAAA,OAAO,aAAa;AACtB,KAAC;AACH;;;;"}
|