@shopify/shopify-api 11.8.1 → 11.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/cjs/adapters/mock/mock_test_requests.js +1 -18
  2. package/dist/cjs/adapters/mock/mock_test_requests.js.map +1 -1
  3. package/dist/cjs/lib/auth/index.js +2 -0
  4. package/dist/cjs/lib/auth/index.js.map +1 -1
  5. package/dist/cjs/lib/auth/oauth/client-credentials.js +43 -0
  6. package/dist/cjs/lib/auth/oauth/client-credentials.js.map +1 -0
  7. package/dist/cjs/lib/auth/oauth/create-session.js +25 -28
  8. package/dist/cjs/lib/auth/oauth/create-session.js.map +1 -1
  9. package/dist/cjs/lib/billing/check.js +4 -0
  10. package/dist/cjs/lib/billing/check.js.map +1 -1
  11. package/dist/cjs/lib/billing/create-usage-record.js +5 -1
  12. package/dist/cjs/lib/billing/create-usage-record.js.map +1 -1
  13. package/dist/cjs/lib/billing/subscriptions.js +13 -1
  14. package/dist/cjs/lib/billing/subscriptions.js.map +1 -1
  15. package/dist/cjs/lib/billing/update-usage-subscription-capped-amount.js +6 -1
  16. package/dist/cjs/lib/billing/update-usage-subscription-capped-amount.js.map +1 -1
  17. package/dist/cjs/lib/billing/utils.js +61 -0
  18. package/dist/cjs/lib/billing/utils.js.map +1 -0
  19. package/dist/cjs/lib/clients/index.js +4 -4
  20. package/dist/cjs/lib/clients/index.js.map +1 -1
  21. package/dist/cjs/lib/index.js +16 -16
  22. package/dist/cjs/lib/utils/fetch-request.js +4 -4
  23. package/dist/cjs/lib/utils/fetch-request.js.map +1 -1
  24. package/dist/cjs/lib/utils/hmac-validator.js +9 -9
  25. package/dist/cjs/lib/utils/hmac-validator.js.map +1 -1
  26. package/dist/cjs/lib/version.js +1 -1
  27. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  28. package/dist/esm/adapters/mock/mock_test_requests.mjs +1 -18
  29. package/dist/esm/adapters/mock/mock_test_requests.mjs.map +1 -1
  30. package/dist/esm/lib/auth/index.mjs +4 -2
  31. package/dist/esm/lib/auth/index.mjs.map +1 -1
  32. package/dist/esm/lib/auth/oauth/client-credentials.mjs +41 -0
  33. package/dist/esm/lib/auth/oauth/client-credentials.mjs.map +1 -0
  34. package/dist/esm/lib/auth/oauth/create-session.mjs +25 -28
  35. package/dist/esm/lib/auth/oauth/create-session.mjs.map +1 -1
  36. package/dist/esm/lib/auth/oauth/oauth.mjs +1 -1
  37. package/dist/esm/lib/billing/check.mjs +4 -0
  38. package/dist/esm/lib/billing/check.mjs.map +1 -1
  39. package/dist/esm/lib/billing/create-usage-record.mjs +5 -1
  40. package/dist/esm/lib/billing/create-usage-record.mjs.map +1 -1
  41. package/dist/esm/lib/billing/subscriptions.mjs +13 -1
  42. package/dist/esm/lib/billing/subscriptions.mjs.map +1 -1
  43. package/dist/esm/lib/billing/update-usage-subscription-capped-amount.mjs +6 -1
  44. package/dist/esm/lib/billing/update-usage-subscription-capped-amount.mjs.map +1 -1
  45. package/dist/esm/lib/billing/utils.mjs +55 -0
  46. package/dist/esm/lib/billing/utils.mjs.map +1 -0
  47. package/dist/esm/lib/clients/admin/graphql/client.mjs +1 -1
  48. package/dist/esm/lib/clients/admin/rest/client.mjs +1 -1
  49. package/dist/esm/lib/clients/storefront/client.mjs +1 -1
  50. package/dist/esm/lib/config.mjs +1 -1
  51. package/dist/esm/lib/session/index.mjs +1 -1
  52. package/dist/esm/lib/utils/index.mjs +3 -3
  53. package/dist/esm/lib/utils/shop-validator.mjs +1 -1
  54. package/dist/esm/lib/version.mjs +1 -1
  55. package/dist/esm/lib/webhooks/index.mjs +1 -1
  56. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  57. package/dist/ts/lib/auth/index.d.ts +2 -0
  58. package/dist/ts/lib/auth/index.d.ts.map +1 -1
  59. package/dist/ts/lib/auth/oauth/client-credentials.d.ts +10 -0
  60. package/dist/ts/lib/auth/oauth/client-credentials.d.ts.map +1 -0
  61. package/dist/ts/lib/auth/oauth/create-session.d.ts.map +1 -1
  62. package/dist/ts/lib/auth/oauth/types.d.ts +8 -0
  63. package/dist/ts/lib/auth/oauth/types.d.ts.map +1 -1
  64. package/dist/ts/lib/billing/check.d.ts.map +1 -1
  65. package/dist/ts/lib/billing/create-usage-record.d.ts.map +1 -1
  66. package/dist/ts/lib/billing/subscriptions.d.ts.map +1 -1
  67. package/dist/ts/lib/billing/types.d.ts +14 -0
  68. package/dist/ts/lib/billing/types.d.ts.map +1 -1
  69. package/dist/ts/lib/billing/update-usage-subscription-capped-amount.d.ts.map +1 -1
  70. package/dist/ts/lib/billing/utils.d.ts +13 -0
  71. package/dist/ts/lib/billing/utils.d.ts.map +1 -0
  72. package/dist/ts/lib/version.d.ts +1 -1
  73. package/dist/ts/tsconfig.build.tsbuildinfo +1 -1
  74. 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,EAAE;AAEhB,IAAA,aAAa,CAAC,QAA4B,EAAA;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;KACjC;AAED,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;KAC9B;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;KAChC;IAED,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,YAAY;KACzB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;KACvB;;;;;"}
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 { begin, callback } from './oauth/oauth.mjs';
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 { getEmbeddedAppUrl, buildEmbeddedAppUrl } from './get-embedded-app-url.mjs';
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":";;;;;;AAeM,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;KACtB;AAEhB,IAAA,OAAO,OAAO;AAChB;;;;"}
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
- if (isOnline) {
12
- let sessionId;
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 sessionExpiration = new Date(Date.now() + responseBody.expires_in * 1000);
16
- if (config.isEmbeddedApp) {
17
- sessionId = getJwtSessionId(config)(shop, `${rest.associated_user.id}`);
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
- else {
34
- return new Session({
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
- shop,
37
- state,
38
- isOnline,
39
- accessToken: accessTokenResponse.access_token,
40
- scope: accessTokenResponse.scope,
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":";;;;;AAaM,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;IAE7D,IAAI,QAAQ,EAAE;AACZ,QAAA,IAAI,SAAiB;QACrB,MAAM,YAAY,GAAG,mBAA2C;QAChE,MAAM,EAAC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,EAAC,GAAG,YAAY;AACnD,QAAA,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAChC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,UAAU,GAAG,IAAI,CAC5C;AAED,QAAA,IAAI,MAAM,CAAC,aAAa,EAAE;AACxB,YAAA,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CACjC,IAAI,EACJ,CAAI,EAAA,IAAyB,CAAC,eAAe,CAAC,EAAE,CAAA,CAAE,CACnD;;aACI;YACL,SAAS,GAAGA,EAAM,EAAE;;QAGtB,OAAO,IAAI,OAAO,CAAC;AACjB,YAAA,EAAE,EAAE,SAAS;YACb,IAAI;YACJ,KAAK;YACL,QAAQ;AACR,YAAA,WAAW,EAAE,YAAY;YACzB,KAAK;AACL,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA,CAAC;;SACG;QACL,OAAO,IAAI,OAAO,CAAC;AACjB,YAAA,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC9B,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,WAAW,EAAE,mBAAmB,CAAC,YAAY;YAC7C,KAAK,EAAE,mBAAmB,CAAC,KAAK;AACjC,SAAA,CAAC;;AAEN;;;;"}
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, abstractConvertHeaders } from '../../../runtime/http/index.mjs';
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":"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"}
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
- return response.data?.appUsageRecordCreate?.appUsageRecord;
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":"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"}
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
- return response.data?.currentAppInstallation;
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":";;;;;;;;;AAWA,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;AAEhE,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,sBAAuB;AAC/C,KAAC;AACH;;;;"}
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: response.data?.appSubscriptionLineItemUpdate?.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":";;;;;;;;;AAWA,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,OAAO;AACL,gBAAA,eAAe,EACb,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,eAAgB;AAChE,gBAAA,eAAe,EACb,QAAQ,CAAC,IAAI,EAAE,6BAA6B,EAAE,eAAgB;aACjE;;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;;;;"}
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 { clientLoggerFactory, getUserAgent, throwFailedRequest } from '../../common.mjs';
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 { clientLoggerFactory, getUserAgent, throwFailedRequest } from '../../common.mjs';
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 { clientLoggerFactory, getUserAgent, throwFailedRequest } from '../common.mjs';
7
+ import { getUserAgent, clientLoggerFactory, throwFailedRequest } from '../common.mjs';
8
8
 
9
9
  class StorefrontClient {
10
10
  static config;
@@ -1,5 +1,5 @@
1
1
  import { ShopifyError } from './error.mjs';
2
- import { LATEST_API_VERSION, LogSeverity } from './types.mjs';
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 { customAppSession, getCurrentSessionId, getOfflineId, getJwtSessionId } from './session-utils.mjs';
2
+ import { getJwtSessionId, getOfflineId, getCurrentSessionId, customAppSession } from './session-utils.mjs';
3
3
 
4
4
  function shopifySession(config) {
5
5
  return {
@@ -1,7 +1,7 @@
1
- import { sanitizeShop, sanitizeHost } from './shop-validator.mjs';
1
+ import { sanitizeHost, sanitizeShop } from './shop-validator.mjs';
2
2
  import { validateHmac } from './hmac-validator.mjs';
3
- import { versionCompatible, versionPriorTo } from './version-compatible.mjs';
4
- import { shopAdminUrlToLegacyUrl, legacyUrlToShopAdminUrl } from './shop-admin-url-helper.mjs';
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 {
@@ -1,4 +1,4 @@
1
- import { InvalidShopError, InvalidHostError } from '../error.mjs';
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
 
@@ -1,4 +1,4 @@
1
- const SHOPIFY_API_LIBRARY_VERSION = '11.8.1';
1
+ const SHOPIFY_API_LIBRARY_VERSION = '11.9.0';
2
2
 
3
3
  export { SHOPIFY_API_LIBRARY_VERSION };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1,4 +1,4 @@
1
- import { addHandlers, getTopicsAdded, getHandlers, registry } from './registry.mjs';
1
+ import { getHandlers, getTopicsAdded, addHandlers, registry } from './registry.mjs';
2
2
  import { register } from './register.mjs';
3
3
  import { process } from './process.mjs';
4
4
  import { validateFactory } from './validate.mjs';